Mercurial > pidgin.yaz
comparison libpurple/protocols/oscar/oscar.c @ 18608:a244c34ce59c
Call the AIM_CB_SPECIAL_CONNERR callback from
flap_connection_destroy_cb() rather than parse_flap_ch4(). This
ensures that the AIM_CB_SPECIAL_CONNERR callback function gets called
even if AOL ends our FLAP connection without sending the customary
channel 4 FLAP.
Apparently you're not allowed to be in chat rooms from two locations.
So when you sign on from a second location AOL severs the chat
connections from your first location. It does this by sending a
TCP RST rather than the expected channel 4 FLAP.
This lead to a crash if you were in a chat room, then signed on from
a second location. Fixes #1937.
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sun, 22 Jul 2007 08:18:27 +0000 |
parents | c7a5cd17b045 |
children | 2774acdb1cff |
comparison
equal
deleted
inserted
replaced
18606:ac9f19a31051 | 18608:a244c34ce59c |
---|---|
3470 va_end(ap); | 3470 va_end(ap); |
3471 | 3471 |
3472 purple_debug_info("oscar", "Disconnected. Code is 0x%04x and msg is %s\n", | 3472 purple_debug_info("oscar", "Disconnected. Code is 0x%04x and msg is %s\n", |
3473 code, (msg != NULL ? msg : "")); | 3473 code, (msg != NULL ? msg : "")); |
3474 | 3474 |
3475 g_return_val_if_fail(fr != NULL, 1); | |
3476 g_return_val_if_fail(conn != NULL, 1); | 3475 g_return_val_if_fail(conn != NULL, 1); |
3477 | 3476 |
3478 if (conn->type == SNAC_FAMILY_LOCATE) { | 3477 if (conn->type == SNAC_FAMILY_LOCATE) { |
3479 if (code == 0x0001) { | 3478 if (code == 0x0001) { |
3480 gc->wants_to_die = TRUE; | 3479 gc->wants_to_die = TRUE; |