summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/mainwindowimp.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp
index 50131d8..7e24cda 100644
--- a/noncore/settings/networksettings/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindowimp.cpp
@@ -162,66 +162,64 @@ void MainWindowImp::getAllInterfaces(){
162 struct ifreq ifrs[100]; 162 struct ifreq ifrs[100];
163 struct ifconf ifc; 163 struct ifconf ifc;
164 ifc.ifc_len = sizeof(ifrs); 164 ifc.ifc_len = sizeof(ifrs);
165 ifc.ifc_req = ifrs; 165 ifc.ifc_req = ifrs;
166 result = ioctl(sockfd, SIOCGIFCONF, &ifc); 166 result = ioctl(sockfd, SIOCGIFCONF, &ifc);
167 167
168 for (unsigned int i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++) { 168 for (unsigned int i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++) {
169 struct ifreq *pifr = &ifrs[i]; 169 struct ifreq *pifr = &ifrs[i];
170 170
171 ifaces += pifr->ifr_name; 171 ifaces += pifr->ifr_name;
172 } 172 }
173 } else { 173 } else {
174 procFile.open(IO_ReadOnly); 174 procFile.open(IO_ReadOnly);
175 QString line; 175 QString line;
176 QTextStream procTs(&procFile); 176 QTextStream procTs(&procFile);
177 int loc = -1; 177 int loc = -1;
178 178
179 procTs.readLine(); // eat a line 179 procTs.readLine(); // eat a line
180 procTs.readLine(); // eat a line 180 procTs.readLine(); // eat a line
181 while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null) { 181 while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null) {
182 if((loc = line.find(":")) != -1) { 182 if((loc = line.find(":")) != -1) {
183 ifaces += line.left(loc); 183 ifaces += line.left(loc);
184 } 184 }
185 } 185 }
186 } 186 }
187 187
188 for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) { 188 for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) {
189 int flags = 0, family; 189 int flags = 0, family;
190 Interface *i = NULL; 190 Interface *i = NULL;
191 191
192 strcpy(ifr.ifr_name, (*it).latin1()); 192 strcpy(ifr.ifr_name, (*it).latin1());
193 193
194 qWarning("ifr.ifr_name=%s\n", ifr.ifr_name);
195
196 struct ifreq ifcopy; 194 struct ifreq ifcopy;
197 ifcopy = ifr; 195 ifcopy = ifr;
198 result = ioctl(sockfd, SIOCGIFFLAGS, &ifcopy); 196 result = ioctl(sockfd, SIOCGIFFLAGS, &ifcopy);
199 flags = ifcopy.ifr_flags; 197 flags = ifcopy.ifr_flags;
200 i = new Interface(this, ifr.ifr_name, false); 198 i = new Interface(this, ifr.ifr_name, false);
201 i->setAttached(true); 199 i->setAttached(true);
202 if ((flags & IFF_UP) == IFF_UP) 200 if ((flags & IFF_UP) == IFF_UP)
203 i->setStatus(true); 201 i->setStatus(true);
204 else 202 else
205 i->setStatus(false); 203 i->setStatus(false);
206 204
207 if ((flags & IFF_BROADCAST) == IFF_BROADCAST) 205 if ((flags & IFF_BROADCAST) == IFF_BROADCAST)
208 i->setHardwareName("Ethernet"); 206 i->setHardwareName("Ethernet");
209 else if ((flags & IFF_POINTOPOINT) == IFF_POINTOPOINT) 207 else if ((flags & IFF_POINTOPOINT) == IFF_POINTOPOINT)
210 i->setHardwareName("Point to Point"); 208 i->setHardwareName("Point to Point");
211 else if ((flags & IFF_MULTICAST) == IFF_MULTICAST) 209 else if ((flags & IFF_MULTICAST) == IFF_MULTICAST)
212 i->setHardwareName("Multicast"); 210 i->setHardwareName("Multicast");
213 else if ((flags & IFF_LOOPBACK) == IFF_LOOPBACK) 211 else if ((flags & IFF_LOOPBACK) == IFF_LOOPBACK)
214 i->setHardwareName("Loopback"); 212 i->setHardwareName("Loopback");
215 else 213 else
216 i->setHardwareName("Unknown"); 214 i->setHardwareName("Unknown");
217 215
218 qWarning("Adding interface %s to interfaceNames\n", ifr.ifr_name); 216 qWarning("Adding interface %s to interfaceNames\n", ifr.ifr_name);
219 interfaceNames.insert(i->getInterfaceName(), i); 217 interfaceNames.insert(i->getInterfaceName(), i);
220 updateInterface(i); 218 updateInterface(i);
221 connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *))); 219 connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
222 } 220 }
223} 221}
224 222
225/** 223/**
226 * Load all modules that are found in the path 224 * Load all modules that are found in the path
227 * @param path a directory that is scaned for any plugins that can be loaded 225 * @param path a directory that is scaned for any plugins that can be loaded
@@ -360,77 +358,80 @@ void MainWindowImp::removeClicked(){
360 if(!item) { 358 if(!item) {
361 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok); 359 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
362 return; 360 return;
363 } 361 }
364 362
365 Interface *i = interfaceItems[item]; 363 Interface *i = interfaceItems[item];
366 if(i->getModuleOwner() == NULL){ 364 if(i->getModuleOwner() == NULL){
367 QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", QMessageBox::Ok); 365 QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", QMessageBox::Ok);
368 } 366 }
369 else{ 367 else{
370 if(!i->getModuleOwner()->remove(i)) 368 if(!i->getModuleOwner()->remove(i))
371 QMessageBox::information(this, "Error", "Unable to remove.", QMessageBox::Ok); 369 QMessageBox::information(this, "Error", "Unable to remove.", QMessageBox::Ok);
372 else{ 370 else{
373 QMessageBox::information(this, "Success", "Interface was removed.", QMessageBox::Ok); 371 QMessageBox::information(this, "Success", "Interface was removed.", QMessageBox::Ok);
374 // TODO memory managment.... 372 // TODO memory managment....
375 // who deletes the interface? 373 // who deletes the interface?
376 } 374 }
377 } 375 }
378} 376}
379 377
380/** 378/**
381 * Pull up the configure about the currently selected interface. 379 * Pull up the configure about the currently selected interface.
382 * Report an error if no interface is selected. 380 * Report an error if no interface is selected.
383 * If the interface has a module owner then request its configure. 381 * If the interface has a module owner then request its configure.
384 */ 382 */
385void MainWindowImp::configureClicked(){ 383void MainWindowImp::configureClicked(){
386 QListViewItem *item = connectionList->currentItem(); 384 QListViewItem *item = connectionList->currentItem();
387 if(!item){ 385 if(!item){
388 QMessageBox::information(this, "Sorry","Please select an interface first.", QMessageBox::Ok); 386 QMessageBox::information(this, "Sorry","Please select an interface first.", QMessageBox::Ok);
389 return; 387 return;
390 } 388 }
391 389
390 QString currentProfileText = currentProfileLabel->text();
391 if(currentProfileText.upper() == "ALL");
392 currentProfileText = "";
393
392 Interface *i = interfaceItems[item]; 394 Interface *i = interfaceItems[item];
395
393 if(i->getModuleOwner()){ 396 if(i->getModuleOwner()){
394 QWidget *moduleConfigure = i->getModuleOwner()->configure(i); 397 QWidget *moduleConfigure = i->getModuleOwner()->configure(i);
395 if(moduleConfigure != NULL){ 398 if(moduleConfigure != NULL){
399 i->getModuleOwner()->setProfile(currentProfileText);
396 moduleConfigure->showMaximized(); 400 moduleConfigure->showMaximized();
397 return; 401 return;
398 } 402 }
399 } 403 }
400 404
401 InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(this, "InterfaceSetupImp", i, true, Qt::WDestructiveClose ); 405 InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(this, "InterfaceSetupImp", i, true, Qt::WDestructiveClose );
402 QString currentProfileText = currentProfileLabel->text();
403 if(currentProfileText.upper() == "ALL");
404 currentProfileText = "";
405 configure->setProfile(currentProfileText); 406 configure->setProfile(currentProfileText);
406 configure->showMaximized(); 407 configure->showMaximized();
407} 408}
408 409
409/** 410/**
410 * Pull up the information about the currently selected interface. 411 * Pull up the information about the currently selected interface.
411 * Report an error if no interface is selected. 412 * Report an error if no interface is selected.
412 * If the interface has a module owner then request its configure. 413 * If the interface has a module owner then request its configure.
413 */ 414 */
414void MainWindowImp::informationClicked(){ 415void MainWindowImp::informationClicked(){
415 QListViewItem *item = connectionList->currentItem(); 416 QListViewItem *item = connectionList->currentItem();
416 if(!item){ 417 if(!item){
417 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok); 418 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
418 return; 419 return;
419 } 420 }
420 421
421 Interface *i = interfaceItems[item]; 422 Interface *i = interfaceItems[item];
422 if(!i->isAttached()){ 423 if(!i->isAttached()){
423 QMessageBox::information(this, "Sorry","No information about\na disconnected interface.", QMessageBox::Ok); 424 QMessageBox::information(this, "Sorry","No information about\na disconnected interface.", QMessageBox::Ok);
424 return; 425 return;
425 } 426 }
426 427
427 if(i->getModuleOwner()){ 428 if(i->getModuleOwner()){
428 QWidget *moduleInformation = i->getModuleOwner()->information(i); 429 QWidget *moduleInformation = i->getModuleOwner()->information(i);
429 if(moduleInformation != NULL){ 430 if(moduleInformation != NULL){
430 moduleInformation->showMaximized(); 431 moduleInformation->showMaximized();
431#ifdef DEBUG 432#ifdef DEBUG
432 qDebug("MainWindowImp::informationClicked:: Module owner has created, we showed."); 433 qDebug("MainWindowImp::informationClicked:: Module owner has created, we showed.");
433#endif 434#endif
434 return; 435 return;
435 } 436 }
436 } 437 }