about summary refs log tree commit diff stats
path: root/src/xmpp/connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmpp/connection.c')
-rw-r--r--src/xmpp/connection.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/xmpp/connection.c b/src/xmpp/connection.c
index d72d10ca..667dfda6 100644
--- a/src/xmpp/connection.c
+++ b/src/xmpp/connection.c
@@ -32,16 +32,16 @@
  *
  */
 
-#include "config.h"
+#include "prof_config.h"
 
 #include <assert.h>
 #include <string.h>
 #include <stdlib.h>
 
-#ifdef HAVE_LIBMESODE
+#ifdef PROF_HAVE_LIBMESODE
 #include <mesode.h>
 #endif
-#ifdef HAVE_LIBSTROPHE
+#ifdef PROF_HAVE_LIBSTROPHE
 #include <strophe.h>
 #endif
 
@@ -51,6 +51,7 @@
 #include "jid.h"
 #include "log.h"
 #include "muc.h"
+#include "plugins/plugins.h"
 #include "profanity.h"
 #include "event/server_events.h"
 #include "xmpp/bookmark.h"
@@ -93,12 +94,12 @@ static struct {
 static GTimer *reconnect_timer;
 
 static log_level_t _get_log_level(xmpp_log_level_t xmpp_level);
-static xmpp_log_level_t _get_xmpp_log_level();
+static xmpp_log_level_t _get_xmpp_log_level(void);
 
 static void _xmpp_file_logger(void *const userdata, const xmpp_log_level_t level, const char *const area,
     const char *const msg);
 
-static xmpp_log_t* _xmpp_get_file_logger();
+static xmpp_log_t* _xmpp_get_file_logger(void);
 
 static jabber_conn_status_t _jabber_connect(const char *const fulljid, const char *const passwd,
     const char *const altdomain, int port, const char *const tls_policy);
@@ -235,6 +236,9 @@ jabber_disconnect(void)
 {
     // if connected, send end stream and wait for response
     if (jabber_conn.conn_status == JABBER_CONNECTED) {
+        char *account_name = jabber_get_account_name();
+        const char *fulljid = jabber_get_fulljid();
+        plugins_on_disconnect(account_name, fulljid);
         log_info("Closing connection");
         accounts_set_last_activity(jabber_get_account_name());
         jabber_conn.conn_status = JABBER_DISCONNECTING;
@@ -418,7 +422,7 @@ _connection_free_session_data(void)
     presence_clear_sub_requests();
 }
 
-#ifdef HAVE_LIBMESODE
+#ifdef PROF_HAVE_LIBMESODE
 static int
 _connection_certfail_cb(xmpp_tlscert_t *xmpptlscert, const char *const errormsg)
 {
@@ -526,7 +530,7 @@ _jabber_connect(const char *const fulljid, const char *const passwd, const char
         xmpp_conn_set_flags(jabber_conn.conn, XMPP_CONN_FLAG_DISABLE_TLS);
     }
 
-#ifdef HAVE_LIBMESODE
+#ifdef PROF_HAVE_LIBMESODE
     char *cert_path = prefs_get_string(PREF_TLS_CERTPATH);
     if (cert_path) {
         xmpp_conn_tlscert_path(jabber_conn.conn, cert_path);
@@ -534,7 +538,7 @@ _jabber_connect(const char *const fulljid, const char *const passwd, const char
     prefs_free_string(cert_path);
 #endif
 
-#ifdef HAVE_LIBMESODE
+#ifdef PROF_HAVE_LIBMESODE
     int connect_status = xmpp_connect_client(
         jabber_conn.conn,
         altdomain,
@@ -580,6 +584,9 @@ _jabber_reconnect(void)
 static void
 _jabber_lost_connection(void)
 {
+    char *account_name = jabber_get_account_name();
+    const char *fulljid = jabber_get_fulljid();
+    plugins_on_disconnect(account_name, fulljid);
     sv_ev_lost_connection();
     if (prefs_get_reconnect() != 0) {
         assert(reconnect_timer == NULL);