Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#4382 closed patch (fixed)

Update to MSNP15

Reported by: QuLogic Owned by: khc
Milestone: Component: MSN
Version: 2.3.1 Keywords: MSNP15, ticket tokens, RPS, SSO
Cc:

Description

So khc wanted to take a look at the MSNP15 stuff, so I'm posting these tickets.

These patches add support for logging in with MSNP15.

The first patch changes some miscellaneous items to refer to MSNP15 instead of MSNP13. It updates the requested protocol version, as well as the challenge responses.

The second patch adds RPS/SSO authentication to login. It depends on the Triple-DES cipher and HMAC digest in tickets #4380 and #4381. There's not much else to say about that.

Finally, the third patch updates the contact SOAP operations to use Ticket Tokens instead of MSPAuth. I guess this isn't strictly necessary, but without it there'd be nothing in your buddy list. While I was at it, I also reformatted contact.h so the XML looks nicer.

What's tested:

  • Signing in/out
  • Adding/removing buddies
  • Moving buddies between groups
  • Adding groups
    • If I try to move a buddy to a new group, the group is created, but then when moving the buddy, the group name seems to be forgotten. I haven't had time to check what's wrong here.

Not tested:

  • Anything with Yahoo! buddies

Attachments (7)

purple-msnp15-1-misc.diff (6.6 KB) - added by QuLogic 11 years ago.
Change MSNP13->MSNP15
purple-msnp15-3-contact-ticket-tokens.diff (36.8 KB) - added by QuLogic 11 years ago.
Use Ticket Tokens for Contact SOAP operations.
purple-msnp15-4-fix-group-operations.diff (2.9 KB) - added by QuLogic 11 years ago.
Fix a few broken group operations.
purple-msnp15-2-add-sso-auth.diff (29.6 KB) - added by QuLogic 11 years ago.
Use RPS/SSO authentication for login.
purple-msnp15-5-oims.diff (7.1 KB) - added by QuLogic 11 years ago.
Use ticket tokens for receiving OIMs.
purple-msnp15-6-remove-msn_soap_xml_get.diff (9.0 KB) - added by QuLogic 11 years ago.
Remove use of msn_soap_xml_get.
purple-msnp15-7-too-many-oims.diff (4.9 KB) - added by QuLogic 11 years ago.
Request OIM Metadata via SOAP when necessary (+fixed minor bug in diff)

Download all attachments as: .zip

Change History (18)

Changed 11 years ago by QuLogic

Change MSNP13->MSNP15

Changed 11 years ago by QuLogic

Use Ticket Tokens for Contact SOAP operations.

comment:1 Changed 11 years ago by 603729

CC me.

comment:2 Changed 11 years ago by QuLogic

Ah, I think I've found the problem (two actually).

First, the add and rename operations used g_markup_printf_escaped and that caused the ampersand in the ticket token to be escaped twice. I patched those two functions to escape only the group name and not the whole XML message (instead of changing the rest of the functions to escape things at the risk of introducing many bugs).

Second, when moving a contact to a newly created group, msn_group_read_cb finds the GUID, prints it and adds it to the internal list, but then frees it before calling msn_add_contact_to_group. So the contact doesn't get moved at all.

I've attached a fourth patch that should fix these issues. You'll probably need to apply the third patch first.

Changed 11 years ago by QuLogic

Fix a few broken group operations.

comment:3 Changed 11 years ago by khc@…

(In 1d887e0b6d13b709051a68be9b34c28d2254dadb) part of the series of patches from QuLogic that fixes a use-after-free, References #4382

comment:4 Changed 11 years ago by QuLogic

Updated patch to use new cipher ops from #4381 and #4380.

Changed 11 years ago by QuLogic

Use RPS/SSO authentication for login.

comment:5 Changed 11 years ago by QuLogic

Another patch to fix receiving OIMs using authentication via ticket tokens. This is based off im.pidgin.pidgin.khc.msnp15, so sending OIMs is already fixed.

Also threw in a couple changes to make sure we consistently used '8.5.1288' as the version number.

Changed 11 years ago by QuLogic

Use ticket tokens for receiving OIMs.

comment:6 Changed 11 years ago by QuLogic

Here are two more patches.

The first one removes the use of msn_soap_xml_get. xmlnode_get_child seems to work just as well, so I see no need for it. I've been running fine with this change for a few days now.

The second patch fixes problems that occur when you receive many OIM's (msnpiki says 25, I tried with 30). If you have received many OIM's, then Mail-Data no longer contains their info, and you need to make a SOAP request to get the ID's and such. [1] Also, if xmlnode_from_str failed and returned NULL, then the subsequent dereference of node->name causes a crash.

[1] http://msnpiki.msnfanatic.com/index.php/MSNP13:Offline_IM#Retreiving_Mail-Data_field_using_SOAP

Changed 11 years ago by QuLogic

Remove use of msn_soap_xml_get.

Changed 11 years ago by QuLogic

Request OIM Metadata via SOAP when necessary (+fixed minor bug in diff)

comment:7 Changed 11 years ago by quantum.analyst@…

(In 4d012a1c6c1e3584daddd19ed2e5028537e11e6a) References #4382, fixes getting offline messages in p15

comment:9 Changed 11 years ago by quantum.analyst@…

(In 493ccf606032f5a0aeccddca1bc2b60e02ec3f9f) References #4382, replaces usage of msn_soap_xml_get with xmlnode_get_child

comment:8 Changed 11 years ago by quantum.analyst@…

(In e7fbd4b111f202b3902971a9ac59e1c9f92e29d0) References #4382, fixes receiving too many offline messages

comment:9 Changed 11 years ago by khc

  • Resolution set to fixed
  • Status changed from new to closed

I think I've committed everything attached here long ago, reopen if that's not the case

comment:10 Changed 11 years ago by jaydee73

I hope, nobody kills me for my question but this ticket seems to be the best place for my question! ;-)

Do I have to compile the source of 2.4.3 with "--enable-msnp14" to use these patches or can I apply them in my "normal" 2.4.3-rdm-paket delivered by SUSE to get MSNP14/15 support within pidgin?

Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!