+ if ( msg->host_addr.sin_addr.s_addr == INADDR_NONE ) {
+ struct hostent *ip_host;
+
+ /*
+ * Can't parse address: it's a DNS Name
+ */
+ ip_host = gethostbyname(msg->host);
+ if ( ip_host && ip_host->h_addrtype == AF_INET ) {
+ memcpy(&msg->host_addr.sin_addr.s_addr, ip_host->h_addr_list[0],
+ sizeof(&msg->host_addr.sin_addr.s_addr));
+ } else {
+#ifdef HAVE_HSTRERROR
+ tlog(TL_CRIT,"gethostbyname: %s - %s", msg->host, hstrerror(h_errno));
+#else
+ tlog(TL_CRIT,"gethostbyname: %s - %s", msg->host, strerror(errno));
+#endif
+ close(msg->sockfd);
+ msg->sockfd=-1;
+ return CS_ERROR;
+ }
+ }