summaryrefslogtreecommitdiff
authorzecke <zecke>2004-02-21 13:08:34 (UTC)
committer zecke <zecke>2004-02-21 13:08:34 (UTC)
commitaa11789fc4d735a04fac09063851753d8a57027b (patch) (side-by-side diff)
tree45a4de1ff38a8a5df0838bc5ebb021e297d669d8
parent6155f1be5c19fc51a4929c9e173f9e5a24d193e6 (diff)
downloadopie-aa11789fc4d735a04fac09063851753d8a57027b.zip
opie-aa11789fc4d735a04fac09063851753d8a57027b.tar.gz
opie-aa11789fc4d735a04fac09063851753d8a57027b.tar.bz2
Yeah baby yeah remove IntelliSync support
and add it to the SyncMode... as it should have been done Keep compatible with the old ored meaning... Now we can have IntelliSync plain text transfer, ask for pw less on connect Opie 1.0 plain text transfer, need pw and allow for syncing Qtopia 1.7 base64 transter , need pw and allow for syncing
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/settings/security/security.cpp106
-rw-r--r--core/settings/security/security.h5
-rw-r--r--core/settings/security/securitybase.ui39
3 files changed, 66 insertions, 84 deletions
diff --git a/core/settings/security/security.cpp b/core/settings/security/security.cpp
index 34f7e50..4eddb55 100644
--- a/core/settings/security/security.cpp
+++ b/core/settings/security/security.cpp
@@ -35,135 +35,136 @@
Security::Security( QWidget* parent, const char* name, WFlags fl )
: SecurityBase( parent, name, TRUE, WStyle_ContextHelp )
{
valid=FALSE;
Config cfg("Security");
cfg.setGroup("Passcode");
passcode = cfg.readEntry("passcode");
passcode_poweron->setChecked(cfg.readBoolEntry("passcode_poweron",FALSE));
cfg.setGroup("Sync");
int auth_peer = cfg.readNumEntry("auth_peer",0xc0a88100);//new default 192.168.129.0/24
int auth_peer_bits = cfg.readNumEntry("auth_peer_bits",24);
selectNet(auth_peer,auth_peer_bits,TRUE);
-
+
connect(syncnet, SIGNAL(textChanged(const QString&)),
this, SLOT(setSyncNet(const QString&)));
- cfg.setGroup("Sync");
- QString sa = cfg.readEntry("syncapp","Qtopia");
- for (int i=0; i<syncapp->count(); i++) {
- if ( syncapp->text(i) == sa ) {
- syncapp->setCurrentItem(i);
- }
- }
-
+
/*
cfg.setGroup("Remote");
if ( telnetAvailable() )
telnet->setChecked(cfg.readEntry("allow_telnet"));
else
telnet->hide();
if ( sshAvailable() )
ssh->setChecked(cfg.readEntry("allow_ssh"));
else
ssh->hide();
*/
QString configFile = QPEApplication::qpeDir() + "/etc/opie-login.conf";
Config loginCfg(configFile,Config::File);
-
+
loginCfg.setGroup("General");
autoLoginName=loginCfg.readEntry("AutoLogin","");
if (autoLoginName.stripWhiteSpace().isEmpty()) {
autoLogin=false;
} else {
autoLogin=true;
}
cfg.setGroup("SyncMode");
int mode = cfg.readNumEntry("Mode",2); // Default to Sharp
- syncModeCombo->setCurrentItem( mode - 1 );
-
- //since nobody knows what this is and it doesn't do anything, i'll hide it # CoreDump
- // is this work-in-progress or can it be removed?
- syncModeCombo->hide();
+ switch( mode ) {
+ case 0x01:
+ syncModeCombo->setCurrentItem( 0 );
+ break;
+ case 0x02:
+ default:
+ syncModeCombo->setCurrentItem( 1 );
+ break;
+ case 0x04:
+ syncModeCombo->setCurrentItem( 2 );
+ break;
+ }
+
connect(autologinToggle, SIGNAL(toggled(bool)), this, SLOT(toggleAutoLogin(bool)));
connect(userlist, SIGNAL(activated(int)), this, SLOT(changeLoginName(int)));
connect(changepasscode,SIGNAL(clicked()), this, SLOT(changePassCode()));
connect(clearpasscode,SIGNAL(clicked()), this, SLOT(clearPassCode()));
- connect(syncapp,SIGNAL(activated(int)), this, SLOT(changeSyncApp()));
- connect(restoredefaults,SIGNAL(clicked()), this, SLOT(restoreDefaults()));
+ connect(restoredefaults,SIGNAL(clicked()), this, SLOT(restoreDefaults()));
connect(deleteentry,SIGNAL(clicked()), this, SLOT(deleteListEntry()));
-
+
loadUsers();
updateGUI();
dl = new QPEDialogListener(this);
QPEApplication::showDialog( this );
}
Security::~Security()
{
}
-void Security::deleteListEntry()
+void Security::deleteListEntry()
{
syncnet->removeItem(syncnet->currentItem());
}
void Security::restoreDefaults()
-{
+{
QMessageBox unrecbox(
tr("Attention"),
tr( "<p>All user-defined net ranges will be lost."),
QMessageBox::Warning,
QMessageBox::Cancel, QMessageBox::Yes, QMessageBox::NoButton,
0, QString::null, TRUE, WStyle_StaysOnTop);
unrecbox.setButtonText(QMessageBox::Cancel, tr("Cancel"));
unrecbox.setButtonText(QMessageBox::Yes, tr("Ok"));
- if ( unrecbox.exec() == QMessageBox::Yes)
+ if ( unrecbox.exec() == QMessageBox::Yes)
{
syncnet->clear();
insertDefaultRanges();
- }
+ }
+ syncModeCombo->setCurrentItem( 2 );
}
void Security::insertDefaultRanges()
-{
+{
syncnet->insertItem( tr( "192.168.129.0/24" ) );
syncnet->insertItem( tr( "192.168.1.0/24" ) );
syncnet->insertItem( tr( "192.168.0.0/16" ) );
syncnet->insertItem( tr( "172.16.0.0/12" ) );
syncnet->insertItem( tr( "10.0.0.0/8" ) );
syncnet->insertItem( tr( "1.0.0.0/8" ) );
syncnet->insertItem( tr( "Any" ) );
syncnet->insertItem( tr( "None" ) );
}
void Security::updateGUI()
{
bool empty = passcode.isEmpty();
changepasscode->setText( empty ? tr("Set passcode" )
: tr("Change passcode" ) );
passcode_poweron->setEnabled( !empty );
clearpasscode->setEnabled( !empty );
autologinToggle->setChecked(autoLogin);
- userlist->setEnabled(autoLogin);
+ userlist->setEnabled(autoLogin);
}
void Security::show()
{
//valid=FALSE;
setEnabled(FALSE);
SecurityBase::show();
if ( passcode.isEmpty() ) {
// could insist...
//changePassCode();
//if ( passcode.isEmpty() )
@@ -228,37 +229,37 @@ void Security::selectNet(int auth_peer,int auth_peer_bits, bool update)
} else {
// 10 ought to be enough for everybody... :)
// If you need more, don't forget to edit applySecurity() as well
bool already_there=FALSE;
for (int i=0; i<10; i++) {
QString target, netrange;
target.sprintf("net%d", i);
netrange = cfg.readEntry(target,"");
if (! netrange.isEmpty()){
//make sure we have no "twin" entries
for (int i=0; i<syncnet->count(); i++) {
if ( syncnet->text(i) == netrange ) {
- already_there=TRUE;
+ already_there=TRUE;
}
}
if (! already_there) {
syncnet->insertItem( tr( netrange ) );
} else {
already_there=FALSE;
- }
- }
+ }
+ }
}
- }
- }
-
+ }
+ }
+
for (int i=0; i<syncnet->count(); i++) {
if ( syncnet->text(i).left(sn.length()) == sn ) {
syncnet->setCurrentItem(i);
return;
}
}
qDebug("No match for \"%s\"",sn.latin1());
}
void Security::parseNet(const QString& sn,int& auth_peer,int& auth_peer_bits)
{
auth_peer=0;
@@ -325,76 +326,77 @@ void Security::setSyncNet(const QString& sn)
void Security::applySecurity()
{
if ( valid ) {
Config cfg("Security");
cfg.setGroup("Passcode");
cfg.writeEntry("passcode",passcode);
cfg.writeEntry("passcode_poweron",passcode_poweron->isChecked());
cfg.setGroup("Sync");
int auth_peer=0;
int auth_peer_bits;
QString sn = syncnet->currentText();
parseNet(sn,auth_peer,auth_peer_bits);
-
+
//this is the *selected* (active) net range
cfg.writeEntry("auth_peer",auth_peer);
cfg.writeEntry("auth_peer_bits",auth_peer_bits);
-
+
//write back all other net ranges in *cleartext*
for (int i=0; i<10; i++) {
QString target;
target.sprintf("net%d", i);
cfg.writeEntry(target,syncnet->text(i));
}
-
- cfg.writeEntry("syncapp",syncapp->currentText());
-
+
+#ifdef ODP
+ #error "Use 0,1,2 and use Launcher"
+#endif
+ /* keep the old code so we don't use currentItem directly */
+ int value = 0x02;
+ switch( syncModeCombo->currentItem() ) {
+ case 0:
+ value = 0x01;
+ break;
+ case 1:
+ value = 0x02;
+ break;
+ case 2:
+ value = 0x04;
+ break;
+ }
+ cfg.setGroup("SyncMode");
+ cfg.writeEntry( "Mode", value );
+
/*
cfg.setGroup("Remote");
if ( telnetAvailable() )
cfg.writeEntry("allow_telnet",telnet->isChecked());
if ( sshAvailable() )
cfg.writeEntry("allow_ssh",ssh->isChecked());
// ### write ssh/telnet sys config files
*/
QString configFile = QPEApplication::qpeDir() + "/etc/opie-login.conf";
Config loginCfg(configFile,Config::File);
loginCfg.setGroup("General");
if (autoLogin) {
loginCfg.writeEntry("AutoLogin",autoLoginName);
} else {
loginCfg.removeEntry("AutoLogin");
}
}
}
-void Security::changeSyncApp()
-{
- // Don't say i didn't tell ya
- if (syncapp->currentText() == "IntelliSync") {
- QMessageBox attn(
- tr("WARNING"),
- tr("<p>Selecting IntelliSync here will disable the FTP password."
- "<p>Every machine in your netrange will be able to sync with "
- "your Zaurus!"),
- QMessageBox::Warning,
- QMessageBox::Cancel, QMessageBox::NoButton, QMessageBox::NoButton,
- 0, QString::null, TRUE, WStyle_StaysOnTop);
- attn.setButtonText(QMessageBox::Cancel, tr("Ok"));
- attn.exec();
- }
- updateGUI();
-}
+
void Security::changeLoginName( int idx )
{
autoLoginName = userlist->text(idx);;
updateGUI();
}
void Security::changePassCode()
{
QString new1;
diff --git a/core/settings/security/security.h b/core/settings/security/security.h
index 72aa352..ed25ce1 100644
--- a/core/settings/security/security.h
+++ b/core/settings/security/security.h
@@ -16,60 +16,59 @@
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef SECURITY_H
#define SECURITY_H
#include "securitybase.h"
class QPEDialogListener;
class Security : public SecurityBase
-{
+{
Q_OBJECT
public:
static QString appName() { return QString::fromLatin1("security"); }
Security( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
~Security();
void show();
protected:
void accept();
void applySecurity();
void done(int);
private slots:
void changePassCode();
void clearPassCode();
void setSyncNet(const QString&);
void changeLoginName(int);
void toggleAutoLogin(bool);
- void changeSyncApp();
void restoreDefaults();
void insertDefaultRanges();
void deleteListEntry();
private:
void loadUsers(void);
bool telnetAvailable() const;
bool sshAvailable() const;
void updateGUI();
static void parseNet(const QString& sn,int& auth_peer,int& auth_peer_bits);
void selectNet(int auth_peer,int auth_peer_bits,bool update);
-
+
QString enterPassCode(const QString&);
QString passcode;
bool valid;
bool autoLogin;
QString autoLoginName;
QPEDialogListener *dl;
};
#endif // SECURITY_H
diff --git a/core/settings/security/securitybase.ui b/core/settings/security/securitybase.ui
index 1769ae1..dcf1d6b 100644
--- a/core/settings/security/securitybase.ui
+++ b/core/settings/security/securitybase.ui
@@ -2,25 +2,25 @@
<class>SecurityBase</class>
<widget>
<class>QDialog</class>
<property stdset="1">
<name>name</name>
<cstring>SecurityBase</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>309</width>
+ <width>327</width>
<height>483</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>Security Settings</string>
</property>
<property>
<name>layoutMargin</name>
</property>
<property>
<name>layoutSpacing</name>
@@ -457,67 +457,48 @@ Beware that all manually entered net ranges will be lost!</string>
<cstring>TextLabel2</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Select your sync software</string>
</property>
</widget>
<widget>
<class>QComboBox</class>
<item>
<property>
<name>text</name>
- <string>QTopia</string>
- </property>
- </item>
- <item>
- <property>
- <name>text</name>
- <string>IntelliSync</string>
- </property>
- </item>
- <property stdset="1">
- <name>name</name>
- <cstring>syncapp</cstring>
- </property>
- <property>
- <name>whatsThis</name>
- <string>This option changes the login behaviour of the internal FTP server.
-
-If you have problems syncing, try the "IntelliSync" setting, which will accept any password you throw at the sync (FTP) port.
-
-The default is Qtopia. It will let you log in with username "root" and password "Qtopia". The password is CaSeSeNsItIvE.</string>
- </property>
- </widget>
- <widget>
- <class>QComboBox</class>
- <item>
- <property>
- <name>text</name>
<string>Qtopia 1.7</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Opie 1.0</string>
</property>
</item>
<item>
<property>
<name>text</name>
- <string>Both</string>
+ <string>IntelliSync</string>
</property>
</item>
<property stdset="1">
<name>name</name>
<cstring>syncModeCombo</cstring>
</property>
+ <property>
+ <name>whatsThis</name>
+ <string>Alter the Sync Protocol to tweak for the different devices.
+ IntelliSync will disable the password check but you'll be prompted to accept the connection.
+ Opie1.0 will be compatible with QtopiaDesktop, MultiSync and KitchenSync
+ Qtopia1.7 will alter the way data is send to the client and will not work with older clients.
+ </string>
+ </property>
</widget>
</vbox>
</widget>
</grid>
</widget>
</widget>
</vbox>
</widget>
</UI>