summaryrefslogtreecommitdiff
path: root/main/dnsmgr.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2007-06-08 00:03:49 +0000
committerJoshua Colp <jcolp@digium.com>2007-06-08 00:03:49 +0000
commit1d1566903e9f8587c2802fe8a3e0a1272d2c390f (patch)
tree09df9ff46095690740c78a6543bb58aac3b41f33 /main/dnsmgr.c
parent1093e635535984c2c3a13db71438043aa16ac8e3 (diff)
Merged revisions 68370 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r68370 | file | 2007-06-07 20:02:34 -0400 (Thu, 07 Jun 2007) | 10 lines Merged revisions 68368 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r68368 | file | 2007-06-07 19:59:04 -0400 (Thu, 07 Jun 2007) | 2 lines Do a DNS lookup immediately upon calling the dnsmgr function, don't wait until a refresh happens. (issue #9097 reported by plack) ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@68374 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/dnsmgr.c')
-rw-r--r--main/dnsmgr.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/main/dnsmgr.c b/main/dnsmgr.c
index 1c5eb050b..803151add 100644
--- a/main/dnsmgr.c
+++ b/main/dnsmgr.c
@@ -121,6 +121,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;
@@ -135,21 +138,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;
-
- if ((hp = ast_gethostbyname(name, &ahp)))
- memcpy(result, hp->h_addr, sizeof(result));
+ /* 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 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 dns manager for '%s'\n", name);
- *dnsmgr = ast_dnsmgr_get(name, result);
- return !*dnsmgr;
- }
+
+ if (option_verbose > 2)
+ ast_verbose(VERBOSE_PREFIX_2 "adding dns manager for '%s'\n", name);
+ *dnsmgr = ast_dnsmgr_get(name, result);
+ return !*dnsmgr;
}
/*