mirror of
https://github.com/fwbuilder/fwbuilder
synced 2026-09-14 17:09:11 +02:00
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.
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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 ";
|
||||
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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() );
|
||||
|
||||
Reference in New Issue
Block a user