Small fixed. Get fwdaddr to work on BSD. Memleak fix.

git-svn-id: file:///svn/unbound/trunk@52 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
Wouter Wijngaards 2007-02-02 09:57:53 +00:00
parent bedda58490
commit 71d6a178cf
2 changed files with 6 additions and 1 deletions

View 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");
}

View 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):"");