about summary refs log tree commit diff stats
path: root/src/xmpp
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2016-05-10 23:18:11 +0100
committerJames Booth <boothj5@gmail.com>2016-05-10 23:18:11 +0100
commit3d20c85ada04c4dbd1552671d87ef1729d78a1c8 (patch)
tree33cd70ba98cf83f54dc4f0f329ab876ac83c7243 /src/xmpp
parent22c4d91c5068d1fd194ee0383dc6f4b5cf86cdeb (diff)
downloadprofani-tty-3d20c85ada04c4dbd1552671d87ef1729d78a1c8.tar.gz
Remove JABBER_STARTED, JABBER_UNDEFINED connection states
Diffstat (limited to 'src/xmpp')
-rw-r--r--src/xmpp/connection.c13
-rw-r--r--src/xmpp/connection.h1
-rw-r--r--src/xmpp/session.c19
-rw-r--r--src/xmpp/xmpp.h2
4 files changed, 17 insertions, 18 deletions
diff --git a/src/xmpp/connection.c b/src/xmpp/connection.c
index c93cb35a..d73d73c5 100644
--- a/src/xmpp/connection.c
+++ b/src/xmpp/connection.c
@@ -81,7 +81,7 @@ void
 connection_init(void)
 {
     xmpp_initialize();
-    conn.conn_status = JABBER_STARTED;
+    conn.conn_status = JABBER_DISCONNECTED;
     conn.presence_message = NULL;
     conn.xmpp_conn = NULL;
     conn.xmpp_ctx = NULL;
@@ -174,6 +174,17 @@ connection_connect(const char *const fulljid, const char *const passwd, const ch
     return conn.conn_status;
 }
 
+void
+connection_disconnect(void)
+{
+    conn.conn_status = JABBER_DISCONNECTING;
+    xmpp_disconnect(conn.xmpp_conn);
+
+    while (conn.conn_status == JABBER_DISCONNECTING) {
+        session_process_events(10);
+    }
+}
+
 #ifdef HAVE_LIBMESODE
 TLSCertificate*
 connection_get_tls_peer_cert(void)
diff --git a/src/xmpp/connection.h b/src/xmpp/connection.h
index f4d0e387..b7148769 100644
--- a/src/xmpp/connection.h
+++ b/src/xmpp/connection.h
@@ -41,6 +41,7 @@ void connection_init(void);
 
 jabber_conn_status_t connection_connect(const char *const fulljid, const char *const passwd, const char *const altdomain, int port,
     const char *const tls_policy);
+void connection_disconnect(void);
 
 void connection_set_status(jabber_conn_status_t status);
 void connection_set_presence_msg(const char *const message);
diff --git a/src/xmpp/session.c b/src/xmpp/session.c
index b435a579..7be762a5 100644
--- a/src/xmpp/session.c
+++ b/src/xmpp/session.c
@@ -180,13 +180,7 @@ session_autoping_fail(void)
         const char *fulljid = connection_get_fulljid();
         plugins_on_disconnect(account_name, fulljid);
         accounts_set_last_activity(session_get_account_name());
-        connection_set_status(JABBER_DISCONNECTING);
-        xmpp_disconnect(connection_get_conn());
-
-        while (connection_get_status() == JABBER_DISCONNECTING) {
-            session_process_events(10);
-        }
-
+        connection_disconnect();
         connection_free_conn();
         connection_free_ctx();
     }
@@ -204,17 +198,12 @@ session_disconnect(void)
 {
     // if connected, send end stream and wait for response
     if (connection_get_status() == JABBER_CONNECTED) {
+        log_info("Closing connection");
         char *account_name = session_get_account_name();
         const char *fulljid = connection_get_fulljid();
         plugins_on_disconnect(account_name, fulljid);
-        log_info("Closing connection");
         accounts_set_last_activity(session_get_account_name());
-        connection_set_status(JABBER_DISCONNECTING);
-        xmpp_disconnect(connection_get_conn());
-
-        while (connection_get_status() == JABBER_DISCONNECTING) {
-            session_process_events(10);
-        }
+        connection_disconnect();
         _session_free_saved_account();
         _session_free_saved_details();
         connection_disco_items_free();
@@ -228,7 +217,7 @@ session_disconnect(void)
     connection_free_presence_msg();
     connection_free_domain();
 
-    connection_set_status(JABBER_STARTED);
+    connection_set_status(JABBER_DISCONNECTED);
 }
 
 void
diff --git a/src/xmpp/xmpp.h b/src/xmpp/xmpp.h
index 167a4bbf..65d2cbad 100644
--- a/src/xmpp/xmpp.h
+++ b/src/xmpp/xmpp.h
@@ -57,8 +57,6 @@
 #define XMPP_FEATURE_BLOCKING "urn:xmpp:blocking"
 
 typedef enum {
-    JABBER_UNDEFINED,
-    JABBER_STARTED,
     JABBER_CONNECTING,
     JABBER_CONNECTED,
     JABBER_DISCONNECTING,