]> granicus.if.org Git - pdns/commitdiff
use _exit() when we really really want to exit, for example after a fatal error....
authorbert hubert <bert.hubert@netherlabs.nl>
Tue, 7 Nov 2017 08:21:30 +0000 (09:21 +0100)
committerbert hubert <bert.hubert@netherlabs.nl>
Tue, 7 Nov 2017 08:21:30 +0000 (09:21 +0100)
pdns/communicator.cc
pdns/dnsproxy.cc
pdns/tcpreceiver.cc
pdns/webserver.cc
pdns/ws-auth.cc

index 06b92d2b911a2433fa1cdc2ed1c57144e86fa057..e73eecb8ff655ffd82694d21ac87cec82b55b102 100644 (file)
@@ -66,7 +66,7 @@ void CommunicatorClass::loadArgsIntoSet(const char *listname, set<string> &lists
     }
     catch(PDNSException &e) {
       L<<Logger::Error<<"Unparseable IP in "<<listname<<". Error: "<<e.reason<<endl;
-      exit(1);
+      _exit(1);
     }
   }
 }
@@ -78,7 +78,7 @@ void CommunicatorClass::go()
   }
   catch(PDNSException &e) {
     L<<Logger::Error<<"Unparseable IP in allow-notify-from. Error: "<<e.reason<<endl;
-    exit(1);
+    _exit(1);
   }
 
   pthread_t tid;
@@ -93,7 +93,7 @@ void CommunicatorClass::go()
   }
   catch(PDNSException &e) {
     L<<Logger::Error<<"Unparseable IP in only-notify. Error: "<<e.reason<<endl;
-    exit(1);
+    _exit(1);
   }
 
   loadArgsIntoSet("also-notify", d_alsoNotify);
@@ -138,16 +138,16 @@ void CommunicatorClass::mainloop(void)
   catch(PDNSException &ae) {
     L<<Logger::Error<<"Exiting because communicator thread died with error: "<<ae.reason<<endl;
     Utility::sleep(1);
-    exit(1);
+    _exit(1);
   }
   catch(std::exception &e) {
     L<<Logger::Error<<"Exiting because communicator thread died with STL error: "<<e.what()<<endl;
-    exit(1);
+    _exit(1);
   }
   catch( ... )
   {
     L << Logger::Error << "Exiting because communicator caught unknown exception." << endl;
-    exit(1);
+    _exit(1);
   }
 }
 
index 95d24edcc88d07fd06b6133d810cca5c58a0f247..bee70a86a09f71f77b98bb00e2f1ecbd9c20ff4f 100644 (file)
@@ -286,7 +286,7 @@ void DNSProxy::mainloop(void)
     L << Logger::Error << "Caught unknown exception." << endl;
   }
   L<<Logger::Error<<"Exiting because DNS proxy failed"<<endl;
-  exit(1);
+  _exit(1);
 }
 
 DNSProxy::~DNSProxy() {
index 2bb5785ebbf8194cbdb7d22fe359cb7f5abad438..b5af6918eadedf24fa3a7598ed8ea553c38d1cbd 100644 (file)
@@ -1233,7 +1233,7 @@ TCPNameserver::TCPNameserver()
     int tmp=1;
     if(setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char*)&tmp,sizeof tmp)<0) {
       L<<Logger::Error<<"Setsockopt failed"<<endl;
-      exit(1);  
+      _exit(1);  
     }
 
     if (::arg().asNum("tcp-fast-open") > 0) {
@@ -1285,7 +1285,7 @@ TCPNameserver::TCPNameserver()
     int tmp=1;
     if(setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char*)&tmp,sizeof tmp)<0) {
       L<<Logger::Error<<"Setsockopt failed"<<endl;
-      exit(1);  
+      _exit(1);  
     }
 
     if (::arg().asNum("tcp-fast-open") > 0) {
@@ -1354,7 +1354,7 @@ void TCPNameserver::thread()
             
             if(errno==EMFILE) {
               L<<Logger::Error<<"TCP handler out of filedescriptors, exiting, won't recover from this"<<endl;
-              exit(1);
+              _exit(1);
             }
           }
           else {
@@ -1393,7 +1393,7 @@ void TCPNameserver::thread()
   catch(...) {
     L<<Logger::Error<<"TCPNameserver dying because of an unexpected fatal error"<<endl;
   }
-  exit(1); // take rest of server with us
+  _exit(1); // take rest of server with us
 }
 
 
index 7cfba4153b6b711151e9c927a8a0bc6c300aa8b2..f1a95f4e219e564c3d1dcfe7b22fa8e67e5ee9ea 100644 (file)
@@ -382,5 +382,5 @@ void WebServer::go()
   catch(...) {
     L<<Logger::Error<<"Unknown exception in main webserver thread"<<endl;
   }
-  exit(1);
+  _exit(1);
 }
index d32bd6ced8a68ae318eac338492e7bf6b7714382..dc3265bf71fe42bd4abebf7edd01f946dcfdad55 100644 (file)
@@ -86,7 +86,7 @@ void AuthWebServer::statThread()
   }
   catch(...) {
     L<<Logger::Error<<"Webserver statThread caught an exception, dying"<<endl;
-    exit(1);
+    _exit(1);
   }
 }
 
@@ -1874,6 +1874,6 @@ void AuthWebServer::webThread()
   }
   catch(...) {
     L<<Logger::Error<<"AuthWebServer thread caught an exception, dying"<<endl;
-    exit(1);
+    _exit(1);
   }
 }