Mercurial > pidgin
changeset 32312:f236f3fce0d8
GG: Move the "inpa" input watcher into protocol_data.
author | andrew.victor@mxit.com |
---|---|
date | Tue, 18 Oct 2011 21:27:51 +0000 |
parents | c2dcb6d3b246 |
children | 75daf132caf2 |
files | libpurple/protocols/gg/gg.c libpurple/protocols/gg/gg.h |
diffstat | 2 files changed, 14 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/gg/gg.c Tue Oct 18 21:20:56 2011 +0000 +++ b/libpurple/protocols/gg/gg.c Tue Oct 18 21:27:51 2011 +0000 @@ -1974,11 +1974,12 @@ purple_debug_info("gg", "login_handler: session: check = %d; state = %d;\n", info->session->check, info->session->state); - purple_input_remove(gc->inpa); + purple_input_remove(info->inpa); + info->inpa = 0; /** XXX I think that this shouldn't be done if ev->type is GG_EVENT_CONN_FAILED or GG_EVENT_CONN_SUCCESS -datallah */ if (info->session->fd >= 0) - gc->inpa = purple_input_add(info->session->fd, + info->inpa = purple_input_add(info->session->fd, (info->session->check == 1) ? PURPLE_INPUT_WRITE : PURPLE_INPUT_READ, ggp_async_login_handler, gc); @@ -1991,8 +1992,8 @@ case GG_EVENT_CONN_SUCCESS: { purple_debug_info("gg", "GG_EVENT_CONN_SUCCESS\n"); - purple_input_remove(gc->inpa); - gc->inpa = purple_input_add(info->session->fd, + purple_input_remove(info->inpa); + info->inpa = purple_input_add(info->session->fd, PURPLE_INPUT_READ, ggp_callback_recv, gc); @@ -2002,8 +2003,8 @@ } break; case GG_EVENT_CONN_FAILED: - purple_input_remove(gc->inpa); - gc->inpa = 0; + purple_input_remove(info->inpa); + info->inpa = 0; purple_debug_info("gg", "Connection failure: %d\n", ev->event.failure); switch (ev->event.failure) { @@ -2365,7 +2366,7 @@ g_free(glp); return; } - gc->inpa = purple_input_add(info->session->fd, PURPLE_INPUT_READ, + info->inpa = purple_input_add(info->session->fd, PURPLE_INPUT_READ, ggp_async_login_handler, gc); } @@ -2401,13 +2402,14 @@ ggp_search_destroy(info->searches); g_list_free(info->pending_richtext_messages); g_hash_table_destroy(info->pending_images); + + if (info->inpa > 0) + purple_input_remove(info->inpa); + + purple_connection_set_protocol_data(gc, NULL); g_free(info); - purple_connection_set_protocol_data(gc, NULL); } - if (gc->inpa > 0) - purple_input_remove(gc->inpa); - purple_debug_info("gg", "Connection closed.\n"); }