summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings2/network
Unidiff
Diffstat (limited to 'noncore/settings/networksettings2/network') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings2/network/network_NN.cpp40
-rw-r--r--noncore/settings/networksettings2/network/network_NN.h8
-rw-r--r--noncore/settings/networksettings2/network/network_NNI.cpp50
-rw-r--r--noncore/settings/networksettings2/network/network_NNI.h10
-rw-r--r--noncore/settings/networksettings2/network/networkdata.h5
-rw-r--r--noncore/settings/networksettings2/network/networkedit.cpp4
-rw-r--r--noncore/settings/networksettings2/network/networkedit.h4
-rw-r--r--noncore/settings/networksettings2/network/networkrun.cpp91
-rw-r--r--noncore/settings/networksettings2/network/networkrun.h19
-rw-r--r--noncore/settings/networksettings2/network/opie-networksettings2plugin-network.control2
10 files changed, 105 insertions, 128 deletions
diff --git a/noncore/settings/networksettings2/network/network_NN.cpp b/noncore/settings/networksettings2/network/network_NN.cpp
index b5c41bf..23b3d44 100644
--- a/noncore/settings/networksettings2/network/network_NN.cpp
+++ b/noncore/settings/networksettings2/network/network_NN.cpp
@@ -1,3 +1,4 @@
1#include <qpe/qpeapplication.h> 1#include <qpe/qpeapplication.h>
2#include <asdevice.h> 2#include <resources.h>
3#include <netnode.h>
3#include "network_NN.h" 4#include "network_NN.h"
@@ -10,2 +11,7 @@ static const char * NetworkNeeds[] =
10 11
12static const char * NetworkProvides[] =
13 { "connection",
14 0
15 };
16
11/** 17/**
@@ -14,2 +20,5 @@ static const char * NetworkNeeds[] =
14NetworkNetNode::NetworkNetNode() : ANetNode(tr("IP Configuration")) { 20NetworkNetNode::NetworkNetNode() : ANetNode(tr("IP Configuration")) {
21
22 NSResources->addSystemFile(
23 "interfaces", "/etc/network/interfaces", 1 );
15} 24}
@@ -34,9 +43,7 @@ ANetNodeInstance * NetworkNetNode::createInstance( void ) {
34 43
35bool NetworkNetNode::hasDataForFile( const QString & S ) { 44bool NetworkNetNode::hasDataForFile( SystemFile & S ) {
36 return S == "interfaces"; 45 return S.name() == "interfaces";
37} 46}
38 47
39short NetworkNetNode::generateFile( const QString & ID, 48short NetworkNetNode::generateFile( SystemFile & SF,
40 const QString & ,
41 QTextStream & TS,
42 ANetNodeInstance * NNI, 49 ANetNodeInstance * NNI,
@@ -44,8 +51,13 @@ short NetworkNetNode::generateFile( const QString & ID,
44 51
52 if( DevNr < 0 ) {
53 // generate device specific but common part
54 return 1;
55 }
56
45 QString NIC = NNI->runtime()->device()->netNode()->nodeClass()->genNic( DevNr ); 57 QString NIC = NNI->runtime()->device()->netNode()->nodeClass()->genNic( DevNr );
46 58
47 if( ID == "interfaces" ) { 59 if( SF.name() == "interfaces" ) {
48 Log(("Generate entry for %s in %s\n", NIC.latin1(), ID.latin1() )); 60 Log(("Generate entry for %s in %s\n", NIC.latin1(), SF.name().latin1() ));
49 // generate mapping stanza for this interface 61 // generate mapping stanza for this interface
50 TS << "# check if " 62 SF << "# check if "
51 << NIC 63 << NIC
@@ -53,8 +65,8 @@ short NetworkNetNode::generateFile( const QString & ID,
53 << endl; 65 << endl;
54 TS << "mapping " 66 SF << "mapping "
55 << NIC 67 << NIC
56 << endl; 68 << endl;
57 TS << " script " 69 SF << " script "
58 << QPEApplication::qpeDir() 70 << QPEApplication::qpeDir()
59 << "/bin/networksettings2-request" 71 << "bin/networksettings2-request"
60 << endl 72 << endl
@@ -70,4 +82,4 @@ const char ** NetworkNetNode::needs( void ) {
70 82
71const char * NetworkNetNode::provides( void ) { 83const char ** NetworkNetNode::provides( void ) {
72 return "connection"; 84 return NetworkProvides;
73} 85}
diff --git a/noncore/settings/networksettings2/network/network_NN.h b/noncore/settings/networksettings2/network/network_NN.h
index 745d1a7..b063d4c 100644
--- a/noncore/settings/networksettings2/network/network_NN.h
+++ b/noncore/settings/networksettings2/network/network_NN.h
@@ -16,7 +16,5 @@ public:
16 16
17 virtual bool hasDataForFile( const QString & S ); 17 virtual bool hasDataForFile( SystemFile & S );
18 18
19 virtual short generateFile( const QString & ID, 19 virtual short generateFile( SystemFile & TS,
20 const QString & Path,
21 QTextStream & TS,
22 ANetNodeInstance * NNI, 20 ANetNodeInstance * NNI,
@@ -29,3 +27,3 @@ public:
29 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
30 virtual const char * provides( void ); 28 virtual const char ** provides( void );
31 29
diff --git a/noncore/settings/networksettings2/network/network_NNI.cpp b/noncore/settings/networksettings2/network/network_NNI.cpp
index 324c6e2..78e6545 100644
--- a/noncore/settings/networksettings2/network/network_NNI.cpp
+++ b/noncore/settings/networksettings2/network/network_NNI.cpp
@@ -1,3 +1,3 @@
1#include <system.h> 1#include <system.h>
2#include <asdevice.h> 2#include <netnode.h>
3#include "networkedit.h" 3#include "networkedit.h"
@@ -101,11 +101,9 @@ void ANetwork::commit( void ) {
101 101
102bool ANetwork::hasDataForFile( const QString & S ) { 102bool ANetwork::hasDataForFile( SystemFile & S ) {
103 return S == "interfaces"; 103 return S.name() == "interfaces";
104} 104}
105 105
106short ANetwork::generateFile( const QString & ID, 106short ANetwork::generateFile( SystemFile &SF,
107 const QString & Path, 107 long DevNr
108 QTextStream &TS, 108 ) {
109 long DevNr
110 ) {
111 109
@@ -115,7 +113,7 @@ short ANetwork::generateFile( const QString & ID,
115 rvl = 1; 113 rvl = 1;
116 if( ID == "interfaces" ) { 114 if( SF.name() == "interfaces" ) {
117 Log(("Generate Network for %s\n", ID.latin1() )); 115 Log(("Generate Network for %s\n", SF.name().latin1() ));
118 // we can safely call from here since device item is deeper 116 // we can safely call from here since device item is deeper
119 if( Data.UseDHCP ) { 117 if( Data.UseDHCP ) {
120 TS << "iface " 118 SF << "iface "
121 << NIC 119 << NIC
@@ -125,3 +123,3 @@ short ANetwork::generateFile( const QString & ID,
125 << endl; 123 << endl;
126 TS << " up echo \"" 124 SF << " up echo \""
127 << NIC 125 << NIC
@@ -132,3 +130,3 @@ short ANetwork::generateFile( const QString & ID,
132 if( Data.SendHostname ) { 130 if( Data.SendHostname ) {
133 TS << " hostname " 131 SF << " hostname "
134 << Data.Hostname 132 << Data.Hostname
@@ -137,3 +135,3 @@ short ANetwork::generateFile( const QString & ID,
137 135
138 TS << " down rm -f /tmp/profile-" 136 SF << " down rm -f /tmp/profile-"
139 << connection()->number() 137 << connection()->number()
@@ -142,3 +140,3 @@ short ANetwork::generateFile( const QString & ID,
142 } else { 140 } else {
143 TS << "iface " 141 SF << "iface "
144 << NIC << "-c" 142 << NIC << "-c"
@@ -147,3 +145,3 @@ short ANetwork::generateFile( const QString & ID,
147 << endl; 145 << endl;
148 TS << " up echo \"" 146 SF << " up echo \""
149 << NIC 147 << NIC
@@ -153,3 +151,3 @@ short ANetwork::generateFile( const QString & ID,
153 << endl; 151 << endl;
154 TS << " down rm -f /tmp/profile-" 152 SF << " down rm -f /tmp/profile-"
155 << connection()->number() 153 << connection()->number()
@@ -157,9 +155,9 @@ short ANetwork::generateFile( const QString & ID,
157 << endl; 155 << endl;
158 TS << " address " 156 SF << " address "
159 << Data.IPAddress 157 << Data.IPAddress
160 << endl; 158 << endl;
161 TS << " broadcast " 159 SF << " broadcast "
162 << Data.Broadcast 160 << Data.Broadcast
163 << endl; 161 << endl;
164 TS << " netmask " 162 SF << " netmask "
165 << Data.NetMask 163 << Data.NetMask
@@ -177,3 +175,3 @@ short ANetwork::generateFile( const QString & ID,
177 arg( ipal[3].toShort() & nmal[3].toShort() ); 175 arg( ipal[3].toShort() & nmal[3].toShort() );
178 TS << " network " 176 SF << " network "
179 << NW 177 << NW
@@ -185,3 +183,3 @@ short ANetwork::generateFile( const QString & ID,
185 ++it ) { 183 ++it ) {
186 TS << " pre-up " 184 SF << " pre-up "
187 << (*it) 185 << (*it)
@@ -192,3 +190,3 @@ short ANetwork::generateFile( const QString & ID,
192 ++it ) { 190 ++it ) {
193 TS << " up " 191 SF << " up "
194 << (*it) 192 << (*it)
@@ -199,3 +197,3 @@ short ANetwork::generateFile( const QString & ID,
199 ++it ) { 197 ++it ) {
200 TS << " down " 198 SF << " down "
201 << (*it) 199 << (*it)
@@ -206,3 +204,3 @@ short ANetwork::generateFile( const QString & ID,
206 ++it ) { 204 ++it ) {
207 TS << " post-down " 205 SF << " post-down "
208 << (*it) 206 << (*it)
@@ -214,3 +212,3 @@ short ANetwork::generateFile( const QString & ID,
214 // embed other info in it 212 // embed other info in it
215 rvd = connection()->getToplevel()->generateFileEmbedded( ID, Path, TS, DevNr ); 213 rvd = connection()->getToplevel()->generateFileEmbedded( SF, DevNr );
216 214
diff --git a/noncore/settings/networksettings2/network/network_NNI.h b/noncore/settings/networksettings2/network/network_NNI.h
index 5e42503..71c276a 100644
--- a/noncore/settings/networksettings2/network/network_NNI.h
+++ b/noncore/settings/networksettings2/network/network_NNI.h
@@ -29,7 +29,5 @@ public :
29 29
30 virtual bool hasDataForFile( const QString & S ); 30 virtual bool hasDataForFile( SystemFile & SF );
31 virtual short generateFile( const QString & ID, 31 virtual short generateFile( SystemFile &TS,
32 const QString & Path, 32 long DevNr );
33 QTextStream &TS,
34 long DevNr );
35 33
@@ -43,3 +41,3 @@ private :
43 NetworkEdit * GUI; 41 NetworkEdit * GUI;
44 NetworkData_t Data; 42 NetworkData Data;
45 NetworkRun * RT; 43 NetworkRun * RT;
diff --git a/noncore/settings/networksettings2/network/networkdata.h b/noncore/settings/networksettings2/network/networkdata.h
index 2c5da37..1df9dc4 100644
--- a/noncore/settings/networksettings2/network/networkdata.h
+++ b/noncore/settings/networksettings2/network/networkdata.h
@@ -5,3 +5,4 @@
5#include <qstringlist.h> 5#include <qstringlist.h>
6typedef struct NetworkData { 6class NetworkData {
7public :
7 bool UseDHCP; 8 bool UseDHCP;
@@ -19,3 +20,3 @@ typedef struct NetworkData {
19 QStringList PostDown_SL; 20 QStringList PostDown_SL;
20} NetworkData_t; 21} ;
21 22
diff --git a/noncore/settings/networksettings2/network/networkedit.cpp b/noncore/settings/networksettings2/network/networkedit.cpp
index 05110d9..d13cb66 100644
--- a/noncore/settings/networksettings2/network/networkedit.cpp
+++ b/noncore/settings/networksettings2/network/networkedit.cpp
@@ -67,3 +67,3 @@ QString NetworkEdit::acceptable( void ) {
67 67
68bool NetworkEdit::commit( NetworkData_t & Data ) { 68bool NetworkEdit::commit( NetworkData & Data ) {
69 bool SM = 0; 69 bool SM = 0;
@@ -87,3 +87,3 @@ bool NetworkEdit::commit( NetworkData_t & Data ) {
87 87
88void NetworkEdit::showData( NetworkData_t & Data ) { 88void NetworkEdit::showData( NetworkData & Data ) {
89 DHCP_CB->setChecked( Data.UseDHCP ); 89 DHCP_CB->setChecked( Data.UseDHCP );
diff --git a/noncore/settings/networksettings2/network/networkedit.h b/noncore/settings/networksettings2/network/networkedit.h
index adc20e0..45635c8 100644
--- a/noncore/settings/networksettings2/network/networkedit.h
+++ b/noncore/settings/networksettings2/network/networkedit.h
@@ -11,4 +11,4 @@ public :
11 QString acceptable( void ); 11 QString acceptable( void );
12 bool commit( NetworkData_t & Data ); 12 bool commit( NetworkData & Data );
13 void showData( NetworkData_t & Data ); 13 void showData( NetworkData & Data );
14 14
diff --git a/noncore/settings/networksettings2/network/networkrun.cpp b/noncore/settings/networksettings2/network/networkrun.cpp
index 3e24c5f..c17aa7f 100644
--- a/noncore/settings/networksettings2/network/networkrun.cpp
+++ b/noncore/settings/networksettings2/network/networkrun.cpp
@@ -1,26 +1,24 @@
1#include <system.h> 1#include <system.h>
2#include <asdevice.h> 2#include <netnode.h>
3#include <resources.h>
3#include "networkrun.h" 4#include "networkrun.h"
4 5
5void NetworkRun::detectState( NodeCollection * NC ) { 6State_t NetworkRun::detectState( void ) {
6 RuntimeInfo * RI = netNode()->nextNode()->runtime(); 7 InterfaceInfo * II = nodeCollection()->assignedInterface();
7 AsDevice * Next = RI->asDevice();
8 InterfaceInfo * II = Next->assignedInterface();
9 8
10 if( II ) { 9 Log(( "Interface %p : %d\n", II, (II) ? II->IsUp : 0 ));
10 if( II && II->IsUp ) {
11 // device has assigned interface 11 // device has assigned interface
12 NC->setCurrentState( (( II->IsUp ) ? IsUp : Available) ); 12 return IsUp;
13 return;
14 } 13 }
15 14
16 Log(( "%s not ! UP or ava\n", NC->name().latin1() )); 15 // had no interface or interface is no longer up -> release
17 // has no interface -> delegate 16 nodeCollection()->assignInterface( 0 );
18 RI->detectState( NC ); 17
18 return Unknown;
19} 19}
20 20
21bool NetworkRun::setState( NodeCollection * NC, Action_t A, bool Force ) { 21QString NetworkRun::setMyState( NodeCollection * NC, Action_t A, bool ) {
22 // we handle UP and DOWN 22 // we handle UP and DOWN
23 RuntimeInfo * RI = netNode()->nextNode()->runtime(); 23 InterfaceInfo * II = NC->assignedInterface();
24 AsDevice * Next = RI->asDevice();
25 InterfaceInfo * II = Next->assignedInterface();
26 24
@@ -28,51 +26,26 @@ bool NetworkRun::setState( NodeCollection * NC, Action_t A, bool Force ) {
28 // we can bring UP if lower level is available 26 // we can bring UP if lower level is available
29 if( NC->currentState() == Available || Force ) { 27 QStringList SL;
30 QString S; 28 SL << "ifup"
31 S.sprintf( "ifup %s=%s-c%d-allowed", 29 << QString().sprintf( "%s=%s-c%d-allowed",
32 II->Name.latin1(), II->Name.latin1(), 30 II->Name.latin1(), II->Name.latin1(),
33 connection()->number() ); 31 nodeCollection()->number() );
34 NSResources->system().runAsRoot( S ); 32 if( ! NSResources->system().runAsRoot( SL ) ) {
33 return QString("Cannot call %1").arg(SL.join(" "));
35 } 34 }
36 return 1; 35 return QString();
37 } else if( A == Down ) { 36 }
38 QString S; 37
39 if( Force ) { 38 if( A == Down ) {
40 Log(("Force mode %d\n", Force )); 39 QStringList SL;
41 for( int i = 0; 40 if( II ) {
42 i < RI->netNode()->nodeClass()->instanceCount(); 41 SL << "ifdown"
43 i ++ ) { 42 << II->Name.latin1();
44 S.sprintf( "ifdown %s", 43 if( ! NSResources->system().runAsRoot( SL ) ) {
45 RI->netNode()->nodeClass()->genNic( i ).latin1() ); 44 return QString( "Cannot call %1" ).arg( SL.join( " " ));
46 NSResources->system().runAsRoot( S );
47 } 45 }
48 } else { 46 } else {
49 if( NC->currentState() == IsUp ) { 47 Log(( "no interface assigned." ));
50 S.sprintf( "ifdown %s=%s-c%d-allowed",
51 II->Name.latin1(), II->Name.latin1(),
52 connection()->number() );
53 NSResources->system().runAsRoot( S );
54 }
55 } 48 }
56 return 1;
57 }
58 // delegate
59 return RI->setState( NC, A, Force );
60}
61
62bool NetworkRun::canSetState( State_t Curr, Action_t A ) {
63 // we handle UP and DOWN
64 RuntimeInfo * RI = netNode()->nextNode()->runtime();
65
66 if( A == Up ) {
67 return ( Curr == Available );
68 } else if( A == Down ) {
69 return ( Curr == IsUp );
70 } 49 }
71 // delegate 50 return QString();
72 return RI->canSetState( Curr, A );
73}
74
75bool NetworkRun::handlesInterface( const QString & S ) {
76 // donno -> pass deeper
77 return netNode()->nextNode()->runtime()->handlesInterface(S);
78} 51}
diff --git a/noncore/settings/networksettings2/network/networkrun.h b/noncore/settings/networksettings2/network/networkrun.h
index 522a912..78a1694 100644
--- a/noncore/settings/networksettings2/network/networkrun.h
+++ b/noncore/settings/networksettings2/network/networkrun.h
@@ -1,5 +1,5 @@
1#include <asconnection.h> 1#include <netnode.h>
2#include "networkdata.h" 2#include "networkdata.h"
3 3
4class NetworkRun : public AsConnection { 4class NetworkRun : public RuntimeInfo {
5 5
@@ -8,16 +8,13 @@ public :
8 NetworkRun( ANetNodeInstance * NNI, 8 NetworkRun( ANetNodeInstance * NNI,
9 NetworkData & Data ) : AsConnection( NNI ) 9 NetworkData & Data ) : RuntimeInfo( NNI )
10 { } 10 { }
11 11
12 virtual AsConnection * asConnection( void ) 12 virtual RuntimeInfo * connection( void )
13 { return (AsConnection *)this; } 13 { return this; }
14 14
15protected : 15 State_t detectState( void );
16
17 void detectState( NodeCollection * );
18 bool setState( NodeCollection * ,Action_t A, bool );
19 bool canSetState( State_t , Action_t A );
20 16
21 bool handlesInterface( const QString & I ); 17protected :
22 18
19 QString setMyState( NodeCollection * , Action_t, bool );
23}; 20};
diff --git a/noncore/settings/networksettings2/network/opie-networksettings2plugin-network.control b/noncore/settings/networksettings2/network/opie-networksettings2plugin-network.control
index 3dbb808..7b1056b 100644
--- a/noncore/settings/networksettings2/network/opie-networksettings2plugin-network.control
+++ b/noncore/settings/networksettings2/network/opie-networksettings2plugin-network.control
@@ -1,2 +1,2 @@
1Package: opie-networksettingsplugin2-network 1Package: opie-networksettings2plugin-network
2Files: plugins/networksettings2/libnetwork.so* 2Files: plugins/networksettings2/libnetwork.so*