Mercurial > pidgin
comparison libpurple/protocols/msn/oim.c @ 23042:ca2e48afba25
temporary workaround for too many OIMs, References #5984
author | Ka-Hing Cheung <khc@hxbc.us> |
---|---|
date | Thu, 19 Jun 2008 06:46:15 +0000 |
parents | 9b7af052fd6a |
children | 5c70d953a497 |
comparison
equal
deleted
inserted
replaced
23041:5c60866e616f | 23042:ca2e48afba25 |
---|---|
460 } else { | 460 } else { |
461 purple_debug_info("msnoim", "Failed to get OIM\n"); | 461 purple_debug_info("msnoim", "Failed to get OIM\n"); |
462 } | 462 } |
463 } | 463 } |
464 | 464 |
465 /* parse the oim XML data | 465 static void |
466 * and post it to the soap server to get the Offline Message | 466 msn_parse_oim_xml(MsnOim *oim, xmlnode *node) |
467 * */ | 467 { |
468 void | 468 xmlnode *mNode; |
469 msn_parse_oim_msg(MsnOim *oim,const char *xmlmsg) | |
470 { | |
471 xmlnode *node, *mNode; | |
472 xmlnode *iu_node; | 469 xmlnode *iu_node; |
473 MsnSession *session = oim->session; | 470 MsnSession *session = oim->session; |
474 | 471 |
475 purple_debug_info("MSNP14:OIM", "%s\n", xmlmsg); | 472 g_return_if_fail(node != NULL); |
476 | 473 |
477 node = xmlnode_from_str(xmlmsg, -1); | |
478 if (strcmp(node->name, "MD") != 0) { | 474 if (strcmp(node->name, "MD") != 0) { |
475 char *xmlmsg = xmlnode_to_str(node, NULL); | |
479 purple_debug_info("msnoim", "WTF is this? %s\n", xmlmsg); | 476 purple_debug_info("msnoim", "WTF is this? %s\n", xmlmsg); |
480 xmlnode_free(node); | 477 g_free(xmlmsg); |
481 return; | 478 return; |
482 } | 479 } |
483 | 480 |
484 iu_node = msn_soap_xml_get(node, "E/IU"); | 481 iu_node = msn_soap_xml_get(node, "E/IU"); |
485 | 482 |
526 g_free(passport); | 523 g_free(passport); |
527 g_free(msgid); | 524 g_free(msgid); |
528 g_free(rtime); | 525 g_free(rtime); |
529 g_free(nickname); | 526 g_free(nickname); |
530 } | 527 } |
531 | 528 } |
532 xmlnode_free(node); | 529 |
530 /* parse the oim XML data | |
531 * and post it to the soap server to get the Offline Message | |
532 * */ | |
533 void | |
534 msn_parse_oim_msg(MsnOim *oim,const char *xmlmsg) | |
535 { | |
536 xmlnode *node; | |
537 | |
538 purple_debug_info("MSNP14:OIM", "%s\n", xmlmsg); | |
539 | |
540 if (!strcmp(xmlmsg, "too-large")) { | |
541 /* Too many OIM's to send via NS, so we need to request them | |
542 * via SOAP. */ | |
543 purple_debug_info("msnoim", "too many OIMs, not supported yet\n"); | |
544 } else { | |
545 node = xmlnode_from_str(xmlmsg, -1); | |
546 msn_parse_oim_xml(oim, node); | |
547 xmlnode_free(node); | |
548 } | |
533 } | 549 } |
534 | 550 |
535 /*Post to get the Offline Instant Message*/ | 551 /*Post to get the Offline Instant Message*/ |
536 static void | 552 static void |
537 msn_oim_post_single_get_msg(MsnOim *oim, char *msgid) | 553 msn_oim_post_single_get_msg(MsnOim *oim, char *msgid) |