From deccd865922c6d6b61f2251ae32bb1d5e99ba4e0 Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 19 Jul 2006 10:47:46 +0000 Subject: Special checking for muppet providers that make their reverse resolution resolve back to the same reverse resolution. *WHY* DO PEOPLE IN CONTROL OF THE RDNS RECORDS EVEN *ALLOW* SUCH LUNACY?! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4436 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/dnsqueue.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/dnsqueue.cpp b/src/dnsqueue.cpp index e1a856c34..a3a558823 100644 --- a/src/dnsqueue.cpp +++ b/src/dnsqueue.cpp @@ -112,17 +112,18 @@ public: } if ((hostname != "") && (usr->registered != 7)) { - if ((std::string((char*)inet_ntoa(usr->ip4)) == ip) && (hostname.length() < 65)) + if ((std::string(inet_ntoa(usr->ip4)) == ip) && (hostname.length() < 65)) { - strlcpy(usr->host,hostname.c_str(),64); - strlcpy(usr->dhost,hostname.c_str(),64); - /*address_cache::iterator address = addrcache.find(usr->ip4); - if (address == addrcache.end()) + if ((hostname.find_last_of(".in-addr.arpa") == hostname.length() - 1) && (hostname.find_last_of(".in-addr.arpa") != std::string::npos)) { - log(DEBUG,"Caching hostname %s -> %s",(char*)inet_ntoa(usr->ip4),hostname.c_str()); - addrcache[usr->ip4] = new std::string(hostname); - }*/ - WriteServ(usr->fd,"NOTICE Auth :*** Found your hostname"); + WriteServ(usr->fd,"NOTICE Auth :*** Your ISP are muppets -- reverse resolution resolves back to same reverse .arpa domain (!)"); + } + else + { + strlcpy(usr->host,hostname.c_str(),64); + strlcpy(usr->dhost,hostname.c_str(),64); + WriteServ(usr->fd,"NOTICE Auth :*** Found your hostname"); + } } usr->dns_done = true; return true; -- cgit v1.2.3