# HG changeset patch # User Evan Schoenberg # Date 1167938470 0 # Node ID 8e39ca9b954a860f33a941aa4445af0166f50934 # Parent 5d53e67c2512474f19352769e5f04e301cd8c3a7 [gaim-migrate @ 18072] Fixed retrieval of initial presence from jabber contacts for non-Talk accounts: We are notified of presence for contacts one we set our own presence, so wait to do so until after we've requested the roster. committer: Tailor Script diff -r 5d53e67c2512 -r 8e39ca9b954a libgaim/protocols/jabber/disco.c --- a/libgaim/protocols/jabber/disco.c Thu Jan 04 17:11:48 2007 +0000 +++ b/libgaim/protocols/jabber/disco.c Thu Jan 04 19:21:10 2007 +0000 @@ -27,6 +27,7 @@ #include "iq.h" #include "disco.h" #include "jabber.h" +#include "presence.h" #include "roster.h" struct _jabber_disco_info_cb_data { @@ -215,6 +216,8 @@ static void jabber_disco_server_info_result_cb(JabberStream *js, xmlnode *packet, gpointer data) { + GaimPresence *gpresence; + GaimStatus *status; xmlnode *query, *child; const char *from = xmlnode_get_attrib(packet, "from"); const char *type = xmlnode_get_attrib(packet, "type"); @@ -270,6 +273,10 @@ if (!(js->server_caps & JABBER_CAP_GOOGLE_ROSTER)) jabber_roster_request(js); + + gpresence = gaim_account_get_presence(js->gc->account); + status = gaim_presence_get_active_status(gpresence); + jabber_presence_send(js->gc->account, status); } static void diff -r 5d53e67c2512 -r 8e39ca9b954a libgaim/protocols/jabber/jabber.c --- a/libgaim/protocols/jabber/jabber.c Thu Jan 04 17:11:48 2007 +0000 +++ b/libgaim/protocols/jabber/jabber.c Thu Jan 04 19:21:10 2007 +0000 @@ -1008,9 +1008,6 @@ void jabber_stream_set_state(JabberStream *js, JabberStreamState state) { - GaimPresence *gpresence; - GaimStatus *status; - js->state = state; switch(state) { case JABBER_STREAM_OFFLINE: @@ -1042,9 +1039,6 @@ break; case JABBER_STREAM_CONNECTED: - gpresence = gaim_account_get_presence(js->gc->account); - status = gaim_presence_get_active_status(gpresence); - jabber_presence_send(js->gc->account, status); gaim_connection_set_state(js->gc, GAIM_CONNECTED); jabber_disco_items_server(js); break;