# HG changeset patch # User Evan Schoenberg # Date 1205276403 0 # Node ID 4baa8b7ad5b4d311fbefae2970dcb34503e878cb # Parent 9b154f484d643ee795cdf9423f12847881394640# Parent 8ec6ac1b9e2624ccb6198541753abc78dde1dc08 merge of '1ba8fbd2ac54a6b25df759681a854ccc43e6abff' and 'a4c67ebda7af92f03a3da8f978c16b2a4e6d0891' diff -r 9b154f484d64 -r 4baa8b7ad5b4 libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Tue Mar 11 21:41:53 2008 +0000 +++ b/libpurple/protocols/jabber/jabber.c Tue Mar 11 23:00:03 2008 +0000 @@ -406,14 +406,17 @@ void jabber_keepalive(PurpleConnection *gc) { JabberStream *js = gc->proto_data; - JabberIq *iq = jabber_iq_new(js, JABBER_IQ_GET); - xmlnode *ping = xmlnode_new_child(iq->node, "ping"); - xmlnode_set_namespace(ping, "urn:xmpp:ping"); - - js->keepalive_timeout = purple_timeout_add_seconds(120, (GSourceFunc)(jabber_pong_timeout), gc); - jabber_iq_set_callback(iq, jabber_pong_cb, GINT_TO_POINTER(js->keepalive_timeout)); - jabber_iq_send(iq); + if (js->keepalive_timeout == -1) { + JabberIq *iq = jabber_iq_new(js, JABBER_IQ_GET); + + xmlnode *ping = xmlnode_new_child(iq->node, "ping"); + xmlnode_set_namespace(ping, "urn:xmpp:ping"); + + js->keepalive_timeout = purple_timeout_add_seconds(120, (GSourceFunc)(jabber_pong_timeout), gc); + jabber_iq_set_callback(iq, jabber_pong_cb, GINT_TO_POINTER(js->keepalive_timeout)); + jabber_iq_send(iq); + } } static void