Diffstat (limited to 'noncore/settings/networksettings2/lancard/lancardrun.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/networksettings2/lancard/lancardrun.cpp | 92 |
1 files changed, 24 insertions, 68 deletions
diff --git a/noncore/settings/networksettings2/lancard/lancardrun.cpp b/noncore/settings/networksettings2/lancard/lancardrun.cpp index 1544ddc..470b797 100644 --- a/noncore/settings/networksettings2/lancard/lancardrun.cpp +++ b/noncore/settings/networksettings2/lancard/lancardrun.cpp | |||
@@ -5,5 +5,5 @@ | |||
5 | #include "lancardrun.h" | 5 | #include "lancardrun.h" |
6 | 6 | ||
7 | void LanCardRun::detectState( NodeCollection * NC ) { | 7 | State_t LanCardRun::detectState( void ) { |
8 | 8 | ||
9 | // unavailable : no card found | 9 | // unavailable : no card found |
@@ -11,5 +11,7 @@ void LanCardRun::detectState( NodeCollection * NC ) { | |||
11 | // up : card found and assigned to us and up | 11 | // up : card found and assigned to us and up |
12 | 12 | ||
13 | QString S = QString( "/tmp/profile-%1.up" ).arg(NC->number()); | 13 | NodeCollection * NC = nodeCollection(); |
14 | QString S = QString( "/tmp/profile-%1.up" ). | ||
15 | arg( NC->number()); | ||
14 | System & Sys = NSResources->system(); | 16 | System & Sys = NSResources->system(); |
15 | InterfaceInfo * Run; | 17 | InterfaceInfo * Run; |
@@ -29,8 +31,6 @@ void LanCardRun::detectState( NodeCollection * NC ) { | |||
29 | Run = It.current(); | 31 | Run = It.current(); |
30 | if( X == Run->Name ) { | 32 | if( X == Run->Name ) { |
31 | Run->assignNode( netNode() ); | 33 | NC->assignInterface( Run ); |
32 | assignInterface( Run ); | 34 | return IsUp; |
33 | NC->setCurrentState( IsUp ); | ||
34 | return; | ||
35 | } | 35 | } |
36 | } | 36 | } |
@@ -38,15 +38,14 @@ void LanCardRun::detectState( NodeCollection * NC ) { | |||
38 | } | 38 | } |
39 | 39 | ||
40 | if( ( Run = assignedInterface() ) ) { | 40 | if( ( Run = NC->assignedInterface() ) ) { |
41 | // we already have an interface assigned -> still present ? | 41 | // we already have an interface assigned -> still present ? |
42 | if( ! Run->IsUp ) { | 42 | if( ! Run->IsUp ) { |
43 | // usb is still free -> keep assignment | 43 | // usb is still free -> keep assignment |
44 | NC->setCurrentState( Available ); | 44 | return Available; |
45 | return; | ||
46 | } // else interface is up but NOT us -> some other profile | 45 | } // else interface is up but NOT us -> some other profile |
47 | } | 46 | } |
48 | 47 | ||
49 | // nothing (valid) assigned to us | 48 | // nothing (valid) assigned to us |
50 | assignInterface( 0 ); | 49 | NC->assignInterface( 0 ); |
51 | 50 | ||
52 | // find possible interface | 51 | // find possible interface |
@@ -64,79 +63,36 @@ void LanCardRun::detectState( NodeCollection * NC ) { | |||
64 | ) { | 63 | ) { |
65 | // proper type, and Not UP -> free | 64 | // proper type, and Not UP -> free |
66 | NC->setCurrentState( Off ); | 65 | return Off; |
67 | return; | ||
68 | } | 66 | } |
69 | } | 67 | } |
70 | // no free found | 68 | // no free found |
71 | 69 | ||
72 | NC->setCurrentState( Unavailable ); | 70 | return Unavailable; |
73 | |||
74 | } | 71 | } |
75 | 72 | ||
76 | bool LanCardRun::setState( NodeCollection * NC, Action_t A, bool ) { | 73 | QString LanCardRun::setMyState( NodeCollection * NC, Action_t A, bool ) { |
77 | 74 | ||
78 | // we only handle activate and deactivate | 75 | if( A == Activate ) { |
79 | switch( A ) { | ||
80 | case Activate : | ||
81 | { | ||
82 | if( NC->currentState() != Off ) { | ||
83 | return 0; | ||
84 | } | ||
85 | InterfaceInfo * N = getInterface(); | 76 | InterfaceInfo * N = getInterface(); |
77 | |||
86 | if( ! N ) { | 78 | if( ! N ) { |
87 | // no interface available | 79 | // no interface available |
88 | NC->setCurrentState( Unavailable ); | 80 | NC->setCurrentState( Unavailable ); |
89 | return 0; | 81 | return tr("No interface found"); |
90 | } | 82 | } |
83 | |||
91 | // because we were OFF the interface | 84 | // because we were OFF the interface |
92 | // we get back is NOT assigned | 85 | // we get back is NOT assigned |
93 | N->assignNode( netNode() ); | 86 | NC->assignInterface( N ); |
94 | assignInterface( N ); | ||
95 | NC->setCurrentState( Available ); | 87 | NC->setCurrentState( Available ); |
96 | return 1; | 88 | return QString(); |
97 | } | ||
98 | case Deactivate : | ||
99 | if( NC->currentState() == IsUp ) { | ||
100 | // bring down first | ||
101 | if( ! connection()->setState( Down ) ) | ||
102 | // could not ... | ||
103 | return 0; | ||
104 | } else if( NC->currentState() != Available ) { | ||
105 | return 1; | ||
106 | } | 89 | } |
107 | assignedInterface()->assignNode( 0 ); // release | 90 | |
108 | assignInterface( 0 ); | 91 | if( A == Deactivate ) { |
92 | NC->assignInterface( 0 ); | ||
109 | NC->setCurrentState( Off ); | 93 | NC->setCurrentState( Off ); |
110 | return 1; | ||
111 | default : | ||
112 | // FT | ||
113 | break; | ||
114 | } | ||
115 | return 0; | ||
116 | } | 94 | } |
117 | 95 | ||
118 | bool LanCardRun::canSetState( State_t Curr, Action_t A ) { | 96 | return QString(); |
119 | // we only handle up down activate and deactivate | ||
120 | switch( A ) { | ||
121 | case Activate : | ||
122 | { // at least available | ||
123 | if( Curr == Available ) { | ||
124 | return 1; | ||
125 | } | ||
126 | // or we can make one available | ||
127 | InterfaceInfo * N = getInterface(); | ||
128 | if( ! N || N->assignedNode() != 0 ) { | ||
129 | // non available or assigned | ||
130 | return 0; | ||
131 | } | ||
132 | return 1; | ||
133 | } | ||
134 | case Deactivate : | ||
135 | return ( Curr >= Available ); | ||
136 | default : | ||
137 | // FT | ||
138 | break; | ||
139 | } | ||
140 | return 0; | ||
141 | } | 97 | } |
142 | 98 | ||
@@ -159,8 +115,8 @@ InterfaceInfo * LanCardRun::getInterface( void ) { | |||
159 | ) { | 115 | ) { |
160 | // this is a LAN card | 116 | // this is a LAN card |
161 | if( Run->assignedNode() == netNode() ) { | 117 | if( Run->assignedConnection() == netNode()->connection() ) { |
162 | // assigned to us | 118 | // assigned to us |
163 | return Run; | 119 | return Run; |
164 | } else if( Run->assignedNode() == 0 ) { | 120 | } else if( Run->assignedConnection() == 0 ) { |
165 | // free | 121 | // free |
166 | best = Run; | 122 | best = Run; |