summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings2/ppp
Side-by-side diff
Diffstat (limited to 'noncore/settings/networksettings2/ppp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/networksettings2/ppp/PPPAuthGUI.ui150
-rw-r--r--noncore/settings/networksettings2/ppp/PPPAuthedit.cpp42
-rw-r--r--noncore/settings/networksettings2/ppp/PPPAuthedit.h2
-rw-r--r--noncore/settings/networksettings2/ppp/ppp_NN.cpp31
-rw-r--r--noncore/settings/networksettings2/ppp/ppp_NN.h13
-rw-r--r--noncore/settings/networksettings2/ppp/ppp_NNI.cpp108
-rw-r--r--noncore/settings/networksettings2/ppp/ppp_NNI.h21
7 files changed, 250 insertions, 117 deletions
diff --git a/noncore/settings/networksettings2/ppp/PPPAuthGUI.ui b/noncore/settings/networksettings2/ppp/PPPAuthGUI.ui
index 826843a..0c5f4c8 100644
--- a/noncore/settings/networksettings2/ppp/PPPAuthGUI.ui
+++ b/noncore/settings/networksettings2/ppp/PPPAuthGUI.ui
@@ -13,3 +13,3 @@
<y>0</y>
- <width>249</width>
+ <width>245</width>
<height>209</height>
@@ -59,3 +59,3 @@
<name>margin</name>
- <number>0</number>
+ <number>3</number>
</property>
@@ -63,3 +63,3 @@
<name>spacing</name>
- <number>0</number>
+ <number>2</number>
</property>
@@ -193,2 +193,39 @@
<widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout3</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QRadioButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Pap_RB</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Pap</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QRadioButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Chap_RB</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Chap</string>
+ </property>
+ </widget>
+ <widget>
<class>QRadioButton</class>
@@ -196,3 +233,3 @@
<name>name</name>
- <cstring>PapChap_RB</cstring>
+ <cstring>EAP_RB</cstring>
</property>
@@ -200,5 +237,7 @@
<name>text</name>
- <string>Pap/Chap/EAP</string>
+ <string>EAP</string>
</property>
</widget>
+ </hbox>
+ </widget>
<widget>
@@ -277,5 +316,5 @@
<name>spacing</name>
- <number>1</number>
+ <number>2</number>
</property>
- <widget row="2" column="0" >
+ <widget row="1" column="0" >
<class>QLabel</class>
@@ -290,3 +329,3 @@
</widget>
- <widget row="3" column="0" >
+ <widget row="2" column="0" >
<class>QLabel</class>
@@ -301,32 +340,7 @@
</widget>
- <widget row="0" column="1" >
- <class>QComboBox</class>
- <item>
- <property>
- <name>text</name>
- <string>PAP</string>
- </property>
- </item>
- <item>
- <property>
- <name>text</name>
- <string>CHAP</string>
- </property>
- </item>
- <item>
- <property>
- <name>text</name>
- <string>EAP</string>
- </property>
- </item>
- <property stdset="1">
- <name>name</name>
- <cstring>AuthMethod_CB</cstring>
- </property>
- </widget>
- <widget row="1" column="0" >
- <class>QLabel</class>
+ <widget row="1" column="1" >
+ <class>QLineEdit</class>
<property stdset="1">
<name>name</name>
- <cstring>TextLabel1</cstring>
+ <cstring>Server_LE</cstring>
</property>
@@ -334,17 +348,13 @@
<name>text</name>
- <string>Client</string>
+ <string>*</string>
</property>
</widget>
- <widget row="0" column="0" >
- <class>QLabel</class>
+ <widget row="2" column="1" >
+ <class>QLineEdit</class>
<property stdset="1">
<name>name</name>
- <cstring>TextLabel1_4</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Method</string>
+ <cstring>Secret_LE</cstring>
</property>
</widget>
- <widget row="1" column="1" rowspan="1" colspan="2" >
+ <widget row="0" column="1" >
<class>QLineEdit</class>
@@ -359,7 +369,7 @@
</widget>
- <widget row="2" column="1" rowspan="1" colspan="2" >
- <class>QLineEdit</class>
+ <widget row="0" column="0" >
+ <class>QLabel</class>
<property stdset="1">
<name>name</name>
- <cstring>Server_LE</cstring>
+ <cstring>TextLabel1</cstring>
</property>
@@ -367,33 +377,5 @@
<name>text</name>
- <string>*</string>
- </property>
- </widget>
- <widget row="3" column="1" rowspan="1" colspan="2" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Secret_LE</cstring>
+ <string>Client</string>
</property>
</widget>
- <spacer row="0" column="2" >
- <property>
- <name>name</name>
- <cstring>Spacer7</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Horizontal</enum>
- </property>
- <property stdset="1">
- <name>sizeType</name>
- <enum>Expanding</enum>
- </property>
- <property>
- <name>sizeHint</name>
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
</grid>
@@ -419,3 +401,3 @@
<connection>
- <sender>PapChap_RB</sender>
+ <sender>Pap_RB</sender>
<signal>toggled(bool)</signal>
@@ -430,2 +412,14 @@
</connection>
+ <connection>
+ <sender>Chap_RB</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>GroupBox3</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>EAP_RB</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>GroupBox3</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
</connections>
diff --git a/noncore/settings/networksettings2/ppp/PPPAuthedit.cpp b/noncore/settings/networksettings2/ppp/PPPAuthedit.cpp
index f305cc4..450d560 100644
--- a/noncore/settings/networksettings2/ppp/PPPAuthedit.cpp
+++ b/noncore/settings/networksettings2/ppp/PPPAuthedit.cpp
@@ -11,2 +11,9 @@ PPPAuthEdit::PPPAuthEdit( QWidget * Parent ) : PPPAuthGUI( Parent ){
+bool PPPAuthEdit::PAP_Checked( void ) {
+ return ( Pap_RB->isChecked() ||
+ Chap_RB->isChecked() ||
+ EAP_RB->isChecked()
+ );
+}
+
QString PPPAuthEdit::acceptable( void ) {
@@ -21,3 +28,3 @@ QString PPPAuthEdit::acceptable( void ) {
return tr("Password expect missing");
- } else if( PapChap_RB->isChecked() ) {
+ } else if( PAP_Checked() ) {
if( Client_LE->text().isEmpty() )
@@ -36,3 +43,3 @@ bool PPPAuthEdit::commit( PPPData_t & D ) {
if( ( D.Auth.Mode == 0 && ! Login_RB->isChecked() ) ||
- ( D.Auth.Mode == 1 && ! PapChap_RB->isChecked() ) ||
+ ( D.Auth.Mode == 1 && ! PAP_Checked() ) ||
( D.Auth.Mode == 2 && ! Terminal_RB->isChecked() ) ) {
@@ -42,4 +49,3 @@ bool PPPAuthEdit::commit( PPPData_t & D ) {
0 :
- ( ( PapChap_RB->isChecked() ) ?
- 1 : 2 );
+ ( PAP_Checked() ) ? 1 : 2;
}
@@ -51,3 +57,3 @@ bool PPPAuthEdit::commit( PPPData_t & D ) {
TXTM( D.Auth.Password.Send, PasswordSend_LE, SM );
- } else if( PapChap_RB->isChecked() ) {
+ } else if( PAP_Checked() ) {
TXTM( D.Auth.Client, Client_LE, SM );
@@ -55,3 +61,9 @@ bool PPPAuthEdit::commit( PPPData_t & D ) {
TXTM( D.Auth.Secret, Secret_LE, SM );
- CIM( D.Auth.PCEMode, AuthMethod_CB, SM );
+ if( Pap_RB->isChecked() ) {
+ D.Auth.PCEMode = 0;
+ } else if( Chap_RB->isChecked() ) {
+ D.Auth.PCEMode = 1;
+ } else if( EAP_RB->isChecked() ) {
+ D.Auth.PCEMode = 2;
+ }
}
@@ -64,9 +76,19 @@ void PPPAuthEdit::showData( PPPData_t & D ) {
case 0 :
- Login_RB->isChecked();
+ Login_RB->setChecked( TRUE );
+ break;
+ case 1 :
+ switch( D.Auth.PCEMode ) {
+ case 0 :
+ Pap_RB->setChecked( TRUE );
break;
case 1 :
- PapChap_RB->isChecked();
+ Chap_RB->setChecked( TRUE );
break;
case 2 :
- Terminal_RB->isChecked();
+ EAP_RB->setChecked( TRUE );
+ break;
+ }
+ break;
+ case 2 :
+ Terminal_RB->setChecked( TRUE );
break;
@@ -82,4 +104,2 @@ void PPPAuthEdit::showData( PPPData_t & D ) {
Secret_LE->setText( D.Auth.Secret );
-
- AuthMethod_CB->setCurrentItem( D.Auth.PCEMode );
}
diff --git a/noncore/settings/networksettings2/ppp/PPPAuthedit.h b/noncore/settings/networksettings2/ppp/PPPAuthedit.h
index cbd540e..2392569 100644
--- a/noncore/settings/networksettings2/ppp/PPPAuthedit.h
+++ b/noncore/settings/networksettings2/ppp/PPPAuthedit.h
@@ -11,2 +11,4 @@ public :
void showData( PPPData_t & Data );
+ bool PAP_Checked( void );
+
diff --git a/noncore/settings/networksettings2/ppp/ppp_NN.cpp b/noncore/settings/networksettings2/ppp/ppp_NN.cpp
index b7edf87..ff4465c 100644
--- a/noncore/settings/networksettings2/ppp/ppp_NN.cpp
+++ b/noncore/settings/networksettings2/ppp/ppp_NN.cpp
@@ -1 +1,3 @@
+#include <qfile.h>
+#include <qtextstream.h>
#include "ppp_NN.h"
@@ -3,2 +5,4 @@
+QStringList * PPPNetNode::ProperFiles = 0;
+
static const char * PPPNeeds[] =
@@ -13,2 +17,13 @@ static const char * PPPNeeds[] =
PPPNetNode::PPPNetNode() : ANetNode(tr("PPP Connection")) {
+
+ // proper files : will leak
+ ProperFiles =new QStringList;
+ *ProperFiles << "peers";
+ *ProperFiles << "chatscript";
+
+ // system files
+ NSResources->addSystemFile(
+ "pap-secrets", "/tmp/pap-secrets", 0 );
+ NSResources->addSystemFile(
+ "chap-secrets", "/tmp/chap-secrets", 0 );
}
@@ -41,11 +56,13 @@ const char * PPPNetNode::provides( void ) {
-bool PPPNetNode::generateProperFilesFor(
- ANetNodeInstance * ) {
- return 0;
+QStringList * PPPNetNode::properFiles( void ) {
+ return ProperFiles;
+
}
-bool PPPNetNode::generateDeviceDataForCommonFile(
- SystemFile & ,
- long ) {
- return 0;
+// need to generate :
+// /etc/ppp/pap-secrets
+// /etc/ppp/pap-secrets
+bool PPPNetNode::hasDataForFile( const QString & S ) {
+ return S == "pap-secrets" ||
+ S == "chap-secrets" ;
}
diff --git a/noncore/settings/networksettings2/ppp/ppp_NN.h b/noncore/settings/networksettings2/ppp/ppp_NN.h
index b1483c4..249be5a 100644
--- a/noncore/settings/networksettings2/ppp/ppp_NN.h
+++ b/noncore/settings/networksettings2/ppp/ppp_NN.h
@@ -19,6 +19,6 @@ public:
- virtual const QString nodeDescription() ;
+ virtual bool hasDataForFile( const QString & S );
+ virtual const QString nodeDescription() ;
virtual ANetNodeInstance * createInstance( void );
-
virtual const char ** needs( void );
@@ -26,9 +26,4 @@ public:
- virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
- virtual bool hasDataFor( const QString & )
- { return 0; }
- virtual bool generateDeviceDataForCommonFile(
- SystemFile & SF, long DevNr );
-
virtual QString genNic( long NicNr );
+ virtual QStringList * properFiles( void );
@@ -38,2 +33,4 @@ private:
virtual void saveSpecificAttribute( QTextStream & TS );
+
+ static QStringList * ProperFiles;
};
diff --git a/noncore/settings/networksettings2/ppp/ppp_NNI.cpp b/noncore/settings/networksettings2/ppp/ppp_NNI.cpp
index d0fd31c..ba639de 100644
--- a/noncore/settings/networksettings2/ppp/ppp_NNI.cpp
+++ b/noncore/settings/networksettings2/ppp/ppp_NNI.cpp
@@ -1 +1,3 @@
+#include <qfile.h>
+#include <qfileinfo.h>
#include "PPPedit.h"
@@ -115,7 +117,105 @@ void APPP::commit( void ) {
-bool APPP::generateDataForCommonFile(
- SystemFile & ,
- long) {
- return 1;
+QFile * APPP::openFile( const QString & ID ) {
+ QFile * F = 0;
+ QString S;
+
+ if( ID == "peers" ) {
+ S = removeSpaces( QString("/tmp/") + connection()->name() );
+
+ F = new QFile( S );
+
+ if( ! F->open( IO_WriteOnly ) ) {
+ Log(("Cannot open file %s\n", S.latin1() ));
+ return 0;
}
+ } else if ( ID == "chatscripts" ) {
+ S = removeSpaces( QString("/tmp/") + connection()->name() + ".chat" );
+ F = new QFile( S );
+ if( ! F->open( IO_WriteOnly ) ) {
+ Log(("Cannot open file %s\n", S.latin1() ));
+ return 0;
+ }
+ }
+ if( F ) {
+ Log(("Generate proper file %s = %s\n",
+ ID.latin1(), F->name().latin1()));
+ }
+ return F;
+}
+
+short APPP::generateFile( const QString & ID,
+ const QString & Path,
+ QTextStream & TS,
+ long DevNr ) {
+ short rvl, rvd;
+
+ rvl = 1;
+ rvd = 1;
+
+ if( ID == "pap-secrets" ) {
+ Log(("Generate PPP for %s\n", ID.latin1() ));
+ if( Data.Auth.Mode == 1 && Data.Auth.PCEMode == 0 ) {
+ TS << "# secrets for "
+ << connection()->name().latin1()
+ << endl;
+ TS << Data.Auth.Client
+ << " "
+ << Data.Auth.Server
+ << " "
+ << Data.Auth.Secret
+ << endl;
+ rvl = 0;
+ rvd = connection()->getToplevel()->generateFileEmbedded(
+ ID, Path, TS, DevNr );
+ }
+ } else if( ID == "chap-secrets" ) {
+ Log(("Generate PPP for %s\n", ID.latin1() ));
+ if( Data.Auth.Mode == 1 && Data.Auth.PCEMode != 0 ) {
+ // used for both EAP and Chap
+ TS << "# secrets for "
+ << connection()->name().latin1()
+ << endl;
+ TS << Data.Auth.Client
+ << " "
+ << Data.Auth.Server
+ << " "
+ << Data.Auth.Secret
+ << endl;
+
+ rvl = 0;
+ rvd = connection()->getToplevel()->generateFileEmbedded(
+ ID, Path, TS, DevNr );
+ }
+ } else if ( ID == "peers" ) {
+ QFileInfo FI(Path);
+ Log(("Generate PPP for %s\n", ID.latin1() ));
+
+ TS << "connect \"/usr/sbin/chat -v -f /etc/ppp/"
+ << FI.baseName()
+ << ".chat\""
+ << endl;
+
+ if( Data.IP.GWIsDefault ) {
+ TS << "defaultroute"
+ << endl;
+ }
+
+ TS << "linkname "
+ << removeSpaces( ID.latin1() )
+ << endl;
+
+ // insert other data here
+ rvl = 0;
+ rvd = connection()->getToplevel()->generateFileEmbedded(
+ ID, Path, TS, DevNr );
+ } else if ( ID == "chatscripts" ) {
+ Log(("Generate PPP for %s\n", ID.latin1() ));
+ rvl = 0;
+ rvd = connection()->getToplevel()->generateFileEmbedded(
+ ID, Path, TS, DevNr );
+ }
+
+ return (rvd == 2 || rvl == 2 ) ? 2 :
+ (rvd == 0 || rvl == 0 ) ? 0 : 1;
+}
diff --git a/noncore/settings/networksettings2/ppp/ppp_NNI.h b/noncore/settings/networksettings2/ppp/ppp_NNI.h
index 989c2f0..0bf8fa9 100644
--- a/noncore/settings/networksettings2/ppp/ppp_NNI.h
+++ b/noncore/settings/networksettings2/ppp/ppp_NNI.h
@@ -9,2 +9,3 @@ class PPPNetNode;
class PPPEdit;
+class QTextStream;
@@ -16,9 +17,6 @@ public :
- QWidget * edit( QWidget * parent );
- QString acceptable( void );
- void commit( void );
-
RuntimeInfo * runtime( void )
- { if( RT == 0 )
+ { if( RT == 0 ) {
RT = new PPPRun( this, Data );
+ }
return RT->runtimeInfo();
@@ -26,2 +24,6 @@ public :
+ QWidget * edit( QWidget * parent );
+ QString acceptable( void );
+ void commit( void );
+
virtual void * data( void )
@@ -29,7 +31,8 @@ public :
- virtual bool hasDataFor( const QString & )
- { return 0; }
+ virtual QFile * openFile( const QString & ID );
+ short generateFile( const QString & ID,
+ const QString & Path,
+ QTextStream & TS,
+ long DevNr );
- virtual bool generateDataForCommonFile(
- SystemFile & SF, long DevNr );
protected :