diff options
author | Robert James Kaes <rjkaes@users.sourceforge.net> | 2002-05-26 18:51:17 +0000 |
---|---|---|
committer | Robert James Kaes <rjkaes@users.sourceforge.net> | 2002-05-26 18:51:17 +0000 |
commit | 523f2003fa150b5b5619ad35392ed06dac933fa6 (patch) | |
tree | 1e7e492ff8a6076c1adfa8f9ff510ee69187db25 /src | |
parent | 71046cd407789e22e9b14b74affdb12809c76c07 (diff) | |
download | tinyproxy-523f2003fa150b5b5619ad35392ed06dac933fa6.tar.gz tinyproxy-523f2003fa150b5b5619ad35392ed06dac933fa6.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/sock.c | 39 |
1 files changed, 15 insertions, 24 deletions
@@ -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; } |