aboutsummaryrefslogtreecommitdiffstats
path: root/irc.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-06-09 03:52:28 +0200
committerJelmer Vernooij <jelmer@samba.org>2008-06-09 03:52:28 +0200
commitc4a1036214c5f5c1ce14e937e8cdabc9fdf2c068 (patch)
treec9efb246958cf81ed2d977f8d00499a136a1b23a /irc.c
parente46e077ccbe5e3e13637618934a0f7979db6bc69 (diff)
parent783e9b76de9a8ec16e8229d7c476b16ba8011554 (diff)
Merge integration branch.
Diffstat (limited to 'irc.c')
-rw-r--r--irc.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/irc.c b/irc.c
index 585cf232..a6220140 100644
--- a/irc.c
+++ b/irc.c
@@ -150,6 +150,7 @@ irc_t *irc_new( int fd )
set_add( &irc->set, "password", NULL, passchange, irc );
set_add( &irc->set, "private", "true", set_eval_bool, irc );
set_add( &irc->set, "query_order", "lifo", NULL, irc );
+ set_add( &irc->set, "root_nick", irc->mynick, set_eval_root_nick, irc );
set_add( &irc->set, "save_on_quit", "true", set_eval_bool, irc );
set_add( &irc->set, "simulate_netsplit", "true", set_eval_bool, irc );
set_add( &irc->set, "strip_html", "true", NULL, irc );
@@ -198,12 +199,14 @@ void irc_abort( irc_t *irc, int immed, char *format, ... )
irc->status |= USTATUS_SHUTDOWN;
if( irc->sendbuffer && !immed )
{
- /* We won't read from this socket anymore. Instead, we'll connect a timer
- to it that should shut down the connection in a second, just in case
- bitlbee_.._write doesn't do it first. */
+ /* Set up a timeout event that should shut down the connection
+ in a second, just in case ..._write doesn't do it first. */
b_event_remove( irc->r_watch_source_id );
- irc->r_watch_source_id = b_timeout_add( 1000, (b_event_handler) irc_free, irc );
+ irc->r_watch_source_id = 0;
+
+ b_event_remove( irc->ping_source_id );
+ irc->ping_source_id = b_timeout_add( 1000, (b_event_handler) irc_free, irc );
}
else
{
@@ -273,7 +276,8 @@ void irc_free( irc_t * irc )
if( irc->ping_source_id > 0 )
b_event_remove( irc->ping_source_id );
- b_event_remove( irc->r_watch_source_id );
+ if( irc->r_watch_source_id > 0 )
+ b_event_remove( irc->r_watch_source_id );
if( irc->w_watch_source_id > 0 )
b_event_remove( irc->w_watch_source_id );