comparison libgaim/protocols/msn/notification.c @ 20393:40a04930b233

The second msn-p13-merge-head.diff.gz from SF Patch #162854 from Ka-Hing Cheung. "A little late, but here is a version that should remember your friendly name. Also has a fix for a crasher when MSN sends you back: <faultstring>Need to do full sync. Can't sync deltas Client has too old a copy for us to do a delta sync</faultstring> In this case, I make gaim re-request the full contact list/address book. I haven't look too deeply into the reverse list problem, but I think the solution would involve caching the reverse list, which may require extending the privacy api."
author Richard Laager <rlaager@wiktel.com>
date Sun, 15 Apr 2007 03:02:48 +0000
parents 9ba7dee775e1
children
comparison
equal deleted inserted replaced
20392:9ba7dee775e1 20393:40a04930b233
624 624
625 g_free(tokens); 625 g_free(tokens);
626 } 626 }
627 627
628 static void 628 static void
629 msn_notification_post_adl(MsnCmdProc *cmdproc,char *payload, int payload_len) 629 msn_notification_post_adl(MsnCmdProc *cmdproc, char *payload, int payload_len)
630 { 630 {
631 MsnTransaction *trans; 631 MsnTransaction *trans;
632 const char *display_name;
633 const char *friendly;
634
635 display_name = gaim_connection_get_display_name(cmdproc->session->account->gc);
636 if (display_name) {
637 friendly = gaim_url_encode(display_name);
638 msn_cmdproc_send(cmdproc, "PRP", "MFN %s", friendly);
639 }
640
641 632
642 gaim_debug_info("MaYuan","Send ADL{%s}\n",payload); 633 gaim_debug_info("MaYuan","Send ADL{%s}\n",payload);
643 trans = msn_transaction_new(cmdproc, "ADL","%d",strlen(payload)); 634 trans = msn_transaction_new(cmdproc, "ADL","%d",strlen(payload));
644 msn_transaction_set_payload(trans, payload, strlen(payload)); 635 msn_transaction_set_payload(trans, payload, strlen(payload));
645 msn_cmdproc_send_trans(cmdproc, trans); 636 msn_cmdproc_send_trans(cmdproc, trans);
653 MsnUser *user; 644 MsnUser *user;
654 GList *l; 645 GList *l;
655 xmlnode *adl_node; 646 xmlnode *adl_node;
656 char *payload; 647 char *payload;
657 int payload_len; 648 int payload_len;
649 const char *display_name;
658 650
659 userlist = session->userlist; 651 userlist = session->userlist;
660 adl_node = xmlnode_new("ml"); 652 adl_node = xmlnode_new("ml");
661 adl_node->child = NULL; 653 adl_node->child = NULL;
662 xmlnode_set_attrib(adl_node, "l", "1"); 654 xmlnode_set_attrib(adl_node, "l", "1");
669 661
670 payload = xmlnode_to_str(adl_node,&payload_len); 662 payload = xmlnode_to_str(adl_node,&payload_len);
671 xmlnode_free(adl_node); 663 xmlnode_free(adl_node);
672 664
673 msn_notification_post_adl(session->notification->cmdproc,payload,payload_len); 665 msn_notification_post_adl(session->notification->cmdproc,payload,payload_len);
666
667 display_name = gaim_connection_get_display_name(session->account->gc);
668 if (display_name && strcmp(display_name,
669 gaim_account_get_username(session->account))) {
670 msn_act_id(session->account->gc, display_name);
671 }
672
674 } 673 }
675 674
676 /*Post FQY to NS,Inform add a Yahoo User*/ 675 /*Post FQY to NS,Inform add a Yahoo User*/
677 static void 676 static void
678 msn_notification_fqy_yahoo(MsnSession *session, const char *passport) 677 msn_notification_fqy_yahoo(MsnSession *session, const char *passport)