diff options
Diffstat (limited to 'protocols/oscar/oscar.c')
-rw-r--r-- | protocols/oscar/oscar.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c index 71f48db9..f006a8c1 100644 --- a/protocols/oscar/oscar.c +++ b/protocols/oscar/oscar.c @@ -455,6 +455,7 @@ static void oscar_logout(struct im_connection *ic) if (n->inpa > 0) { b_event_remove(n->inpa); } + n->inpa = 0; g_free(n->name); g_free(n->show); odata->oscar_chats = g_slist_remove(odata->oscar_chats, n); @@ -480,12 +481,15 @@ static void oscar_logout(struct im_connection *ic) } if (ic->inpa > 0) { b_event_remove(ic->inpa); + ic->inpa = 0; } if (odata->cnpa > 0) { b_event_remove(odata->cnpa); + odata->cnpa = 0; } if (odata->paspa > 0) { b_event_remove(odata->paspa); + odata->paspa = 0; } aim_session_kill(odata->sess); g_free(odata->sess); @@ -636,6 +640,7 @@ static int gaim_parse_auth_resp(aim_session_t *sess, aim_frame_t *fr, ...) } aim_sendcookie(sess, bosconn, info->cookie); b_event_remove(ic->inpa); + ic->inpa = 0; return 1; } @@ -2585,6 +2590,7 @@ void oscar_chat_kill(struct im_connection *ic, struct chat_connection *cc) od->oscar_chats = g_slist_remove(od->oscar_chats, cc); if (cc->inpa > 0) { b_event_remove(cc->inpa); + cc->inpa = 0; } aim_conn_kill(od->sess, &cc->conn); g_free(cc->name); |