From: Martin Schanzenbach Date: Mon, 2 Jul 2012 22:37:44 +0000 (+0000) Subject: -fix notfound handling X-Git-Tag: initial-import-from-subversion-38251~12686 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=26c7f3001fb38759acbab2eafeac109795552acf;p=oweals%2Fgnunet.git -fix notfound handling --- diff --git a/src/gns/nss/nss_gns.c b/src/gns/nss/nss_gns.c index 82fe1e739..b3b1346aa 100644 --- a/src/gns/nss/nss_gns.c +++ b/src/gns/nss/nss_gns.c @@ -140,12 +140,19 @@ enum nss_status _nss_gns_gethostbyname2_r( if (!gns_resolve_name(af, name, &u) == 0) { status = NSS_STATUS_NOTFOUND; + goto finish; } } + else + { + status = NSS_STATUS_UNAVAIL; + goto finish; + } if (u.count == 0) { *errnop = ETIMEDOUT; *h_errnop = HOST_NOT_FOUND; + status = NSS_STATUS_NOTFOUND; goto finish; } diff --git a/src/gns/nss/nss_gns_query.c b/src/gns/nss/nss_gns_query.c index 1eadff0ce..11356c216 100644 --- a/src/gns/nss/nss_gns_query.c +++ b/src/gns/nss/nss_gns_query.c @@ -46,8 +46,11 @@ int gns_resolve_name(int af, const char *name, struct userdata *u) line[strlen(line)-1] = '\0'; if (af == AF_INET) { - if (inet_pton(af, line, &(u->data.ipv4[u->count++]))) + if (inet_pton(af, line, &(u->data.ipv4[u->count]))) + { + u->count++; u->data_len += sizeof(ipv4_address_t); + } else { fclose (p); @@ -57,8 +60,11 @@ int gns_resolve_name(int af, const char *name, struct userdata *u) } else if ((af == AF_INET6)) { - if (inet_pton(af, line, &(u->data.ipv6[u->count++]))) + if (inet_pton(af, line, &(u->data.ipv6[u->count]))) + { + u->count++; u->data_len += sizeof(ipv6_address_t); + } else { fclose (p);