summaryrefslogtreecommitdiff
path: root/noncore/net
Unidiff
Diffstat (limited to 'noncore/net') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/networksetup/interface.cpp2
-rw-r--r--noncore/net/networksetup/interfaceinformationimp.h2
-rw-r--r--noncore/net/networksetup/mainwindowimp.cpp15
-rw-r--r--noncore/net/networksetup/mainwindowimp.h9
4 files changed, 21 insertions, 7 deletions
diff --git a/noncore/net/networksetup/interface.cpp b/noncore/net/networksetup/interface.cpp
index b9b09ad..f6eed00 100644
--- a/noncore/net/networksetup/interface.cpp
+++ b/noncore/net/networksetup/interface.cpp
@@ -174,49 +174,49 @@ bool Interface::refresh(){
174 pid = line.toInt(); 174 pid = line.toInt();
175 } 175 }
176 file.close(); 176 file.close();
177 177
178 if( pid == -1){ 178 if( pid == -1){
179 qDebug("Interface: Could not get pid of dhcpc deamon."); 179 qDebug("Interface: Could not get pid of dhcpc deamon.");
180 return false; 180 return false;
181 } 181 }
182 182
183 // Get the start running time of the deamon 183 // Get the start running time of the deamon
184 fileName = (QString("/proc/%1/stat").arg(pid)); 184 fileName = (QString("/proc/%1/stat").arg(pid));
185 file.setName(fileName); 185 file.setName(fileName);
186 stream.setDevice( &file ); 186 stream.setDevice( &file );
187 if (!file.open(IO_ReadOnly)){ 187 if (!file.open(IO_ReadOnly)){
188 qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1()); 188 qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1());
189 return false; 189 return false;
190 } 190 }
191 while ( !stream.eof() ) { 191 while ( !stream.eof() ) {
192 line = stream.readLine(); 192 line = stream.readLine();
193 } 193 }
194 file.close(); 194 file.close();
195 long time = 0; 195 long time = 0;
196 // Grab the start time 196 // Grab the start time
197 // pid com state ppid pgrp session tty_nr tpgid flags 197 // pid com state ppid pgrp session tty_nr tpgid flags
198 int r = sscanf(line.latin1(), "%*d %*s %*c %*d %*d %*d %*d %*d %*u " 198 sscanf(line.latin1(), "%*d %*s %*c %*d %*d %*d %*d %*d %*u "
199 // minflt cminflt majflt cmajflt utime stime cutime cstime priority 199 // minflt cminflt majflt cmajflt utime stime cutime cstime priority
200 "%*u %*u %*u %*u %*u %*u %*d %*d %*d " 200 "%*u %*u %*u %*u %*u %*u %*d %*d %*d "
201 // nice 0 itrealvalue starttime 201 // nice 0 itrealvalue starttime
202 "%*d %*d %*d %lu", (long*) &time); 202 "%*d %*d %*d %lu", (long*) &time);
203 time = time/100; 203 time = time/100;
204 204
205 QDateTime datetime(QDateTime::currentDateTime()); 205 QDateTime datetime(QDateTime::currentDateTime());
206 206
207 // Get the uptime of the computer. 207 // Get the uptime of the computer.
208 QFile f("/proc/uptime"); 208 QFile f("/proc/uptime");
209 if ( f.open(IO_ReadOnly) ) { // file opened successfully 209 if ( f.open(IO_ReadOnly) ) { // file opened successfully
210 QTextStream t( &f ); // use a text stream 210 QTextStream t( &f ); // use a text stream
211 int sec = 0; 211 int sec = 0;
212 t >> sec; 212 t >> sec;
213 datetime = datetime.addSecs((-1*sec)); 213 datetime = datetime.addSecs((-1*sec));
214 f.close(); 214 f.close();
215 } 215 }
216 else{ 216 else{
217 qDebug("Interface: Can't open /proc/uptime to retrive uptime."); 217 qDebug("Interface: Can't open /proc/uptime to retrive uptime.");
218 return false; 218 return false;
219 } 219 }
220 220
221 datetime = datetime.addSecs(time); 221 datetime = datetime.addSecs(time);
222 //qDebug(QString("Interface: %1 %2").arg(datetime.toString()).arg(pid).latin1()); 222 //qDebug(QString("Interface: %1 %2").arg(datetime.toString()).arg(pid).latin1());
diff --git a/noncore/net/networksetup/interfaceinformationimp.h b/noncore/net/networksetup/interfaceinformationimp.h
index 6fc2384..c8a478e 100644
--- a/noncore/net/networksetup/interfaceinformationimp.h
+++ b/noncore/net/networksetup/interfaceinformationimp.h
@@ -1,31 +1,31 @@
1#ifndef INTERFACEINFORMATIONIMP_H 1#ifndef INTERFACEINFORMATIONIMP_H
2#define INTERFACEINFORMATIONIMP_H 2#define INTERFACEINFORMATIONIMP_H
3 3
4#include "interfaceinformation.h" 4#include "interfaceinformation.h"
5#include "interface.h" 5#include "interface.h"
6 6
7class InterfaceInformationImp : public InterfaceInformation { 7class InterfaceInformationImp : public InterfaceInformation {
8 8
9Q_OBJECT 9Q_OBJECT
10 10
11public: 11public:
12 InterfaceInformationImp(QWidget *parent=0, const char *name=0, Interface *i=0, WFlags f=0); 12 InterfaceInformationImp(QWidget *parent=0, const char *name=0, Interface *i=0, WFlags f=0);
13 ~InterfaceInformationImp(){}; 13 ~InterfaceInformationImp(){};
14 14
15private slots: 15private slots:
16 void start(); 16 void start();
17 void stop(); 17 void stop();
18 void refresh(); 18 void refresh();
19 void restart(); 19 void restart();
20 void advanced(); 20 void advanced();
21 Interface *interface;
22 21
23private: 22private:
23 Interface *interface;
24 void updateInterface(); 24 void updateInterface();
25 25
26}; 26};
27 27
28#endif 28#endif
29 29
30// addserviceimp.h 30// addserviceimp.h
31 31
diff --git a/noncore/net/networksetup/mainwindowimp.cpp b/noncore/net/networksetup/mainwindowimp.cpp
index 3c13143..ad9362f 100644
--- a/noncore/net/networksetup/mainwindowimp.cpp
+++ b/noncore/net/networksetup/mainwindowimp.cpp
@@ -1,82 +1,93 @@
1#include "mainwindowimp.h" 1#include "mainwindowimp.h"
2#include "addserviceimp.h" 2#include "addserviceimp.h"
3#include "interfaceinformationimp.h" 3#include "interfaceinformationimp.h"
4#include "interfacesetupimp.h" 4#include "interfacesetupimp.h"
5#include "interface.h"
6#include "kprocess.h"
7#include "module.h"
5 8
6#include <qpushbutton.h> 9#include <qpushbutton.h>
7#include <qdir.h> 10#include <qdir.h>
8#include <qtabwidget.h> 11#include <qtabwidget.h>
9#include <qmainwindow.h> 12#include <qmainwindow.h>
10#include <qmessagebox.h> 13#include <qmessagebox.h>
11#include <qlistbox.h> 14#include <qlistbox.h>
12#include <qpe/config.h> 15#include <qpe/config.h>
13#include <qpe/qlibrary.h> 16#include <qpe/qlibrary.h>
14#include <qpe/resource.h> 17#include <qpe/resource.h>
15#include <qlist.h> 18#include <qlist.h>
16 19
17#include <qfile.h> 20#include <qfile.h>
18#include <qtextstream.h> 21#include <qtextstream.h>
19#include <qlistview.h> 22#include <qlistview.h>
20#include <qheader.h> 23#include <qheader.h>
21// For library loading. 24// For library loading.
22#include <dlfcn.h> 25#include <dlfcn.h>
23 26
24#define TEMP_ALL "/tmp/ifconfig-a" 27#define TEMP_ALL "/tmp/ifconfig-a"
25#define TEMP_UP "/tmp/ifconfig" 28#define TEMP_UP "/tmp/ifconfig"
26 29
27#define NO_SELECT_ERROR_AND_RETURN { \ 30#define NO_SELECT_ERROR_AND_RETURN { \
28 QMessageBox::information(this, "Error","Please select an interface.", "Ok"); \ 31 QMessageBox::information(this, "Error","Please select an interface.", "Ok"); \
29 return; \ 32 return; \
30} 33}
31 34
32MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true) { 35MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true) {
33 connect(addServiceButton, SIGNAL(clicked()), this, SLOT(addClicked())); 36 connect(addServiceButton, SIGNAL(clicked()), this, SLOT(addClicked()));
34 connect(removeServiceButton, SIGNAL(clicked()), this, SLOT(removeClicked())); 37 connect(removeServiceButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
35 connect(informationServiceButton, SIGNAL(clicked()), this, SLOT(informationClicked())); 38 connect(informationServiceButton, SIGNAL(clicked()), this, SLOT(informationClicked()));
36 connect(configureServiceButton, SIGNAL(clicked()), this, SLOT(configureClicked())); 39 connect(configureServiceButton, SIGNAL(clicked()), this, SLOT(configureClicked()));
37 // Make sure we have a plugin directory to scan. 40 // Make sure we have a plugin directory to scan.
38 QString DirStr = QDir::homeDirPath() + "/.networksetup/" ; 41 QString DirStr = QDir::homeDirPath() + "/.networksetup/" ;
39 QDir pluginDir( DirStr ); 42 QDir pluginDir( DirStr );
40 pluginDir.mkdir( DirStr ); 43 pluginDir.mkdir( DirStr );
41 pluginDir.mkdir( ( DirStr + "plugins/" ) ); 44 pluginDir.mkdir( ( DirStr + "plugins/" ) );
42 QString path = DirStr + "plugins"; 45 QString path = DirStr + "plugins";
43 pluginDir.setPath(path); 46 pluginDir.setPath(path);
44 if(!pluginDir.exists()){ 47 if(!pluginDir.exists()){
45 qDebug(QString("MainWindowImp: ERROR: %1 %2").arg(__FILE__).arg(__LINE__).latin1()); 48 qDebug(QString("MainWindowImp: ERROR: %1 %2").arg(__FILE__).arg(__LINE__).latin1());
46 return; 49 return;
47 } 50 }
48 51
49 // Load any saved services. 52 // Load any saved services.
50 loadModules(path); 53 loadModules(path);
51 getInterfaceList(); 54 getInterfaceList();
52 serviceList->header()->hide(); 55 serviceList->header()->hide();
56
57
58 Config cfg("NetworkSetup");
59 profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All"));
53} 60}
54 61
55/** 62/**
56 * Deconstructor. Unload libraries and save. 63 * Deconstructor. Unload libraries and save profile list.
57 */ 64 */
58MainWindowImp::~MainWindowImp(){ 65MainWindowImp::~MainWindowImp(){
66 if(profiles.count() > 1){
67 Config cfg("NetworkSetup");
68 cfg.writeEntry("Profiles", profiles.join(" "));
69 }
59} 70}
60 71
61void MainWindowImp::loadModules(QString path){ 72void MainWindowImp::loadModules(QString path){
62} 73}
63 74
64/** 75/**
65 * Attempt to load a function and resolve a function. 76 * Attempt to load a function and resolve a function.
66 * @param pluginFileName - the name of the file in which to attempt to load 77 * @param pluginFileName - the name of the file in which to attempt to load
67 * @param resolveString - function pointer to resolve 78 * @param resolveString - function pointer to resolve
68 * @return pointer to the function with name resolveString or NULL 79 * @return pointer to the function with name resolveString or NULL
69 */ 80 */
70Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){ 81Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){
71 //qDebug(pluginFileName.latin1()); 82 //qDebug(pluginFileName.latin1());
72 QLibrary *lib = new QLibrary(pluginFileName); 83 QLibrary *lib = new QLibrary(pluginFileName);
73 void *functionPointer = lib->resolve(resolveString); 84 void *functionPointer = lib->resolve(resolveString);
74 if( !functionPointer ){ 85 if( !functionPointer ){
75 qDebug(QString("MainWindowImp: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1()); 86 qDebug(QString("MainWindowImp: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1());
76 delete lib; 87 delete lib;
77 return NULL; 88 return NULL;
78 } 89 }
79 90
80 // Try to get an object. 91 // Try to get an object.
81 Module *object = ((Module* (*)()) functionPointer)(); 92 Module *object = ((Module* (*)()) functionPointer)();
82 if(object == NULL){ 93 if(object == NULL){
@@ -231,49 +242,49 @@ void MainWindowImp::jobDone(KProcess *process){
231 QString interfaceName = line.mid(0, space); 242 QString interfaceName = line.mid(0, space);
232 Interface *i; 243 Interface *i;
233 // See if we already have it 244 // See if we already have it
234 if(interfaceNames.find(interfaceName) == interfaceNames.end()){ 245 if(interfaceNames.find(interfaceName) == interfaceNames.end()){
235 if(fileName == TEMP_ALL) 246 if(fileName == TEMP_ALL)
236 i = new Interface(interfaceName, false); 247 i = new Interface(interfaceName, false);
237 else 248 else
238 i = new Interface(interfaceName, true); 249 i = new Interface(interfaceName, true);
239 } 250 }
240 else{ 251 else{
241 i = interfaceNames[interfaceName]; 252 i = interfaceNames[interfaceName];
242 if(fileName != TEMP_ALL) 253 if(fileName != TEMP_ALL)
243 i->setStatus(true); 254 i->setStatus(true);
244 } 255 }
245 256
246 i->setAttached(true); 257 i->setAttached(true);
247 i->setInterfaceName(interfaceName); 258 i->setInterfaceName(interfaceName);
248 259
249 QString hardName = "Ethernet"; 260 QString hardName = "Ethernet";
250 int hardwareName = line.find("Link encap:"); 261 int hardwareName = line.find("Link encap:");
251 int macAddress = line.find("HWaddr"); 262 int macAddress = line.find("HWaddr");
252 if(macAddress == -1) 263 if(macAddress == -1)
253 macAddress = line.length(); 264 macAddress = line.length();
254 if(hardwareName != -1) 265 if(hardwareName != -1)
255 i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11))); 266 i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11)) + QString(" (%1)").arg(i->getInterfaceName()));
256 // We have found an interface 267 // We have found an interface
257 //qDebug(QString("MainWindowImp: Found Interface: %1").arg(line).latin1()); 268 //qDebug(QString("MainWindowImp: Found Interface: %1").arg(line).latin1());
258 interfaceNames.insert(i->getInterfaceName(), i); 269 interfaceNames.insert(i->getInterfaceName(), i);
259 updateInterface(i); 270 updateInterface(i);
260 } 271 }
261 } 272 }
262 file.close(); 273 file.close();
263 QFile::remove(fileName); 274 QFile::remove(fileName);
264} 275}
265 276
266void MainWindowImp::updateInterface(Interface *i){ 277void MainWindowImp::updateInterface(Interface *i){
267 QListViewItem *item = NULL; 278 QListViewItem *item = NULL;
268 279
269 // See if we already have it 280 // See if we already have it
270 if(items.find(i) == items.end()){ 281 if(items.find(i) == items.end()){
271 item = new QListViewItem(serviceList, "", "", ""); 282 item = new QListViewItem(serviceList, "", "", "");
272 // See if you can't find a module owner for this interface 283 // See if you can't find a module owner for this interface
273 //EmployeeMap::Iterator it; 284 //EmployeeMap::Iterator it;
274 //for( it = map.begin(); it != map.end(); ++it ) 285 //for( it = map.begin(); it != map.end(); ++it )
275 // printf( "%s, %s earns %d\n", it.key().latin1(), it.data().name().latin1(), it.data().salary() ); 286 // printf( "%s, %s earns %d\n", it.key().latin1(), it.data().name().latin1(), it.data().salary() );
276 287
277 items.insert(i, item); 288 items.insert(i, item);
278 interfaceItems.insert(item, i); 289 interfaceItems.insert(item, i);
279 } 290 }
diff --git a/noncore/net/networksetup/mainwindowimp.h b/noncore/net/networksetup/mainwindowimp.h
index 95ec2a1..0618dd2 100644
--- a/noncore/net/networksetup/mainwindowimp.h
+++ b/noncore/net/networksetup/mainwindowimp.h
@@ -1,53 +1,56 @@
1#ifndef MAINWINOWIMP_H 1#ifndef MAINWINOWIMP_H
2#define MAINWINOWIMP_H 2#define MAINWINOWIMP_H
3 3
4#include "mainwindow.h" 4#include "mainwindow.h"
5#include "module.h"
6#include "interface.h"
7#include "kprocess.h"
8#include <qmap.h> 5#include <qmap.h>
6#include <qstringlist.h>
9 7
8class Module;
9class Interface;
10class QLibrary; 10class QLibrary;
11class KProcess;
11 12
12class MainWindowImp : public MainWindow { 13class MainWindowImp : public MainWindow {
13 Q_OBJECT 14 Q_OBJECT
14 15
15public: 16public:
16 MainWindowImp(QWidget *parent=0, const char *name=0); 17 MainWindowImp(QWidget *parent=0, const char *name=0);
17 ~MainWindowImp(); 18 ~MainWindowImp();
18 19
19private slots: 20private slots:
20 void addClicked(); 21 void addClicked();
21 void removeClicked(); 22 void removeClicked();
22 void configureClicked(); 23 void configureClicked();
23 void informationClicked(); 24 void informationClicked();
24 25
25 void jobDone(KProcess *process); 26 void jobDone(KProcess *process);
26 void getInterfaceList(); 27 void getInterfaceList();
27 28
28 void addProfile(); 29 void addProfile();
29 void removeProfile(); 30 void removeProfile();
30 31
31 void updateInterface(Interface *i); 32 void updateInterface(Interface *i);
32 33
33private: 34private:
34 void loadModules(QString path); 35 void loadModules(QString path);
35 36
36 Module* loadPlugin(QString pluginFileName, 37 Module* loadPlugin(QString pluginFileName,
37 QString resolveString = "create_plugin"); 38 QString resolveString = "create_plugin");
38 39
39 // For our local list of names 40 // For our local list of names
40 QMap<QString, Interface*> interfaceNames; 41 QMap<QString, Interface*> interfaceNames;
41 42
42 QMap<Module*, QLibrary*> libraries; 43 QMap<Module*, QLibrary*> libraries;
43 QMap<Interface*, Module*> modules; 44 QMap<Interface*, Module*> modules;
44 QMap<Interface*, QListViewItem*> items; 45 QMap<Interface*, QListViewItem*> items;
45 QMap<QListViewItem*, Interface*> interfaceItems; 46 QMap<QListViewItem*, Interface*> interfaceItems;
46 47
47 QMap<KProcess*, QString> threads; 48 QMap<KProcess*, QString> threads;
49 QStringList profiles;
50
48}; 51};
49 52
50#endif 53#endif
51 54
52// mainwindowimp.h 55// mainwindowimp.h
53 56