libpurple/protocols/jabber/google.c

changeset 27740
4a6820ab0b1e
parent 27636
68aa74cdf4e4
parent 27701
d60dcfcb5bfe
child 27779
ad70fa8a4ae2
equal deleted inserted replaced
27636:68aa74cdf4e4 27740:4a6820ab0b1e
785 JabberIqType type, const char *id, 785 JabberIqType type, const char *id,
786 xmlnode *packet, gpointer nul) 786 xmlnode *packet, gpointer nul)
787 { 787 {
788 xmlnode *child; 788 xmlnode *child;
789 xmlnode *message; 789 xmlnode *message;
790 const char *to, *default_url; 790 const char *to, *url;
791 const char *in_str; 791 const char *in_str;
792 char *to_name; 792 char *to_name;
793 793
794 int i, count = 1, returned_count; 794 int i, count = 1, returned_count;
795 795
835 subjects = g_new0(char* , returned_count + 1); 835 subjects = g_new0(char* , returned_count + 1);
836 urls = g_new0(const char* , returned_count + 1); 836 urls = g_new0(const char* , returned_count + 1);
837 837
838 to = xmlnode_get_attrib(packet, "to"); 838 to = xmlnode_get_attrib(packet, "to");
839 to_name = jabber_get_bare_jid(to); 839 to_name = jabber_get_bare_jid(to);
840 default_url = xmlnode_get_attrib(child, "url"); 840 url = xmlnode_get_attrib(child, "url");
841 if (default_url == NULL || *default_url == '\0') 841 if (!url || !*url)
842 default_url = "http://mail.google.com/mail"; 842 url = "http://www.gmail.com";
843 843
844 message= xmlnode_get_child(child, "mail-thread-info"); 844 message= xmlnode_get_child(child, "mail-thread-info");
845 for (i=0; message; message = xmlnode_get_next_twin(message), i++) { 845 for (i=0; message; message = xmlnode_get_next_twin(message), i++) {
846 xmlnode *sender_node, *subject_node; 846 xmlnode *sender_node, *subject_node;
847 const char *from, *tid, *url; 847 const char *from, *tid;
848 char *subject; 848 char *subject;
849
850 url = xmlnode_get_attrib(message, "url");
851 if (url == NULL || *url == '\0')
852 url = default_url;
853 849
854 subject_node = xmlnode_get_child(message, "subject"); 850 subject_node = xmlnode_get_child(message, "subject");
855 sender_node = xmlnode_get_child(message, "senders"); 851 sender_node = xmlnode_get_child(message, "senders");
856 sender_node = xmlnode_get_child(sender_node, "sender"); 852 sender_node = xmlnode_get_child(sender_node, "sender");
857 853
1065 JabberBuddy *jb; 1061 JabberBuddy *jb;
1066 const char *balias; 1062 const char *balias;
1067 1063
1068 js = (JabberStream*)(gc->proto_data); 1064 js = (JabberStream*)(gc->proto_data);
1069 1065
1070 if (!js || !js->server_caps & JABBER_CAP_GOOGLE_ROSTER) 1066 if (!js || !(js->server_caps & JABBER_CAP_GOOGLE_ROSTER))
1071 return; 1067 return;
1072 1068
1073 jb = jabber_buddy_find(js, who, TRUE); 1069 jb = jabber_buddy_find(js, who, TRUE);
1074 1070
1075 buddies = purple_find_buddies(js->gc->account, who); 1071 buddies = purple_find_buddies(js->gc->account, who);
1135 g_return_if_fail(gc != NULL); 1131 g_return_if_fail(gc != NULL);
1136 g_return_if_fail(who != NULL); 1132 g_return_if_fail(who != NULL);
1137 1133
1138 js = (JabberStream*)(gc->proto_data); 1134 js = (JabberStream*)(gc->proto_data);
1139 1135
1140 if (!js || !js->server_caps & JABBER_CAP_GOOGLE_ROSTER) 1136 if (!js || !(js->server_caps & JABBER_CAP_GOOGLE_ROSTER))
1141 return; 1137 return;
1142 1138
1143 buddies = purple_find_buddies(purple_connection_get_account(js->gc), who); 1139 buddies = purple_find_buddies(purple_connection_get_account(js->gc), who);
1144 if(!buddies) 1140 if(!buddies)
1145 return; 1141 return;

mercurial