diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2014-07-31 07:28:14 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2014-07-31 07:28:14 +0000 |
commit | 3ca45d253111b101476fdb3a9dae103947983145 (patch) | |
tree | e3d6818be2915991f4a3daeedcaef44c036dc4b9 /testing/connman/libresolv.patch | |
parent | 7c015fedaa64a1800751771deadc85a0be12f2d1 (diff) | |
download | aports-3ca45d253111b101476fdb3a9dae103947983145.tar.bz2 aports-3ca45d253111b101476fdb3a9dae103947983145.tar.xz |
testing/connman: new aport
An alternative daemon for managing internet connections on Linux
http://connman.net/
Diffstat (limited to 'testing/connman/libresolv.patch')
-rw-r--r-- | testing/connman/libresolv.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/testing/connman/libresolv.patch b/testing/connman/libresolv.patch new file mode 100644 index 0000000000..c28a7c1e35 --- /dev/null +++ b/testing/connman/libresolv.patch @@ -0,0 +1,61 @@ +musl does not implement res_ninit + +diff --exclude '*.*o' -ru connman-1.24.orig/gweb/gresolv.c connman-1.24/gweb/gresolv.c +--- connman-1.24.orig/gweb/gresolv.c 2014-07-18 20:17:25.000000000 -0300 ++++ connman-1.24/gweb/gresolv.c 2014-07-18 20:24:01.874669130 -0300 +@@ -874,8 +874,6 @@ + resolv->index = index; + resolv->nameserver_list = NULL; + +- res_ninit(&resolv->res); +- + return resolv; + } + +@@ -915,8 +913,6 @@ + + flush_nameservers(resolv); + +- res_nclose(&resolv->res); +- + g_free(resolv); + } + +@@ -1019,24 +1015,19 @@ + debug(resolv, "hostname %s", hostname); + + if (!resolv->nameserver_list) { +- int i; +- +- for (i = 0; i < resolv->res.nscount; i++) { +- char buf[100]; +- int family = resolv->res.nsaddr_list[i].sin_family; +- void *sa_addr = &resolv->res.nsaddr_list[i].sin_addr; +- +- if (family != AF_INET && +- resolv->res._u._ext.nsaddrs[i]) { +- family = AF_INET6; +- sa_addr = &resolv->res._u._ext.nsaddrs[i]->sin6_addr; ++ FILE *f = fopen("/etc/resolv.conf", "r"); ++ if (f) { ++ char line[256], *s; ++ int i; ++ while (fgets(line, sizeof(line), f)) { ++ if (strncmp(line, "nameserver", 10) || !isspace(line[10])) ++ continue; ++ for (s = &line[11]; isspace(s[0]); s++); ++ for (i = 0; s[i] && !isspace(s[i]); i++); ++ s[i] = 0; ++ g_resolv_add_nameserver(resolv, s, 53, 0); + } +- +- if (family != AF_INET && family != AF_INET6) +- continue; +- +- if (inet_ntop(family, sa_addr, buf, sizeof(buf))) +- g_resolv_add_nameserver(resolv, buf, 53, 0); ++ fclose(f); + } + + if (!resolv->nameserver_list) + |