]> granicus.if.org Git - pdns/commitdiff
only setCloseOnExec on valid sockets
authorPeter van Dijk <peter.van.dijk@netherlabs.nl>
Mon, 21 Jan 2013 06:42:50 +0000 (06:42 +0000)
committerPeter van Dijk <peter.van.dijk@netherlabs.nl>
Mon, 21 Jan 2013 06:42:50 +0000 (06:42 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@3067 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/nameserver.cc
pdns/tcpreceiver.cc

index 1b92fe28d92ccb47bde252cbf83e40052105b9e6..4bc3492c1b6c7f340072737c4569717769c86059 100644 (file)
@@ -165,10 +165,11 @@ void UDPNameserver::bindIPv6()
     string localname(*i);
 
     s=socket(AF_INET6,SOCK_DGRAM,0);
-    Utility::setCloseOnExec(s);
     if(s<0)
       throw AhuException("Unable to acquire a UDPv6 socket: "+string(strerror(errno)));
 
+    Utility::setCloseOnExec(s);
+
     ComboAddress locala(localname, ::arg().asNum("local-port"));
     
     if(IsAnyAddress(locala)) {
index 9e4a207b45c781cd21a73dc167f936a9a972f46b..3e0506c9d2aff3845c1317ee052f73a4f2cfd368 100644 (file)
@@ -834,11 +834,12 @@ TCPNameserver::TCPNameserver()
 
   for(vector<string>::const_iterator laddr=locals.begin();laddr!=locals.end();++laddr) {
     int s=socket(AF_INET,SOCK_STREAM,0); 
-    Utility::setCloseOnExec(s);
     
     if(s<0) 
       throw AhuException("Unable to acquire TCP socket: "+stringerror());
 
+    Utility::setCloseOnExec(s);
+
     ComboAddress local(*laddr, ::arg().asNum("local-port"));
       
     int tmp=1;
@@ -866,11 +867,12 @@ TCPNameserver::TCPNameserver()
 #if !WIN32 && HAVE_IPV6
   for(vector<string>::const_iterator laddr=locals6.begin();laddr!=locals6.end();++laddr) {
     int s=socket(AF_INET6,SOCK_STREAM,0); 
-    Utility::setCloseOnExec(s);
 
     if(s<0) 
       throw AhuException("Unable to acquire TCPv6 socket: "+stringerror());
 
+    Utility::setCloseOnExec(s);
+
     ComboAddress local(*laddr, ::arg().asNum("local-port"));
 
     int tmp=1;