--- asterisk/channels/chan_sip.c.beforemysqlstuff 2004-12-21 10:56:58.000000000 +0100 +++ asterisk/channels/chan_sip.c 2004-12-21 11:52:46.000000000 +0100 @@ -1,4 +1,6 @@ /* + * vim:ts=4:sw=4 + * * Asterisk -- A telephony toolkit for Linux. * * Implementation of Session Initiation Protocol @@ -1139,12 +1141,12 @@ mysql_real_escape_string(mysql, name, user, strlen(user)); } - snprintf(query, sizeof(query), "SELECT name, secret, context, username, ipaddr, port, regseconds, callerid, restrictcid FROM sipfriends WHERE name=\"%s\"", name); + snprintf(query, sizeof(query), "SELECT name, secret, context, username, ipaddr, port, regseconds, disallow, allow FROM sipfriends WHERE name=\"%s\"", name); ast_mutex_lock(&mysqllock); - mysql_query(mysql, query); - if ((result = mysql_store_result(mysql))) { - + if (mysql_query(mysql, query)) { + ast_log(LOG_WARNING, "MySQL error in query '%s': '%s'\n", query, mysql_error(mysql)); + } else if ((result = mysql_store_result(mysql))) { if ((rowval = mysql_fetch_row(result))) { numfields = mysql_num_fields(result); fields = mysql_fetch_fields(result); @@ -1162,11 +1164,10 @@ } else if (!strcasecmp(fields[x].name, "regseconds")) { if (sscanf(rowval[x], "%li", ®seconds) != 1) regseconds = 0; - } else if (!strcasecmp(fields[x].name, "restrictcid")) { - u->restrictcid = 1; - } else if (!strcasecmp(fields[x].name, "callerid")) { - strncpy(u->callerid, rowval[x], sizeof(u->callerid) - 1); - u->hascallerid=1; + } else if (!strcasecmp(fields[x].name, "allow")) { + ast_parse_allow_disallow(&u->prefs, &u->capability, rowval[x], 1); + } else if (!strcasecmp(fields[x].name, "disallow")) { + ast_parse_allow_disallow(&u->prefs, &u->capability, rowval[x], 0); } } } @@ -1240,12 +1241,13 @@ mysql_real_escape_string(mysql, name, peer, strlen(peer)); } if (sin) - snprintf(query, sizeof(query), "SELECT name, secret, context, username, ipaddr, port, regseconds FROM sipfriends WHERE ipaddr=\"%s\" AND port=\"%d\"", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), ntohs(sin->sin_port)); + snprintf(query, sizeof(query), "SELECT name, secret, context, username, ipaddr, port, regseconds, disallow, allow FROM sipfriends WHERE ipaddr=\"%s\" AND port=\"%d\"", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), ntohs(sin->sin_port)); else - snprintf(query, sizeof(query), "SELECT name, secret, context, username, ipaddr, port, regseconds FROM sipfriends WHERE name=\"%s\"", name); + snprintf(query, sizeof(query), "SELECT name, secret, context, username, ipaddr, port, regseconds, disallow, allow FROM sipfriends WHERE name=\"%s\"", name); ast_mutex_lock(&mysqllock); - mysql_query(mysql, query); - if ((result = mysql_store_result(mysql))) { + if (mysql_query(mysql, query)) { + ast_log(LOG_WARNING, "MySQL error in query '%s': '%s'\n", query, mysql_error(mysql)); + } else if ((result = mysql_store_result(mysql))) { if ((rowval = mysql_fetch_row(result))) { numfields = mysql_num_fields(result); fields = mysql_fetch_fields(result); @@ -1270,6 +1272,10 @@ } else if (!strcasecmp(fields[x].name, "regseconds")) { if (sscanf(rowval[x], "%li", ®seconds) != 1) regseconds = 0; + } else if (!strcasecmp(fields[x].name, "allow")) { + ast_parse_allow_disallow(&p->prefs, &p->capability, rowval[x], 1); + } else if (!strcasecmp(fields[x].name, "disallow")) { + ast_parse_allow_disallow(&p->prefs, &p->capability, rowval[x], 0); } } }