Merge remote branch 'public/bug2363' into maint-0.2.2

This commit is contained in:
Nick Mathewson 2011-01-12 14:00:20 -05:00
commit 43e12a7988
2 changed files with 18 additions and 5 deletions

6
changes/bug2363 Normal file
View File

@ -0,0 +1,6 @@
o Minor bugfixes
- Correctly detect failures to create DNS requests when using Libevent
versions before v2. (Before Libevent 2, we used our own evdns
implementation. Its return values for Libevent's evdns_resolve_*()
functions are not consistent with those from Libevent.) Found by
Lodger; fixes bug 2363; bugfix on 0.2.2.6-alpha.

View File

@ -54,12 +54,19 @@ struct evdns_request;
evdns_config_windows_nameservers() evdns_config_windows_nameservers()
#define evdns_base_set_option_(base, opt, val) \ #define evdns_base_set_option_(base, opt, val) \
evdns_set_option((opt),(val),DNS_OPTIONS_ALL) evdns_set_option((opt),(val),DNS_OPTIONS_ALL)
/* Note: our internal eventdns.c, plus Libevent 1.4, used a 1 return to
* signify failure to launch a resolve. Libevent 2.0 uses a -1 return to
* signify a failure on a resolve, though if we're on Libevent 2.0, we should
* have event2/dns.h and never hit these macros. Regardless, 0 is success. */
#define evdns_base_resolve_ipv4(base, addr, options, cb, ptr) \ #define evdns_base_resolve_ipv4(base, addr, options, cb, ptr) \
((evdns_resolve_ipv4(addr, options, cb, ptr)<0) ? NULL : ((void*)1)) ((evdns_resolve_ipv4((addr), (options), (cb), (ptr))!=0) \
#define evdns_base_resolve_reverse(base, addr, options, cb, ptr) \ ? NULL : ((void*)1))
((evdns_resolve_reverse(addr, options, cb, ptr)<0) ? NULL : ((void*)1)) #define evdns_base_resolve_reverse(base, addr, options, cb, ptr) \
#define evdns_base_resolve_reverse_ipv6(base, addr, options, cb, ptr) \ ((evdns_resolve_reverse((addr), (options), (cb), (ptr))!=0) \
((evdns_resolve_reverse_ipv6(addr, options, cb, ptr)<0) ? NULL : ((void*)1)) ? NULL : ((void*)1))
#define evdns_base_resolve_reverse_ipv6(base, addr, options, cb, ptr) \
((evdns_resolve_reverse_ipv6((addr), (options), (cb), (ptr))!=0) \
? NULL : ((void*)1))
#elif defined(LIBEVENT_VERSION_NUMBER) && LIBEVENT_VERSION_NUMBER < 0x02000303 #elif defined(LIBEVENT_VERSION_NUMBER) && LIBEVENT_VERSION_NUMBER < 0x02000303
#define evdns_base_set_option_(base, opt, val) \ #define evdns_base_set_option_(base, opt, val) \