diff --git a/cmdline.c b/cmdline.c index 7011e52..b7ed70f 100644 --- a/cmdline.c +++ b/cmdline.c @@ -480,6 +480,9 @@ int cmdline_parser( int argc, char * const *argv, struct gengetopt_args_info *ar args_info->pass_arg = ppass; args_info->user_given = 1; args_info->pass_given = 1; + } else if ( r == 1 ) { + args_info->user_arg = args_info->proxyauth_arg; + args_info->user_given = 1; } else { message( "parse_cmdline: couln't find your proxy auth user/pass\n" ); missing_required_options++; @@ -500,6 +503,9 @@ int cmdline_parser( int argc, char * const *argv, struct gengetopt_args_info *ar args_info->rempass_arg = rpass; args_info->remuser_given = 1; args_info->rempass_given = 1; + } else if ( r == 1 ) { + args_info->remuser_arg = args_info->remproxyauth_arg; + args_info->remuser_given = 1; } else { message( "parse_cmdline: couln't find your proxy auth user/pass\n" ); missing_required_options++; diff --git a/proxytunnel.c b/proxytunnel.c index 6268bcd..8d4261b 100644 --- a/proxytunnel.c +++ b/proxytunnel.c @@ -333,7 +333,7 @@ int main( int argc, char *argv[] ) { /* If the usename is given, but password is not, prompt for it */ if( args_info.user_given && !args_info.pass_given ) { char *cp; - cp = getpass_x ("Enter proxy password:"); + cp = getpass_x ("Enter local proxy password:"); if (cp != NULL && strlen (cp) > 0) { args_info.pass_arg = strdup (cp); args_info.pass_given = 1; @@ -341,6 +341,16 @@ int main( int argc, char *argv[] ) { } } + if( args_info.remuser_given && !args_info.rempass_given ) { + char *cp; + cp = getpass_x ("Enter remote proxy password:"); + if (cp != NULL && strlen (cp) > 0) { + args_info.rempass_arg = strdup (cp); + args_info.rempass_given = 1; + memset (cp, 0, strlen(cp)); + } + } + if( args_info.user_given && args_info.pass_given ) { if (args_info.ntlm_flag) { build_type1();