Mailing List Archive

svn commit: vpnc r546 - /trunk/config.c
Author: Antonio Borneo
Date: Tue Feb 18 06:09:56 2014
New Revision: 546

Log:
getpass: build prompt string and pass it

Instead of printing the prompt before getpass(),
build prompt string in a buffer and pass it.
In this way, password helper gets the prompt.

Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>

Modified:
trunk/config.c

Modified: trunk/config.c
==============================================================================
--- trunk/config.c (original)
+++ trunk/config.c Tue Feb 18 06:09:56 2014
@@ -256,6 +256,8 @@
}

printf("%s", prompt);
+ fflush(stdout);
+
tcgetattr(STDIN_FILENO, &t);
t.c_lflag &= ~ECHO;
tcsetattr(STDIN_FILENO, TCSANOW, &t);
@@ -828,7 +830,7 @@

void do_config(int argc, char **argv)
{
- char *s;
+ char *s, *prompt;
int i, c, known;
int got_conffile = 0, print_config = 0;
size_t s_len;
@@ -977,14 +979,14 @@
printf("Enter IPSec ID for %s: ", config[CONFIG_IPSEC_GATEWAY]);
break;
case CONFIG_IPSEC_SECRET:
- printf("Enter IPSec secret for %s@%s: ",
+ asprintf(&prompt, "Enter IPSec secret for %s@%s: ",
config[CONFIG_IPSEC_ID], config[CONFIG_IPSEC_GATEWAY]);
break;
case CONFIG_XAUTH_USERNAME:
printf("Enter username for %s: ", config[CONFIG_IPSEC_GATEWAY]);
break;
case CONFIG_XAUTH_PASSWORD:
- printf("Enter password for %s@%s: ",
+ asprintf(&prompt, "Enter password for %s@%s: ",
config[CONFIG_XAUTH_USERNAME],
config[CONFIG_IPSEC_GATEWAY]);
break;
@@ -995,7 +997,8 @@
switch (i) {
case CONFIG_IPSEC_SECRET:
case CONFIG_XAUTH_PASSWORD:
- s = vpnc_getpass("");
+ s = vpnc_getpass(prompt);
+ free(prompt);
if (s == NULL)
error(1, 0, "unable to get password");
break;

_______________________________________________
vpnc-devel mailing list
vpnc-devel@unix-ag.uni-kl.de
https://lists.unix-ag.uni-kl.de/mailman/listinfo/vpnc-devel
http://www.unix-ag.uni-kl.de/~massar/vpnc/