소스 검색

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


svn:r3611

Roger Dingledine 22 년 전
부모
커밋
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);
   }