Override account options with connect options

With this feature user can configure TLS policy for an account and
override it for a single login with /connect command.

Example:
 /account set <jid> tls force
 /connect <jid> tls trust
The example shows how to trust server's certificate only once.

Fixes #1021.
This commit is contained in:
Dmitry Podgorny
2018-11-07 14:56:43 +02:00
parent 7f65aaa9a2
commit 3fd6f70bd9
3 changed files with 28 additions and 0 deletions

View File

@@ -241,3 +241,20 @@ account_free(ProfAccount *account)
g_list_free_full(account->otr_always, g_free);
free(account);
}
void account_set_server(ProfAccount *account, const char *server)
{
free(account->server);
account->server = strdup(server);
}
void account_set_port(ProfAccount *account, int port)
{
account->port = port;
}
void account_set_tls_policy(ProfAccount *account, const char *tls_policy)
{
free(account->tls_policy);
account->tls_policy = strdup(tls_policy);
}

View File

@@ -77,5 +77,8 @@ ProfAccount* account_new(const gchar *const name, const gchar *const jid,
char* account_create_connect_jid(ProfAccount *account);
gboolean account_eval_password(ProfAccount *account);
void account_free(ProfAccount *account);
void account_set_server(ProfAccount *account, const char *server);
void account_set_port(ProfAccount *account, int port);
void account_set_tls_policy(ProfAccount *account, const char *tls_policy);
#endif