/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2003 by Alexander Barton (alex@barton.de)
+ * Copyright (c)2001-2009 by Alexander Barton (alex@barton.de)
*
* 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
#include "portab.h"
-static char UNUSED id[] = "$Id: resolve.c,v 1.29 2008/02/26 22:04:17 fw Exp $";
-
#include "imp.h"
#include <assert.h>
#include <errno.h>
pid = Resolver_fork(pipefd);
if (pid > 0) {
- Log(LOG_DEBUG, "Resolver for %s created (PID %d).", ng_ipaddr_tostr(Addr), pid);
+ LogDebug("Resolver for %s created (PID %d).", ng_ipaddr_tostr(Addr), pid);
s->pid = pid;
s->resolver_fd = pipefd[0];
#ifdef IDENTAUTH
char *res;
- assert(identsock >= 0);
+ if (identsock < 0)
+ return;
#ifdef DEBUG
Log_Resolver(LOG_DEBUG, "Doing IDENT lookup on socket %d ...", identsock);
#endif
- if (identsock < 0)
- return;
res = ident_id( identsock, 10 );
#ifdef DEBUG
Log_Resolver(LOG_DEBUG, "Ok, IDENT lookup on socket %d done: \"%s\"",
*resbuf = 0;
res = getnameinfo((struct sockaddr *) IpAddr, ng_ipaddr_salen(IpAddr),
- resbuf, reslen, NULL, 0, NI_NAMEREQD);
+ resbuf, (socklen_t)reslen, NULL, 0, NI_NAMEREQD);
if (res == 0)
return true;
ForwardLookup(const char *hostname, array *IpAddr)
{
ng_ipaddr_t addr;
+
#ifdef HAVE_GETADDRINFO
int res;
struct addrinfo *a, *ai_results;
- static struct addrinfo hints = {
+ static struct addrinfo hints;
+
#ifndef WANT_IPV6
- .ai_family = AF_INET,
+ hints.ai_family = AF_INET;
#endif
#ifdef AI_ADDRCONFIG /* glibc has this, but not e.g. netbsd 4.0 */
- .ai_flags = AI_ADDRCONFIG,
+ hints.ai_flags = AI_ADDRCONFIG;
#endif
- .ai_socktype = SOCK_STREAM,
- .ai_protocol = IPPROTO_TCP
- };
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_protocol = IPPROTO_TCP;
+
#ifdef WANT_IPV6
assert(Conf_ConnectIPv6 || Conf_ConnectIPv4);
if (!Conf_ConnectIPv4)
hints.ai_family = AF_INET6;
#endif
+ memset(&addr, 0, sizeof(addr));
+
res = getaddrinfo(hostname, NULL, &hints, &ai_results);
switch (res) {
case 0: break;
Resolve_Shutdown(s);
return (size_t)bytes_read;
}
-/* -eof- */
+
+/* -eof- */