static int please_dumpstats=0; /**< Whether we should dump stats during the loop. */
static int please_reset=0; /**< Whether we just got a sighup. */
static int please_reap_children=0; /**< Whether we should waitpid for exited children. */
+static int please_sigpipe=0; /**< Whether we've caught a sigpipe lately. */
static int please_shutdown=0; /**< Whether we should shut down Tor. */
#endif /* signal stuff */
}
please_shutdown = 0;
}
+ if(please_sigpipe) {
+ log(LOG_NOTICE,"Caught sigpipe. Ignoring.");
+ please_sigpipe = 0;
+ }
if(please_dumpstats) {
/* prefer to log it at INFO, but make sure we always see it */
dumpstats(get_min_log_level()>LOG_INFO ? get_min_log_level() : LOG_INFO);
please_shutdown = 1;
break;
case SIGPIPE:
- log(LOG_NOTICE,"Caught sigpipe. Ignoring.");
+ /* don't log here, since it's possible you got the sigpipe because
+ * your log failed! */
+ please_sigpipe = 1;
break;
case SIGHUP:
please_reset = 1;
break;
default:
log(LOG_WARN,"Caught signal %d that we can't handle??", the_signal);
+ tor_cleanup();
+ exit(1);
}
#endif /* signal stuff */
}
test_eq(0, is_obsolete_version("0.0.5", "0.0.5-cvs"));
test_eq(0, is_obsolete_version("0.0.5.1-cvs", "0.0.5"));
- test_eq(0, tor_version_as_new_as("Tor 0.0.5", "0.0.9pre1-cvs"));
test_eq(0, tor_version_as_new_as("Tor 0.0.5", "0.0.9pre1-cvs"));
test_eq(1, tor_version_as_new_as(
"Tor 0.0.8 on Darwin 64-121-192-100.c3-0.sfpo-ubr1.sfrn-sfpo.ca.cable.rcn.com Power Macintosh", "0.0.8rc2"));