From f9a0af279a418f6fa562545bca117533ff2e09ee Mon Sep 17 00:00:00 2001 From: w00t Date: Tue, 28 Oct 2008 23:20:30 +0000 Subject: Fix 4in6 IP resolution hack now that the leading ::ffff: is stripped from the IP [danieldg] git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10745 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/users.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/users.cpp b/src/users.cpp index 4f0476911..848f2a1eb 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -101,11 +101,10 @@ void User::StartDNSLookup() const char* sip = this->GetIPString(); UserResolver *res_reverse; - /* Special case for 4in6 (Have i mentioned i HATE 4in6?) */ - if (!strncmp(sip, "0::ffff:", 8)) - res_reverse = new UserResolver(this->ServerInstance, this, sip + 8, DNS_QUERY_PTR4, cached); - else - res_reverse = new UserResolver(this->ServerInstance, this, sip, this->GetProtocolFamily() == AF_INET ? DNS_QUERY_PTR4 : DNS_QUERY_PTR6, cached); + QueryType resolvtype = strchr(sip, ':') ? DNS_QUERY_PTR6 : DNS_QUERY_PTR4; + // when GetProtocolFamily() works correctly with 4in6, this can be replaced by + // this->GetProtocolFamily() == AF_INET ? DNS_QUERY_PTR4 : DNS_QUERY_PTR6; + res_reverse = new UserResolver(this->ServerInstance, this, sip, resolvtype, cached); this->ServerInstance->AddResolver(res_reverse, cached); } -- cgit v1.2.3