diff --git a/doc/ChangeLog b/doc/ChangeLog index c0ba5c0d1..dbfd1ae53 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,16 @@ +2008-08-14 Vadim Kurland + + * SSHUnx.cpp (SSHUnx::SSHUnx): fixed bug #2051005: "install to + localhost fails with pam_thinkfinger". Built-in installer + recognizes password prompt produced by pam_thinkfinger module that + accepts both password or asks user to swipe finger against + fingerprint reader device. Note that installer is likely to not + work with fingerprint authentication because it will not wait once + it gets to the point where pam_thinkfinger module asks for the + password or fingerprint and will try to enter password. However + with this change password prompt from pam_thinkfiger is recognized + and password authentication becomes possible. + 2008-08-13 Vadim Kurland * NATCompiler_ipt.cpp (NATCompiler_ipt::getInterfaceVarName): diff --git a/src/gui/SSHSession.h b/src/gui/SSHSession.h index 42a62da91..469824ce5 100644 --- a/src/gui/SSHSession.h +++ b/src/gui/SSHSession.h @@ -120,6 +120,7 @@ class SSHSession : public QObject { QString pwd_prompt; QString putty_pwd_prompt; QString ssh_pwd_prompt; + QString thinkfinger_pwd_prompt; QString ssoft_prompt1; QString ssoft_prompt2; QString ssoft_config_prompt; diff --git a/src/gui/SSHUnx.cpp b/src/gui/SSHUnx.cpp index a0b4312ef..0cb2f6c59 100644 --- a/src/gui/SSHUnx.cpp +++ b/src/gui/SSHUnx.cpp @@ -52,6 +52,7 @@ SSHUnx::SSHUnx(QWidget *_par, normal_prompt="> "; enable_prompt="# "; pwd_prompt="'s password: "; + thinkfinger_pwd_prompt="Password or swipe finger:"; epwd_prompt="Password: "; ssh_pwd_prompt="'s password: "; ssoft_config_prompt="> "; @@ -137,12 +138,13 @@ void SSHUnx::stateMachine() { case NONE: { - if ( cmpPrompt(stdoutBuffer,ssh_pwd_prompt) || - cmpPrompt(stdoutBuffer,putty_pwd_prompt) || - stdoutBuffer.lastIndexOf(passphrase_prompt,-1)!=-1 || + if ( cmpPrompt(stdoutBuffer, ssh_pwd_prompt) || + cmpPrompt(stdoutBuffer, putty_pwd_prompt) || + cmpPrompt(stdoutBuffer, thinkfinger_pwd_prompt) || + stdoutBuffer.lastIndexOf(passphrase_prompt, -1)!=-1 || - cmpPrompt(stdoutBuffer,sudo_pwd_prompt) || - cmpPrompt(stderrBuffer,sudo_pwd_prompt) ) + cmpPrompt(stdoutBuffer, sudo_pwd_prompt) || + cmpPrompt(stderrBuffer, sudo_pwd_prompt) ) { stdoutBuffer=""; proc->write( pwd.toAscii() ); @@ -212,8 +214,8 @@ void SSHUnx::stateMachine() /* in this state we may need to enter sudo password */ case PUSHING_CONFIG: push_files: - if ( cmpPrompt(stdoutBuffer,sudo_pwd_prompt) || - cmpPrompt(stderrBuffer,sudo_pwd_prompt) ) + if ( cmpPrompt(stdoutBuffer, sudo_pwd_prompt) || + cmpPrompt(stderrBuffer, sudo_pwd_prompt) ) { stdoutBuffer=""; proc->write( pwd.toAscii() ); diff --git a/test/ipt/objects-for-regression-tests.fwb b/test/ipt/objects-for-regression-tests.fwb index e5a0c2e73..605731814 100644 --- a/test/ipt/objects-for-regression-tests.fwb +++ b/test/ipt/objects-for-regression-tests.fwb @@ -1,6 +1,6 @@ - + @@ -594,6 +594,9 @@ + + + @@ -716,6 +719,10 @@ + + + + @@ -17525,7 +17532,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + @@ -17883,7 +17890,27 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT% - + + + + + + + + + + + + + + + + + + + + +