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)