Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/msn/soap.c

    r693aca0 rcdd1ded  
    270270        struct im_connection *ic = soap_req->ic;
    271271        struct msn_data *md = ic->proto_data;
    272         char pass[MAX_PASSPORT_PWLEN + 1];
    273272
    274273        if (sd->redirect) {
     
    286285        }
    287286
    288         strncpy(pass, ic->acc->pass, MAX_PASSPORT_PWLEN);
    289         pass[MAX_PASSPORT_PWLEN] = '\0';
    290287        soap_req->payload = g_markup_printf_escaped(SOAP_PASSPORT_SSO_PAYLOAD,
    291                                                     ic->acc->user, pass, md->pp_policy);
     288                                                    ic->acc->user, ic->acc->pass, md->pp_policy);
    292289
    293290        return MSN_SOAP_OK;
     
    327324        struct xt_node *code = xt_find_node(node->children, "faultcode");
    328325        struct xt_node *string = xt_find_node(node->children, "faultstring");
     326        struct xt_node *reqstatus = xt_find_path(node, "psf:pp/psf:reqstatus");
    329327        struct xt_node *url;
    330328
     
    335333                   url->text_len > 0) {
    336334                sd->redirect = g_strdup(url->text);
     335        } else if (reqstatus && strcmp(reqstatus->text, "0x800488fe") == 0) {
     336                char *msg = "Location blocked. Log in to live.com, go to recent activity and click 'this was me'";
     337                sd->error = g_strdup_printf("%s (%s)", code->text, msg);
    337338        } else {
    338339                sd->error = g_strdup_printf("%s (%s)", code->text, string && string->text_len ?
     
    346347        { "wsse:BinarySecurityToken", "wst:RequestedSecurityToken", msn_soap_passport_sso_token },
    347348        { "S:Fault", "S:Envelope", msn_soap_passport_failure },
     349        { "S:Fault", "wst:RequestSecurityTokenResponse", msn_soap_passport_failure },
    348350        { NULL, NULL, NULL }
    349351};
     
    774776                imcb_log(soap_req->ic, "Warning: %d contacts were in both your "
    775777                         "block and your allow list. Assuming they're all "
    776                          "allowed. Use the official WLM client once to fix "
    777                          "this.", wtf);
     778                         "allowed.", wtf);
    778779        }
    779780
Note: See TracChangeset for help on using the changeset viewer.