]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
pay attention to the return value of do_hup, and exit
authorRoger Dingledine <arma@torproject.org>
Sat, 23 Oct 2004 17:06:25 +0000 (17:06 +0000)
committerRoger Dingledine <arma@torproject.org>
Sat, 23 Oct 2004 17:06:25 +0000 (17:06 +0000)
when it fails

svn:r2577

src/or/main.c

index 165f9c8b52087d2cb3484d68612a7898cc3f2f28..ee1d329506a8c2e1aca6f559ab00c335e4a536c5 100644 (file)
@@ -737,14 +737,12 @@ static int do_hup(void) {
   /* first, reload config variables, in case they've changed */
   /* no need to provide argc/v, they've been cached inside init_from_config */
   if (init_from_config(0, NULL) < 0) {
-    tor_cleanup();
-    exit(1);
+    return -1;
   }
   /* reload keys as needed for rendezvous services. */
   if (rend_service_load_keys()<0) {
     log_fn(LOG_ERR,"Error reloading rendezvous service keys");
-    tor_cleanup();
-    exit(1);
+    return -1;
   }
   if(retry_all_listeners() < 0) {
     log_fn(LOG_ERR,"Failed to bind one of the listener ports.");
@@ -848,7 +846,11 @@ static int do_main_loop(void) {
       please_dumpstats = 0;
     }
     if(please_reset) {
-      do_hup();
+      if (do_hup() < 0) {
+        log_fn(LOG_WARN,"Restart failed (config error?). Exiting.");
+        tor_cleanup();
+        exit(1);
+      }
       please_reset = 0;
     }
     if(please_reap_children) {