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.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/jabber.c b/src/jabber.c
index da606132..64d33666 100644
--- a/src/jabber.c
+++ b/src/jabber.c
@@ -70,6 +70,17 @@ jabber_init(const int disable_tls)
     jabber_conn.tls_disabled = disable_tls;
 }
 
+void
+jabber_shutdown(void)
+{
+    // free memory for connection and context
+    xmpp_conn_release(jabber_conn.conn);
+    xmpp_ctx_free(jabber_conn.ctx);
+
+    // shutdown libstrophe
+    xmpp_shutdown();
+}
+
 jabber_conn_status_t
 jabber_connect(const char * const user, 
     const char * const passwd)
@@ -306,13 +317,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;