diff options
author | James Booth <boothj5@gmail.com> | 2016-08-28 22:42:09 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2016-08-28 22:42:09 +0100 |
commit | 47a1a62009d411002d4e3b1d6eefd55ba2fe1011 (patch) | |
tree | 432597c803a0988198a90659d0bec02a2d4c4bc6 /src/event/server_events.c | |
parent | ea98a8b04a0577bd6aacc81f9c98b2b7c4d5cc68 (diff) | |
download | profani-tty-47a1a62009d411002d4e3b1d6eefd55ba2fe1011.tar.gz |
Add sv_ev_bookmark_autojoin
Diffstat (limited to 'src/event/server_events.c')
-rw-r--r-- | src/event/server_events.c | 22 |
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); +} |