diff options
Diffstat (limited to 'protocols/nogaim.c')
-rw-r--r-- | protocols/nogaim.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/protocols/nogaim.c b/protocols/nogaim.c index 0270d5a0..b627a23a 100644 --- a/protocols/nogaim.c +++ b/protocols/nogaim.c @@ -279,11 +279,16 @@ void signoff( struct gaim_connection *gc ) user_t *t, *u = irc->users; account_t *a; + /* Nested calls might happen sometimes, this is probably the best + place to catch them. */ + if( gc->flags & OPT_LOGGING_OUT ) + return; + else + gc->flags |= OPT_LOGGING_OUT; + serv_got_crap( gc, "Signing off.." ); b_event_remove( gc->keepalive ); - gc->flags |= OPT_LOGGING_OUT; - gc->keepalive = 0; gc->acc->prpl->close( gc ); b_event_remove( gc->inpa ); @@ -1013,8 +1018,6 @@ int bim_set_away( struct gaim_connection *gc, char *away ) gc->acc->prpl->set_away( gc, GAIM_AWAY_CUSTOM, away ); } - g_list_free( ms ); - return( 1 ); } |