X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Furpoprocess.cpp;h=790061726705ef2c7fc5012f5aaf0d8ad9e24da5;hb=9b0352c17625d2053b86dec69475fce6508b1c1e;hp=600e306da2d2947d870f1d2e8b1799598c47d110;hpb=1cb1d5f47b8569fa77ce065e4aa9441932b24a70;p=urpo diff --git a/src/urpoprocess.cpp b/src/urpoprocess.cpp index 600e306..7900617 100644 --- a/src/urpoprocess.cpp +++ b/src/urpoprocess.cpp @@ -23,6 +23,8 @@ #include "urpoprocess.h" #include "urpoconnection.h" #include +#include +#include int const UrpoProcess::DEFAULTTIMEOUT; @@ -59,7 +61,33 @@ void UrpoProcess::timeout() { // If process is still running, it means timeout! if( status_ == Running) - fail(Timeout); + { + // Read output + QByteArray bytes = qprocess_.readAllStandardOutput(); + QString string(bytes); + sendDebugMessage(string); + + if(string.contains("'s password:") || string.contains("passphrase:")) + { + // Try to ask password + if( storedPassword_.isEmpty()) + { + if( string.contains("'s password:") ) + storedPassword_ = QInputDialog::getText( 0, tr("Server ask password"), tr("Password:"), QLineEdit::PasswordEchoOnEdit ); + else + storedPassword_ = QInputDialog::getText( 0, tr("Server ask passphrase"), tr("Passphrase:"), QLineEdit::PasswordEchoOnEdit ); + } + qprocess_.write(storedPassword_.toAscii()); + qprocess_.write("\n"); + + QTimer::singleShot( getTimeout(), this, SLOT(timeout()) ); + status_ = PasswdRunning; + } + else + fail( Timeout ); + } + else if( status_ == PasswdRunning ) + fail(Timeout); // FAILS !!! } void UrpoProcess::start(const QString &command) @@ -104,6 +132,8 @@ void UrpoProcess::processFinished(int exitCode,QProcess::ExitStatus exitStatus) output_=string.split("\n"); status_=Successed; emit finished(true); + + } }