From: Automerge Script Date: Fri, 8 Jun 2007 00:25:46 +0000 (+0000) Subject: automerge commit X-Git-Tag: 1.2.19-netsec~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=513c40ddc1d32a1c20387bff39885cb742b7250f;p=thirdparty%2Fasterisk.git automerge commit git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@68419 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/dnsmgr.c b/dnsmgr.c index 5838114905..75fcdd8300 100644 --- a/dnsmgr.c +++ b/dnsmgr.c @@ -112,6 +112,9 @@ void ast_dnsmgr_release(struct ast_dnsmgr_entry *entry) int ast_dnsmgr_lookup(const char *name, struct in_addr *result, struct ast_dnsmgr_entry **dnsmgr) { + struct ast_hostent ahp; + struct hostent *hp; + if (ast_strlen_zero(name) || !result || !dnsmgr) return -1; @@ -126,21 +129,18 @@ int ast_dnsmgr_lookup(const char *name, struct in_addr *result, struct ast_dnsmg if (inet_aton(name, result)) return 0; - /* if the manager is disabled, do a direct lookup and return the result, - otherwise register a managed lookup for the name */ - if (!enabled) { - struct ast_hostent ahp; - struct hostent *hp; + /* do a lookup now but add a manager so it will automagically get updated in the background */ + if ((hp = ast_gethostbyname(name, &ahp))) + memcpy(result, hp->h_addr, sizeof(result)); - if ((hp = ast_gethostbyname(name, &ahp))) - memcpy(result, hp->h_addr, sizeof(result)); + /* if dnsmgr is not enable don't bother adding an entry */ + if (!enabled) return 0; - } else { - if (option_verbose > 2) - ast_verbose(VERBOSE_PREFIX_2 "adding manager for '%s'\n", name); - *dnsmgr = ast_dnsmgr_get(name, result); - return !*dnsmgr; - } + + if (option_verbose > 2) + ast_verbose(VERBOSE_PREFIX_2 "adding manager for '%s'\n", name); + *dnsmgr = ast_dnsmgr_get(name, result); + return !*dnsmgr; } static void *do_refresh(void *data) diff --git a/say.c b/say.c index 459e181c98..a20e325af2 100644 --- a/say.c +++ b/say.c @@ -120,8 +120,12 @@ int ast_say_character_str_full(struct ast_channel *chan, const char *str, const fn = fnbuf; } res = ast_streamfile(chan, fn, lang); - if (!res) - res = ast_waitstream_full(chan, ints, audiofd, ctrlfd); + if (!res) { + if ((audiofd > -1) && (ctrlfd > -1)) + res = ast_waitstream_full(chan, ints, audiofd, ctrlfd); + else + res = ast_waitstream(chan, ints); + } ast_stopstream(chan); num++; } @@ -199,8 +203,12 @@ int ast_say_phonetic_str_full(struct ast_channel *chan, const char *str, const c fn = fnbuf; } res = ast_streamfile(chan, fn, lang); - if (!res) - res = ast_waitstream_full(chan, ints, audiofd, ctrlfd); + if (!res) { + if ((audiofd > -1) && (ctrlfd > -1)) + res = ast_waitstream_full(chan, ints, audiofd, ctrlfd); + else + res = ast_waitstream(chan, ints); + } ast_stopstream(chan); num++; } @@ -249,8 +257,12 @@ int ast_say_digit_str_full(struct ast_channel *chan, const char *str, const char } if (fn) { res = ast_streamfile(chan, fn, lang); - if (!res) - res = ast_waitstream_full(chan, ints, audiofd, ctrlfd); + if (!res) { + if ((audiofd > -1) && (ctrlfd > -1)) + res = ast_waitstream_full(chan, ints, audiofd, ctrlfd); + else + res = ast_waitstream(chan, ints); + } ast_stopstream(chan); } num++;