summaryrefslogtreecommitdiff
authorzecke <zecke>2003-09-19 13:34:19 (UTC)
committer zecke <zecke>2003-09-19 13:34:19 (UTC)
commit6fc0216161b4ad62cd407d2a36d78d8bd88f4ed0 (patch) (side-by-side diff)
tree6a5511175042d599142c1686289487cc4e74c19a
parentff7423735a1effb0aad3f79b8a4e1ee2ed24750d (diff)
downloadopie-6fc0216161b4ad62cd407d2a36d78d8bd88f4ed0.zip
opie-6fc0216161b4ad62cd407d2a36d78d8bd88f4ed0.tar.gz
opie-6fc0216161b4ad62cd407d2a36d78d8bd88f4ed0.tar.bz2
if the password is wrong but 'rootme' prompt the user again to either accept
or deny the connection
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/transferserver.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/core/launcher/transferserver.cpp b/core/launcher/transferserver.cpp
index 371400e..fde6f8b 100644
--- a/core/launcher/transferserver.cpp
+++ b/core/launcher/transferserver.cpp
@@ -188,65 +188,69 @@ bool SyncAuthentication::checkPassword( const QString& password )
#endif
static int lastdenial=0;
static int denials=0;
int now = time(0);
// Detect old Qtopia Desktop (no password)
if ( password.isEmpty() ) {
if ( denials < 1 || now > lastdenial+600 ) {
QMessageBox unauth(
tr("Sync Connection"),
tr("<p>An unauthorized system is requesting access to this device."
"<p>If you are using a version of Qtopia Desktop older than 1.5.1, "
"please upgrade."),
QMessageBox::Warning,
QMessageBox::Cancel, QMessageBox::NoButton, QMessageBox::NoButton,
0, QString::null, TRUE, WStyle_StaysOnTop);
unauth.setButtonText(QMessageBox::Cancel, tr("Deny"));
unauth.exec();
denials++;
lastdenial=now;
}
return FALSE;
}
// Second, check sync password...
static int lock=0;
if ( lock ) return FALSE;
++lock;
- if ( password.left(6) == "Qtopia" ) {
+
+ /*
+ * we need to support old Sync software and QtopiaDesktop
+ */
+ if ( password.left(6) == "Qtopia" || password.left(6) == "rootme" ) {
Config cfg( QPEApplication::qpeDir()+"/etc/Security.conf", Config::File );
cfg.setGroup("Sync");
QStringList pwds = cfg.readListEntry("Passwords",' ');
for (QStringList::ConstIterator it=pwds.begin(); it!=pwds.end(); ++it) {
#ifndef Q_OS_WIN32
QString cpassword = QString::fromLocal8Bit(
crypt( password.mid(8).local8Bit(), (*it).left(2).latin1() ) );
#else
// ### revise
QString cpassword("");
#endif
if ( *it == cpassword ) {
lock--;
return TRUE;
}
}
// Unrecognized system. Be careful...
QMessageBox unrecbox(
tr("Sync Connection"),
tr( "<p>An unrecognized system is requesting access to this device."
"<p>If you have just initiated a Sync for the first time, this is normal."),
QMessageBox::Warning,
QMessageBox::Cancel, QMessageBox::Yes, QMessageBox::NoButton,
0, QString::null, TRUE, WStyle_StaysOnTop);
unrecbox.setButtonText(QMessageBox::Cancel, tr("Deny"));
unrecbox.setButtonText(QMessageBox::Yes, tr("Allow"));
if ( (denials > 2 && now < lastdenial+600)
|| unrecbox.exec() != QMessageBox::Yes)
{
denials++;