From: Frederic Marchal Date: Thu, 5 Nov 2015 20:25:23 +0000 (+0100) Subject: Don't abort if a host name cannot be resolved into an IP address X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=563609cca18d31e264adeb674fe133347f0aa725;p=thirdparty%2Fsarg.git Don't abort if a host name cannot be resolved into an IP address Finding the IP address of a host is not that critical. If it can't be resolved, keep generating the report. If the host name cannot be resolved into an IP address, an error message is printed on stderr. --- diff --git a/ip2name.c b/ip2name.c index bd5da8a..46e8121 100644 --- a/ip2name.c +++ b/ip2name.c @@ -276,29 +276,29 @@ void name2ip(char *name,int name_size) error=getaddrinfo(addr,NULL,NULL,&res); if (error) { if (res) freeaddrinfo(res); - debuga(__FILE__,__LINE__,_("Cannot resolve host name %s: %s\n"),name,gai_strerror(error)); - exit(EXIT_FAILURE); - } - if (res->ai_family==AF_INET) { - struct sockaddr_in *s4=(struct sockaddr_in *)res->ai_addr; - struct in_addr *sa=&s4->sin_addr; - if (res->ai_addrlenai_addrlen,(int)sizeof(*s4)); - exit(EXIT_FAILURE); - } - inet_ntop(res->ai_family,sa,name,name_size); - } else if (res->ai_family==AF_INET6) { - struct sockaddr_in6 *s6=(struct sockaddr_in6 *)res->ai_addr; - struct in6_addr *sa6=&s6->sin6_addr; - if (res->ai_addrlenai_addrlen,(int)sizeof(*s6)); - exit(EXIT_FAILURE); - } - inet_ntop(res->ai_family,sa6,name,name_size); + debuga(__FILE__,__LINE__,_("Cannot resolve host name \"%s\": %s\n"),name,gai_strerror(error)); } else { - debuga(__FILE__,__LINE__,_("Invalid address type %d returned when resolving host name \"%s\"\n"),res->ai_family,name); + if (res->ai_family==AF_INET) { + struct sockaddr_in *s4=(struct sockaddr_in *)res->ai_addr; + struct in_addr *sa=&s4->sin_addr; + if (res->ai_addrlenai_addrlen,(int)sizeof(*s4)); + exit(EXIT_FAILURE); + } + inet_ntop(res->ai_family,sa,name,name_size); + } else if (res->ai_family==AF_INET6) { + struct sockaddr_in6 *s6=(struct sockaddr_in6 *)res->ai_addr; + struct in6_addr *sa6=&s6->sin6_addr; + if (res->ai_addrlenai_addrlen,(int)sizeof(*s6)); + exit(EXIT_FAILURE); + } + inet_ntop(res->ai_family,sa6,name,name_size); + } else { + debuga(__FILE__,__LINE__,_("Invalid address type %d returned when resolving host name \"%s\"\n"),res->ai_family,name); + } + freeaddrinfo(res); } - freeaddrinfo(res); #else struct in_addr ia; struct hostent *hp;