[svn-commits] seanbright: branch seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_se...
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Thu Mar 1 15:23:05 CST 2012
Author: seanbright
Date: Thu Mar 1 15:23:00 2012
New Revision: 357716
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=357716
Log:
Pull out some common code into a new function.
Modified:
team/seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_sean_bright/channels/chan_iax2.c
Modified: team/seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_sean_bright/channels/chan_iax2.c
URL: http://svnview.digium.com/svn/asterisk/team/seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_sean_bright/channels/chan_iax2.c?view=diff&rev=357716&r1=357715&r2=357716
==============================================================================
--- team/seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_sean_bright/channels/chan_iax2.c (original)
+++ team/seanbright/the_ipv6ification_of_chan_iax2_by_the_coward_sean_bright/channels/chan_iax2.c Thu Mar 1 15:23:00 2012
@@ -4313,6 +4313,23 @@
return 0;
}
+static int compare_host(struct ast_sockaddr *addr, const char *host)
+{
+ struct ast_sockaddr *addrs;
+ int num_addrs = 0, i = 0;
+
+ if ((num_addrs = ast_sockaddr_resolve(&addrs, host, 0, AST_AF_UNSPEC))) {
+ for (i = 0; i < num_addrs; i++) {
+ if (!ast_sockaddr_cmp_addr(addr, &addrs[i])) {
+ break;
+ }
+ }
+ ast_free(addrs);
+ }
+
+ return (i < num_addrs);
+}
+
/*!
* \note This function calls reg_source_db -> iax2_poke_peer -> find_callno,
* so do not call this with a pvt lock held.
@@ -4350,17 +4367,7 @@
if (var && addr) {
for (tmp = var; tmp; tmp = tmp->next) {
if (!strcasecmp(tmp->name, "host")) {
- struct ast_sockaddr *addrs;
- int num_addrs = 0, i = 0;
- if ((num_addrs = ast_sockaddr_resolve(&addrs, tmp->value, 0, AST_AF_UNSPEC))) {
- for (i = 0; i < num_addrs; i++) {
- if (!ast_sockaddr_cmp_addr(addr, &addrs[i])) {
- break;
- }
- }
- ast_free(addrs);
- }
- if (i == num_addrs) {
+ if (!compare_host(addr, tmp->value)) {
/* No match */
ast_variables_destroy(var);
var = NULL;
@@ -4468,17 +4475,7 @@
if (var) {
for (tmp = var; tmp; tmp = tmp->next) {
if (!strcasecmp(tmp->name, "host")) {
- struct ast_sockaddr *addrs;
- int num_addrs = 0, i = 0;
- if ((num_addrs = ast_sockaddr_resolve(&addrs, tmp->value, 0, AST_AF_UNSPEC))) {
- for (i = 0; i < num_addrs; i++) {
- if (!ast_sockaddr_cmp_addr(addr, &addrs[i])) {
- break;
- }
- }
- ast_free(addrs);
- }
- if (i == num_addrs) {
+ if (!compare_host(addr, tmp->value)) {
/* No match */
ast_variables_destroy(var);
var = NULL;
More information about the svn-commits
mailing list