diff options
author | James Booth <boothj5@gmail.com> | 2016-05-10 23:18:11 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2016-05-10 23:18:11 +0100 |
commit | 3d20c85ada04c4dbd1552671d87ef1729d78a1c8 (patch) | |
tree | 33cd70ba98cf83f54dc4f0f329ab876ac83c7243 /src/xmpp | |
parent | 22c4d91c5068d1fd194ee0383dc6f4b5cf86cdeb (diff) | |
download | profani-tty-3d20c85ada04c4dbd1552671d87ef1729d78a1c8.tar.gz |
Remove JABBER_STARTED, JABBER_UNDEFINED connection states
Diffstat (limited to 'src/xmpp')
-rw-r--r-- | src/xmpp/connection.c | 13 | ||||
-rw-r--r-- | src/xmpp/connection.h | 1 | ||||
-rw-r--r-- | src/xmpp/session.c | 19 | ||||
-rw-r--r-- | src/xmpp/xmpp.h | 2 |
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, |