[snmp-smux] Fix problems if 'smux peer ...' is issued multiple times

2007-10-22 Lorenzo Colitti <lorenzo@colitti.com>

	* smux.c: (smux_stop) Avoid cancelling a defunct thread pointer
	  (smux_start) Stop smux before trying to start it, possibly again.
This commit is contained in:
Paul Jakma 2007-10-22 15:53:17 +00:00
parent 9c1deac7d6
commit a56ef88348
2 changed files with 17 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2007-10-22 Lorenzo Colitti <lorenzo@colitti.com>
* smux.c: (smux_stop) Avoid cancelling a defunct thread pointer
(smux_start) Stop smux before trying to start it, possibly again.
2007-10-04 Denis Ovsienko
* pid_output.c: (pid_output) stop using LOGFILE_MASK

View File

@ -1228,9 +1228,16 @@ void
smux_stop ()
{
if (smux_read_thread)
thread_cancel (smux_read_thread);
{
thread_cancel (smux_read_thread);
smux_read_thread = NULL;
}
if (smux_connect_thread)
thread_cancel (smux_connect_thread);
{
thread_cancel (smux_connect_thread);
smux_connect_thread = NULL;
}
if (smux_sock >= 0)
{
@ -1534,6 +1541,9 @@ smux_init (struct thread_master *tm)
void
smux_start(void)
{
/* Close any existing connections. */
smux_stop();
/* Schedule first connection. */
smux_event (SMUX_SCHEDULE, 0);
}