X-Git-Url: https://git.llucax.com/software/libev.git/blobdiff_plain/98d2a2bbab6df4db45d5e3a1c932ba469fd10e47..305af5e87583383e4059c39dfa146621c5ec8be9:/evdns.c diff --git a/evdns.c b/evdns.c index 7f09671..4894401 100644 --- a/evdns.c +++ b/evdns.c @@ -1,5 +1,4 @@ -#define DNS_USE_GETTIMEOFDAY_FOR_ID 1 -/* $Id: evdns.c,v 1.2 2007-11-01 17:29:19 root Exp $ */ +/* $Id: evdns.c,v 1.7 2007-11-03 20:24:42 root Exp $ */ /* The original version of this module was written by Adam Langley; for * a history of modifications, check out the subversion logs. @@ -95,6 +94,7 @@ #include #include "evdns.h" +#include "log.h" #ifdef WIN32 #include #include @@ -176,7 +176,7 @@ struct request { }; #ifndef HAVE_STRUCT_IN6_ADDR -struct xin6_addr { +struct in6_addr { u8 s6_addr[16]; }; #endif @@ -191,7 +191,7 @@ struct reply { } a; struct { u32 addrcount; - struct xin6_addr addresses[MAX_ADDRS]; + struct in6_addr addresses[MAX_ADDRS]; } aaaa; struct { char name[HOST_NAME_MAX]; @@ -2266,8 +2266,8 @@ int evdns_resolve_reverse(struct in_addr *in, int flags, evdns_callback_type cal return 0; } -int evdns_resolve_reverse_ipv6(struct xin6_addr *in, int flags, evdns_callback_type callback, void *ptr) { - char buf[64]; +int evdns_resolve_reverse_ipv6(struct in6_addr *in, int flags, evdns_callback_type callback, void *ptr) { + char buf[96]; char *cp; struct request *req; int i; @@ -2545,6 +2545,12 @@ evdns_resolv_set_defaults(int flags) { if (flags & DNS_OPTION_NAMESERVERS) evdns_nameserver_ip_add("127.0.0.1"); } +#ifndef HAVE_STRTOK_R +static char * +strtok_r(char *s, const char *delim, char **state) { + return strtok(s, delim); +} +#endif /* helper version of atoi which returns -1 on error */ static int @@ -2617,9 +2623,9 @@ static void resolv_conf_parse_line(char *const start, int flags) { char *strtok_state; static const char *const delims = " \t"; -#define NEXT_TOKEN strtok(NULL, delims, &strtok_state) +#define NEXT_TOKEN strtok_r(NULL, delims, &strtok_state) - char *const first_token = strtok(start, delims, &strtok_state); + char *const first_token = strtok_r(start, delims, &strtok_state); if (!first_token) return; if (!strcmp(first_token, "nameserver") && (flags & DNS_OPTION_NAMESERVERS)) {