diff --git a/src/accounts.c b/src/accounts.c index 7e21b8fa..568391bf 100644 --- a/src/accounts.c +++ b/src/accounts.c @@ -31,6 +31,7 @@ #include "files.h" #include "jid.h" #include "log.h" +#include "xmpp.h" static gchar *accounts_loc; static GKeyFile *accounts; @@ -318,6 +319,22 @@ accounts_set_login_presence(const char * const account_name, const char * const } } +void +account_get_login_presence(const char * const account_name, char *str) +{ + static char *online = "online"; + gchar *setting = g_key_file_get_string(accounts, account_name, "presence.login", NULL); + if (setting == NULL) { + str = online; + } else if (!presence_valid_string(setting)) { + log_warning("Error reading presence.login for account: '%s', value: '%s', defaulting to 'online'", + account_name, setting); + str = online; + } else { + str = setting; + } +} + static void _fix_legacy_accounts(const char * const account_name) { diff --git a/src/accounts.h b/src/accounts.h index 42272890..695fa8f1 100644 --- a/src/accounts.h +++ b/src/accounts.h @@ -52,5 +52,6 @@ void accounts_set_server(const char * const account_name, const char * const val void accounts_set_resource(const char * const account_name, const char * const value); void accounts_set_last_presence(const char * const account_name, const char * const value); void accounts_set_login_presence(const char * const account_name, const char * const value); +void account_get_login_presence(const char * const account_name, char *str); #endif