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 {