Mailing List Archive

svn commit: vpnc r548 - /branches/vpnc-nortel/config.c
Author: Antonio Borneo
Date: Tue Feb 18 06:10:04 2014
New Revision: 548

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:
branches/vpnc-nortel/config.c

Modified: branches/vpnc-nortel/config.c
==============================================================================
--- branches/vpnc-nortel/config.c (original)
+++ branches/vpnc-nortel/config.c Tue Feb 18 06:10:04 2014
@@ -257,6 +257,8 @@
}

printf("%s", prompt);
+ fflush(stdout);
+
tcgetattr(STDIN_FILENO, &t);
t.c_lflag &= ~ECHO;
tcsetattr(STDIN_FILENO, TCSANOW, &t);
@@ -856,7 +858,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;
@@ -1120,19 +1122,19 @@
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_PIN:
- printf("Enter PIN for %s@%s: ",
+ asprintf(&prompt, "Enter PIN for %s@%s: ",
config[CONFIG_XAUTH_USERNAME],
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;
@@ -1144,7 +1146,8 @@
case CONFIG_IPSEC_SECRET:
case CONFIG_XAUTH_PIN:
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/