From 7eb77b3901f9e1863919528fd532513e7da3d7eb Mon Sep 17 00:00:00 2001 From: michael Date: Sun, 28 Dec 2014 23:52:32 +0000 Subject: [PATCH] - firedns.c: fixes to ipv6 support git-svn-id: svn://svn.ircd-hybrid.org/svnroot/hopm/branches/1.0.x@5184 82007160-df01-0410-b94d-b575c5fd34c7 --- src/firedns.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/firedns.c b/src/firedns.c index 90bed49..df26056 100644 --- a/src/firedns.c +++ b/src/firedns.c @@ -195,7 +195,6 @@ firedns_init(void) while (buf[i] == ' ' || buf[i] == '\t') ++i; - /* glibc /etc/resolv.conf seems to allow ipv6 server names */ if (i6 < FDNS_MAX) { if (inet_pton(AF_INET6, &buf[i], &addr6) > 0) @@ -239,12 +238,6 @@ firedns_init(void) } fclose(f); - - if (i4 == 0 /* (yuck) */ && i6) - { - log_printf("FIREDNS -> No nameservers found in %s", file); - exit(EXIT_FAILURE); - } } /* immediate A query */ @@ -263,6 +256,11 @@ firedns_resolveip4(const char *const name) struct in6_addr * firedns_resolveip6(const char * const name) { + static struct in6_addr addr; + + if (inet_pton(AF_INET6, name, &addr) > 0) + return &addr; + return (struct in6_addr *)firedns_resolveip(FDNS_QRY_AAAA, name); } -- 2.30.2