X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fresolve.c;h=109d8b6c5491aaa69a3a0f8352b7fbdc3d872c8a;hb=0d503945cb527e275ef6644a234a6876ff61322b;hp=6078da8b48a9b6adecec99761f9ea7c2ec1f2188;hpb=25e56a5e837173a567a0873bd5a9ccc126cff333;p=ngircd-alex.git diff --git a/src/ngircd/resolve.c b/src/ngircd/resolve.c index 6078da8b..109d8b6c 100644 --- a/src/ngircd/resolve.c +++ b/src/ngircd/resolve.c @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001-2011 Alexander Barton (alex@barton.de) and Contributors. + * Copyright (c)2001-2014 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 @@ -18,16 +18,16 @@ * Asynchronous resolver */ -#include "imp.h" #include #include #include #include #include +#include +#include #include #include #include -#include #ifdef IDENTAUTH #ifdef HAVE_IDENT_H @@ -35,17 +35,12 @@ #endif #endif -#include "array.h" #include "conn.h" #include "conf.h" -#include "defines.h" #include "log.h" #include "ng_ipaddr.h" -#include "exp.h" #include "resolve.h" -#include "io.h" - static void Do_ResolveAddr PARAMS(( const ng_ipaddr_t *Addr, int Sock, int w_fd )); static void Do_ResolveName PARAMS(( const char *Host, int w_fd )); @@ -113,9 +108,8 @@ Resolve_Name( PROC_STAT *s, const char *Host, void (*cbfunc)(int, short)) return false; } /* Resolve_Name */ - -#if !defined(HAVE_GETADDRINFO) || !defined(HAVE_GETNAMEINFO) -#if !defined(WANT_IPV6) && defined(h_errno) +#if !defined(HAVE_WORKING_GETADDRINFO) || !defined(HAVE_GETNAMEINFO) +#ifdef h_errno static char * Get_Error( int H_Error ) { @@ -222,8 +216,8 @@ ReverseLookup(const ng_ipaddr_t *IpAddr, char *resbuf, size_t reslen) assert(reslen >= NG_INET_ADDRSTRLEN); ng_ipaddr_tostr_r(IpAddr, tmp_ip_str); - Log_Subprocess(LOG_WARNING, "%s: Can't resolve address \"%s\": %s", - funcname, tmp_ip_str, errmsg); + Log_Subprocess(LOG_WARNING, "Can't resolve address \"%s\": %s [%s].", + tmp_ip_str, errmsg, funcname); strlcpy(resbuf, tmp_ip_str, reslen); return false; } @@ -238,11 +232,15 @@ ReverseLookup(const ng_ipaddr_t *IpAddr, char *resbuf, size_t reslen) * @return true if lookup successful, false if domain name not found */ static bool +#ifdef HAVE_WORKING_GETADDRINFO ForwardLookup(const char *hostname, array *IpAddr, int af) +#else +ForwardLookup(const char *hostname, array *IpAddr, UNUSED int af) +#endif { ng_ipaddr_t addr; -#ifdef HAVE_GETADDRINFO +#ifdef HAVE_WORKING_GETADDRINFO int res; struct addrinfo *a, *ai_results; static struct addrinfo hints; @@ -339,14 +337,16 @@ static void Log_Forgery_NoIP(const char *ip, const char *host) { Log_Subprocess(LOG_WARNING, - "Possible forgery: %s resolved to %s (which has no ip address)", ip, host); + "Possible forgery: %s resolved to \"%s\", which has no IP address!", + ip, host); } static void Log_Forgery_WrongIP(const char *ip, const char *host) { Log_Subprocess(LOG_WARNING, - "Possible forgery: %s resolved to %s (which points to different address)", ip, host); + "Possible forgery: %s resolved to \"%s\", which points to a different address!", + ip, host); }