about summary refs log tree commit diff stats
path: root/src/jabber.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/jabber.c')
-rw-r--r--src/jabber.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/jabber.c b/src/jabber.c
index da606132..a326ce56 100644
--- a/src/jabber.c
+++ b/src/jabber.c
@@ -243,6 +243,14 @@ jabber_get_jid(void)
     return xmpp_conn_get_jid(jabber_conn.conn);
 }
 
+void
+jabber_free_resources(void)
+{
+	xmpp_conn_release(jabber_conn.conn);
+	xmpp_ctx_free(jabber_conn.ctx);
+	xmpp_shutdown();
+}
+
 static int
 _message_handler(xmpp_conn_t * const conn, 
     xmpp_stanza_t * const stanza, void * const userdata)
@@ -306,13 +314,6 @@ _connection_handler(xmpp_conn_t * const conn,
     
         // received close stream response from server after disconnect
         if (jabber_conn.conn_status == JABBER_DISCONNECTING) {
-            // free memory for connection object and context
-            xmpp_conn_release(jabber_conn.conn);
-            xmpp_ctx_free(jabber_conn.ctx);
-
-            // shutdown libstrophe
-            xmpp_shutdown();
-
             jabber_conn.conn_status = JABBER_DISCONNECTED;
             jabber_conn.presence = PRESENCE_OFFLINE;