From f01a970a4ec80d0f3ed1b1bdb091b764dcbde9b2 Mon Sep 17 00:00:00 2001 From: Maxim Sobolev Date: Fri, 17 Oct 2003 11:22:52 +0000 Subject: Add asterisk 0.5.0, an Open Source PBX and telephony toolkit. --- net/asterisk14/files/patch-srv.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 net/asterisk14/files/patch-srv.c (limited to 'net/asterisk14/files/patch-srv.c') diff --git a/net/asterisk14/files/patch-srv.c b/net/asterisk14/files/patch-srv.c new file mode 100644 index 000000000000..3cbb534f1b22 --- /dev/null +++ b/net/asterisk14/files/patch-srv.c @@ -0,0 +1,34 @@ + +$FreeBSD$ + +--- srv.c.orig Thu Aug 14 02:56:16 2003 ++++ srv.c Fri Oct 17 11:27:30 2003 +@@ -246,13 +246,17 @@ + int ret = -1; + struct __res_state srvstate; + char answer[MAX_SIZE]; ++ static ast_mutex_t reslock = AST_MUTEX_INITIALIZER; + + if (*port) + *port = 0; +- res_ninit(&srvstate); +- if (chan && ast_autoservice_start(chan) < 0) ++ ast_mutex_lock(&reslock); ++ res_init(); ++ if (chan && ast_autoservice_start(chan) < 0) { ++ ast_mutex_unlock(&reslock); + return -1; +- res = res_nsearch(&srvstate, service, C_IN, T_SRV, answer, sizeof(answer)); ++ } ++ res = res_search(service, C_IN, T_SRV, answer, sizeof(answer)); + if (res > 0) { + if ((res = parse_answer(host, hostlen, port, answer, res))) { + ast_log(LOG_WARNING, "Parse error returned %d\n", res); +@@ -267,6 +271,6 @@ + } + if (chan) + ret |= ast_autoservice_stop(chan); +- res_nclose(&srvstate); ++ ast_mutex_unlock(&reslock); + return ret; + } -- cgit v1.2.3