comparison libpurple/protocols/yahoo/libymsg.c @ 29989:c4fe6afad87a

yahoo: fix decoding of P2P session_id Apparently, inbound P2P packets containing key-11 session_id are no longer sent by the server with a YAHOO_STATUS_BRB, but rather a status value of 11. Since we don't pick up the session_id, the first text message we send over the P2P connection will have a key-11 value of 0, and cause the remote (yahoo) client to disconnect us. This is causing the "lost second line in a conversation" syndrome. Fix it by also accepting status 11 in yahoo_process_p2p(). Fixes #10733. committer: John Bailey <rekkanoryo@rekkanoryo.org>
author vamposdecampos@gmail.com
date Sat, 13 Mar 2010 21:20:54 +0000
parents 78f972c7de0e
children 2292d8896b0b 60af53dd42d5
comparison
equal deleted inserted replaced
29988:78f972c7de0e 29989:c4fe6afad87a
2731 gint val_13 = 0; 2731 gint val_13 = 0;
2732 gint val_11 = 0; 2732 gint val_11 = 0;
2733 PurpleAccount *account; 2733 PurpleAccount *account;
2734 YahooFriend *f; 2734 YahooFriend *f;
2735 2735
2736 /* if status is not 1 ie YAHOO_STATUS_BRB, the packet bounced back, so contains our own ip */ 2736 /* if status is not YAHOO_STATUS_BRB or YAHOO_STATUS_P2P, the packet bounced back,
2737 if(!(pkt->status == YAHOO_STATUS_BRB)) 2737 * so it contains our own ip */
2738 if(pkt->status != YAHOO_STATUS_BRB && pkt->status != YAHOO_STATUS_P2P)
2738 return ; 2739 return ;
2739 2740
2740 while (l) { 2741 while (l) {
2741 struct yahoo_pair *pair = l->data; 2742 struct yahoo_pair *pair = l->data;
2742 2743