aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xchannels/chan_iax2.c2
-rwxr-xr-xinclude/asterisk/netsock.h2
-rwxr-xr-xnetsock.c5
3 files changed, 9 insertions, 0 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 2ff97ca2b..e4695d82a 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -8640,6 +8640,7 @@ static int set_config(char *config_file, int reload)
}
if (defaultsockfd < 0)
defaultsockfd = ast_netsock_sockfd(ns);
+ ast_netsock_unref(ns);
}
}
} else if (!strcasecmp(v->name, "authdebug"))
@@ -9568,6 +9569,7 @@ int load_module(void)
if (option_verbose > 1)
ast_verbose(VERBOSE_PREFIX_2 "Binding IAX2 to default address 0.0.0.0:%d\n", IAX_DEFAULT_PORTNO);
defaultsockfd = ast_netsock_sockfd(ns);
+ ast_netsock_unref(ns);
}
}
diff --git a/include/asterisk/netsock.h b/include/asterisk/netsock.h
index dd1c3a8f6..73a2dd224 100755
--- a/include/asterisk/netsock.h
+++ b/include/asterisk/netsock.h
@@ -59,6 +59,8 @@ const struct sockaddr_in *ast_netsock_boundaddr(const struct ast_netsock *ns);
void *ast_netsock_data(const struct ast_netsock *ns);
+void ast_netsock_unref(struct ast_netsock *ns);
+
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
diff --git a/netsock.c b/netsock.c
index da22c549c..386f15660 100755
--- a/netsock.c
+++ b/netsock.c
@@ -214,3 +214,8 @@ void *ast_netsock_data(const struct ast_netsock *ns)
{
return ns->data;
}
+
+void ast_netsock_unref(struct ast_netsock *ns)
+{
+ ASTOBJ_UNREF(ns, ast_netsock_destroy);
+}