Переглянути джерело

if we're hibernating and we get a sigint, exit immediately.
closes bug 91.


svn:r3611

Roger Dingledine 20 роки тому
батько
коміт
33569e40d7
1 змінених файлів з 5 додано та 3 видалено
  1. 5 3
      src/or/hibernate.c

+ 5 - 3
src/or/hibernate.c

@@ -657,9 +657,11 @@ static int hibernate_soft_limit_reached(void)
 static void hibernate_begin(int new_state, time_t now) {
   connection_t *conn;
 
-  if (hibernate_state == HIBERNATE_STATE_EXITING) {
-    /* we've been called twice now. close immediately. */
-    log(LOG_NOTICE,"Second sigint received; exiting now.");
+  if (new_state == HIBERNATE_STATE_EXITING &&
+      hibernate_state != HIBERNATE_STATE_LIVE) {
+    log(LOG_NOTICE,"Sigint received %s; exiting now.",
+        hibernate_state == HIBERNATE_STATE_EXITING ?
+          "a second time" : "while hibernating");
     tor_cleanup();
     exit(0);
   }