123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- musl does not implement res_ninit
- --- a/gweb/gresolv.c
- +++ b/gweb/gresolv.c
- @@ -877,8 +877,6 @@
- resolv->index = index;
- resolv->nameserver_list = NULL;
-
- - res_ninit(&resolv->res);
- -
- return resolv;
- }
-
- @@ -918,8 +916,6 @@
-
- flush_nameservers(resolv);
-
- - res_nclose(&resolv->res);
- -
- g_free(resolv);
- }
-
- @@ -1022,24 +1018,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)
|