Mercurial > pidgin
comparison libpurple/protocols/jabber/google.c @ 27501:6d26258e9f1d
propagate from branch 'im.pidgin.pidgin' (head ac87c285c7056f86005dc157b9870745de471f74)
to branch 'im.pidgin.cpw.darkrain42.roster' (head 976d874853ac9745edb77d3cf107b92ebc037c10)
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Mon, 06 Jul 2009 04:37:41 +0000 |
parents | 93a41017dca9 5afc3577b8cd |
children | 3bb1085235d0 |
comparison
equal
deleted
inserted
replaced
27500:b9da56683499 | 27501:6d26258e9f1d |
---|---|
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, *url; | 790 const char *to, *default_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 url = xmlnode_get_attrib(child, "url"); | 840 default_url = xmlnode_get_attrib(child, "url"); |
841 if (!url || !*url) | 841 if (default_url == NULL || *default_url == '\0') |
842 url = "http://www.gmail.com"; | 842 default_url = "http://mail.google.com/mail"; |
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; | 847 const char *from, *tid, *url; |
848 char *subject; | 848 char *subject; |
849 | |
850 url = xmlnode_get_attrib(message, "url"); | |
851 if (url == NULL || *url == '\0') | |
852 url = default_url; | |
849 | 853 |
850 subject_node = xmlnode_get_child(message, "subject"); | 854 subject_node = xmlnode_get_child(message, "subject"); |
851 sender_node = xmlnode_get_child(message, "senders"); | 855 sender_node = xmlnode_get_child(message, "senders"); |
852 sender_node = xmlnode_get_child(sender_node, "sender"); | 856 sender_node = xmlnode_get_child(sender_node, "sender"); |
853 | 857 |
937 return; | 941 return; |
938 } | 942 } |
939 | 943 |
940 void jabber_gmail_init(JabberStream *js) { | 944 void jabber_gmail_init(JabberStream *js) { |
941 JabberIq *iq; | 945 JabberIq *iq; |
942 | 946 xmlnode *usersetting, *mailnotifications; |
943 if (!purple_account_get_check_mail(js->gc->account)) | 947 |
944 return; | 948 if (!purple_account_get_check_mail(purple_connection_get_account(js->gc))) |
949 return; | |
950 | |
951 /* | |
952 * Quoting http://code.google.com/apis/talk/jep_extensions/usersettings.html: | |
953 * To ensure better compatibility with other clients, rather than | |
954 * setting this value to "false" to turn off notifications, it is | |
955 * recommended that a client set this to "true" and filter incoming | |
956 * email notifications itself. | |
957 */ | |
958 iq = jabber_iq_new(js, JABBER_IQ_SET); | |
959 usersetting = xmlnode_new_child(iq->node, "usersetting"); | |
960 xmlnode_set_namespace(usersetting, "google:setting"); | |
961 mailnotifications = xmlnode_new_child(usersetting, "mailnotifications"); | |
962 xmlnode_set_attrib(mailnotifications, "value", "true"); | |
963 jabber_iq_send(iq); | |
945 | 964 |
946 iq = jabber_iq_new_query(js, JABBER_IQ_GET, "google:mail:notify"); | 965 iq = jabber_iq_new_query(js, JABBER_IQ_GET, "google:mail:notify"); |
947 jabber_iq_set_callback(iq, jabber_gmail_parse, NULL); | 966 jabber_iq_set_callback(iq, jabber_gmail_parse, NULL); |
948 jabber_iq_send(iq); | 967 jabber_iq_send(iq); |
949 } | 968 } |