Mercurial > pidgin.yaz
changeset 20420:8aa5e490dbf7
switchboards really can be referenced by multiple slplinks, I have no idea
why this GList was replaced with a single slplink in msnp14 but it's
possible that it was causing some problems.
References #1142
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Sun, 20 May 2007 16:30:39 +0000 |
parents | c2b406b4ccd7 |
children | 983cfc2b04fa 48e26f248251 |
files | libpurple/protocols/msn/slp.c libpurple/protocols/msn/slplink.c libpurple/protocols/msn/switchboard.c libpurple/protocols/msn/switchboard.h |
diffstat | 4 files changed, 6 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/msn/slp.c Sun May 20 15:59:10 2007 +0000 +++ b/libpurple/protocols/msn/slp.c Sun May 20 16:30:39 2007 +0000 @@ -756,7 +756,7 @@ * reporting bugs. Hopefully this doesn't cause more crashes. Stu. */ if (slplink->swboard != NULL) - slplink->swboard->slplink = slplink; + slplink->swboard->slplinks = g_list_prepend(slplink->swboard->slplinks, slplink); else purple_debug_error("msn", "msn_p2p_msg, swboard is NULL, ouch!\n"); }
--- a/libpurple/protocols/msn/slplink.c Sun May 20 15:59:10 2007 +0000 +++ b/libpurple/protocols/msn/slplink.c Sun May 20 16:30:39 2007 +0000 @@ -102,7 +102,7 @@ g_return_if_fail(slplink != NULL); if (slplink->swboard != NULL) - slplink->swboard->slplink = NULL; + slplink->swboard->slplinks = g_list_remove(slplink->swboard->slplinks, slplink); session = slplink->session; @@ -259,7 +259,7 @@ return; /* If swboard is destroyed we will be too */ - slplink->swboard->slplink = slplink; + slplink->swboard->slplinks = g_list_prepend(slplink->swboard->slplinks, slplink); } msn_switchboard_send_msg(slplink->swboard, msg, TRUE);
--- a/libpurple/protocols/msn/switchboard.c Sun May 20 15:59:10 2007 +0000 +++ b/libpurple/protocols/msn/switchboard.c Sun May 20 16:30:39 2007 +0000 @@ -84,8 +84,8 @@ swboard->destroying = TRUE; /* If it linked us is because its looking for trouble */ - if (swboard->slplink != NULL) - msn_slplink_destroy(swboard->slplink); + while (swboard->slplinks != NULL) + msn_slplink_destroy(swboard->slplinks->data); /* Destroy the message queue */ while ((msg = g_queue_pop_head(swboard->msg_queue)) != NULL)
--- a/libpurple/protocols/msn/switchboard.h Sun May 20 15:59:10 2007 +0000 +++ b/libpurple/protocols/msn/switchboard.h Sun May 20 16:30:39 2007 +0000 @@ -102,7 +102,7 @@ MsnSBErrorType error; /**< The error that occurred in this switchboard (if applicable). */ - MsnSlpLink *slplink; /**< The slplink that is using this switchboard. */ + GList *slplinks; /**< The list of slplinks that are using this switchboard. */ }; /**