/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2009 by Alexander Barton (alex@barton.de)
+ * Copyright (c)2001-2011 Alexander Barton (alex@barton.de) and Contributors.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
} else if( pid == 0 ) {
/* Sub process */
Log_Init_Subprocess("Resolver");
- Do_ResolveAddr( Addr, identsock, pipefd[1]);
+ Conn_CloseAllSockets(identsock);
+ Do_ResolveAddr(Addr, identsock, pipefd[1]);
Log_Exit_Subprocess("Resolver");
exit(0);
}
} else if( pid == 0 ) {
/* Sub process */
Log_Init_Subprocess("Resolver");
+ Conn_CloseAllSockets(NONE);
Do_ResolveName(Host, pipefd[1]);
Log_Exit_Subprocess("Resolver");
exit(0);
}
for (a = ai_results; a != NULL; a = a->ai_next) {
- assert(a->ai_addrlen <= sizeof(addr));
+ assert((size_t)a->ai_addrlen <= sizeof(addr));
- if (a->ai_addrlen > sizeof(addr))
+ if ((size_t)a->ai_addrlen > sizeof(addr))
continue;
memcpy(&addr, a->ai_addr, a->ai_addrlen);
if (!ReverseLookup(Addr, hostname, sizeof(hostname)))
goto dns_done;
- if (ForwardLookup(hostname, &resolved_addr, AF_UNSPEC)) {
+ if (ForwardLookup(hostname, &resolved_addr, ng_ipaddr_af(Addr))) {
if (!Addr_in_list(&resolved_addr, Addr)) {
Log_Forgery_WrongIP(tmp_ip_str, hostname);
strlcpy(hostname, tmp_ip_str, sizeof(hostname));