|
@@ -480,13 +480,21 @@ int allow_address(struct sip_msg* _msg, char* _addr_group, char* _addr_sp,
|
|
|
}
|
|
|
|
|
|
if ( ipa ) {
|
|
|
- if (match_addr_hash_table(*addr_hash_table, addr_group, ipa, port) == 1)
|
|
|
+ if (addr_hash_table
|
|
|
+ && match_addr_hash_table(*addr_hash_table, addr_group,
|
|
|
+ ipa, port) == 1) {
|
|
|
return 1;
|
|
|
- else
|
|
|
- return match_subnet_table(*subnet_table, addr_group, ipa, port);
|
|
|
+ } else {
|
|
|
+ if(subnet_table) {
|
|
|
+ return match_subnet_table(*subnet_table, addr_group, ipa, port);
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
- return match_domain_name_table(*domain_list_table, addr_group, &ips, port);
|
|
|
+ if(domain_list_table) {
|
|
|
+ return match_domain_name_table(*domain_list_table, addr_group, &ips, port);
|
|
|
+ }
|
|
|
}
|
|
|
+ return -1;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -507,14 +515,17 @@ int allow_source_address(struct sip_msg* _msg, char* _addr_group, char* _str2)
|
|
|
LM_DBG("looking for <%u, %x, %u>\n",
|
|
|
addr_group, _msg->rcv.src_ip.u.addr32[0], _msg->rcv.src_port);
|
|
|
|
|
|
- if (match_addr_hash_table(*addr_hash_table, addr_group,
|
|
|
- &_msg->rcv.src_ip,
|
|
|
- _msg->rcv.src_port) == 1)
|
|
|
+ if (addr_hash_table && match_addr_hash_table(*addr_hash_table, addr_group,
|
|
|
+ &_msg->rcv.src_ip, _msg->rcv.src_port) == 1) {
|
|
|
return 1;
|
|
|
- else
|
|
|
- return match_subnet_table(*subnet_table, addr_group,
|
|
|
+ } else {
|
|
|
+ if(subnet_table) {
|
|
|
+ return match_subnet_table(*subnet_table, addr_group,
|
|
|
&_msg->rcv.src_ip,
|
|
|
_msg->rcv.src_port);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return -1;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -525,22 +536,24 @@ int allow_source_address(struct sip_msg* _msg, char* _addr_group, char* _str2)
|
|
|
*/
|
|
|
int allow_source_address_group(struct sip_msg* _msg, char* _str1, char* _str2)
|
|
|
{
|
|
|
- int group;
|
|
|
+ int group = -1;
|
|
|
|
|
|
LM_DBG("looking for <%x, %u> in address table\n",
|
|
|
_msg->rcv.src_ip.u.addr32[0], _msg->rcv.src_port);
|
|
|
- group = find_group_in_addr_hash_table(*addr_hash_table,
|
|
|
- &_msg->rcv.src_ip,
|
|
|
- _msg->rcv.src_port);
|
|
|
- LM_DBG("Found <%d>\n", group);
|
|
|
+ if(addr_hash_table) {
|
|
|
+ group = find_group_in_addr_hash_table(*addr_hash_table,
|
|
|
+ &_msg->rcv.src_ip, _msg->rcv.src_port);
|
|
|
+ LM_DBG("Found <%d>\n", group);
|
|
|
|
|
|
- if (group != -1) return group;
|
|
|
+ if (group != -1) return group;
|
|
|
+ }
|
|
|
|
|
|
LM_DBG("looking for <%x, %u> in subnet table\n",
|
|
|
_msg->rcv.src_ip.u.addr32[0], _msg->rcv.src_port);
|
|
|
- group = find_group_in_subnet_table(*subnet_table,
|
|
|
- &_msg->rcv.src_ip,
|
|
|
- _msg->rcv.src_port);
|
|
|
+ if(subnet_table) {
|
|
|
+ group = find_group_in_subnet_table(*subnet_table,
|
|
|
+ &_msg->rcv.src_ip, _msg->rcv.src_port);
|
|
|
+ }
|
|
|
LM_DBG("Found <%d>\n", group);
|
|
|
return group;
|
|
|
|
|
@@ -553,7 +566,7 @@ int allow_source_address_group(struct sip_msg* _msg, char* _str1, char* _str2)
|
|
|
*/
|
|
|
int allow_address_group(struct sip_msg* _msg, char* _addr, char* _port)
|
|
|
{
|
|
|
- int group;
|
|
|
+ int group = -1;
|
|
|
|
|
|
unsigned int port;
|
|
|
str ips;
|
|
@@ -575,24 +588,30 @@ int allow_address_group(struct sip_msg* _msg, char* _addr, char* _port)
|
|
|
if ( ipa ) {
|
|
|
LM_DBG("looking for <%.*s, %u> in address table\n",
|
|
|
ips.len, ips.s, port);
|
|
|
- group = find_group_in_addr_hash_table(*addr_hash_table,
|
|
|
- ipa, port);
|
|
|
- LM_DBG("Found address in group <%d>\n", group);
|
|
|
-
|
|
|
- if (group != -1) return group;
|
|
|
+ if(addr_hash_table) {
|
|
|
+ group = find_group_in_addr_hash_table(*addr_hash_table,
|
|
|
+ ipa, port);
|
|
|
+ LM_DBG("Found address in group <%d>\n", group);
|
|
|
|
|
|
- LM_DBG("looking for <%.*s, %u> in subnet table\n",
|
|
|
- ips.len, ips.s, port);
|
|
|
- group = find_group_in_subnet_table(*subnet_table,
|
|
|
- ipa, port);
|
|
|
- LM_DBG("Found a match of subnet in group <%d>\n", group);
|
|
|
+ if (group != -1) return group;
|
|
|
+ }
|
|
|
+ if(subnet_table) {
|
|
|
+ LM_DBG("looking for <%.*s, %u> in subnet table\n",
|
|
|
+ ips.len, ips.s, port);
|
|
|
+ group = find_group_in_subnet_table(*subnet_table,
|
|
|
+ ipa, port);
|
|
|
+ LM_DBG("Found a match of subnet in group <%d>\n", group);
|
|
|
+ }
|
|
|
} else {
|
|
|
LM_DBG("looking for <%.*s, %u> in domain_name table\n",
|
|
|
ips.len, ips.s, port);
|
|
|
- group = find_group_in_domain_name_table(*domain_list_table,
|
|
|
- &ips, port);
|
|
|
- LM_DBG("Found a match of domain_name in group <%d>\n", group);
|
|
|
+ if(domain_list_table) {
|
|
|
+ group = find_group_in_domain_name_table(*domain_list_table,
|
|
|
+ &ips, port);
|
|
|
+ LM_DBG("Found a match of domain_name in group <%d>\n", group);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ LM_DBG("Found <%d>\n", group);
|
|
|
return group;
|
|
|
}
|