diff options
author | James Booth <boothj5@gmail.com> | 2013-11-07 21:43:11 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2013-11-07 21:43:11 +0000 |
commit | 4abdb023961e94581f34ae4fede17532e05c0e7c (patch) | |
tree | c6d73b8737ae1f53d69e8017cdc5c562cae8e899 /src/command/command.c | |
parent | 3cc080b06acc2e2e35bbdad6dedcac008b46ee02 (diff) | |
parent | 480589f0aec93b5b83d287a221c69d0388f2ec3f (diff) | |
download | profani-tty-4abdb023961e94581f34ae4fede17532e05c0e7c.tar.gz |
Merge remote-tracking branch 'tsenart/passwords-on-accounts-file'
Diffstat (limited to 'src/command/command.c')
-rw-r--r-- | src/command/command.c | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/src/command/command.c b/src/command/command.c index e8232405..35bcd4f7 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -20,6 +20,7 @@ * */ +#include <assert.h> #include <errno.h> #include <limits.h> #include <stdlib.h> @@ -68,6 +69,7 @@ typedef struct cmd_t { typedef char*(*autocompleter)(char*, int*); +static char * _ask_password(void); static void _update_presence(const resource_presence_t presence, const char * const show, gchar **args); static gboolean _cmd_set_boolean_preference(gchar *arg, struct cmd_help_t help, @@ -1347,13 +1349,6 @@ _cmd_connect(gchar **args, struct cmd_help_t help) char *lower = g_utf8_strdown(user, -1); char *jid; - status_bar_get_password(); - status_bar_refresh(); - char passwd[21]; - inp_block(); - inp_get_password(passwd); - inp_non_block(); - ProfAccount *account = accounts_get_account(lower); if (account != NULL) { if (account->resource != NULL) { @@ -1361,12 +1356,18 @@ _cmd_connect(gchar **args, struct cmd_help_t help) } else { jid = strdup(account->jid); } + + if (account->password == NULL) { + account->password = _ask_password(); + } cons_show("Connecting with account %s as %s", account->name, jid); - conn_status = jabber_connect_with_account(account, passwd); + conn_status = jabber_connect_with_account(account); } else { + char *passwd = _ask_password(); jid = strdup(lower); cons_show("Connecting as %s", jid); conn_status = jabber_connect_with_details(jid, passwd, altdomain); + free(passwd); } g_free(lower); @@ -3525,6 +3526,20 @@ _cmd_xa(gchar **args, struct cmd_help_t help) return TRUE; } +// helper function that asks the user for a password and saves it in passwd + +static char * +_ask_password(void) { + char *passwd = malloc(sizeof(char) * 21); + status_bar_get_password(); + status_bar_refresh(); + inp_block(); + inp_get_password(passwd); + inp_non_block(); + + return passwd; +} + // helper function for status change commands static void |