Mercurial > pidgin
comparison libpurple/protocols/jabber/google.c @ 28765:edf0aa0e55cb
jabber: Fix Google connecting. I wish this weren't off on its own, all sad and lonely.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sun, 06 Dec 2009 04:31:39 +0000 |
parents | 531f8367025e |
children | 9ab75ab032b4 7f1da2fbe7fc |
comparison
equal
deleted
inserted
replaced
28763:72bce773b640 | 28765:edf0aa0e55cb |
---|---|
28 | 28 |
29 #include "buddy.h" | 29 #include "buddy.h" |
30 #include "google.h" | 30 #include "google.h" |
31 #include "jabber.h" | 31 #include "jabber.h" |
32 #include "presence.h" | 32 #include "presence.h" |
33 #include "roster.h" | |
33 #include "iq.h" | 34 #include "iq.h" |
34 #include "chat.h" | 35 #include "chat.h" |
35 | 36 |
36 #include "jingle/jingle.h" | 37 #include "jingle/jingle.h" |
37 | 38 |
947 iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_GOOGLE_MAIL_NOTIFY); | 948 iq = jabber_iq_new_query(js, JABBER_IQ_GET, NS_GOOGLE_MAIL_NOTIFY); |
948 jabber_iq_set_callback(iq, jabber_gmail_parse, NULL); | 949 jabber_iq_set_callback(iq, jabber_gmail_parse, NULL); |
949 jabber_iq_send(iq); | 950 jabber_iq_send(iq); |
950 } | 951 } |
951 | 952 |
953 static void | |
954 roster_init_cb(JabberStream *js, const char *from, JabberIqType type, | |
955 const char *id, xmlnode *packet, gpointer data) | |
956 { | |
957 xmlnode *query = xmlnode_get_child(packet, "query"); | |
958 | |
959 if (type == JABBER_IQ_RESULT && query) | |
960 jabber_roster_parse(js, from, type, id, query); | |
961 | |
962 jabber_stream_set_state(js, JABBER_STREAM_CONNECTED); | |
963 } | |
964 | |
952 void jabber_google_roster_init(JabberStream *js) | 965 void jabber_google_roster_init(JabberStream *js) |
953 { | 966 { |
954 JabberIq *iq; | 967 JabberIq *iq; |
955 xmlnode *query; | 968 xmlnode *query; |
956 | 969 |
958 query = xmlnode_get_child(iq->node, "query"); | 971 query = xmlnode_get_child(iq->node, "query"); |
959 | 972 |
960 xmlnode_set_attrib(query, "xmlns:gr", "google:roster"); | 973 xmlnode_set_attrib(query, "xmlns:gr", "google:roster"); |
961 xmlnode_set_attrib(query, "gr:ext", "2"); | 974 xmlnode_set_attrib(query, "gr:ext", "2"); |
962 | 975 |
976 jabber_iq_set_callback(iq, roster_init_cb, NULL); | |
963 jabber_iq_send(iq); | 977 jabber_iq_send(iq); |
964 } | 978 } |
965 | 979 |
966 void jabber_google_roster_outgoing(JabberStream *js, xmlnode *query, xmlnode *item) | 980 void jabber_google_roster_outgoing(JabberStream *js, xmlnode *query, xmlnode *item) |
967 { | 981 { |