# HG changeset patch # User John Bailey # Date 1247933532 0 # Node ID 4bfaf18fcb136c40ad65276800788fb1821a15c8 # Parent 8b6bf8479d1021c842d095efebe2eb336a72bc2b Change a bunch more of our yahoo packets to use the session ID. I believe this is now all of the packets that aren't p2p related (those packets get their ID's differently). I also changed what version of the client we claim to be for the chatrooms. We were claiming to be "ym8.1.0.415" when we should have claimed to be whatever version is defined in YAHOO_CLIENT_VERSION. diff -r 8b6bf8479d10 -r 4bfaf18fcb13 libpurple/protocols/yahoo/yahoo_doodle.c --- a/libpurple/protocols/yahoo/yahoo_doodle.c Sat Jul 18 08:46:06 2009 +0000 +++ b/libpurple/protocols/yahoo/yahoo_doodle.c Sat Jul 18 16:12:12 2009 +0000 @@ -392,7 +392,7 @@ yd = gc->proto_data; /* Make and send an acknowledge (ready) Doodle packet */ - pkt = yahoo_packet_new(YAHOO_SERVICE_P2PFILEXFER, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_P2PFILEXFER, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash_str(pkt, 49, "IMVIRONMENT"); yahoo_packet_hash_str(pkt, 1, purple_account_get_username(gc->account)); yahoo_packet_hash_str(pkt, 14, message); diff -r 8b6bf8479d10 -r 4bfaf18fcb13 libpurple/protocols/yahoo/yahoo_picture.c --- a/libpurple/protocols/yahoo/yahoo_picture.c Sat Jul 18 08:46:06 2009 +0000 +++ b/libpurple/protocols/yahoo/yahoo_picture.c Sat Jul 18 16:12:12 2009 +0000 @@ -276,7 +276,7 @@ return; } - pkt = yahoo_packet_new(YAHOO_SERVICE_PICTURE, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_PICTURE, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "ssssi", 1, purple_connection_get_display_name(gc), 5, who, 13, "2", 20, yd->picture_url, 192, yd->picture_checksum); @@ -288,7 +288,7 @@ struct yahoo_data *yd = gc->proto_data; struct yahoo_packet *pkt; - pkt = yahoo_packet_new(YAHOO_SERVICE_PICTURE, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_PICTURE, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash_str(pkt, 1, purple_connection_get_display_name(gc)); /* me */ yahoo_packet_hash_str(pkt, 5, who); /* the other guy */ yahoo_packet_hash_str(pkt, 13, "1"); /* 1 = request, 2 = reply */ @@ -300,7 +300,7 @@ struct yahoo_data *yd = gc->proto_data; struct yahoo_packet *pkt; - pkt = yahoo_packet_new(YAHOO_SERVICE_PICTURE_CHECKSUM, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_PICTURE_CHECKSUM, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "ssi", 1, purple_connection_get_display_name(gc), 212, "1", 192, yd->picture_checksum); yahoo_packet_send_and_free(pkt, yd); @@ -311,7 +311,7 @@ struct yahoo_data *yd = gc->proto_data; struct yahoo_packet *pkt; - pkt = yahoo_packet_new(YAHOO_SERVICE_AVATAR_UPDATE, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_AVATAR_UPDATE, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "si", 3, who, 213, type); yahoo_packet_send_and_free(pkt, yd); } diff -r 8b6bf8479d10 -r 4bfaf18fcb13 libpurple/protocols/yahoo/yahoochat.c --- a/libpurple/protocols/yahoo/yahoochat.c Sat Jul 18 08:46:06 2009 +0000 +++ b/libpurple/protocols/yahoo/yahoochat.c Sat Jul 18 16:12:12 2009 +0000 @@ -65,14 +65,14 @@ rll = purple_account_get_string(purple_connection_get_account(gc), "room_list_locale", YAHOO_ROOMLIST_LOCALE); - pkt = yahoo_packet_new(YAHOO_SERVICE_CHATONLINE, YAHOO_STATUS_AVAILABLE,0); + pkt = yahoo_packet_new(YAHOO_SERVICE_CHATONLINE, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "sssss", 109, purple_connection_get_display_name(gc), 1, purple_connection_get_display_name(gc), 6, "abcde", /* I'm not sure this is the correct way to set this. */ 98, rll, - 135, "ym8.1.0.415"); + 135, YAHOO_CLIENT_VERSION); yahoo_packet_send_and_free(pkt, yd); } @@ -376,7 +376,7 @@ * so we don't have to actually pass the flag in the packet. Or something. */ room2 = yahoo_string_encode(gc, room, &utf8); - pkt = yahoo_packet_new(YAHOO_SERVICE_CHATJOIN, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_CHATJOIN, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "ssss", 1, purple_connection_get_display_name(gc), 104, room2, @@ -396,7 +396,7 @@ /* We need to goto a user in chat */ if (yd->pending_chat_goto) { - struct yahoo_packet *pkt = yahoo_packet_new(YAHOO_SERVICE_CHATGOTO, YAHOO_STATUS_AVAILABLE, 0); + struct yahoo_packet *pkt = yahoo_packet_new(YAHOO_SERVICE_CHATGOTO, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "sss", 109, yd->pending_chat_goto, 1, purple_connection_get_display_name(gc), @@ -764,7 +764,7 @@ purple_debug_misc("yahoo", "leaving conference %s\n", room); - pkt = yahoo_packet_new(YAHOO_SERVICE_CONFLOGOFF, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_CONFLOGOFF, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash_str(pkt, 1, dn); for (w = who; w; w = w->next) { @@ -788,7 +788,7 @@ msg = yahoo_html_to_codes(what); msg2 = yahoo_string_encode(gc, msg, &utf8); - pkt = yahoo_packet_new(YAHOO_SERVICE_CONFMSG, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_CONFMSG, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash_str(pkt, 1, dn); for (who = members; who; who = who->next) { @@ -816,7 +816,7 @@ if (members) memarr = g_strsplit(members, "\n", 0); - pkt = yahoo_packet_new(YAHOO_SERVICE_CONFLOGON, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_CONFLOGON, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "sss", 1, dn, 3, dn, 57, room); if (memarr) { @@ -846,7 +846,7 @@ members = purple_conv_chat_get_users(PURPLE_CONV_CHAT(c)); - pkt = yahoo_packet_new(YAHOO_SERVICE_CONFADDINVITE, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_CONFADDINVITE, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "sssss", 1, dn, 51, buddy, 57, room, 58, msg?msg2:"", 13, "0"); for(; members; members = members->next) { @@ -882,7 +882,7 @@ eroom = yahoo_string_encode(gc, room, &utf8); - pkt = yahoo_packet_new(YAHOO_SERVICE_CHATEXIT, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_CHATEXIT, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "sss", 104, eroom, 109, dn, 108, "1"); yahoo_packet_hash_str(pkt, 112, "0"); /* what does this one mean? */ yahoo_packet_send_and_free(pkt, yd); @@ -900,7 +900,7 @@ return; pkt = yahoo_packet_new(YAHOO_SERVICE_CHATLOGOUT, - YAHOO_STATUS_AVAILABLE, 0); + YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash_str(pkt, 1, dn); yahoo_packet_send_and_free(pkt, yd); @@ -941,7 +941,7 @@ g_free(msg2); room2 = yahoo_string_encode(gc, room, NULL); - pkt = yahoo_packet_new(YAHOO_SERVICE_COMMENT, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_COMMENT, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "sss", 1, dn, 104, room2, 117, msg1); if (me) @@ -978,7 +978,7 @@ if (msg) msg2 = yahoo_string_encode(gc, msg, NULL); - pkt = yahoo_packet_new(YAHOO_SERVICE_CHATADDINVITE, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_CHATADDINVITE, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "sssss", 1, dn, 118, buddy, 104, room2, 117, (msg2?msg2:""), 129, "0"); yahoo_packet_send_and_free(pkt, yd); @@ -1012,7 +1012,7 @@ return; } - pkt = yahoo_packet_new(YAHOO_SERVICE_CHATGOTO, YAHOO_STATUS_AVAILABLE, 0); + pkt = yahoo_packet_new(YAHOO_SERVICE_CHATGOTO, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "sss", 109, name, 1, purple_connection_get_display_name(gc), 62, "2"); yahoo_packet_send_and_free(pkt, yd); }