about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/accounts.c17
-rw-r--r--src/accounts.h1
2 files changed, 18 insertions, 0 deletions
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