diff options
Diffstat (limited to 'bin/hlogin.in')
-rwxr-xr-x | bin/hlogin.in | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/bin/hlogin.in b/bin/hlogin.in index caabd31..a3c00ac 100755 --- a/bin/hlogin.in +++ b/bin/hlogin.in @@ -372,6 +372,10 @@ proc login { router user userpswd passwd enapasswd cmethod cyphertype } { send "no\r" send_user "\nError: The host key for $router has changed. Update the SSH known_hosts file accordingly.\n" return 1 } + -re "Offending key for .* \(yes\/no\)\?" { + send "no\r" + send_user "\nError: host key mismatch for $router. Update the SSH known_hosts file accordingly.\n" + return 1 } -re "$u_prompt" { send "$user\r" expect { eof { send_user "\nError: Couldn't login\n"; wait; return 1 } @@ -396,19 +400,7 @@ proc login { router user userpswd passwd enapasswd cmethod cyphertype } { } "$prompt" { break; } denied { send_user "\nError: Check your passwd for $router\n" - if { $do_command || $do_script } { - send "exit\r" - expect { - "Do you want to log out" { - send "y\r" - exp_continue - } - } - wait - return 1 - } else { - return 1 - } + catch {close}; wait; return 1 } "% Bad passwords" {send_user "\nError: Check your passwd for $router\n"; return 1 } } |