# HG changeset patch # User vamposdecampos@gmail.com # Date 1268515254 0 # Node ID c4fe6afad87a1a8eb2e3c6ea04bdb825d3b19fd2 # Parent 78f972c7de0ed184eaf1ba4496cf57c6c846ec30 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 diff -r 78f972c7de0e -r c4fe6afad87a libpurple/protocols/yahoo/libymsg.c --- a/libpurple/protocols/yahoo/libymsg.c Sat Mar 13 20:30:08 2010 +0000 +++ b/libpurple/protocols/yahoo/libymsg.c Sat Mar 13 21:20:54 2010 +0000 @@ -2733,8 +2733,9 @@ PurpleAccount *account; YahooFriend *f; - /* if status is not 1 ie YAHOO_STATUS_BRB, the packet bounced back, so contains our own ip */ - if(!(pkt->status == YAHOO_STATUS_BRB)) + /* if status is not YAHOO_STATUS_BRB or YAHOO_STATUS_P2P, the packet bounced back, + * so it contains our own ip */ + if(pkt->status != YAHOO_STATUS_BRB && pkt->status != YAHOO_STATUS_P2P) return ; while (l) { diff -r 78f972c7de0e -r c4fe6afad87a libpurple/protocols/yahoo/libymsg.h --- a/libpurple/protocols/yahoo/libymsg.h Sat Mar 13 20:30:08 2010 +0000 +++ b/libpurple/protocols/yahoo/libymsg.h Sat Mar 13 21:20:54 2010 +0000 @@ -119,6 +119,7 @@ YAHOO_STATUS_ONVACATION, YAHOO_STATUS_OUTTOLUNCH, YAHOO_STATUS_STEPPEDOUT, + YAHOO_STATUS_P2P = 11, YAHOO_STATUS_INVISIBLE = 12, YAHOO_STATUS_CUSTOM = 99, YAHOO_STATUS_IDLE = 999,