From 523f2003fa150b5b5619ad35392ed06dac933fa6 Mon Sep 17 00:00:00 2001 From: Robert James Kaes Date: Sun, 26 May 2002 18:51:17 +0000 Subject: Removed the DNS API calls and replaced them with the standard gethostbyname() and gethostbyaddr() functions. This is possible because tinyproxy now uses a standard pre-forked() method. --- src/sock.c | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/sock.c b/src/sock.c index 17ea7c3..61d1729 100644 --- a/src/sock.c +++ b/src/sock.c @@ -1,4 +1,4 @@ -/* $Id: sock.c,v 1.35 2002-05-24 04:44:36 rjkaes Exp $ +/* $Id: sock.c,v 1.36 2002-05-26 18:51:17 rjkaes Exp $ * * Sockets are created and destroyed here. When a new connection comes in from * a client, we need to copy the socket and the create a second socket to the @@ -23,7 +23,6 @@ #include "tinyproxy.h" -#include "dnsclient.h" #include "log.h" #include "heap.h" #include "sock.h" @@ -38,23 +37,16 @@ static int lookup_domain(struct in_addr *addr, const char *domain) { - struct in_addr *addresses; - int dns; - - dns = dns_connect(); - if (dns < 0) - return -1; + struct hostent* result; - if (dns_getaddrbyname(dns, domain, &addresses) < 0) { - dns_disconnect(dns); - return -1; - } + assert(domain != NULL); - memcpy(addr, addresses, sizeof(addr)); - - dns_disconnect(dns); - safefree(addresses); - return 0; + result = gethostbyname(domain); + if (result) { + memcpy(addr, result->h_addr_list[0], result->h_length); + return 0; + } else + return -1; } /* This routine is so old I can't even remember writing it. But I do @@ -207,7 +199,7 @@ getpeer_information(int fd, char* ipaddr, char* string_addr) { struct sockaddr_in name; size_t namelen = sizeof(name); - int dns; + struct hostent* result; assert(fd >= 0); assert(ipaddr != NULL); @@ -229,11 +221,10 @@ getpeer_information(int fd, char* ipaddr, char* string_addr) PEER_IP_LENGTH); } - dns = dns_connect(); - if (dns < 0) + result = gethostbyaddr(ipaddr, strlen(ipaddr), AF_INET); + if (result) { + strlcpy(string_addr, result->h_name, PEER_STRING_LENGTH); + return 0; + } else return -1; - dns_gethostbyaddr(dns, ipaddr, &string_addr, PEER_STRING_LENGTH); - dns_disconnect(dns); - - return 0; } -- cgit v1.2.3