preload-hacks: Some patches to make it work.
[termux-packages] / packages / libevent / evdns.c.patch
1 diff -uNr libevent-release-2.1.8-stable/evdns.c libevent-release-2.1.8-stable.mod/evdns.c
2 --- libevent-release-2.1.8-stable/evdns.c 2017-01-26 01:37:15.000000000 +0200
3 +++ libevent-release-2.1.8-stable.mod/evdns.c 2017-09-12 12:58:45.352988051 +0300
4 @@ -52,6 +52,9 @@
5 #include "evconfig-private.h"
6
7 #include <sys/types.h>
8 +#ifdef __ANDROID__
9 +# include <sys/system_properties.h>
10 +#endif
11
12 #ifndef _FORTIFY_SOURCE
13 #define _FORTIFY_SOURCE 3
14 @@ -3602,7 +3605,7 @@
15 evutil_snprintf(path_out, len_out, "%s%s", path, hostfile);
16 return path_out;
17 #else
18 - return mm_strdup("/etc/hosts");
19 + return mm_strdup("@TERMUX_PREFIX@/etc/hosts");
20 #endif
21 }
22
23 @@ -3959,6 +3962,21 @@
24 int r;
25 #ifdef _WIN32
26 r = evdns_base_config_windows_nameservers(base);
27 +#elif defined(__ANDROID__)
28 + /** From: http://www.programering.com/a/MjMwcjMwATA.html */
29 + int add_servers = 0;
30 + char buf[PROP_VALUE_MAX];
31 + r = __system_property_get("net.dns1", buf);
32 + if (r >= 7) {
33 + add_servers++;
34 + evdns_base_nameserver_ip_add(base, buf);
35 + }
36 + r = __system_property_get("net.dns2", buf);
37 + if (r >= 7) {
38 + add_servers++;
39 + evdns_base_nameserver_ip_add(base, buf);
40 + }
41 + if (add_servers == 0) evdns_base_nameserver_ip_add(base, "8.8.8.8");
42 #else
43 r = evdns_base_resolv_conf_parse(base, DNS_OPTIONS_ALL, "/etc/resolv.conf");
44 #endif