libevent: Add patch for DNS resolution on Android
[termux-packages] / packages / libevent / evdns.c.patch
1 diff -u -r ../libevent-2.0.22-stable/evdns.c ./evdns.c
2 --- ../libevent-2.0.22-stable/evdns.c 2014-03-26 11:09:18.000000000 -0400
3 +++ ./evdns.c 2016-08-26 17:17:43.939853284 -0400
4 @@ -49,6 +49,9 @@
5 */
6
7 #include <sys/types.h>
8 +#ifdef __ANDROID__
9 +# include <sys/system_properties.h>
10 +#endif
11 #include "event2/event-config.h"
12
13 #ifndef _FORTIFY_SOURCE
14 @@ -3892,6 +3895,21 @@
15 int r;
16 #ifdef WIN32
17 r = evdns_base_config_windows_nameservers(base);
18 +#elif defined(__ANDROID__)
19 + /** From: http://www.programering.com/a/MjMwcjMwATA.html */
20 + int add_servers = 0;
21 + char buf[PROP_VALUE_MAX];
22 + r = __system_property_get("net.dns1", buf);
23 + if (r >= 7) {
24 + add_servers++;
25 + evdns_base_nameserver_ip_add(base, buf);
26 + }
27 + r = __system_property_get("net.dns2", buf);
28 + if (r >= 7) {
29 + add_servers++;
30 + evdns_base_nameserver_ip_add(base, buf);
31 + }
32 + if (add_servers == 0) evdns_base_nameserver_ip_add(base, "8.8.8.8");
33 #else
34 r = evdns_base_resolv_conf_parse(base, DNS_OPTIONS_ALL, "/etc/resolv.conf");
35 #endif