summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/transferserver.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/core/launcher/transferserver.cpp b/core/launcher/transferserver.cpp
index 28b7b49..9d18b7b 100644
--- a/core/launcher/transferserver.cpp
+++ b/core/launcher/transferserver.cpp
@@ -151,51 +151,57 @@ bool SyncAuthentication::checkPassword( const QString& password )
151 QString cpassword = QString::fromLocal8Bit( crypt( password.local8Bit(), cpwd.local8Bit() ) ); 151 QString cpassword = QString::fromLocal8Bit( crypt( password.local8Bit(), cpwd.local8Bit() ) );
152 if ( cpwd == cpassword ) 152 if ( cpwd == cpassword )
153 return TRUE; 153 return TRUE;
154#endif 154#endif
155 155
156 static int lastdenial=0; 156 static int lastdenial=0;
157 static int denials=0; 157 static int denials=0;
158 int now = time(0); 158 int now = time(0);
159 159
160 // Detect old Qtopia Desktop (no password) 160 // Detect old Qtopia Desktop (no password)
161 if ( password.isEmpty() ) { 161 if ( password.isEmpty() ) {
162 if ( denials < 1 || now > lastdenial+600 ) { 162 if ( denials < 1 || now > lastdenial+600 ) {
163 QMessageBox::warning( 0,tr("Sync Connection"), 163 QMessageBox::warning( 0,tr("Sync Connection"),
164 tr("<p>An unauthorized system is requesting access to this device." 164 tr("<p>An unauthorized system is requesting access to this device."
165 "<p>If you are using a version of Qtopia Desktop older than 1.5.1, " 165 "<p>If you are using a version of Qtopia Desktop older than 1.5.1, "
166 "please upgrade."), 166 "please upgrade."),
167 tr("Deny") ); 167 tr("Deny") );
168 denials++; 168 denials++;
169 lastdenial=now; 169 lastdenial=now;
170 } 170 }
171 return FALSE; 171 return FALSE;
172 } 172 }
173 173
174 // Second, check sync password... 174 // Second, check sync password...
175 if ( password.left(6) == "rootme" ) { 175 QString pass = password.left(6);
176 // fuckin TT gave us the wrong sync password. 176 /* old QtopiaDesktops are sending
177 // what a dumbassed password is rootme anyway. 177 * rootme newer versions got a Qtopia
178 * prefixed. Qtopia prefix will suceed
179 * until the sync software syncs up
180 * FIXME
181 */
182 if ( pass == "rootme" || pass == "Qtopia") {
183
178 QString cpassword = QString::fromLocal8Bit( crypt( password.mid(8).local8Bit(), "qp" ) ); 184 QString cpassword = QString::fromLocal8Bit( crypt( password.mid(8).local8Bit(), "qp" ) );
179 Config cfg("Security"); 185 Config cfg("Security");
180 cfg.setGroup("Sync"); 186 cfg.setGroup("Sync");
181 QString pwds = cfg.readEntry("Passwords"); 187 QString pwds = cfg.readEntry("Passwords");
182 if ( QStringList::split(QChar(' '),pwds).contains(cpassword) ) 188 if ( QStringList::split(QChar(' '),pwds).contains(cpassword) )
183 return TRUE; 189 return TRUE;
184 190
185 // Unrecognized system. Be careful... 191 // Unrecognized system. Be careful...
186 192
187 if ( (denials > 2 && now < lastdenial+600) 193 if ( (denials > 2 && now < lastdenial+600)
188 || QMessageBox::warning(0,tr("Sync Connection"), 194 || QMessageBox::warning(0,tr("Sync Connection"),
189 tr("<p>An unrecognized system is requesting access to this device." 195 tr("<p>An unrecognized system is requesting access to this device."
190 "<p>If you have just initiated a Sync for the first time, this is normal."), 196 "<p>If you have just initiated a Sync for the first time, this is normal."),
191 tr("Allow"),tr("Deny"))==1 ) 197 tr("Allow"),tr("Deny"))==1 )
192 { 198 {
193 denials++; 199 denials++;
194 lastdenial=now; 200 lastdenial=now;
195 return FALSE; 201 return FALSE;
196 } else { 202 } else {
197 denials=0; 203 denials=0;
198 cfg.writeEntry("Passwords",pwds+" "+cpassword); 204 cfg.writeEntry("Passwords",pwds+" "+cpassword);
199 return TRUE; 205 return TRUE;
200 } 206 }
201 } 207 }