From d846024e8509474b73645cdc24c7751999f273fd Mon Sep 17 00:00:00 2001 From: Bernhard Miklautz Date: Tue, 14 Aug 2012 23:50:10 +0200 Subject: [PATCH 1/2] Detect pipe/stdio for parameter --from-stdin When --from-stdin is given and parameters are passed via pipe/file don't use passphrase function for the password. This fixes #698. --- libfreerdp-utils/args.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libfreerdp-utils/args.c b/libfreerdp-utils/args.c index 85d69dd38..9ee929efb 100644 --- a/libfreerdp-utils/args.c +++ b/libfreerdp-utils/args.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -856,7 +857,13 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv, /* password */ if (NULL == settings->password) { settings->password = xmalloc(512 * sizeof(char)); - freerdp_passphrase_read("password: ", settings->password, 512, settings->from_stdin); + if (isatty(STDIN_FILENO)) + freerdp_passphrase_read("password: ", settings->password, 512, settings->from_stdin); + else + { + printf("password: "); + scanf("%511s", settings->password); + } } /* domain */ if (NULL == settings->domain) { From 77b2d6e2989f99a823933910a8e97f4ff9a949bb Mon Sep 17 00:00:00 2001 From: Bernhard Miklautz Date: Wed, 15 Aug 2012 00:07:33 +0200 Subject: [PATCH 2/2] Fix: isatty is called _isatty on windows --- libfreerdp-utils/args.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libfreerdp-utils/args.c b/libfreerdp-utils/args.c index 9ee929efb..eb20c2f7b 100644 --- a/libfreerdp-utils/args.c +++ b/libfreerdp-utils/args.c @@ -22,7 +22,14 @@ #include #include #include +#ifdef _WIN32 +#include +#define isatty _isatty +#ifndef STDIN_FILENO +#define STDIN_FILENO 0 +#else #include +#endif #include #include #include