From 47a1a62009d411002d4e3b1d6eefd55ba2fe1011 Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 28 Aug 2016 22:42:09 +0100 Subject: Add sv_ev_bookmark_autojoin --- src/event/server_events.c | 22 ++++++++++++++++++++++ src/event/server_events.h | 1 + 2 files changed, 23 insertions(+) (limited to 'src/event') 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); +} diff --git a/src/event/server_events.h b/src/event/server_events.h index 7f60c3a5..cc67952f 100644 --- a/src/event/server_events.h +++ b/src/event/server_events.h @@ -87,5 +87,6 @@ void sv_ev_roster_update(const char *const barejid, const char *const name, void sv_ev_roster_received(void); int sv_ev_certfail(const char *const errormsg, TLSCertificate *cert); void sv_ev_lastactivity_response(const char *const from, const int seconds, const char *const msg); +void sv_ev_bookmark_autojoin(Bookmark *bookmark); #endif -- cgit 1.4.1-2-gfad0