diff --git a/libfreerdp/utils/args.c b/libfreerdp/utils/args.c index 481b45eaf..bebfbf2fc 100644 --- a/libfreerdp/utils/args.c +++ b/libfreerdp/utils/args.c @@ -26,6 +26,15 @@ #include #include +#ifdef _WIN32 +#include +#define isatty _isatty +#ifndef STDIN_FILENO +#define STDIN_FILENO 0 +#else +#include +#endif + #include #include #include @@ -867,7 +876,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) {