-rw-r--r-- | noncore/settings/networksettings/interfaces/interface.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/networksettings/opie-networksettings.control | 3 |
2 files changed, 2 insertions, 3 deletions
diff --git a/noncore/settings/networksettings/interfaces/interface.cpp b/noncore/settings/networksettings/interfaces/interface.cpp index 032819b..cc45525 100644 --- a/noncore/settings/networksettings/interfaces/interface.cpp +++ b/noncore/settings/networksettings/interfaces/interface.cpp | |||
@@ -1,261 +1,259 @@ | |||
1 | /** | 1 | /** |
2 | * $Author$ | 2 | * $Author$ |
3 | * $Date$ | 3 | * $Date$ |
4 | * $Id$ | ||
5 | * $Source$ | ||
6 | */ | 4 | */ |
7 | 5 | ||
8 | #include "interface.h" | 6 | #include "interface.h" |
9 | #include <qdatetime.h> | 7 | #include <qdatetime.h> |
10 | #include <qfile.h> | 8 | #include <qfile.h> |
11 | #include <qdir.h> | 9 | #include <qdir.h> |
12 | #include <qfileinfo.h> | 10 | #include <qfileinfo.h> |
13 | #include <qtextstream.h> | 11 | #include <qtextstream.h> |
14 | 12 | ||
15 | #define IFCONFIG "/sbin/ifconfig" | 13 | #define IFCONFIG "/sbin/ifconfig" |
16 | #define DHCP_INFO_DIR "/etc/dhcpc" | 14 | #define DHCP_INFO_DIR "/etc/dhcpc" |
17 | 15 | ||
18 | #include <stdio.h> | 16 | #include <stdio.h> |
19 | #include <stdlib.h> | 17 | #include <stdlib.h> |
20 | 18 | ||
21 | Interface::Interface(QObject * parent, const char * name, bool newSatus): QObject(parent, name), hardwareName("Unknown"), moduleOwner(NULL), status(newSatus), attached(false), dhcp(false), macAddress(""), ip("0.0.0.0"), broadcast(""), subnetMask("0.0.0.0"){ | 19 | Interface::Interface(QObject * parent, const char * name, bool newSatus): QObject(parent, name), hardwareName("Unknown"), moduleOwner(NULL), status(newSatus), attached(false), dhcp(false), macAddress(""), ip("0.0.0.0"), broadcast(""), subnetMask("0.0.0.0"){ |
22 | refresh(); | 20 | refresh(); |
23 | } | 21 | } |
24 | 22 | ||
25 | /** | 23 | /** |
26 | * Set status | 24 | * Set status |
27 | * @param newStatus - the new status | 25 | * @param newStatus - the new status |
28 | * emit updateInterface | 26 | * emit updateInterface |
29 | */ | 27 | */ |
30 | void Interface::setStatus(bool newStatus){ | 28 | void Interface::setStatus(bool newStatus){ |
31 | if(status != newStatus){ | 29 | if(status != newStatus){ |
32 | status = newStatus; | 30 | status = newStatus; |
33 | refresh(); | 31 | refresh(); |
34 | } | 32 | } |
35 | }; | 33 | }; |
36 | 34 | ||
37 | /** | 35 | /** |
38 | * Set if attached or not (802.11 card pulled out for example) | 36 | * Set if attached or not (802.11 card pulled out for example) |
39 | * @param isAttached - if attached | 37 | * @param isAttached - if attached |
40 | * emit updateInterface | 38 | * emit updateInterface |
41 | */ | 39 | */ |
42 | void Interface::setAttached(bool isAttached){ | 40 | void Interface::setAttached(bool isAttached){ |
43 | attached = isAttached; | 41 | attached = isAttached; |
44 | emit(updateInterface(this)); | 42 | emit(updateInterface(this)); |
45 | }; | 43 | }; |
46 | 44 | ||
47 | /** | 45 | /** |
48 | * Set Hardware name | 46 | * Set Hardware name |
49 | * @param name - the new name | 47 | * @param name - the new name |
50 | * emit updateInterface | 48 | * emit updateInterface |
51 | */ | 49 | */ |
52 | void Interface::setHardwareName(const QString &name){ | 50 | void Interface::setHardwareName(const QString &name){ |
53 | hardwareName = name; | 51 | hardwareName = name; |
54 | emit(updateInterface(this)); | 52 | emit(updateInterface(this)); |
55 | }; | 53 | }; |
56 | 54 | ||
57 | /** | 55 | /** |
58 | * Set Module owner | 56 | * Set Module owner |
59 | * @param owner - the new owner | 57 | * @param owner - the new owner |
60 | * emit updateInterface | 58 | * emit updateInterface |
61 | */ | 59 | */ |
62 | void Interface::setModuleOwner(Module *owner){ | 60 | void Interface::setModuleOwner(Module *owner){ |
63 | moduleOwner = owner; | 61 | moduleOwner = owner; |
64 | emit(updateInterface(this)); | 62 | emit(updateInterface(this)); |
65 | }; | 63 | }; |
66 | 64 | ||
67 | 65 | ||
68 | /** | 66 | /** |
69 | * Try to start the interface. | 67 | * Try to start the interface. |
70 | */ | 68 | */ |
71 | void Interface::start(){ | 69 | void Interface::start(){ |
72 | // check to see if we are already running. | 70 | // check to see if we are already running. |
73 | if(true == status){ | 71 | if(true == status){ |
74 | emit (updateMessage("Unable to start interface,\n already started")); | 72 | emit (updateMessage("Unable to start interface,\n already started")); |
75 | return; | 73 | return; |
76 | } | 74 | } |
77 | 75 | ||
78 | int ret = system(QString("%1 %2 up").arg(IFCONFIG).arg(this->name()).latin1()); | 76 | int ret = system(QString("%1 %2 up").arg(IFCONFIG).arg(this->name()).latin1()); |
79 | // See if it was successfull... | 77 | // See if it was successfull... |
80 | if(ret != 0){ | 78 | if(ret != 0){ |
81 | emit (updateMessage("Starting interface failed")); | 79 | emit (updateMessage("Starting interface failed")); |
82 | return; | 80 | return; |
83 | } | 81 | } |
84 | 82 | ||
85 | status = true; | 83 | status = true; |
86 | refresh(); | 84 | refresh(); |
87 | emit (updateMessage("Start successfull")); | 85 | emit (updateMessage("Start successfull")); |
88 | } | 86 | } |
89 | 87 | ||
90 | /** | 88 | /** |
91 | * Try to stop the interface. | 89 | * Try to stop the interface. |
92 | */ | 90 | */ |
93 | void Interface::stop(){ | 91 | void Interface::stop(){ |
94 | // check to see if we are already stopped. | 92 | // check to see if we are already stopped. |
95 | if(false == status){ | 93 | if(false == status){ |
96 | emit (updateMessage("Unable to stop interface,\n already stopped")); | 94 | emit (updateMessage("Unable to stop interface,\n already stopped")); |
97 | return; | 95 | return; |
98 | } | 96 | } |
99 | 97 | ||
100 | int ret = system(QString("%1 %2 down").arg(IFCONFIG).arg(this->name()).latin1()); | 98 | int ret = system(QString("%1 %2 down").arg(IFCONFIG).arg(this->name()).latin1()); |
101 | if(ret != 0){ | 99 | if(ret != 0){ |
102 | emit (updateMessage("Stopping interface failed")); | 100 | emit (updateMessage("Stopping interface failed")); |
103 | return; | 101 | return; |
104 | } | 102 | } |
105 | 103 | ||
106 | status = false; | 104 | status = false; |
107 | refresh(); | 105 | refresh(); |
108 | emit (updateMessage("Stop successfull")); | 106 | emit (updateMessage("Stop successfull")); |
109 | } | 107 | } |
110 | 108 | ||
111 | /** | 109 | /** |
112 | * Try to restart the interface. | 110 | * Try to restart the interface. |
113 | */ | 111 | */ |
114 | void Interface::restart(){ | 112 | void Interface::restart(){ |
115 | stop(); | 113 | stop(); |
116 | start(); | 114 | start(); |
117 | } | 115 | } |
118 | 116 | ||
119 | /** | 117 | /** |
120 | * Try to refresh the information about the interface. | 118 | * Try to refresh the information about the interface. |
121 | * First call ifconfig, then check the dhcp-info file | 119 | * First call ifconfig, then check the dhcp-info file |
122 | * @return bool true if successfull. | 120 | * @return bool true if successfull. |
123 | */ | 121 | */ |
124 | bool Interface::refresh(){ | 122 | bool Interface::refresh(){ |
125 | // See if we are up. | 123 | // See if we are up. |
126 | if(status == false){ | 124 | if(status == false){ |
127 | macAddress = ""; | 125 | macAddress = ""; |
128 | ip = "0.0.0.0"; | 126 | ip = "0.0.0.0"; |
129 | subnetMask = "0.0.0.0"; | 127 | subnetMask = "0.0.0.0"; |
130 | broadcast = ""; | 128 | broadcast = ""; |
131 | dhcp = false; | 129 | dhcp = false; |
132 | dhcpServerIp = ""; | 130 | dhcpServerIp = ""; |
133 | leaseObtained = ""; | 131 | leaseObtained = ""; |
134 | leaseExpires = ""; | 132 | leaseExpires = ""; |
135 | emit(updateInterface(this)); | 133 | emit(updateInterface(this)); |
136 | return true; | 134 | return true; |
137 | } | 135 | } |
138 | 136 | ||
139 | QString fileName = QString("/tmp/%1_ifconfig_info").arg(this->name()); | 137 | QString fileName = QString("/tmp/%1_ifconfig_info").arg(this->name()); |
140 | int ret = system(QString("%1 %2 > %3").arg(IFCONFIG).arg(this->name()).arg(fileName).latin1()); | 138 | int ret = system(QString("%1 %2 > %3").arg(IFCONFIG).arg(this->name()).arg(fileName).latin1()); |
141 | if(ret != 0){ | 139 | if(ret != 0){ |
142 | qDebug(QString("Interface: Ifconfig return value: %1, is not 0").arg(ret).latin1()); | 140 | qDebug(QString("Interface: Ifconfig return value: %1, is not 0").arg(ret).latin1()); |
143 | return false; | 141 | return false; |
144 | } | 142 | } |
145 | 143 | ||
146 | QFile file(fileName); | 144 | QFile file(fileName); |
147 | if (!file.open(IO_ReadOnly)){ | 145 | if (!file.open(IO_ReadOnly)){ |
148 | qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1()); | 146 | qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1()); |
149 | return false; | 147 | return false; |
150 | } | 148 | } |
151 | 149 | ||
152 | // Set to the defaults | 150 | // Set to the defaults |
153 | macAddress = ""; | 151 | macAddress = ""; |
154 | ip = "0.0.0.0"; | 152 | ip = "0.0.0.0"; |
155 | subnetMask = "0.0.0.0"; | 153 | subnetMask = "0.0.0.0"; |
156 | broadcast = ""; | 154 | broadcast = ""; |
157 | 155 | ||
158 | QTextStream stream( &file ); | 156 | QTextStream stream( &file ); |
159 | QString line; | 157 | QString line; |
160 | while ( !stream.eof() ) { | 158 | while ( !stream.eof() ) { |
161 | line = stream.readLine(); | 159 | line = stream.readLine(); |
162 | if(line.contains("HWaddr")){ | 160 | if(line.contains("HWaddr")){ |
163 | int mac = line.find("HWaddr"); | 161 | int mac = line.find("HWaddr"); |
164 | macAddress = line.mid(mac+7, line.length()); | 162 | macAddress = line.mid(mac+7, line.length()); |
165 | } | 163 | } |
166 | if(line.contains("inet addr")){ | 164 | if(line.contains("inet addr")){ |
167 | int ipl = line.find("inet addr"); | 165 | int ipl = line.find("inet addr"); |
168 | int space = line.find(" ", ipl+10); | 166 | int space = line.find(" ", ipl+10); |
169 | ip = line.mid(ipl+10, space-ipl-10); | 167 | ip = line.mid(ipl+10, space-ipl-10); |
170 | } | 168 | } |
171 | if(line.contains("Mask")){ | 169 | if(line.contains("Mask")){ |
172 | int mask = line.find("Mask"); | 170 | int mask = line.find("Mask"); |
173 | subnetMask = line.mid(mask+5, line.length()); | 171 | subnetMask = line.mid(mask+5, line.length()); |
174 | } | 172 | } |
175 | if(line.contains("Bcast")){ | 173 | if(line.contains("Bcast")){ |
176 | int mask = line.find("Bcast"); | 174 | int mask = line.find("Bcast"); |
177 | int space = line.find(" ", mask+6); | 175 | int space = line.find(" ", mask+6); |
178 | broadcast = line.mid(mask+6, space-mask-6); | 176 | broadcast = line.mid(mask+6, space-mask-6); |
179 | } | 177 | } |
180 | } | 178 | } |
181 | file.close(); | 179 | file.close(); |
182 | QFile::remove(fileName); | 180 | QFile::remove(fileName); |
183 | 181 | ||
184 | // DHCP TESTING | 182 | // DHCP TESTING |
185 | // reset DHCP info | 183 | // reset DHCP info |
186 | dhcpServerIp = ""; | 184 | dhcpServerIp = ""; |
187 | leaseObtained = ""; | 185 | leaseObtained = ""; |
188 | leaseExpires = ""; | 186 | leaseExpires = ""; |
189 | dhcp = false; | 187 | dhcp = false; |
190 | 188 | ||
191 | QString dhcpDirectory(DHCP_INFO_DIR); | 189 | QString dhcpDirectory(DHCP_INFO_DIR); |
192 | QDir d(dhcpDirectory); | 190 | QDir d(dhcpDirectory); |
193 | if(!d.exists(dhcpDirectory)) | 191 | if(!d.exists(dhcpDirectory)) |
194 | dhcpDirectory = "/var/run"; | 192 | dhcpDirectory = "/var/run"; |
195 | 193 | ||
196 | // See if we have | 194 | // See if we have |
197 | QString dhcpFile(QString(dhcpDirectory+"/dhcpcd-%1.info").arg(this->name())); | 195 | QString dhcpFile(QString(dhcpDirectory+"/dhcpcd-%1.info").arg(this->name())); |
198 | // If there is no DHCP information then exit now with no errors. | 196 | // If there is no DHCP information then exit now with no errors. |
199 | if(!QFile::exists(dhcpFile)){ | 197 | if(!QFile::exists(dhcpFile)){ |
200 | emit(updateInterface(this)); | 198 | emit(updateInterface(this)); |
201 | return true; | 199 | return true; |
202 | } | 200 | } |
203 | 201 | ||
204 | file.setName(dhcpFile); | 202 | file.setName(dhcpFile); |
205 | if (!file.open(IO_ReadOnly)){ | 203 | if (!file.open(IO_ReadOnly)){ |
206 | qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1()); | 204 | qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1()); |
207 | return false; | 205 | return false; |
208 | } | 206 | } |
209 | 207 | ||
210 | // leaseTime and renewalTime and used if pid and deamon exe can be accessed. | 208 | // leaseTime and renewalTime and used if pid and deamon exe can be accessed. |
211 | int leaseTime = 0; | 209 | int leaseTime = 0; |
212 | int renewalTime = 0; | 210 | int renewalTime = 0; |
213 | 211 | ||
214 | stream.setDevice( &file ); | 212 | stream.setDevice( &file ); |
215 | while ( !stream.eof() ) { | 213 | while ( !stream.eof() ) { |
216 | line = stream.readLine(); | 214 | line = stream.readLine(); |
217 | if(line.contains("DHCPSIADDR=")) | 215 | if(line.contains("DHCPSIADDR=")) |
218 | dhcpServerIp = line.mid(11, line.length()); | 216 | dhcpServerIp = line.mid(11, line.length()); |
219 | if(line.contains("LEASETIME=")) | 217 | if(line.contains("LEASETIME=")) |
220 | leaseTime = line.mid(10, line.length()).toInt(); | 218 | leaseTime = line.mid(10, line.length()).toInt(); |
221 | if(line.contains("RENEWALTIME=")) | 219 | if(line.contains("RENEWALTIME=")) |
222 | renewalTime = line.mid(12, line.length()).toInt(); | 220 | renewalTime = line.mid(12, line.length()).toInt(); |
223 | } | 221 | } |
224 | file.close(); | 222 | file.close(); |
225 | //qDebug(QString("Interface: leaseTime: %1").arg(leaseTime).latin1()); | 223 | //qDebug(QString("Interface: leaseTime: %1").arg(leaseTime).latin1()); |
226 | //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1()); | 224 | //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1()); |
227 | 225 | ||
228 | // Get the pid of the deamond | 226 | // Get the pid of the deamond |
229 | dhcpFile = (QString(dhcpDirectory+"/dhcpcd-%1.pid").arg(this->name())); | 227 | dhcpFile = (QString(dhcpDirectory+"/dhcpcd-%1.pid").arg(this->name())); |
230 | file.setName(dhcpFile); | 228 | file.setName(dhcpFile); |
231 | if (!file.open(IO_ReadOnly)){ | 229 | if (!file.open(IO_ReadOnly)){ |
232 | qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1()); | 230 | qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1()); |
233 | return false; | 231 | return false; |
234 | } | 232 | } |
235 | 233 | ||
236 | int pid = -1; | 234 | int pid = -1; |
237 | stream.setDevice( &file ); | 235 | stream.setDevice( &file ); |
238 | while ( !stream.eof() ) { | 236 | while ( !stream.eof() ) { |
239 | line = stream.readLine(); | 237 | line = stream.readLine(); |
240 | pid = line.toInt(); | 238 | pid = line.toInt(); |
241 | } | 239 | } |
242 | file.close(); | 240 | file.close(); |
243 | 241 | ||
244 | if( pid == -1){ | 242 | if( pid == -1){ |
245 | qDebug("Interface: Could not get pid of dhcpc deamon."); | 243 | qDebug("Interface: Could not get pid of dhcpc deamon."); |
246 | return false; | 244 | return false; |
247 | } | 245 | } |
248 | 246 | ||
249 | // Get the start running time of the deamon | 247 | // Get the start running time of the deamon |
250 | fileName = (QString("/proc/%1/stat").arg(pid)); | 248 | fileName = (QString("/proc/%1/stat").arg(pid)); |
251 | file.setName(fileName); | 249 | file.setName(fileName); |
252 | stream.setDevice( &file ); | 250 | stream.setDevice( &file ); |
253 | if (!file.open(IO_ReadOnly)){ | 251 | if (!file.open(IO_ReadOnly)){ |
254 | qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1()); | 252 | qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1()); |
255 | return false; | 253 | return false; |
256 | } | 254 | } |
257 | while ( !stream.eof() ) { | 255 | while ( !stream.eof() ) { |
258 | line = stream.readLine(); | 256 | line = stream.readLine(); |
259 | } | 257 | } |
260 | file.close(); | 258 | file.close(); |
261 | long time = 0; | 259 | long time = 0; |
diff --git a/noncore/settings/networksettings/opie-networksettings.control b/noncore/settings/networksettings/opie-networksettings.control index 8fa40c7..7635cd1 100644 --- a/noncore/settings/networksettings/opie-networksettings.control +++ b/noncore/settings/networksettings/opie-networksettings.control | |||
@@ -1,8 +1,9 @@ | |||
1 | Files: bin/networksettings apps/Settings/networksettings.desktop plugins/networksettings/* pics/networksettings/* pics/Network/PPPConnect.png $QTDIR/lib/libinterfaces.so.1.0.0 $QTDIR/lib/libinterfaces.so.1.0 $QTDIR/lib/libinterfaces.so.1 root/usr/bin/changedns bin/getprofile | 1 | Files: bin/networksettings apps/Settings/networksettings.desktop plugins/networksettings/* pics/networksettings/* pics/Network/PPPConnect.png $QTDIR/lib/libinterfaces.so.1.0.0 $QTDIR/lib/libinterfaces.so.1.0 $QTDIR/lib/libinterfaces.so.1 root/usr/bin/changedns bin/getprofile |
2 | Priority: optional | 2 | Priority: optional |
3 | Section: opie/settings | 3 | Section: opie/settings |
4 | Maintainer: Ben Meyer <meyerb@sharpsec.com> | 4 | Maintainer: Ben Meyer <meyerb@sharpsec.com> |
5 | Architecture: arm | 5 | Architecture: arm |
6 | Version: $QPE_VERSION-$SUB_VERSION | 6 | Version: $QPE_VERSION-$SUB_VERSION |
7 | Depends: opie-base ($QPE_VERSION) | 7 | Depends: opie-base ($QPE_VERSION) |
8 | Description: Network settings | 8 | Description: Network settings. |
9 | Replaces: opie-networksetup | ||