pidgin: 8577210d: A patch from Thomas Gibson-Robinson to f...
qulogic at pidgin.im
qulogic at pidgin.im
Sun Jan 18 20:01:33 EST 2009
-----------------------------------------------------------------
Revision: 8577210d86a9a6cd448208a4ef92c42cd39200f7
Ancestor: 42f77b0e8b8ebf5ff3c30d8f8022ac5d289631e8
Author: qulogic at pidgin.im
Date: 2009-01-19T00:58:19
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/8577210d86a9a6cd448208a4ef92c42cd39200f7
Modified files:
libpurple/protocols/msn/slpcall.c
libpurple/protocols/msn/slplink.c
ChangeLog:
A patch from Thomas Gibson-Robinson to fix receiving buddy icons, custom
emoticons and file transfers from WLM 9.
I have a feeling this should really be a bitwise test (ie, flags | 0x20 == 0x20)
but I can't really find many supportive docs for FT things and I'm no expert on
these MSN SLP bits.
Fixes #7180.
Fixes #7294.
-------------- next part --------------
============================================================
--- libpurple/protocols/msn/slpcall.c e319e892a8ec90822c038a7e5ce5c78ec61d1cfd
+++ libpurple/protocols/msn/slpcall.c dafa69781f73edfc41f5a1c0aa8236e8eb9d08cd
@@ -206,7 +206,7 @@ msn_slp_process_msg(MsnSlpLink *slplink,
body = slpmsg->buffer;
body_len = slpmsg->size;
- if (slpmsg->flags == 0x0)
+ if (slpmsg->flags == 0x0 || slpmsg->flags == 0x1000000)
{
char *body_str;
@@ -214,7 +214,9 @@ msn_slp_process_msg(MsnSlpLink *slplink,
slpcall = msn_slp_sip_recv(slplink, body_str);
g_free(body_str);
}
- else if (slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030)
+ else if (slpmsg->flags == 0x20 ||
+ slpmsg->flags == 0x1000020 ||
+ slpmsg->flags == 0x1000030)
{
slpcall = msn_slplink_find_slp_call_with_session_id(slplink, slpmsg->session_id);
============================================================
--- libpurple/protocols/msn/slplink.c 679a2f7d3e14f984fad46bd26882e69790cdaa72
+++ libpurple/protocols/msn/slplink.c f6e6ce8f90df7fe17c0c37810e37497a9372a212
@@ -281,7 +281,8 @@ msn_slplink_send_msgpart(MsnSlpLink *slp
g_list_append(slpmsg->msgs, msg);
msn_slplink_send_msg(slplink, msg);
- if ((slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030) &&
+ if ((slpmsg->flags == 0x20 || slpmsg->flags == 0x1000020 ||
+ slpmsg->flags == 0x1000030) &&
(slpmsg->slpcall != NULL))
{
slpmsg->slpcall->progress = TRUE;
@@ -316,7 +317,8 @@ msg_ack(MsnMessage *msg, void *data)
else
{
/* The whole message has been sent */
- if (slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030)
+ if (slpmsg->flags == 0x20 ||
+ slpmsg->flags == 0x1000020 || slpmsg->flags == 0x1000030)
{
if (slpmsg->slpcall != NULL)
{
@@ -362,7 +364,8 @@ msn_slplink_release_slpmsg(MsnSlpLink *s
msg->msnslp_header.ack_size = slpmsg->ack_size;
msg->msnslp_header.ack_sub_id = slpmsg->ack_sub_id;
}
- else if (slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030)
+ else if (slpmsg->flags == 0x20 ||
+ slpmsg->flags == 0x1000020 || slpmsg->flags == 0x1000030)
{
MsnSlpCall *slpcall;
slpcall = slpmsg->slpcall;
@@ -532,7 +535,8 @@ msn_slplink_process_msg(MsnSlpLink *slpl
if (slpmsg->slpcall != NULL)
{
- if (slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030)
+ if (slpmsg->flags == 0x20 ||
+ slpmsg->flags == 0x1000020 || slpmsg->flags == 0x1000030)
{
PurpleXfer *xfer;
@@ -595,7 +599,8 @@ msn_slplink_process_msg(MsnSlpLink *slpl
memcpy(slpmsg->buffer + offset, data, len);
}
- if ((slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030) &&
+ if ((slpmsg->flags == 0x20 ||
+ slpmsg->flags == 0x1000020 || slpmsg->flags == 0x1000030) &&
(slpmsg->slpcall != NULL))
{
slpmsg->slpcall->progress = TRUE;
@@ -630,8 +635,9 @@ msn_slplink_process_msg(MsnSlpLink *slpl
msn_directconn_send_handshake(directconn);
#endif
}
- else if (slpmsg->flags == 0x0 || slpmsg->flags == 0x20 ||
- slpmsg->flags == 0x1000030)
+ else if (slpmsg->flags == 0x00 || slpmsg->flags == 0x1000000 ||
+ slpmsg->flags == 0x20 || slpmsg->flags == 0x1000020 ||
+ slpmsg->flags == 0x1000030)
{
/* Release all the messages and send the ACK */
More information about the Commits
mailing list