about summary refs log tree commit diff stats
path: root/src/event/server_events.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2016-08-28 22:42:09 +0100
committerJames Booth <boothj5@gmail.com>2016-08-28 22:42:09 +0100
commit47a1a62009d411002d4e3b1d6eefd55ba2fe1011 (patch)
tree432597c803a0988198a90659d0bec02a2d4c4bc6 /src/event/server_events.c
parentea98a8b04a0577bd6aacc81f9c98b2b7c4d5cc68 (diff)
downloadprofani-tty-47a1a62009d411002d4e3b1d6eefd55ba2fe1011.tar.gz
Add sv_ev_bookmark_autojoin
Diffstat (limited to 'src/event/server_events.c')
-rw-r--r--src/event/server_events.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/event/server_events.c b/src/event/server_events.c
index 1b935c6a..d271ec55 100644
--- a/src/event/server_events.c
+++ b/src/event/server_events.c
@@ -1079,3 +1079,25 @@ sv_ev_lastactivity_response(const char *const from, const int seconds, const cha
     g_free(date_fmt);
     jid_destroy(jidp);
 }
+
+void
+sv_ev_bookmark_autojoin(Bookmark *bookmark)
+{
+    char *nick = NULL;
+    if (bookmark->nick) {
+        nick = strdup(bookmark->nick);
+    } else {
+        char *account_name = session_get_account_name();
+        ProfAccount *account = accounts_get_account(account_name);
+        nick = strdup(account->muc_nick);
+        account_free(account);
+    }
+
+    log_debug("Autojoin %s with nick=%s", bookmark->barejid, nick);
+    if (!muc_active(bookmark->barejid)) {
+        presence_join_room(bookmark->barejid, nick, bookmark->password);
+        muc_join(bookmark->barejid, nick, bookmark->password, TRUE);
+    }
+
+    free(nick);
+}