# HG changeset patch # User Jeffrey Connelly # Date 1181847581 0 # Node ID 4205f33b658fa4e76c6d435d13790f2e9b025c9a # Parent 22d3499df3f673e385b310be5ee0ee52e29139c7 Fix crash when re-logging in. Closes #193. diff -r 22d3499df3f6 -r 4205f33b658f libpurple/protocols/myspace/myspace.c --- a/libpurple/protocols/myspace/myspace.c Thu Jun 14 18:56:47 2007 +0000 +++ b/libpurple/protocols/myspace/myspace.c Thu Jun 14 18:59:41 2007 +0000 @@ -1198,8 +1198,8 @@ { purple_debug_info("msim", "fatal error, closing\n"); purple_connection_error(session->gc, full_errmsg); - close(session->fd); - /* Do not call msim_session_destroy(session) - called in msim_close(). */ + + msim_close(session->gc); } return TRUE; @@ -1636,7 +1636,6 @@ session = gc->proto_data; g_return_if_fail(cond == PURPLE_INPUT_READ); - /* TODO: fix bug #193, crash when re-login */ g_return_if_fail(MSIM_SESSION_VALID(session)); /* Only can handle so much data at once... @@ -1649,7 +1648,8 @@ MSIM_READ_BUF_SIZE); purple_connection_error(gc, _("Read buffer full")); /* TODO: fix 100% CPU after closing */ - close(source); + + msim_close(session->gc); return; } @@ -1672,7 +1672,8 @@ purple_debug_error("msim", "msim_input_cb: read error, ret=%d, " "error=%s, source=%d, fd=%d (%X))\n", n, strerror(errno), source, session->fd, session->fd); - close(source); + + msim_close(session->gc); return; } else if (n == 0) @@ -1869,8 +1870,7 @@ g_return_if_fail(session != NULL); g_return_if_fail(MSIM_SESSION_VALID(session)); - - purple_input_remove(session->fd); + purple_input_remove(session->gc->inpa); msim_session_destroy(session); }