| 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; |