* SSHUnx.cpp (SSHUnx::SSHUnx): New feature: built-in installer can
now enter sudo password. There is no need to configure firewall
management account for password-less sudo access anymore.
This commit is contained in:
Vadim Kurland
2009-02-21 22:42:38 +00:00
parent bddc4c6726
commit 0bf9408448
7 changed files with 35 additions and 25 deletions
+1 -1
View File
@@ -1 +1 @@
#define BUILD_NUM 767
#define BUILD_NUM 768
+6
View File
@@ -1,3 +1,9 @@
2009-02-21 vadim <vadim@vk.crocodile.org>
* SSHUnx.cpp (SSHUnx::SSHUnx): New feature: built-in installer can
now enter sudo password. There is no need to configure firewall
management account for password-less sudo access anymore.
2009-02-19 vadim <vadim@vk.crocodile.org>
* FirewallInstaller.cpp (FirewallInstaller::getDestinationDir):
-1
View File
@@ -54,7 +54,6 @@ SSHIOS::SSHIOS(QWidget *_par,
epwd_prompt="Password: ";
ssh_pwd_prompt="'s password: ";
ssoft_config_prompt="> ";
sudo_pwd_prompt="Password:";
putty_pwd_prompt="Password: ";
passphrase_prompt="Enter passphrase for key ";
-1
View File
@@ -62,7 +62,6 @@ SSHPIX::SSHPIX(QWidget *_par,
epwd_prompt="Password: ";
ssh_pwd_prompt="'s password: ";
ssoft_config_prompt="> ";
sudo_pwd_prompt="Password:";
putty_pwd_prompt="Password: ";
passphrase_prompt="Enter passphrase for key ";
+10 -11
View File
@@ -512,24 +512,23 @@ void SSHSession::finished(int retcode)
// emit sessionFinished_sign();
}
bool SSHSession::cmpPrompt(const QString &str,const QString &prompt)
bool SSHSession::cmpPrompt(const QString &str, const QString &prompt)
{
if (fwbdebug)
qDebug("SSHSession::cmpPrompt: str='%s' prompt='%s'",
str.toAscii().constData(),prompt.toAscii().constData());
if (str.isEmpty()) return false;
bool res=(str.lastIndexOf(prompt,-1)!=-1);
if (!res)
bool res = false;
if (!str.isEmpty())
{
QString s=str.trimmed();
res=(s.lastIndexOf(prompt,-1)!=-1);
res = (str.lastIndexOf(prompt,-1) != -1);
if (!res)
{
QString s = str.trimmed();
res = (s.lastIndexOf(prompt,-1) != -1);
}
}
if (fwbdebug)
qDebug("SSHSession::cmpPrompt: res=%d",res);
if (fwbdebug) qDebug("SSHSession::cmpPrompt: res=%d",res);
return res;
}
+2 -1
View File
@@ -125,7 +125,8 @@ class SSHSession : public QObject {
QString ssoft_prompt1;
QString ssoft_prompt2;
QString ssoft_config_prompt;
QString sudo_pwd_prompt;
QString sudo_pwd_prompt_1;
QString sudo_pwd_prompt_2;
QString passphrase_prompt;
QString epwd_prompt;
+16 -10
View File
@@ -56,7 +56,8 @@ SSHUnx::SSHUnx(QWidget *_par,
epwd_prompt="Password: ";
ssh_pwd_prompt="'s password: ";
ssoft_config_prompt="> ";
sudo_pwd_prompt="Password:";
sudo_pwd_prompt_1="Password:";
sudo_pwd_prompt_2="[sudo] password for ";
putty_pwd_prompt="Password: ";
passphrase_prompt="Enter passphrase for key ";
@@ -88,10 +89,10 @@ bool SSHUnx::checkForErrors(QStringList *errptr)
for (QStringList::const_iterator i=errptr->begin(); i!=errptr->end(); ++i)
{
if (fwbdebug)
qDebug(
QString("SSHUnx::stateMachine: error='%1'").
arg(*i).toAscii().constData());
// if (fwbdebug)
// qDebug(
// QString("SSHUnx::stateMachine: error='%1'").
// arg(*i).toAscii().constData());
if ( stdoutBuffer.lastIndexOf(QRegExp(*i),-1)!=-1 )
{
@@ -142,9 +143,11 @@ void SSHUnx::stateMachine()
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_1) ||
cmpPrompt(stderrBuffer, sudo_pwd_prompt_1) ||
cmpPrompt(stdoutBuffer, sudo_pwd_prompt_2) ||
cmpPrompt(stderrBuffer, sudo_pwd_prompt_2)
)
{
stdoutBuffer="";
proc->write( pwd.toAscii() );
@@ -216,8 +219,11 @@ 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_1) ||
cmpPrompt(stderrBuffer, sudo_pwd_prompt_1) ||
cmpPrompt(stdoutBuffer, sudo_pwd_prompt_2) ||
cmpPrompt(stderrBuffer, sudo_pwd_prompt_2)
)
{
stdoutBuffer="";
proc->write( pwd.toAscii() );