# HG changeset patch # User Elliott Sales de Andrade # Date 1213580590 0 # Node ID 314fcd0879ec69ec8a7697b7afa58ee9faa7bf30 # Parent 4cb1efafa410dab59452514ca6a0fe064e3dc392 Use the correct xmlnode when processing SOAP Faults. When the MSN SOAP server sends a "psf:Redirect" Fault, look in the "Fault" node for the "redirectUrl", and not in the (possibly) non-existent "Body" node. This should fix login for @msn.com addresses, who seem to use a different login server. When we get a "wsse:FailedAuthentication" Fault, look in the "Fault" node for the "faultstring", instead of the "Body" node. Thanks, Dimmuxx. diff -r 4cb1efafa410 -r 314fcd0879ec libpurple/protocols/msn/soap2.c --- a/libpurple/protocols/msn/soap2.c Sun Jun 15 18:48:14 2008 +0000 +++ b/libpurple/protocols/msn/soap2.c Mon Jun 16 01:43:10 2008 +0000 @@ -224,7 +224,7 @@ char *faultdata = xmlnode_get_data(faultcode); if (g_str_equal(faultdata, "psf:Redirect")) { - xmlnode *url = xmlnode_get_child(body, "redirectUrl"); + xmlnode *url = xmlnode_get_child(fault, "redirectUrl"); if (url) { char *urldata = xmlnode_get_data(url); @@ -236,7 +236,7 @@ msn_soap_message_destroy(response); return TRUE; } else if (g_str_equal(faultdata, "wsse:FailedAuthentication")) { - xmlnode *reason = xmlnode_get_child(body, "faultstring"); + xmlnode *reason = xmlnode_get_child(fault, "faultstring"); char *reasondata = xmlnode_get_data(reason); msn_soap_connection_sanitize(conn, TRUE);