-rw-r--r-- | core/launcher/transferserver.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/core/launcher/transferserver.cpp b/core/launcher/transferserver.cpp index 1d4ca40..2b2e435 100644 --- a/core/launcher/transferserver.cpp +++ b/core/launcher/transferserver.cpp | |||
@@ -223,25 +223,24 @@ bool SyncAuthentication::checkPassword( const QString& password ) | |||
223 | 223 | ||
224 | // Second, check sync password... | 224 | // Second, check sync password... |
225 | 225 | ||
226 | static int lock=0; | 226 | static int lock=0; |
227 | if ( lock ) return FALSE; | 227 | if ( lock ) return FALSE; |
228 | 228 | ||
229 | ++lock; | 229 | ++lock; |
230 | 230 | ||
231 | /* | 231 | /* |
232 | * we need to support old Sync software and QtopiaDesktop | 232 | * we need to support old Sync software and QtopiaDesktop |
233 | */ | 233 | */ |
234 | if ( password.left(6) == "Qtopia" || password.left(6) == "rootme" ) { | 234 | if ( password.left(6) == "Qtopia" || password.left(6) == "rootme" ) { |
235 | Config cfg( "Security" ); | ||
236 | cfg.setGroup("Sync"); | 235 | cfg.setGroup("Sync"); |
237 | QStringList pwds = cfg.readListEntry("Passwords",' '); | 236 | QStringList pwds = cfg.readListEntry("Passwords",' '); |
238 | for (QStringList::ConstIterator it=pwds.begin(); it!=pwds.end(); ++it) { | 237 | for (QStringList::ConstIterator it=pwds.begin(); it!=pwds.end(); ++it) { |
239 | #ifndef Q_OS_WIN32 | 238 | #ifndef Q_OS_WIN32 |
240 | QString cpassword = QString::fromLocal8Bit( | 239 | QString cpassword = QString::fromLocal8Bit( |
241 | crypt( password.mid(8).local8Bit(), (*it).left(2).latin1() ) ); | 240 | crypt( password.mid(8).local8Bit(), (*it).left(2).latin1() ) ); |
242 | #else | 241 | #else |
243 | // ### revise | 242 | // ### revise |
244 | QString cpassword(""); | 243 | QString cpassword(""); |
245 | #endif | 244 | #endif |
246 | if ( *it == cpassword ) { | 245 | if ( *it == cpassword ) { |
247 | lock--; | 246 | lock--; |
@@ -371,26 +370,28 @@ void ServerPI::send( const QString& msg ) | |||
371 | //odebug << "Reply: " << msg << "" << oendl; | 370 | //odebug << "Reply: " << msg << "" << oendl; |
372 | } | 371 | } |
373 | 372 | ||
374 | void ServerPI::read() | 373 | void ServerPI::read() |
375 | { | 374 | { |
376 | while ( canReadLine() ) | 375 | while ( canReadLine() ) |
377 | process( readLine().stripWhiteSpace() ); | 376 | process( readLine().stripWhiteSpace() ); |
378 | } | 377 | } |
379 | 378 | ||
380 | bool ServerPI::checkReadFile( const QString& file ) | 379 | bool ServerPI::checkReadFile( const QString& file ) |
381 | { | 380 | { |
382 | QString filename; | 381 | QString filename; |
383 | 382 | ||
384 | if ( file[0] != "/" ) | 383 | if ( file.length() == 1 && file[0] == "/" ) |
384 | filename = file; | ||
385 | else if ( file[0] != "/" ) | ||
385 | filename = directory.path() + "/" + file; | 386 | filename = directory.path() + "/" + file; |
386 | else | 387 | else |
387 | filename = file; | 388 | filename = file; |
388 | 389 | ||
389 | QFileInfo fi( filename ); | 390 | QFileInfo fi( filename ); |
390 | return ( fi.exists() && fi.isReadable() ); | 391 | return ( fi.exists() && fi.isReadable() ); |
391 | } | 392 | } |
392 | 393 | ||
393 | bool ServerPI::checkWriteFile( const QString& file ) | 394 | bool ServerPI::checkWriteFile( const QString& file ) |
394 | { | 395 | { |
395 | QString filename; | 396 | QString filename; |
396 | 397 | ||
@@ -688,24 +689,27 @@ void ServerPI::process( const QString& message ) | |||
688 | else | 689 | else |
689 | send( "550 Requested action not taken" ); // No tr | 690 | send( "550 Requested action not taken" ); // No tr |
690 | } | 691 | } |
691 | } | 692 | } |
692 | 693 | ||
693 | // print working directory (PWD) | 694 | // print working directory (PWD) |
694 | else if ( cmd == "PWD" ) { | 695 | else if ( cmd == "PWD" ) { |
695 | send( "257 \"" + directory.path() +"\"" ); | 696 | send( "257 \"" + directory.path() +"\"" ); |
696 | } | 697 | } |
697 | 698 | ||
698 | // list (LIST) | 699 | // list (LIST) |
699 | else if ( cmd == "LIST" ) { | 700 | else if ( cmd == "LIST" ) { |
701 | if ( args == "-la" ) | ||
702 | args = QString::null; | ||
703 | |||
700 | if ( sendList( absFilePath( args ) ) ) | 704 | if ( sendList( absFilePath( args ) ) ) |
701 | send( "150 File status okay" ); // No tr | 705 | send( "150 File status okay" ); // No tr |
702 | else | 706 | else |
703 | send( "500 Syntax error, command unrecognized" ); // No tr | 707 | send( "500 Syntax error, command unrecognized" ); // No tr |
704 | } | 708 | } |
705 | 709 | ||
706 | // size (SIZE) | 710 | // size (SIZE) |
707 | else if ( cmd == "SIZE" ) { | 711 | else if ( cmd == "SIZE" ) { |
708 | QString filePath = absFilePath( args ); | 712 | QString filePath = absFilePath( args ); |
709 | QFileInfo fi( filePath ); | 713 | QFileInfo fi( filePath ); |
710 | bool gzipfile = backupRestoreGzip( filePath ); | 714 | bool gzipfile = backupRestoreGzip( filePath ); |
711 | if ( !fi.exists() && !gzipfile ) | 715 | if ( !fi.exists() && !gzipfile ) |