mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
r9386@Kushana: nickm | 2006-10-25 17:35:38 -0400
Resolve bug 347: translate v0 controller signal numbers into internal signal numbers; leave v1 signal numbers alone. svn:r8828
This commit is contained in:
parent
c928b85cfa
commit
5c670a186c
@ -64,6 +64,8 @@ Changes in version 0.1.2.3-alpha - 2006-10-??
|
|||||||
requests will now get an error rather than timing out.
|
requests will now get an error rather than timing out.
|
||||||
- Resolve two memory leaks when rebuilding the on-disk router cache
|
- Resolve two memory leaks when rebuilding the on-disk router cache
|
||||||
(reported by fookoowa).
|
(reported by fookoowa).
|
||||||
|
- Controller signals now work on non-Unix platforms that don't define
|
||||||
|
SIGUSR1 and SIGUSR2 the way we expect.
|
||||||
|
|
||||||
|
|
||||||
Changes in version 0.1.2.2-alpha - 2006-10-07
|
Changes in version 0.1.2.2-alpha - 2006-10-07
|
||||||
|
@ -1252,6 +1252,18 @@ handle_control_signal(control_connection_t *conn, uint32_t len,
|
|||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
sig = (uint8_t)body[0];
|
sig = (uint8_t)body[0];
|
||||||
|
switch (sig)
|
||||||
|
{
|
||||||
|
case 1: sig = SIGHUP; break;
|
||||||
|
case 2: sig = SIGINT; break;
|
||||||
|
case 10: sig = SIGUSR1; break;
|
||||||
|
case 12: sig = SIGUSR2; break;
|
||||||
|
case 15: sig = SIGTERM; break;
|
||||||
|
case SIGNEWNYM: break;
|
||||||
|
default:
|
||||||
|
send_control0_error(conn, ERR_SYNTAX, "Unrecognized signal number.");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
int n = 0;
|
int n = 0;
|
||||||
@ -1281,17 +1293,9 @@ handle_control_signal(control_connection_t *conn, uint32_t len,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!control_signal_check(sig)) {
|
/* Send DONE first, in case the signal makes us shut down. */
|
||||||
if (STATE_IS_V0(conn->_base.state))
|
send_control_done(conn);
|
||||||
send_control0_error(conn, ERR_SYNTAX, "Unrecognized signal number.");
|
control_signal_act(sig);
|
||||||
else
|
|
||||||
connection_write_str_to_buf("551 Unable to act on signal\r\n",
|
|
||||||
conn);
|
|
||||||
} else {
|
|
||||||
/* Send DONE first, in case the signal makes us shut down. */
|
|
||||||
send_control_done(conn);
|
|
||||||
control_signal_act(sig);
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1229,24 +1229,6 @@ do_main_loop(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* DOCDOC */
|
|
||||||
int
|
|
||||||
control_signal_check(int the_signal)
|
|
||||||
{
|
|
||||||
switch (the_signal)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
case 10:
|
|
||||||
case 12:
|
|
||||||
case 15:
|
|
||||||
case SIGNEWNYM:
|
|
||||||
return 1;
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Used to implement the SIGNAL control command: if we accept
|
/** Used to implement the SIGNAL control command: if we accept
|
||||||
* <b>the_signal</b> as a remote pseudo-signal, act on it. */
|
* <b>the_signal</b> as a remote pseudo-signal, act on it. */
|
||||||
/* We don't re-use catch() here because:
|
/* We don't re-use catch() here because:
|
||||||
|
@ -2273,7 +2273,6 @@ void connection_start_writing(connection_t *conn);
|
|||||||
void directory_all_unreachable(time_t now);
|
void directory_all_unreachable(time_t now);
|
||||||
void directory_info_has_arrived(time_t now, int from_cache);
|
void directory_info_has_arrived(time_t now, int from_cache);
|
||||||
|
|
||||||
int control_signal_check(int the_signal);
|
|
||||||
void control_signal_act(int the_signal);
|
void control_signal_act(int the_signal);
|
||||||
void handle_signals(int is_parent);
|
void handle_signals(int is_parent);
|
||||||
void tor_cleanup(void);
|
void tor_cleanup(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user