From 5d3c8ce7c164f74f606ff06d1adf849821591a51 Mon Sep 17 00:00:00 2001 From: John Hernandez <129467592+H3rnand3zzz@users.noreply.github.com> Date: Mon, 3 Apr 2023 17:58:09 +0200 Subject: Allow setting client identification name/version manually Add changes allowing user to switch client name and version. Useful for enhancing user privacy. Minor cleanup. --- src/config/account.c | 6 +++++- src/config/account.h | 4 +++- src/config/accounts.c | 19 ++++++++++++++++++- src/config/accounts.h | 2 ++ 4 files changed, 28 insertions(+), 3 deletions(-) (limited to 'src/config') diff --git a/src/config/account.c b/src/config/account.c index 89436f9a..73740b3a 100644 --- a/src/config/account.c +++ b/src/config/account.c @@ -56,7 +56,8 @@ account_new(gchar* name, gchar* jid, gchar* password, gchar* eval_password, gboo gchar* otr_policy, GList* otr_manual, GList* otr_opportunistic, GList* otr_always, gchar* omemo_policy, GList* omemo_enabled, GList* omemo_disabled, GList* ox_enabled, GList* pgp_enabled, gchar* pgp_keyid, - gchar* startscript, gchar* theme, gchar* tls_policy, gchar* auth_policy) + gchar* startscript, gchar* theme, gchar* tls_policy, gchar* auth_policy, + gchar* client) { ProfAccount* new_account = calloc(1, sizeof(ProfAccount)); @@ -131,6 +132,8 @@ account_new(gchar* name, gchar* jid, gchar* password, gchar* eval_password, gboo new_account->startscript = startscript; + new_account->client = client; + new_account->theme = theme; new_account->tls_policy = tls_policy; @@ -226,6 +229,7 @@ account_free(ProfAccount* account) free(account->omemo_policy); free(account->pgp_keyid); free(account->startscript); + free(account->client); free(account->theme); free(account->tls_policy); free(account->auth_policy); diff --git a/src/config/account.h b/src/config/account.h index a469e068..f82a3e11 100644 --- a/src/config/account.h +++ b/src/config/account.h @@ -71,6 +71,7 @@ typedef struct prof_account_t gchar* theme; gchar* tls_policy; gchar* auth_policy; + gchar* client; } ProfAccount; ProfAccount* account_new(gchar* name, gchar* jid, gchar* password, gchar* eval_password, gboolean enabled, @@ -80,7 +81,8 @@ ProfAccount* account_new(gchar* name, gchar* jid, gchar* password, gchar* eval_p gchar* otr_policy, GList* otr_manual, GList* otr_opportunistic, GList* otr_always, gchar* omemo_policy, GList* omemo_enabled, GList* omemo_disabled, GList* ox_enabled, GList* pgp_enabled, gchar* pgp_keyid, - gchar* startscript, gchar* theme, gchar* tls_policy, gchar* auth_policy); + gchar* startscript, gchar* theme, gchar* tls_policy, gchar* auth_policy, + gchar* client); char* account_create_connect_jid(ProfAccount* account); gboolean account_eval_password(ProfAccount* account); void account_free(ProfAccount* account); diff --git a/src/config/accounts.c b/src/config/accounts.c index 9c7eddf9..f7e6e456 100644 --- a/src/config/accounts.c +++ b/src/config/accounts.c @@ -329,6 +329,11 @@ accounts_get_account(const char* const name) startscript = g_key_file_get_string(accounts, name, "script.start", NULL); } + gchar* client = NULL; + if (g_key_file_has_key(accounts, name, "client.name", NULL)) { + client = g_key_file_get_string(accounts, name, "client.name", NULL); + } + gchar* theme = NULL; if (g_key_file_has_key(accounts, name, "theme", NULL)) { theme = g_key_file_get_string(accounts, name, "theme", NULL); @@ -348,7 +353,7 @@ accounts_get_account(const char* const name) priority_dnd, muc_service, muc_nick, otr_policy, otr_manual, otr_opportunistic, otr_always, omemo_policy, omemo_enabled, omemo_disabled, ox_enabled, pgp_enabled, pgp_keyid, - startscript, theme, tls_policy, auth_policy); + startscript, theme, tls_policy, auth_policy, client); return new_account; } @@ -551,6 +556,12 @@ accounts_set_script_start(const char* const account_name, const char* const valu _accounts_set_string_option(account_name, "script.start", value); } +void +accounts_set_client(const char* const account_name, const char* const value) +{ + _accounts_set_string_option(account_name, "client.name", value); +} + void accounts_set_theme(const char* const account_name, const char* const value) { @@ -593,6 +604,12 @@ accounts_clear_script_start(const char* const account_name) _accounts_clear_string_option(account_name, "script.start"); } +void +accounts_clear_client(const char* const account_name) +{ + _accounts_clear_string_option(account_name, "client.name"); +} + void accounts_clear_theme(const char* const account_name) { diff --git a/src/config/accounts.h b/src/config/accounts.h index 2f594a2f..c5b829c0 100644 --- a/src/config/accounts.h +++ b/src/config/accounts.h @@ -87,6 +87,7 @@ gint accounts_get_priority_for_presence_type(const char* const account_name, resource_presence_t presence_type); void accounts_set_pgp_keyid(const char* const account_name, const char* const value); void accounts_set_script_start(const char* const account_name, const char* const value); +void accounts_set_client(const char* const account_name, const char* const value); void accounts_set_theme(const char* const account_name, const char* const value); void accounts_clear_password(const char* const account_name); void accounts_clear_eval_password(const char* const account_name); @@ -95,6 +96,7 @@ void accounts_clear_port(const char* const account_name); void accounts_clear_otr(const char* const account_name); void accounts_clear_pgp_keyid(const char* const account_name); void accounts_clear_script_start(const char* const account_name); +void accounts_clear_client(const char* const account_name); void accounts_clear_theme(const char* const account_name); void accounts_clear_muc(const char* const account_name); void accounts_clear_resource(const char* const account_name); -- cgit 1.4.1-2-gfad0