From: Simon Josefsson Date: Wed, 4 Jun 2008 05:20:23 +0000 (+0200) Subject: Allow --pskusername to be specified to avoid query in PSK callback. X-Git-Tag: gnutls_2_3_4_netconf_2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=204658e6002cd8eef33baff0865e9f1237fd08f2;p=thirdparty%2Fgnutls.git Allow --pskusername to be specified to avoid query in PSK callback. --- diff --git a/src/cli.c b/src/cli.c index 38039b514e..5d594a810e 100644 --- a/src/cli.c +++ b/src/cli.c @@ -983,8 +983,6 @@ static int psk_callback (gnutls_session_t session, { const char *hint = gnutls_psk_client_get_hint (session); char *passwd; - char *tmp = NULL; - ssize_t n, len; int ret; printf ("- PSK client callback. "); @@ -993,23 +991,31 @@ static int psk_callback (gnutls_session_t session, else printf ("No PSK hint\n"); - printf ("Enter PSK identity: "); - fflush (stdout); - len = getline (&tmp, &n, stdin); - - if (tmp == NULL) + if (info.psk_username) + *username = gnutls_strdup (info.psk_username); + else { - fprintf (stderr, "No username given, aborting...\n"); - return GNUTLS_E_INSUFFICIENT_CREDENTIALS; - } + char *tmp = NULL; + ssize_t n, len; - if (tmp[strlen (tmp) - 1] == '\n') - tmp[strlen (tmp) - 1] = '\0'; - if (tmp[strlen (tmp) - 1] == '\r') - tmp[strlen (tmp) - 1] = '\0'; + printf ("Enter PSK identity: "); + fflush (stdout); + len = getline (&tmp, &n, stdin); - *username = gnutls_strdup (tmp); - free (tmp); + if (tmp == NULL) + { + fprintf (stderr, "No username given, aborting...\n"); + return GNUTLS_E_INSUFFICIENT_CREDENTIALS; + } + + if (tmp[strlen (tmp) - 1] == '\n') + tmp[strlen (tmp) - 1] = '\0'; + if (tmp[strlen (tmp) - 1] == '\r') + tmp[strlen (tmp) - 1] = '\0'; + + *username = gnutls_strdup (tmp); + free (tmp); + } if (!*username) return GNUTLS_E_MEMORY_ERROR;