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.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/xmpp/connection.c b/src/xmpp/connection.c
index cf721a85..10aedf26 100644
--- a/src/xmpp/connection.c
+++ b/src/xmpp/connection.c
@@ -50,6 +50,7 @@ static struct _jabber_conn_t {
     char *presence_message;
     int priority;
     int tls_disabled;
+    char *domain;
 } jabber_conn;
 
 static GHashTable *available_resources;
@@ -98,6 +99,7 @@ jabber_init(const int disable_tls)
     jabber_conn.conn = NULL;
     jabber_conn.ctx = NULL;
     jabber_conn.tls_disabled = disable_tls;
+    jabber_conn.domain = NULL;
     presence_init();
     caps_init();
     available_resources = g_hash_table_new_full(g_str_hash, g_str_equal, free,
@@ -185,6 +187,7 @@ jabber_disconnect(void)
 
     jabber_conn.conn_status = JABBER_STARTED;
     FREE_SET_NULL(jabber_conn.presence_message);
+    FREE_SET_NULL(jabber_conn.domain);
 }
 
 void
@@ -258,6 +261,12 @@ jabber_get_jid(void)
     return xmpp_conn_get_jid(jabber_conn.conn);
 }
 
+const char *
+jabber_get_domain(void)
+{
+    return jabber_conn.domain;
+}
+
 char *
 jabber_get_presence_message(void)
 {
@@ -464,6 +473,10 @@ _connection_handler(xmpp_conn_t * const conn,
             _connection_free_saved_details();
         }
 
+        Jid *myJid = jid_create(jabber_get_jid());
+        jabber_conn.domain = strdup(myJid->domainpart);
+        jid_destroy(myJid);
+
         chat_sessions_init();
 
         message_add_handlers();