summaryrefslogtreecommitdiff
authorzecke <zecke>2003-09-19 13:34:19 (UTC)
committer zecke <zecke>2003-09-19 13:34:19 (UTC)
commit6fc0216161b4ad62cd407d2a36d78d8bd88f4ed0 (patch) (unidiff)
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) (ignore 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 )
188#endif 188#endif
189 189
190 static int lastdenial=0; 190 static int lastdenial=0;
191 static int denials=0; 191 static int denials=0;
192 int now = time(0); 192 int now = time(0);
193 193
194 // Detect old Qtopia Desktop (no password) 194 // Detect old Qtopia Desktop (no password)
195 if ( password.isEmpty() ) { 195 if ( password.isEmpty() ) {
196 if ( denials < 1 || now > lastdenial+600 ) { 196 if ( denials < 1 || now > lastdenial+600 ) {
197 QMessageBox unauth( 197 QMessageBox unauth(
198 tr("Sync Connection"), 198 tr("Sync Connection"),
199 tr("<p>An unauthorized system is requesting access to this device." 199 tr("<p>An unauthorized system is requesting access to this device."
200 "<p>If you are using a version of Qtopia Desktop older than 1.5.1, " 200 "<p>If you are using a version of Qtopia Desktop older than 1.5.1, "
201 "please upgrade."), 201 "please upgrade."),
202 QMessageBox::Warning, 202 QMessageBox::Warning,
203 QMessageBox::Cancel, QMessageBox::NoButton, QMessageBox::NoButton, 203 QMessageBox::Cancel, QMessageBox::NoButton, QMessageBox::NoButton,
204 0, QString::null, TRUE, WStyle_StaysOnTop); 204 0, QString::null, TRUE, WStyle_StaysOnTop);
205 unauth.setButtonText(QMessageBox::Cancel, tr("Deny")); 205 unauth.setButtonText(QMessageBox::Cancel, tr("Deny"));
206 unauth.exec(); 206 unauth.exec();
207 207
208 denials++; 208 denials++;
209 lastdenial=now; 209 lastdenial=now;
210 } 210 }
211 return FALSE; 211 return FALSE;
212 } 212 }
213 213
214 // Second, check sync password... 214 // Second, check sync password...
215 215
216 static int lock=0; 216 static int lock=0;
217 if ( lock ) return FALSE; 217 if ( lock ) return FALSE;
218 218
219 ++lock; 219 ++lock;
220 if ( password.left(6) == "Qtopia" ) { 220
221 /*
222 * we need to support old Sync software and QtopiaDesktop
223 */
224 if ( password.left(6) == "Qtopia" || password.left(6) == "rootme" ) {
221 Config cfg( QPEApplication::qpeDir()+"/etc/Security.conf", Config::File ); 225 Config cfg( QPEApplication::qpeDir()+"/etc/Security.conf", Config::File );
222 cfg.setGroup("Sync"); 226 cfg.setGroup("Sync");
223 QStringList pwds = cfg.readListEntry("Passwords",' '); 227 QStringList pwds = cfg.readListEntry("Passwords",' ');
224 for (QStringList::ConstIterator it=pwds.begin(); it!=pwds.end(); ++it) { 228 for (QStringList::ConstIterator it=pwds.begin(); it!=pwds.end(); ++it) {
225#ifndef Q_OS_WIN32 229#ifndef Q_OS_WIN32
226 QString cpassword = QString::fromLocal8Bit( 230 QString cpassword = QString::fromLocal8Bit(
227 crypt( password.mid(8).local8Bit(), (*it).left(2).latin1() ) ); 231 crypt( password.mid(8).local8Bit(), (*it).left(2).latin1() ) );
228#else 232#else
229 // ### revise 233 // ### revise
230 QString cpassword(""); 234 QString cpassword("");
231#endif 235#endif
232 if ( *it == cpassword ) { 236 if ( *it == cpassword ) {
233 lock--; 237 lock--;
234 return TRUE; 238 return TRUE;
235 } 239 }
236 } 240 }
237 241
238 // Unrecognized system. Be careful... 242 // Unrecognized system. Be careful...
239 QMessageBox unrecbox( 243 QMessageBox unrecbox(
240 tr("Sync Connection"), 244 tr("Sync Connection"),
241 tr("<p>An unrecognized system is requesting access to this device." 245 tr("<p>An unrecognized system is requesting access to this device."
242 "<p>If you have just initiated a Sync for the first time, this is normal."), 246 "<p>If you have just initiated a Sync for the first time, this is normal."),
243 QMessageBox::Warning, 247 QMessageBox::Warning,
244 QMessageBox::Cancel, QMessageBox::Yes, QMessageBox::NoButton, 248 QMessageBox::Cancel, QMessageBox::Yes, QMessageBox::NoButton,
245 0, QString::null, TRUE, WStyle_StaysOnTop); 249 0, QString::null, TRUE, WStyle_StaysOnTop);
246 unrecbox.setButtonText(QMessageBox::Cancel, tr("Deny")); 250 unrecbox.setButtonText(QMessageBox::Cancel, tr("Deny"));
247 unrecbox.setButtonText(QMessageBox::Yes, tr("Allow")); 251 unrecbox.setButtonText(QMessageBox::Yes, tr("Allow"));
248 252
249 if ( (denials > 2 && now < lastdenial+600) 253 if ( (denials > 2 && now < lastdenial+600)
250 || unrecbox.exec() != QMessageBox::Yes) 254 || unrecbox.exec() != QMessageBox::Yes)
251 { 255 {
252 denials++; 256 denials++;