mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 13:43:47 +01:00
start tracking the 'broken pipe' error
svn:r1261
This commit is contained in:
parent
976bacae94
commit
52e813951a
@ -253,6 +253,7 @@ int flush_buf(int s, buf_t *buf, int *buf_flushlen)
|
|||||||
write_result = send(s, buf->mem, *buf_flushlen, 0);
|
write_result = send(s, buf->mem, *buf_flushlen, 0);
|
||||||
if (write_result < 0) {
|
if (write_result < 0) {
|
||||||
if(!ERRNO_EAGAIN(errno)) { /* it's a real error */
|
if(!ERRNO_EAGAIN(errno)) { /* it's a real error */
|
||||||
|
assert(errno != EPIPE); /* get a stack trace to find epipe bugs */
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#ifdef MS_WINDOWS
|
#ifdef MS_WINDOWS
|
||||||
|
@ -631,6 +631,9 @@ static void catch(int the_signal) {
|
|||||||
if(options.PidFile)
|
if(options.PidFile)
|
||||||
unlink(options.PidFile);
|
unlink(options.PidFile);
|
||||||
exit(0);
|
exit(0);
|
||||||
|
case SIGPIPE:
|
||||||
|
log(LOG_WARN,"Bug: caught sigpipe. Ignoring.");
|
||||||
|
break;
|
||||||
case SIGHUP:
|
case SIGHUP:
|
||||||
please_reset = 1;
|
please_reset = 1;
|
||||||
break;
|
break;
|
||||||
@ -751,6 +754,7 @@ int tor_main(int argc, char *argv[]) {
|
|||||||
#ifndef MS_WINDOWS /* do signal stuff only on unix */
|
#ifndef MS_WINDOWS /* do signal stuff only on unix */
|
||||||
signal (SIGINT, catch); /* catch kills so we can exit cleanly */
|
signal (SIGINT, catch); /* catch kills so we can exit cleanly */
|
||||||
signal (SIGTERM, catch);
|
signal (SIGTERM, catch);
|
||||||
|
signal (SIGPIPE, catch);
|
||||||
signal (SIGUSR1, catch); /* to dump stats */
|
signal (SIGUSR1, catch); /* to dump stats */
|
||||||
signal (SIGHUP, catch); /* to reload directory */
|
signal (SIGHUP, catch); /* to reload directory */
|
||||||
signal (SIGCHLD, catch); /* for exiting dns/cpu workers */
|
signal (SIGCHLD, catch); /* for exiting dns/cpu workers */
|
||||||
|
Loading…
Reference in New Issue
Block a user