summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp22
-rw-r--r--noncore/settings/networksettings2/bluetooth/bluetooth_NN.h10
-rw-r--r--noncore/settings/networksettings2/cable/cable_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/cable/cable_NN.h2
-rw-r--r--noncore/settings/networksettings2/irda/irda_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/irda/irda_NN.h2
-rw-r--r--noncore/settings/networksettings2/lancard/lancard_NN.cpp13
-rw-r--r--noncore/settings/networksettings2/lancard/lancard_NN.h8
-rw-r--r--noncore/settings/networksettings2/modem/modem_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/modem/modem_NN.h2
-rw-r--r--noncore/settings/networksettings2/network/network_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/network/network_NN.h2
-rw-r--r--noncore/settings/networksettings2/networksettings2/netnode.cpp47
-rw-r--r--noncore/settings/networksettings2/networksettings2/netnode.h92
-rw-r--r--noncore/settings/networksettings2/networksettings2/resources.h12
-rw-r--r--noncore/settings/networksettings2/nsdata.cpp53
-rw-r--r--noncore/settings/networksettings2/nsdata.h3
-rw-r--r--noncore/settings/networksettings2/ppp/ppp_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/ppp/ppp_NN.h2
-rw-r--r--noncore/settings/networksettings2/profile/profile_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/profile/profile_NN.h2
-rw-r--r--noncore/settings/networksettings2/usb/usb_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/usb/usb_NN.h2
-rw-r--r--noncore/settings/networksettings2/vpn/vpn_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/vpn/vpn_NN.h2
-rw-r--r--noncore/settings/networksettings2/wlan/wlan_NN.cpp13
-rw-r--r--noncore/settings/networksettings2/wlan/wlan_NN.h8
27 files changed, 217 insertions, 128 deletions
diff --git a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp
index 3d1aa69..4579e37 100644
--- a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp
+++ b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp
@@ -16,6 +16,7 @@ static const char * BluetoothBNEPNeeds[] =
16 * Constructor, find all of the possible interfaces 16 * Constructor, find all of the possible interfaces
17 */ 17 */
18BluetoothBNEPNetNode::BluetoothBNEPNetNode() : ANetNode() { 18BluetoothBNEPNetNode::BluetoothBNEPNetNode() : ANetNode() {
19 InstanceCount = 7; // default
19} 20}
20 21
21/** 22/**
@@ -64,9 +65,22 @@ QString BluetoothBNEPNetNode::genNic( long nr ) {
64 return S.sprintf( "bnep%ld", nr ); 65 return S.sprintf( "bnep%ld", nr );
65} 66}
66 67
68
69void BluetoothBNEPNetNode::setSpecificAttribute( QString & A, QString & V ) {
70 if( A == "interfacecount" ) {
71 InstanceCount = V.toLong();
72 }
73}
74
75void BluetoothBNEPNetNode::saveSpecificAttribute( QTextStream & TS) {
76 TS << "interfacecount="
77 << InstanceCount
78 << endl;
79}
80
67// 81//
68// 82//
69// BLUETOOTH PAN/NAP node 83// BLUETOOTH RFCOMM
70// 84//
71// 85//
72 86
@@ -115,6 +129,12 @@ bool BluetoothRFCOMMNetNode::generateDeviceDataForCommonFile(
115 return 0; 129 return 0;
116} 130}
117 131
132void BluetoothRFCOMMNetNode::setSpecificAttribute( QString &, QString & ) {
133}
134
135void BluetoothRFCOMMNetNode::saveSpecificAttribute( QTextStream & ) {
136}
137
118extern "C" { 138extern "C" {
119void create_plugin( QList<ANetNode> & PNN ) { 139void create_plugin( QList<ANetNode> & PNN ) {
120 PNN.append( new BluetoothBNEPNetNode() ); 140 PNN.append( new BluetoothBNEPNetNode() );
diff --git a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h
index 5cd6c52..882d2e3 100644
--- a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h
+++ b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h
@@ -33,11 +33,17 @@ public:
33 SystemFile & , long DevNr ); 33 SystemFile & , long DevNr );
34 34
35 virtual long instanceCount( void ) 35 virtual long instanceCount( void )
36 { return 7; } 36 { return InstanceCount; }
37 virtual QString genNic( long ); 37 virtual QString genNic( long );
38 38
39private: 39private:
40 40
41 virtual void setSpecificAttribute( QString & Attr, QString & Value );
42 virtual void saveSpecificAttribute( QTextStream & TS );
43
44 // number of interfaces for this device
45 long InstanceCount;
46
41}; 47};
42 48
43class BluetoothRFCOMMNetNode : public ANetNode { 49class BluetoothRFCOMMNetNode : public ANetNode {
@@ -69,6 +75,8 @@ public:
69 75
70private: 76private:
71 77
78 virtual void setSpecificAttribute( QString & Attr, QString & Value );
79 virtual void saveSpecificAttribute( QTextStream & TS );
72}; 80};
73 81
74extern "C" 82extern "C"
diff --git a/noncore/settings/networksettings2/cable/cable_NN.cpp b/noncore/settings/networksettings2/cable/cable_NN.cpp
index a6be4d5..dd41c1f 100644
--- a/noncore/settings/networksettings2/cable/cable_NN.cpp
+++ b/noncore/settings/networksettings2/cable/cable_NN.cpp
@@ -47,6 +47,12 @@ bool CableNetNode::generateDeviceDataForCommonFile(
47 return 1; 47 return 1;
48} 48}
49 49
50void CableNetNode::setSpecificAttribute( QString & , QString & ) {
51}
52
53void CableNetNode::saveSpecificAttribute( QTextStream & ) {
54}
55
50extern "C" { 56extern "C" {
51void create_plugin( QList<ANetNode> & PNN ) { 57void create_plugin( QList<ANetNode> & PNN ) {
52 PNN.append( new CableNetNode() ); 58 PNN.append( new CableNetNode() );
diff --git a/noncore/settings/networksettings2/cable/cable_NN.h b/noncore/settings/networksettings2/cable/cable_NN.h
index 83b98e0..b37f31a 100644
--- a/noncore/settings/networksettings2/cable/cable_NN.h
+++ b/noncore/settings/networksettings2/cable/cable_NN.h
@@ -35,6 +35,8 @@ public:
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
diff --git a/noncore/settings/networksettings2/irda/irda_NN.cpp b/noncore/settings/networksettings2/irda/irda_NN.cpp
index 96327a5..49b7707 100644
--- a/noncore/settings/networksettings2/irda/irda_NN.cpp
+++ b/noncore/settings/networksettings2/irda/irda_NN.cpp
@@ -47,6 +47,12 @@ bool IRDANetNode::generateDeviceDataForCommonFile(
47 return 1; 47 return 1;
48} 48}
49 49
50void IRDANetNode::setSpecificAttribute( QString & , QString & ) {
51}
52
53void IRDANetNode::saveSpecificAttribute( QTextStream & ) {
54}
55
50extern "C" { 56extern "C" {
51void create_plugin( QList<ANetNode> & PNN ) { 57void create_plugin( QList<ANetNode> & PNN ) {
52 PNN.append( new IRDANetNode() ); 58 PNN.append( new IRDANetNode() );
diff --git a/noncore/settings/networksettings2/irda/irda_NN.h b/noncore/settings/networksettings2/irda/irda_NN.h
index a5b6cc5..2dcef74 100644
--- a/noncore/settings/networksettings2/irda/irda_NN.h
+++ b/noncore/settings/networksettings2/irda/irda_NN.h
@@ -35,6 +35,8 @@ public:
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
diff --git a/noncore/settings/networksettings2/lancard/lancard_NN.cpp b/noncore/settings/networksettings2/lancard/lancard_NN.cpp
index 480ddf9..ba1c1f8 100644
--- a/noncore/settings/networksettings2/lancard/lancard_NN.cpp
+++ b/noncore/settings/networksettings2/lancard/lancard_NN.cpp
@@ -8,6 +8,7 @@ static const char * LanCardNeeds[] =
8 * Constructor, find all of the possible interfaces 8 * Constructor, find all of the possible interfaces
9 */ 9 */
10LanCardNetNode::LanCardNetNode() : ANetNode() { 10LanCardNetNode::LanCardNetNode() : ANetNode() {
11 InstanceCount = 2;
11} 12}
12 13
13/** 14/**
@@ -65,6 +66,18 @@ QString LanCardNetNode::genNic( long nr ) {
65 return S.sprintf( "eth%ld", nr ); 66 return S.sprintf( "eth%ld", nr );
66} 67}
67 68
69void LanCardNetNode::setSpecificAttribute( QString & A, QString & V ) {
70 if( A == "interfacecount" ) {
71 InstanceCount = V.toLong();
72 }
73}
74
75void LanCardNetNode::saveSpecificAttribute( QTextStream & TS) {
76 TS << "interfacecount="
77 << InstanceCount
78 << endl;
79}
80
68extern "C" { 81extern "C" {
69void create_plugin( QList<ANetNode> & PNN ) { 82void create_plugin( QList<ANetNode> & PNN ) {
70 PNN.append( new LanCardNetNode() ); 83 PNN.append( new LanCardNetNode() );
diff --git a/noncore/settings/networksettings2/lancard/lancard_NN.h b/noncore/settings/networksettings2/lancard/lancard_NN.h
index dcdd0da..5f2b25d 100644
--- a/noncore/settings/networksettings2/lancard/lancard_NN.h
+++ b/noncore/settings/networksettings2/lancard/lancard_NN.h
@@ -33,12 +33,18 @@ public:
33 SystemFile & SF, long DevNr ); 33 SystemFile & SF, long DevNr );
34 34
35 virtual long instanceCount( void ) 35 virtual long instanceCount( void )
36 { return 2; } 36 { return InstanceCount; }
37 37
38 virtual QString genNic( long ); 38 virtual QString genNic( long );
39 39
40private: 40private:
41 41
42 virtual void setSpecificAttribute( QString & Attr, QString & Value );
43 virtual void saveSpecificAttribute( QTextStream & TS );
44
45 // number of interfaces for this device
46 long InstanceCount;
47
42}; 48};
43 49
44extern "C" 50extern "C"
diff --git a/noncore/settings/networksettings2/modem/modem_NN.cpp b/noncore/settings/networksettings2/modem/modem_NN.cpp
index 65b06ee..1cc8524 100644
--- a/noncore/settings/networksettings2/modem/modem_NN.cpp
+++ b/noncore/settings/networksettings2/modem/modem_NN.cpp
@@ -48,6 +48,12 @@ bool ModemNetNode::generateDeviceDataForCommonFile(
48 return 1; 48 return 1;
49} 49}
50 50
51void ModemNetNode::setSpecificAttribute( QString & , QString & ) {
52}
53
54void ModemNetNode::saveSpecificAttribute( QTextStream & ) {
55}
56
51extern "C" { 57extern "C" {
52void create_plugin( QList<ANetNode> & PNN ) { 58void create_plugin( QList<ANetNode> & PNN ) {
53 PNN.append( new ModemNetNode() ); 59 PNN.append( new ModemNetNode() );
diff --git a/noncore/settings/networksettings2/modem/modem_NN.h b/noncore/settings/networksettings2/modem/modem_NN.h
index 49244b2..849f928 100644
--- a/noncore/settings/networksettings2/modem/modem_NN.h
+++ b/noncore/settings/networksettings2/modem/modem_NN.h
@@ -35,6 +35,8 @@ public:
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
diff --git a/noncore/settings/networksettings2/network/network_NN.cpp b/noncore/settings/networksettings2/network/network_NN.cpp
index 4a77e6a..d27d54a 100644
--- a/noncore/settings/networksettings2/network/network_NN.cpp
+++ b/noncore/settings/networksettings2/network/network_NN.cpp
@@ -49,6 +49,12 @@ bool NetworkNetNode::generateDeviceDataForCommonFile(
49 return 1; 49 return 1;
50} 50}
51 51
52void NetworkNetNode::setSpecificAttribute( QString & , QString & ) {
53}
54
55void NetworkNetNode::saveSpecificAttribute( QTextStream & ) {
56}
57
52extern "C" { 58extern "C" {
53void create_plugin( QList<ANetNode> & PNN ) { 59void create_plugin( QList<ANetNode> & PNN ) {
54 PNN.append( new NetworkNetNode() ); 60 PNN.append( new NetworkNetNode() );
diff --git a/noncore/settings/networksettings2/network/network_NN.h b/noncore/settings/networksettings2/network/network_NN.h
index 59f0526..0f87e1b 100644
--- a/noncore/settings/networksettings2/network/network_NN.h
+++ b/noncore/settings/networksettings2/network/network_NN.h
@@ -35,6 +35,8 @@ public:
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
diff --git a/noncore/settings/networksettings2/networksettings2/netnode.cpp b/noncore/settings/networksettings2/networksettings2/netnode.cpp
index fcc6044..3691e5a 100644
--- a/noncore/settings/networksettings2/networksettings2/netnode.cpp
+++ b/noncore/settings/networksettings2/networksettings2/netnode.cpp
@@ -45,9 +45,24 @@ QString quote( QString X ) {
45 return X; 45 return X;
46} 46}
47 47
48
49//
50//
51// ANETNODE
52//
48// 53//
54
55void ANetNode::saveAttributes( QTextStream & TS ) {
56 saveSpecificAttribute( TS );
57}
58
59void ANetNode::setAttribute( QString & Attr, QString & Value ){
60 setSpecificAttribute( Attr, Value );
61}
62
49// 63//
50// 64//
65// ANETNODEINSTANCE
51// 66//
52// 67//
53 68
@@ -82,7 +97,7 @@ ANetNodeInstance * ANetNodeInstance::nextNode( void ) {
82 97
83// 98//
84// 99//
85// 100// NODECOLLECTION
86// 101//
87// 102//
88 103
@@ -269,6 +284,12 @@ void NodeCollection::reassign( void ) {
269 } 284 }
270} 285}
271 286
287//
288//
289// RUNTIMEINFO
290//
291//
292
272InterfaceInfo * RuntimeInfo::assignedInterface( void ) { 293InterfaceInfo * RuntimeInfo::assignedInterface( void ) {
273 return netNode()->nextNode()->runtime()->assignedInterface(); 294 return netNode()->nextNode()->runtime()->assignedInterface();
274} 295}
@@ -276,27 +297,3 @@ InterfaceInfo * RuntimeInfo::assignedInterface( void ) {
276AsDevice * RuntimeInfo::device( void ) { 297AsDevice * RuntimeInfo::device( void ) {
277 return netNode()->nextNode()->runtime()->device(); 298 return netNode()->nextNode()->runtime()->device();
278} 299}
279
280ANetNodeInstance * FakeNetNode::createInstance( void ) {
281 return new FakeNetNodeInstance( this );
282}
283
284void FakeNetNodeInstance::setSpecificAttribute(
285 QString & A, QString & V ) {
286 ValAttrPairs.insert( A, new QString(V) );
287}
288
289void FakeNetNodeInstance::saveSpecificAttribute( QTextStream &TS ) {
290 for( QDictIterator<QString> it( ValAttrPairs );
291 it.current();
292 ++ it ) {
293 TS << it.currentKey().latin1()
294 << "="
295 << quote( *(it.current()))
296 << endl ;
297 ++it;
298 }
299}
300
301// collects all info that no plugin acceps
302FakeNetNode * FakeNode = 0;
diff --git a/noncore/settings/networksettings2/networksettings2/netnode.h b/noncore/settings/networksettings2/networksettings2/netnode.h
index 9681c6e..6ec9ef6 100644
--- a/noncore/settings/networksettings2/networksettings2/netnode.h
+++ b/noncore/settings/networksettings2/networksettings2/netnode.h
@@ -115,6 +115,10 @@ public:
115 virtual long instanceCount( void ) 115 virtual long instanceCount( void )
116 { return 1; } 116 { return 1; }
117 117
118 // set the value of an attribute
119 void setAttribute( QString & Attr, QString & Value ) ;
120 void saveAttributes( QTextStream & TS ) ;
121
118 // compiled references to 'needed' NetNodes -> needs list 122 // compiled references to 'needed' NetNodes -> needs list
119 void setAlternatives( NetNodeList * Alt ) 123 void setAlternatives( NetNodeList * Alt )
120 { Alternatives = Alt; } 124 { Alternatives = Alt; }
@@ -126,6 +130,10 @@ protected :
126 NetNodeList * Alternatives; 130 NetNodeList * Alternatives;
127 131
128private : 132private :
133
134 virtual void setSpecificAttribute( QString & , QString & ) = 0;
135 virtual void saveSpecificAttribute( QTextStream & ) = 0;
136
129}; 137};
130 138
131class ANetNodeInstance : public QObject { 139class ANetNodeInstance : public QObject {
@@ -378,88 +386,4 @@ private :
378 386
379}; 387};
380 388
381//
382// special node that is used to remember entries for plugins
383// that seem missing. This way we never loose data
384//
385
386class FakeNetNode : public ANetNode {
387
388public:
389
390 FakeNetNode( ) { };
391 virtual ~FakeNetNode(){};
392
393 const QString pixmapName()
394 { return QString(""); }
395 const QString nodeName()
396 { return QString("Fake node" ); }
397 const QString nodeDescription()
398 { return QString("Fake node" ); }
399 ANetNodeInstance * createInstance( void );
400 const char * provides( void )
401 { return ""; }
402 virtual const char ** needs( void )
403 { return 0; }
404 virtual bool generateProperFilesFor( ANetNodeInstance * )
405 { return 0; }
406 virtual bool hasDataFor( const QString & )
407 { return 0; }
408 virtual bool generateDeviceDataForCommonFile(
409 SystemFile & , long )
410 {return 1; }
411
412private :
413
414};
415
416class FakeNetNodeInstance : public ANetNodeInstance {
417
418public:
419
420 FakeNetNodeInstance( ANetNode * NN ) :
421 ANetNodeInstance( NN ), ValAttrPairs() { }
422 virtual ~FakeNetNodeInstance( void ) { }
423
424 virtual RuntimeInfo * runtime( void )
425 { return 0; }
426
427 // create edit widget under parent
428 virtual QWidget * edit( QWidget * )
429 { return 0; }
430 // is given data acceptable
431 virtual QString acceptable( void )
432 { return QString(""); }
433
434 // get data from GUI and store in node
435 virtual void commit( void ) {}
436
437 // get next node
438 ANetNodeInstance * nextNode()
439 { return 0; }
440 // return NetNode this is an instance of
441
442 // intialize am instance of a net node
443 void initialize( void ){}
444
445 // returns node specific data -> only useful for 'buddy'
446 virtual void * data( void )
447 { return 0; }
448
449 virtual bool hasDataFor( const QString & )
450 { return 0; }
451
452 virtual bool generateDataForCommonFile( SystemFile & , long )
453 { return 1; }
454
455protected :
456
457 virtual void setSpecificAttribute( QString & , QString & );
458 virtual void saveSpecificAttribute( QTextStream & );
459
460 QDict<QString> ValAttrPairs;
461};
462
463extern FakeNetNode * FakeNode;
464
465#endif 389#endif
diff --git a/noncore/settings/networksettings2/networksettings2/resources.h b/noncore/settings/networksettings2/networksettings2/resources.h
index 3048fb3..7050f10 100644
--- a/noncore/settings/networksettings2/networksettings2/resources.h
+++ b/noncore/settings/networksettings2/networksettings2/resources.h
@@ -55,6 +55,10 @@ public :
55 { return AllNodeTypes; } 55 { return AllNodeTypes; }
56 bool netNodeExists( const QString & X ) 56 bool netNodeExists( const QString & X )
57 { return AllNodeTypes.find(X)!=0; } 57 { return AllNodeTypes.find(X)!=0; }
58 ANetNode * findNetNode( const QString & N )
59 { NetNode_t * NNT = AllNodeTypes.find(N);
60 return (NNT) ? NNT->NetNode : 0;
61 }
58 62
59 Name2SystemFile_t & systemFiles( void ) 63 Name2SystemFile_t & systemFiles( void )
60 { return SystemFiles; } 64 { return SystemFiles; }
@@ -64,14 +68,10 @@ public :
64 ANetNodeInstance * createNodeInstance( const QString & S ) 68 ANetNodeInstance * createNodeInstance( const QString & S )
65 { ANetNodeInstance * NNI = 0; 69 { ANetNodeInstance * NNI = 0;
66 NetNode_t * NNT = AllNodeTypes[S]; 70 NetNode_t * NNT = AllNodeTypes[S];
67 ANetNode * NN;
68 if( ! NNT ) { 71 if( ! NNT ) {
69 NN = FakeNode = 72 return 0;
70 ( FakeNode ) ? FakeNode : new FakeNetNode();
71 } else {
72 NN = NNT->NetNode;
73 } 73 }
74 NNI = NN->createInstance(); 74 NNI = NNT->NetNode->createInstance();
75 NNI->initialize(); 75 NNI->initialize();
76 return NNI; 76 return NNI;
77 } 77 }
diff --git a/noncore/settings/networksettings2/nsdata.cpp b/noncore/settings/networksettings2/nsdata.cpp
index b4d9aaa..13979ce 100644
--- a/noncore/settings/networksettings2/nsdata.cpp
+++ b/noncore/settings/networksettings2/nsdata.cpp
@@ -31,8 +31,7 @@ NetworkSettingsData::~NetworkSettingsData( void ) {
31} 31}
32 32
33void NetworkSettingsData::loadSettings( void ) { 33void NetworkSettingsData::loadSettings( void ) {
34 QString S; 34 QString Line, S;
35 ANetNodeInstance* NNI;
36 QString Attr, Value; 35 QString Attr, Value;
37 long idx; 36 long idx;
38 37
@@ -57,7 +56,7 @@ void NetworkSettingsData::loadSettings( void ) {
57 <EMPTYLINE> 56 <EMPTYLINE>
58 */ 57 */
59 while( ! TS.atEnd() ) { 58 while( ! TS.atEnd() ) {
60 S = TS.readLine(); 59 S = Line = TS.readLine();
61 60
62 if ( S.isEmpty() || S[0] != '[' ) 61 if ( S.isEmpty() || S[0] != '[' )
63 continue; 62 continue;
@@ -73,20 +72,26 @@ void NetworkSettingsData::loadSettings( void ) {
73 NodeCollection * NC = new NodeCollection( TS ); 72 NodeCollection * NC = new NodeCollection( TS );
74 NSResources->addConnection( NC ); 73 NSResources->addConnection( NC );
75 } else { 74 } else {
76 // load nodes 75 ANetNode * NN = 0;
76 ANetNodeInstance* NNI = 0;
77 if( S.startsWith( "nodetype " ) ) {
78 S = S.mid( 9, S.length()-9-1 );
79 fprintf( stderr, "Node %s\n", S.latin1() );
80 // try to find netnode
81 NN = NSResources->findNetNode( S );
82 } else {
83 // try to find instance
77 NNI = NSResources->createNodeInstance( S ); 84 NNI = NSResources->createNodeInstance( S );
78 if( ! NNI ) {
79 printf( "SKIPPING %s\n", S.latin1() );
80 } 85 }
81 86
82 do { 87 do {
83 S = TS.readLine(); 88 S = TS.readLine();
89
90 if( NN || NNI ) {
84 if( S.isEmpty() ) { 91 if( S.isEmpty() ) {
85 // empty line 92 // empty line
86 break; 93 break;
87 } 94 }
88 // node found ?
89 if( NNI ) {
90 idx = S.find( '=' ); 95 idx = S.find( '=' );
91 if( idx > 0 ) { 96 if( idx > 0 ) {
92 Attr = S.left( idx ); 97 Attr = S.left( idx );
@@ -102,10 +107,21 @@ void NetworkSettingsData::loadSettings( void ) {
102 // dequote Attr 107 // dequote Attr
103 Value = deQuote(Value); 108 Value = deQuote(Value);
104 109
110 if( NN ) {
111 // set the attribute
112 NNI->setAttribute( Attr, Value );
113 } else {
105 // set the attribute 114 // set the attribute
106 NNI->setAttribute( Attr, Value ); 115 NNI->setAttribute( Attr, Value );
107 } 116 }
108 117 } else {
118 LeftOvers.append( Line );
119 // add empty line too as delimiter
120 if( S.isEmpty() ) {
121 // empty line
122 break;
123 }
124 }
109 } while( 1 ); 125 } while( 1 );
110 if( NNI ) { 126 if( NNI ) {
111 // loading from file -> exists 127 // loading from file -> exists
@@ -138,6 +154,25 @@ QString NetworkSettingsData::saveSettings( void ) {
138 } 154 }
139 155
140 QTextStream TS( &F ); 156 QTextStream TS( &F );
157
158 // save leftovers
159 for ( QStringList::Iterator it = LeftOvers.begin();
160 it != LeftOvers.end(); ++it ) {
161 TS << (*it) << endl;
162 }
163
164 // save global configs
165 for( QDictIterator<NetNode_t> it( NSResources->netNodes() );
166 it.current();
167 ++it ) {
168 TS << "[nodetype "
169 << it.current()->NetNode->name()
170 << "]"
171 << endl;
172
173 it.current()->NetNode->saveAttributes( TS );
174 }
175
141 { Name2Connection_t & M = NSResources->connections(); 176 { Name2Connection_t & M = NSResources->connections();
142 ANetNodeInstance * NNI; 177 ANetNodeInstance * NNI;
143 178
diff --git a/noncore/settings/networksettings2/nsdata.h b/noncore/settings/networksettings2/nsdata.h
index eb96930..57eb722 100644
--- a/noncore/settings/networksettings2/nsdata.h
+++ b/noncore/settings/networksettings2/nsdata.h
@@ -38,6 +38,9 @@ private :
38 bool IsModified; 38 bool IsModified;
39 bool Force; 39 bool Force;
40 40
41 // collect strings in config file nobody wants
42 QStringList LeftOvers;
43
41}; 44};
42 45
43#endif 46#endif
diff --git a/noncore/settings/networksettings2/ppp/ppp_NN.cpp b/noncore/settings/networksettings2/ppp/ppp_NN.cpp
index b3f70c5..0bf415b 100644
--- a/noncore/settings/networksettings2/ppp/ppp_NN.cpp
+++ b/noncore/settings/networksettings2/ppp/ppp_NN.cpp
@@ -55,6 +55,12 @@ QString PPPNetNode::genNic( long NicNr ) {
55 return S.sprintf( "ppp%ld", NicNr ); 55 return S.sprintf( "ppp%ld", NicNr );
56} 56}
57 57
58void PPPNetNode::setSpecificAttribute( QString & , QString & ) {
59}
60
61void PPPNetNode::saveSpecificAttribute( QTextStream & ) {
62}
63
58extern "C" { 64extern "C" {
59void create_plugin( QList<ANetNode> & PNN ) { 65void create_plugin( QList<ANetNode> & PNN ) {
60 PNN.append( new PPPNetNode() ); 66 PNN.append( new PPPNetNode() );
diff --git a/noncore/settings/networksettings2/ppp/ppp_NN.h b/noncore/settings/networksettings2/ppp/ppp_NN.h
index c33f281..fbbbbe1 100644
--- a/noncore/settings/networksettings2/ppp/ppp_NN.h
+++ b/noncore/settings/networksettings2/ppp/ppp_NN.h
@@ -37,6 +37,8 @@ public:
37 37
38private: 38private:
39 39
40 virtual void setSpecificAttribute( QString & Attr, QString & Value );
41 virtual void saveSpecificAttribute( QTextStream & TS );
40}; 42};
41 43
42extern "C" 44extern "C"
diff --git a/noncore/settings/networksettings2/profile/profile_NN.cpp b/noncore/settings/networksettings2/profile/profile_NN.cpp
index 7609cdc..0f71dc7 100644
--- a/noncore/settings/networksettings2/profile/profile_NN.cpp
+++ b/noncore/settings/networksettings2/profile/profile_NN.cpp
@@ -49,6 +49,12 @@ bool ProfileNetNode::generateDeviceDataForCommonFile(
49 return 1; 49 return 1;
50} 50}
51 51
52void ProfileNetNode::setSpecificAttribute( QString & , QString & ) {
53}
54
55void ProfileNetNode::saveSpecificAttribute( QTextStream & ) {
56}
57
52extern "C" { 58extern "C" {
53void create_plugin( QList<ANetNode> & PNN ) { 59void create_plugin( QList<ANetNode> & PNN ) {
54 PNN.append( new ProfileNetNode() ); 60 PNN.append( new ProfileNetNode() );
diff --git a/noncore/settings/networksettings2/profile/profile_NN.h b/noncore/settings/networksettings2/profile/profile_NN.h
index f7c2b22..1313ab2 100644
--- a/noncore/settings/networksettings2/profile/profile_NN.h
+++ b/noncore/settings/networksettings2/profile/profile_NN.h
@@ -35,6 +35,8 @@ public:
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
diff --git a/noncore/settings/networksettings2/usb/usb_NN.cpp b/noncore/settings/networksettings2/usb/usb_NN.cpp
index 30c72db..d5971cf 100644
--- a/noncore/settings/networksettings2/usb/usb_NN.cpp
+++ b/noncore/settings/networksettings2/usb/usb_NN.cpp
@@ -64,6 +64,12 @@ QString USBNetNode::genNic( long ) {
64 return QString( "usbf" ); 64 return QString( "usbf" );
65} 65}
66 66
67void USBNetNode::setSpecificAttribute( QString & , QString & ) {
68}
69
70void USBNetNode::saveSpecificAttribute( QTextStream & ) {
71}
72
67extern "C" { 73extern "C" {
68void create_plugin( QList<ANetNode> & PNN ) { 74void create_plugin( QList<ANetNode> & PNN ) {
69 PNN.append( new USBNetNode() ); 75 PNN.append( new USBNetNode() );
diff --git a/noncore/settings/networksettings2/usb/usb_NN.h b/noncore/settings/networksettings2/usb/usb_NN.h
index ba22b1c..0b83ea6 100644
--- a/noncore/settings/networksettings2/usb/usb_NN.h
+++ b/noncore/settings/networksettings2/usb/usb_NN.h
@@ -36,6 +36,8 @@ public:
36 36
37private: 37private:
38 38
39 virtual void setSpecificAttribute( QString & Attr, QString & Value );
40 virtual void saveSpecificAttribute( QTextStream & TS );
39}; 41};
40 42
41extern "C" 43extern "C"
diff --git a/noncore/settings/networksettings2/vpn/vpn_NN.cpp b/noncore/settings/networksettings2/vpn/vpn_NN.cpp
index d9aa892..307e9dd 100644
--- a/noncore/settings/networksettings2/vpn/vpn_NN.cpp
+++ b/noncore/settings/networksettings2/vpn/vpn_NN.cpp
@@ -49,6 +49,12 @@ bool VPNNetNode::generateDeviceDataForCommonFile(
49 return 1; 49 return 1;
50} 50}
51 51
52void VPNNetNode::setSpecificAttribute( QString & , QString & ) {
53}
54
55void VPNNetNode::saveSpecificAttribute( QTextStream & ) {
56}
57
52extern "C" { 58extern "C" {
53void create_plugin( QList<ANetNode> & PNN ) { 59void create_plugin( QList<ANetNode> & PNN ) {
54 PNN.append( new VPNNetNode() ); 60 PNN.append( new VPNNetNode() );
diff --git a/noncore/settings/networksettings2/vpn/vpn_NN.h b/noncore/settings/networksettings2/vpn/vpn_NN.h
index 7ce8e3a..1cd3fcc 100644
--- a/noncore/settings/networksettings2/vpn/vpn_NN.h
+++ b/noncore/settings/networksettings2/vpn/vpn_NN.h
@@ -35,6 +35,8 @@ public:
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
diff --git a/noncore/settings/networksettings2/wlan/wlan_NN.cpp b/noncore/settings/networksettings2/wlan/wlan_NN.cpp
index 4e59ac1..e0c4db2 100644
--- a/noncore/settings/networksettings2/wlan/wlan_NN.cpp
+++ b/noncore/settings/networksettings2/wlan/wlan_NN.cpp
@@ -9,6 +9,7 @@ static const char * WLanNeeds[] =
9 * Constructor, find all of the possible interfaces 9 * Constructor, find all of the possible interfaces
10 */ 10 */
11WLanNetNode::WLanNetNode() : ANetNode() { 11WLanNetNode::WLanNetNode() : ANetNode() {
12 InstanceCount = 2;
12} 13}
13 14
14/** 15/**
@@ -65,6 +66,18 @@ QString WLanNetNode::genNic( long nr ) {
65 return S.sprintf( "wlan%ld", nr ); 66 return S.sprintf( "wlan%ld", nr );
66} 67}
67 68
69void WLanNetNode::setSpecificAttribute( QString & A, QString & V ) {
70 if( A == "interfacecount" ) {
71 InstanceCount = V.toLong();
72 }
73}
74
75void WLanNetNode::saveSpecificAttribute( QTextStream & TS ) {
76 TS << "interfacecount="
77 << InstanceCount
78 << endl;
79}
80
68extern "C" { 81extern "C" {
69void create_plugin( QList<ANetNode> & PNN ) { 82void create_plugin( QList<ANetNode> & PNN ) {
70 PNN.append( new WLanNetNode() ); 83 PNN.append( new WLanNetNode() );
diff --git a/noncore/settings/networksettings2/wlan/wlan_NN.h b/noncore/settings/networksettings2/wlan/wlan_NN.h
index f27e71c..e93a89a 100644
--- a/noncore/settings/networksettings2/wlan/wlan_NN.h
+++ b/noncore/settings/networksettings2/wlan/wlan_NN.h
@@ -34,12 +34,18 @@ public:
34 SystemFile & SF, long DevNr ); 34 SystemFile & SF, long DevNr );
35 35
36 virtual long instanceCount( void ) 36 virtual long instanceCount( void )
37 { return 2; } 37 { return InstanceCount; }
38 38
39 virtual QString genNic( long ); 39 virtual QString genNic( long );
40 40
41private: 41private:
42 42
43 virtual void setSpecificAttribute( QString & Attr, QString & Value );
44 virtual void saveSpecificAttribute( QTextStream & TS );
45
46 // number of interfaces for this device
47 long InstanceCount;
48
43}; 49};
44 50
45extern "C" 51extern "C"