]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/dns.cpp
Fix sqllog compile error
[user/henk/code/inspircd.git] / src / dns.cpp
index 2e016f58e632eb204b77c1f7cbdbe4c6401d010a..80909c0bb4b8ef5eee6e97d424275174e3d69624 100644 (file)
@@ -216,14 +216,6 @@ int DNSRequest::SendRequests(const DNSHeader *header, const int length, QueryTyp
 
        DNS::EmptyHeader(payload,header,length);
 
-       if (this->dnsobj->myserver.sa.sa_family == AF_INET6)
-       {
-               dnsobj->myserver.in6.sin6_port = htons(DNS::QUERY_PORT);
-       }
-       else
-       {
-               dnsobj->myserver.in4.sin_port = htons(DNS::QUERY_PORT);
-       }
        if (ServerInstance->SE->SendTo(dnsobj, payload, length + 12, 0, &(dnsobj->myserver.sa), sa_size(dnsobj->myserver)) != length+12)
                return -1;
 
@@ -311,16 +303,17 @@ void DNS::Rehash()
                this->cache = new dnscache();
        }
 
-       irc::sockets::aptosa(ServerInstance->Config->DNSServer, 0, &myserver);
+       irc::sockets::aptosa(ServerInstance->Config->DNSServer, DNS::QUERY_PORT, myserver);
 
        /* Initialize mastersocket */
-       int s = irc::sockets::OpenTCPSocket(ServerInstance->Config->DNSServer, SOCK_DGRAM);
+       int s = socket(myserver.sa.sa_family, SOCK_DGRAM, 0);
        this->SetFd(s);
-       ServerInstance->SE->NonBlocking(this->GetFd());
 
        /* Have we got a socket and is it nonblocking? */
        if (this->GetFd() != -1)
        {
+               ServerInstance->SE->SetReuse(s);
+               ServerInstance->SE->NonBlocking(s);
                /* Bind the port - port 0 INADDR_ANY */
                if (!ServerInstance->BindSocket(this->GetFd(), portpass, "", false))
                {
@@ -565,10 +558,7 @@ DNSResult DNS::GetResult()
         *
         * -- Thanks jilles for pointing this one out.
         */
-       irc::sockets::sockaddrs expect_src;
-       irc::sockets::aptosa(ServerInstance->Config->DNSServer, DNS::QUERY_PORT, &expect_src);
-
-       if (memcmp(&from, &expect_src, sizeof(irc::sockets::sockaddrs)))
+       if (memcmp(&from, &myserver, sizeof(irc::sockets::sockaddrs)))
        {
                return DNSResult(-1,"",0,"");
        }