]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
Small fixed. Get fwdaddr to work on BSD. Memleak fix.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Fri, 2 Feb 2007 09:57:53 +0000 (09:57 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Fri, 2 Feb 2007 09:57:53 +0000 (09:57 +0000)
git-svn-id: file:///svn/unbound/trunk@52 be551aaa-1e26-0410-a405-d3ace91eadb9

daemon/unbound.c
daemon/worker.c

index 373d1280bfcb8897f894aaa1a83fa9d98b7011d0..f1c90d4564c7bb4bdfa8b540ca209763b7730575 100644 (file)
@@ -118,6 +118,7 @@ main(int argc, char* argv[])
                fatal_exit("could not initialize");
        }
        if(!worker_set_fwd(worker, fwd, fwdport)) {
+               worker_delete(worker);
                fatal_exit("could set forwarder address");
        }
        
index 6f75254578ec62cfc3b3e1cecf7e21a9242d6e17..9051101b11bd168271807b4b094a57c4e10aaaac 100644 (file)
@@ -189,11 +189,15 @@ void worker_delete(struct worker* worker)
 int worker_set_fwd(struct worker* worker, const char* ip, const char* port)
 {
        struct addrinfo *res = NULL;
+       struct addrinfo hints;
        int r;
        log_assert(worker && ip);
+       memset(&hints, 0, sizeof(hints));
+       hints.ai_family = AF_UNSPEC;
+       hints.ai_socktype = SOCK_DGRAM;
        if(!port) 
                port = UNBOUND_DNS_PORT;
-       if((r=getaddrinfo(ip, port, NULL, &res)) != 0 || !res) {
+       if((r=getaddrinfo(ip, port, &hints, &res)) != 0 || !res) {
                log_err("failed %s:%s getaddrinfo: %s %s",
                        ip, port,
                        gai_strerror(r), r==EAI_SYSTEM?strerror(errno):"");