Mercurial > pidgin.yaz
changeset 21764:c7e81e9cc476
merge of '291ef07a3b75f3cde5bcdd92767af92401228a7a'
and '7c341c631158977d493bcc6bf4935163a3b7f0db'
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Tue, 04 Dec 2007 09:32:18 +0000 |
parents | 92ae7b2c95ed (current diff) 5bf56cc935a8 (diff) |
children | 8c1bcaaaac34 |
files | |
diffstat | 4 files changed, 20 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/myspace/myspace.c Tue Dec 04 08:25:58 2007 +0000 +++ b/libpurple/protocols/myspace/myspace.c Tue Dec 04 09:32:18 2007 +0000 @@ -1369,7 +1369,9 @@ msim_msg_dump("msim_check_inbox_cb: reply=%s\n", reply); body = msim_msg_get_dictionary(reply, "body"); - g_return_if_fail(body != NULL); + + if (body == NULL) + return; old_inbox_status = session->inbox_status; @@ -1433,6 +1435,11 @@ session = (MsimSession *)data; + if (!MSIM_SESSION_VALID(session)) { + purple_debug_info("msim", "msim_check_inbox: session invalid, stopping the mail check.\n"); + return FALSE; + } + purple_debug_info("msim", "msim_check_inbox: checking mail\n"); g_return_val_if_fail(msim_send(session, "persist", MSIM_TYPE_INTEGER, 1, @@ -1645,7 +1652,7 @@ /* Check mail if they want to. */ if (purple_account_get_check_mail(session->account)) { - purple_timeout_add(MSIM_MAIL_INTERVAL_CHECK, + session->inbox_handle = purple_timeout_add(MSIM_MAIL_INTERVAL_CHECK, (GSourceFunc)msim_check_inbox, session); msim_check_inbox(session); } @@ -1947,8 +1954,8 @@ break; case MSIM_STATUS_CODE_IDLE: - /* will be handled below */ - purple_status_code = -1; + /* Treat idle as an available status. */ + purple_status_code = PURPLE_STATUS_AVAILABLE; break; default:
--- a/libpurple/protocols/myspace/session.c Tue Dec 04 08:25:58 2007 +0000 +++ b/libpurple/protocols/myspace/session.c Tue Dec 04 09:32:18 2007 +0000 @@ -63,6 +63,7 @@ session->next_rid = 1; session->last_comm = time(NULL); session->inbox_status = 0; + session->inbox_handle = 0; return session; } @@ -90,6 +91,11 @@ msim_msg_free(session->server_info); } + /* Stop checking the inbox at the end of the session. */ + if (session->inbox_handle) { + purple_timeout_remove(session->inbox_handle); + } + g_free(session); }
--- a/libpurple/protocols/myspace/session.h Tue Dec 04 08:25:58 2007 +0000 +++ b/libpurple/protocols/myspace/session.h Tue Dec 04 09:32:18 2007 +0000 @@ -45,6 +45,7 @@ guint next_rid; /**< Next request/response ID */ time_t last_comm; /**< Time received last communication */ guint inbox_status; /**< Bit field of inbox notifications */ + guint inbox_handle; /**< The handle for the mail check timer */ } MsimSession; /* Check if an MsimSession is valid */
--- a/libpurple/protocols/oscar/family_feedbag.c Tue Dec 04 08:25:58 2007 +0000 +++ b/libpurple/protocols/oscar/family_feedbag.c Tue Dec 04 09:32:18 2007 +0000 @@ -341,13 +341,9 @@ */ struct aim_ssi_item *aim_ssi_itemlist_exists(struct aim_ssi_item *list, const char *sn) { - struct aim_ssi_item *cur; - if (!list || !sn) + if (!sn) return NULL; - for (cur=list; cur; cur=cur->next) - if ((cur->type == AIM_SSI_TYPE_BUDDY) && (cur->name) && (!aim_sncmp(cur->name, sn))) - return cur; - return NULL; + return aim_ssi_itemlist_finditem(list, NULL, sn, AIM_SSI_TYPE_BUDDY); } /**