]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 68368 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Fri, 8 Jun 2007 00:02:34 +0000 (00:02 +0000)
committerJoshua Colp <jcolp@digium.com>
Fri, 8 Jun 2007 00:02:34 +0000 (00:02 +0000)
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/branches/1.4@68370 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/dnsmgr.c

index 59c3a9994edea04c8621ae6bd56d3704f308e382..e373f3aa53749239f933a29e5d2d3f1722b62c0d 100644 (file)
@@ -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;
 }
 
 /*