author | ar <ar> | 2004-05-15 22:36:18 (UTC) |
---|---|---|
committer | ar <ar> | 2004-05-15 22:36:18 (UTC) |
commit | 736a153edfac343d0794ecafc5dc2f2c405260a7 (patch) (unidiff) | |
tree | ebb41331403fa78769df2a344bfe12bbd1df6c46 | |
parent | d4a82558ff3ae6ed7bbc5dbc9857461057eb3da3 (diff) | |
download | opie-736a153edfac343d0794ecafc5dc2f2c405260a7.zip opie-736a153edfac343d0794ecafc5dc2f2c405260a7.tar.gz opie-736a153edfac343d0794ecafc5dc2f2c405260a7.tar.bz2 |
- convert qDebug to odebug
-rw-r--r-- | noncore/settings/appearance2/appearance.cpp | 4 | ||||
-rw-r--r-- | noncore/settings/networksettings/ppp/modem.cpp | 52 | ||||
-rw-r--r-- | noncore/settings/networksettings/wlan/wlanimp2.cpp | 29 |
3 files changed, 43 insertions, 42 deletions
diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp index f918767..9638686 100644 --- a/noncore/settings/appearance2/appearance.cpp +++ b/noncore/settings/appearance2/appearance.cpp | |||
@@ -18,48 +18,49 @@ | |||
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
19 | ..}^=.= = ; Public License for more details. | 19 | ..}^=.= = ; Public License for more details. |
20 | ++= -. .` .: | 20 | ++= -. .` .: |
21 | : = ...= . :.=- You should have received a copy of the GNU | 21 | : = ...= . :.=- You should have received a copy of the GNU |
22 | -. .:....=;==+<; General Public License along with this file; | 22 | -. .:....=;==+<; General Public License along with this file; |
23 | -_. . . )=. = see the file COPYING. If not, write to the | 23 | -_. . . )=. = see the file COPYING. If not, write to the |
24 | -- :-=` Free Software Foundation, Inc., | 24 | -- :-=` Free Software Foundation, Inc., |
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include "appearance.h" | 30 | #include "appearance.h" |
31 | #include "editScheme.h" | 31 | #include "editScheme.h" |
32 | #include "stylelistitem.h" | 32 | #include "stylelistitem.h" |
33 | #include "decolistitem.h" | 33 | #include "decolistitem.h" |
34 | #include "colorlistitem.h" | 34 | #include "colorlistitem.h" |
35 | #include "exceptlistitem.h" | 35 | #include "exceptlistitem.h" |
36 | #include "sample.h" | 36 | #include "sample.h" |
37 | 37 | ||
38 | /* OPIE */ | 38 | /* OPIE */ |
39 | #include <opie2/odevice.h> | 39 | #include <opie2/odevice.h> |
40 | #include <opie2/ofiledialog.h> | 40 | #include <opie2/ofiledialog.h> |
41 | #include <opie2/otabwidget.h> | 41 | #include <opie2/otabwidget.h> |
42 | #include <opie2/odebug.h> | ||
42 | 43 | ||
43 | #include <qpe/config.h> | 44 | #include <qpe/config.h> |
44 | #include <qpe/global.h> | 45 | #include <qpe/global.h> |
45 | #include <qpe/qpeapplication.h> | 46 | #include <qpe/qpeapplication.h> |
46 | #include <qpe/qpemessagebox.h> | 47 | #include <qpe/qpemessagebox.h> |
47 | #include <qpe/qcopenvelope_qws.h> | 48 | #include <qpe/qcopenvelope_qws.h> |
48 | #include <qpe/qpestyle.h> | 49 | #include <qpe/qpestyle.h> |
49 | #include <qpe/lightstyle.h> | 50 | #include <qpe/lightstyle.h> |
50 | #include <qpe/styleinterface.h> | 51 | #include <qpe/styleinterface.h> |
51 | 52 | ||
52 | /* QT */ | 53 | /* QT */ |
53 | #include <qbuttongroup.h> | 54 | #include <qbuttongroup.h> |
54 | #include <qcheckbox.h> | 55 | #include <qcheckbox.h> |
55 | #include <qcombobox.h> | 56 | #include <qcombobox.h> |
56 | #include <qdialog.h> | 57 | #include <qdialog.h> |
57 | #include <qdir.h> | 58 | #include <qdir.h> |
58 | #include <qlabel.h> | 59 | #include <qlabel.h> |
59 | #include <qlayout.h> | 60 | #include <qlayout.h> |
60 | #include <qlineedit.h> | 61 | #include <qlineedit.h> |
61 | #include <qlistbox.h> | 62 | #include <qlistbox.h> |
62 | #include <qmessagebox.h> | 63 | #include <qmessagebox.h> |
63 | #include <qpushbutton.h> | 64 | #include <qpushbutton.h> |
64 | #include <qradiobutton.h> | 65 | #include <qradiobutton.h> |
65 | #if QT_VERSION >= 300 | 66 | #if QT_VERSION >= 300 |
@@ -811,49 +812,50 @@ void Appearance::downExcept ( ) | |||
811 | ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); | 812 | ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); |
812 | 813 | ||
813 | if ( it && it-> itemBelow ( )) | 814 | if ( it && it-> itemBelow ( )) |
814 | it-> moveItem ( it-> itemBelow ( )); | 815 | it-> moveItem ( it-> itemBelow ( )); |
815 | } | 816 | } |
816 | 817 | ||
817 | class ExEdit : public QLineEdit | 818 | class ExEdit : public QLineEdit |
818 | { | 819 | { |
819 | public: | 820 | public: |
820 | ExEdit ( ExceptListItem *item ) | 821 | ExEdit ( ExceptListItem *item ) |
821 | : QLineEdit ( item-> listView ( )-> viewport ( ), "exedit" ), it ( item ) | 822 | : QLineEdit ( item-> listView ( )-> viewport ( ), "exedit" ), it ( item ) |
822 | { | 823 | { |
823 | setFrame ( false ); | 824 | setFrame ( false ); |
824 | 825 | ||
825 | QRect r = it-> listView ( )-> itemRect ( it ); | 826 | QRect r = it-> listView ( )-> itemRect ( it ); |
826 | 827 | ||
827 | int x = it-> listView ( )-> header ( )-> cellPos ( 3 ) - 1; | 828 | int x = it-> listView ( )-> header ( )-> cellPos ( 3 ) - 1; |
828 | int y = r. y ( ); | 829 | int y = r. y ( ); |
829 | int w = it-> listView ( )-> viewport ( )-> width ( ) - x; | 830 | int w = it-> listView ( )-> viewport ( )-> width ( ) - x; |
830 | int h = r. height ( ); // + 2; | 831 | int h = r. height ( ); // + 2; |
831 | 832 | ||
832 | setText ( it-> pattern ( )); | 833 | setText ( it-> pattern ( )); |
833 | setGeometry ( x, y, w, h ); | 834 | setGeometry ( x, y, w, h ); |
834 | 835 | ||
835 | qDebug ( "ExEdit: [%s] at %d,%d %d,%d", it->text(2).latin1(),x,y,w,h); | 836 | odebug << "ExEdit: [" << it->text(2).latin1() << "] at " |
837 | << x << "," << y << " " << w << "," << h << oendl; | ||
836 | 838 | ||
837 | m_out = true; | 839 | m_out = true; |
838 | 840 | ||
839 | show ( ); | 841 | show ( ); |
840 | setFocus ( ); | 842 | setFocus ( ); |
841 | selectAll ( ); | 843 | selectAll ( ); |
842 | end ( true ); | 844 | end ( true ); |
843 | } | 845 | } |
844 | 846 | ||
845 | virtual void focusOutEvent ( QFocusEvent * ) | 847 | virtual void focusOutEvent ( QFocusEvent * ) |
846 | { | 848 | { |
847 | hide ( ); | 849 | hide ( ); |
848 | if ( m_out ) | 850 | if ( m_out ) |
849 | it-> setPattern ( text ( )); | 851 | it-> setPattern ( text ( )); |
850 | delete this; | 852 | delete this; |
851 | } | 853 | } |
852 | 854 | ||
853 | virtual void keyPressEvent ( QKeyEvent *e ) | 855 | virtual void keyPressEvent ( QKeyEvent *e ) |
854 | { | 856 | { |
855 | if ( e-> key ( ) == Key_Return ) | 857 | if ( e-> key ( ) == Key_Return ) |
856 | it-> listView ( )-> setFocus ( ); | 858 | it-> listView ( )-> setFocus ( ); |
857 | else if ( e-> key ( ) == Key_Escape ) | 859 | else if ( e-> key ( ) == Key_Escape ) |
858 | { | 860 | { |
859 | m_out = false; | 861 | m_out = false; |
diff --git a/noncore/settings/networksettings/ppp/modem.cpp b/noncore/settings/networksettings/ppp/modem.cpp index 5913a22..3bc7d43 100644 --- a/noncore/settings/networksettings/ppp/modem.cpp +++ b/noncore/settings/networksettings/ppp/modem.cpp | |||
@@ -149,49 +149,49 @@ speed_t Modem::modemspeed() { | |||
149 | case 2304: | 149 | case 2304: |
150 | return B230400; | 150 | return B230400; |
151 | break; | 151 | break; |
152 | #endif | 152 | #endif |
153 | 153 | ||
154 | #ifdef B460800 | 154 | #ifdef B460800 |
155 | case 4608: | 155 | case 4608: |
156 | return B460800; | 156 | return B460800; |
157 | break; | 157 | break; |
158 | #endif | 158 | #endif |
159 | 159 | ||
160 | default: | 160 | default: |
161 | return B38400; | 161 | return B38400; |
162 | break; | 162 | break; |
163 | } | 163 | } |
164 | } | 164 | } |
165 | 165 | ||
166 | bool Modem::opentty() { | 166 | bool Modem::opentty() { |
167 | // int flags; | 167 | // int flags; |
168 | 168 | ||
169 | //begin if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { | 169 | //begin if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { |
170 | close(modemfd); | 170 | close(modemfd); |
171 | device = _pppdata->modemDevice(); | 171 | device = _pppdata->modemDevice(); |
172 | if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) { | 172 | if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) { |
173 | odebug << "error opening modem device !" << oendl; | 173 | odebug << "error opening modem device !" << oendl; |
174 | errmsg = QObject::tr("Unable to open modem."); | 174 | errmsg = QObject::tr("Unable to open modem."); |
175 | return false; | 175 | return false; |
176 | } | 176 | } |
177 | //bend if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { | 177 | //bend if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { |
178 | //} | 178 | //} |
179 | 179 | ||
180 | #if 0 | 180 | #if 0 |
181 | if(_pppdata->UseCDLine()) { | 181 | if(_pppdata->UseCDLine()) { |
182 | if(ioctl(modemfd, TIOCMGET, &flags) == -1) { | 182 | if(ioctl(modemfd, TIOCMGET, &flags) == -1) { |
183 | errmsg = QObject::tr("Unable to detect state of CD line."); | 183 | errmsg = QObject::tr("Unable to detect state of CD line."); |
184 | ::close(modemfd); | 184 | ::close(modemfd); |
185 | modemfd = -1; | 185 | modemfd = -1; |
186 | return false; | 186 | return false; |
187 | } | 187 | } |
188 | if ((flags&TIOCM_CD) == 0) { | 188 | if ((flags&TIOCM_CD) == 0) { |
189 | errmsg = QObject::tr("The modem is not ready."); | 189 | errmsg = QObject::tr("The modem is not ready."); |
190 | ::close(modemfd); | 190 | ::close(modemfd); |
191 | modemfd = -1; | 191 | modemfd = -1; |
192 | return false; | 192 | return false; |
193 | } | 193 | } |
194 | } | 194 | } |
195 | #endif | 195 | #endif |
196 | 196 | ||
197 | tcdrain (modemfd); | 197 | tcdrain (modemfd); |
@@ -290,108 +290,108 @@ void Modem::readtty(int) { | |||
290 | c = buffer[i] & 0x7F; | 290 | c = buffer[i] & 0x7F; |
291 | emit charWaiting(c); | 291 | emit charWaiting(c); |
292 | } | 292 | } |
293 | } | 293 | } |
294 | } | 294 | } |
295 | 295 | ||
296 | 296 | ||
297 | void Modem::notify(const QObject *receiver, const char *member) { | 297 | void Modem::notify(const QObject *receiver, const char *member) { |
298 | connect(this, SIGNAL(charWaiting(unsigned char)), receiver, member); | 298 | connect(this, SIGNAL(charWaiting(unsigned char)), receiver, member); |
299 | startNotifier(); | 299 | startNotifier(); |
300 | } | 300 | } |
301 | 301 | ||
302 | 302 | ||
303 | void Modem::stop() { | 303 | void Modem::stop() { |
304 | disconnect(SIGNAL(charWaiting(unsigned char))); | 304 | disconnect(SIGNAL(charWaiting(unsigned char))); |
305 | stopNotifier(); | 305 | stopNotifier(); |
306 | } | 306 | } |
307 | 307 | ||
308 | 308 | ||
309 | void Modem::startNotifier() { | 309 | void Modem::startNotifier() { |
310 | if(modemfd >= 0) { | 310 | if(modemfd >= 0) { |
311 | if(sn == 0) { | 311 | if(sn == 0) { |
312 | sn = new QSocketNotifier(modemfd, QSocketNotifier::Read, this); | 312 | sn = new QSocketNotifier(modemfd, QSocketNotifier::Read, this); |
313 | connect(sn, SIGNAL(activated(int)), SLOT(readtty(int))); | 313 | connect(sn, SIGNAL(activated(int)), SLOT(readtty(int))); |
314 | odebug << "QSocketNotifier started!" << oendl; | 314 | odebug << "QSocketNotifier started!" << oendl; |
315 | } else { | 315 | } else { |
316 | odebug << "QSocketNotifier re-enabled!" << oendl; | 316 | odebug << "QSocketNotifier re-enabled!" << oendl; |
317 | sn->setEnabled(true); | 317 | sn->setEnabled(true); |
318 | } | 318 | } |
319 | } | 319 | } |
320 | } | 320 | } |
321 | 321 | ||
322 | 322 | ||
323 | void Modem::stopNotifier() { | 323 | void Modem::stopNotifier() { |
324 | if(sn != 0) { | 324 | if(sn != 0) { |
325 | sn->setEnabled(false); | 325 | sn->setEnabled(false); |
326 | disconnect(sn); | 326 | disconnect(sn); |
327 | delete sn; | 327 | delete sn; |
328 | sn = 0; | 328 | sn = 0; |
329 | odebug << "QSocketNotifier stopped!" << oendl; | 329 | odebug << "QSocketNotifier stopped!" << oendl; |
330 | } | 330 | } |
331 | } | 331 | } |
332 | 332 | ||
333 | 333 | ||
334 | void Modem::flush() { | 334 | void Modem::flush() { |
335 | char c; | 335 | char c; |
336 | while(read(modemfd, &c, 1) == 1); | 336 | while(read(modemfd, &c, 1) == 1); |
337 | } | 337 | } |
338 | 338 | ||
339 | 339 | ||
340 | bool Modem::writeChar(unsigned char c) { | 340 | bool Modem::writeChar(unsigned char c) { |
341 | int s; | 341 | int s; |
342 | do { | 342 | do { |
343 | s = write(modemfd, &c, 1); | 343 | s = write(modemfd, &c, 1); |
344 | if (s < 0) { | 344 | if (s < 0) { |
345 | oerr << "write() in Modem::writeChar failed" << oendl; | 345 | oerr << "write() in Modem::writeChar failed" << oendl; |
346 | return false; | 346 | return false; |
347 | } | 347 | } |
348 | } while(s == 0); | 348 | } while(s == 0); |
349 | 349 | ||
350 | return true; | 350 | return true; |
351 | } | 351 | } |
352 | 352 | ||
353 | 353 | ||
354 | bool Modem::writeLine(const char *buf) { | 354 | bool Modem::writeLine(const char *buf) { |
355 | int len = strlen(buf); | 355 | int len = strlen(buf); |
356 | char *b = new char[len+2]; | 356 | char *b = new char[len+2]; |
357 | memcpy(b, buf, len); | 357 | memcpy(b, buf, len); |
358 | // different modems seem to need different line terminations | 358 | // different modems seem to need different line terminations |
359 | QString term = _pppdata->enter(); | 359 | QString term = _pppdata->enter(); |
360 | if(term == "LF") | 360 | if(term == "LF") |
361 | b[len++]='\n'; | 361 | b[len++]='\n'; |
362 | else if(term == "CR") | 362 | else if(term == "CR") |
363 | b[len++]='\r'; | 363 | b[len++]='\r'; |
364 | else if(term == "CR/LF") { | 364 | else if(term == "CR/LF") { |
365 | b[len++]='\r'; | 365 | b[len++]='\r'; |
366 | b[len++]='\n'; | 366 | b[len++]='\n'; |
367 | } | 367 | } |
368 | int l = len; | 368 | int l = len; |
369 | while(l) { | 369 | while(l) { |
370 | int wr = write(modemfd, &b[len-l], l); | 370 | int wr = write(modemfd, &b[len-l], l); |
371 | if(wr < 0) { | 371 | if(wr < 0) { |
372 | // TODO do something meaningful with the error code (or ignore it | 372 | // TODO do something meaningful with the error code (or ignore it |
373 | oerr << "write() in Modem::writeLine failed" << oendl; | 373 | oerr << "write() in Modem::writeLine failed" << oendl; |
374 | delete[] b; | 374 | delete[] b; |
375 | return false; | 375 | return false; |
376 | } | 376 | } |
377 | l -= wr; | 377 | l -= wr; |
378 | } | 378 | } |
379 | delete[] b; | 379 | delete[] b; |
380 | return true; | 380 | return true; |
381 | } | 381 | } |
382 | 382 | ||
383 | 383 | ||
384 | bool Modem::hangup() { | 384 | bool Modem::hangup() { |
385 | // this should really get the modem to hang up and go into command mode | 385 | // this should really get the modem to hang up and go into command mode |
386 | // If anyone sees a fault in the following please let me know, since | 386 | // If anyone sees a fault in the following please let me know, since |
387 | // this is probably the most imporant snippet of code in the whole of | 387 | // this is probably the most imporant snippet of code in the whole of |
388 | // kppp. If people complain about kppp being stuck, this piece of code | 388 | // kppp. If people complain about kppp being stuck, this piece of code |
389 | // is most likely the reason. | 389 | // is most likely the reason. |
390 | struct termios temptty; | 390 | struct termios temptty; |
391 | 391 | ||
392 | if(modemfd >= 0) { | 392 | if(modemfd >= 0) { |
393 | 393 | ||
394 | // is this Escape & HangupStr stuff really necessary ? (Harri) | 394 | // is this Escape & HangupStr stuff really necessary ? (Harri) |
395 | 395 | ||
396 | if (data_mode) escape_to_command_mode(); | 396 | if (data_mode) escape_to_command_mode(); |
397 | 397 | ||
@@ -458,49 +458,49 @@ void Modem::escape_to_command_mode() { | |||
458 | 458 | ||
459 | // +3 because quiet time must be greater than guard time. | 459 | // +3 because quiet time must be greater than guard time. |
460 | usleep((_pppdata->modemEscapeGuardTime()+3)*20000); | 460 | usleep((_pppdata->modemEscapeGuardTime()+3)*20000); |
461 | QCString tmp = _pppdata->modemEscapeStr().local8Bit(); | 461 | QCString tmp = _pppdata->modemEscapeStr().local8Bit(); |
462 | write(modemfd, tmp.data(), tmp.length()); | 462 | write(modemfd, tmp.data(), tmp.length()); |
463 | tcflush(modemfd, TCIOFLUSH); | 463 | tcflush(modemfd, TCIOFLUSH); |
464 | usleep((_pppdata->modemEscapeGuardTime()+3)*20000); | 464 | usleep((_pppdata->modemEscapeGuardTime()+3)*20000); |
465 | 465 | ||
466 | data_mode = false; | 466 | data_mode = false; |
467 | } | 467 | } |
468 | 468 | ||
469 | 469 | ||
470 | const QString Modem::modemMessage() { | 470 | const QString Modem::modemMessage() { |
471 | return errmsg; | 471 | return errmsg; |
472 | } | 472 | } |
473 | 473 | ||
474 | 474 | ||
475 | QString Modem::parseModemSpeed(const QString &s) { | 475 | QString Modem::parseModemSpeed(const QString &s) { |
476 | // this is a small (and bad) parser for modem speeds | 476 | // this is a small (and bad) parser for modem speeds |
477 | int rx = -1; | 477 | int rx = -1; |
478 | int tx = -1; | 478 | int tx = -1; |
479 | int i; | 479 | int i; |
480 | QString result; | 480 | QString result; |
481 | 481 | ||
482 | odebug << "Modem reported result string: " << s.latin1() << "" << oendl; | 482 | odebug << "Modem reported result string: " << s.latin1() << "" << oendl; |
483 | 483 | ||
484 | const int RXMAX = 7; | 484 | const int RXMAX = 7; |
485 | const int TXMAX = 2; | 485 | const int TXMAX = 2; |
486 | QRegExp rrx[RXMAX] = { | 486 | QRegExp rrx[RXMAX] = { |
487 | QRegExp("[0-9]+[:/ ]RX", false), | 487 | QRegExp("[0-9]+[:/ ]RX", false), |
488 | QRegExp("[0-9]+RX", false), | 488 | QRegExp("[0-9]+RX", false), |
489 | QRegExp("[/: -][0-9]+[/: ]", false), | 489 | QRegExp("[/: -][0-9]+[/: ]", false), |
490 | QRegExp("[/: -][0-9]+$", false), | 490 | QRegExp("[/: -][0-9]+$", false), |
491 | QRegExp("CARRIER [^0-9]*[0-9]+", false), | 491 | QRegExp("CARRIER [^0-9]*[0-9]+", false), |
492 | QRegExp("CONNECT [^0-9]*[0-9]+", false), | 492 | QRegExp("CONNECT [^0-9]*[0-9]+", false), |
493 | QRegExp("[0-9]+") // panic mode | 493 | QRegExp("[0-9]+") // panic mode |
494 | }; | 494 | }; |
495 | 495 | ||
496 | QRegExp trx[TXMAX] = { | 496 | QRegExp trx[TXMAX] = { |
497 | QRegExp("[0-9]+[:/ ]TX", false), | 497 | QRegExp("[0-9]+[:/ ]TX", false), |
498 | QRegExp("[0-9]+TX", false) | 498 | QRegExp("[0-9]+TX", false) |
499 | }; | 499 | }; |
500 | 500 | ||
501 | for(i = 0; i < RXMAX; i++) { | 501 | for(i = 0; i < RXMAX; i++) { |
502 | int len, idx, result; | 502 | int len, idx, result; |
503 | if((idx = rrx[i].match(s,0,&len)) > -1) { | 503 | if((idx = rrx[i].match(s,0,&len)) > -1) { |
504 | // if((idx = rrx[i].search(s)) > -1) { | 504 | // if((idx = rrx[i].search(s)) > -1) { |
505 | // len = rrx[i].matchedLength(); | 505 | // len = rrx[i].matchedLength(); |
506 | 506 | ||
@@ -544,155 +544,155 @@ QString Modem::parseModemSpeed(const QString &s) { | |||
544 | // be converted to an int. | 544 | // be converted to an int. |
545 | // | 545 | // |
546 | if((idx = rrx[RXMAX-1].match(sub,0,&len)) > -1) { | 546 | if((idx = rrx[RXMAX-1].match(sub,0,&len)) > -1) { |
547 | // if((idx = rrx[RXMAX-1].search(sub)) > -1) { | 547 | // if((idx = rrx[RXMAX-1].search(sub)) > -1) { |
548 | // len = rrx[RXMAX-1].matchedLength(); | 548 | // len = rrx[RXMAX-1].matchedLength(); |
549 | sub = sub.mid(idx, len); | 549 | sub = sub.mid(idx, len); |
550 | result = sub.toInt(); | 550 | result = sub.toInt(); |
551 | if(result > 0) { | 551 | if(result > 0) { |
552 | tx = result; | 552 | tx = result; |
553 | break; | 553 | break; |
554 | } | 554 | } |
555 | } | 555 | } |
556 | } | 556 | } |
557 | } | 557 | } |
558 | 558 | ||
559 | if(rx == -1 && tx == -1) | 559 | if(rx == -1 && tx == -1) |
560 | result = QObject::tr("Unknown speed"); | 560 | result = QObject::tr("Unknown speed"); |
561 | else if(tx == -1) | 561 | else if(tx == -1) |
562 | result.setNum(rx); | 562 | result.setNum(rx); |
563 | else if(rx == -1) // should not happen | 563 | else if(rx == -1) // should not happen |
564 | result.setNum(tx); | 564 | result.setNum(tx); |
565 | else | 565 | else |
566 | result.sprintf("%d/%d", rx, tx); | 566 | result.sprintf("%d/%d", rx, tx); |
567 | 567 | ||
568 | odebug << "The parsed result is: " << result.latin1() << "" << oendl; | 568 | odebug << "The parsed result is: " << result.latin1() << "" << oendl; |
569 | 569 | ||
570 | return result; | 570 | return result; |
571 | } | 571 | } |
572 | 572 | ||
573 | 573 | ||
574 | // Lock modem device. Returns 0 on success 1 if the modem is locked and -1 if | 574 | // Lock modem device. Returns 0 on success 1 if the modem is locked and -1 if |
575 | // a lock file can't be created ( permission problem ) | 575 | // a lock file can't be created ( permission problem ) |
576 | int Modem::lockdevice() { | 576 | int Modem::lockdevice() { |
577 | int fd; | 577 | int fd; |
578 | char newlock[80]=""; // safe | 578 | char newlock[80]=""; // safe |
579 | 579 | ||
580 | if(!_pppdata->modemLockFile()) { | 580 | if(!_pppdata->modemLockFile()) { |
581 | odebug << "The user doesn't want a lockfile." << oendl; | 581 | odebug << "The user doesn't want a lockfile." << oendl; |
582 | return 0; | 582 | return 0; |
583 | } | 583 | } |
584 | 584 | ||
585 | if (modem_is_locked) | 585 | if (modem_is_locked) |
586 | return 1; | 586 | return 1; |
587 | 587 | ||
588 | QString lockfile = LOCK_DIR"/LCK.."; | 588 | QString lockfile = LOCK_DIR"/LCK.."; |
589 | lockfile += _pppdata->modemDevice().mid(5); // append everything after /dev/ | 589 | lockfile += _pppdata->modemDevice().mid(5); // append everything after /dev/ |
590 | 590 | ||
591 | if(access(QFile::encodeName(lockfile), F_OK) == 0) { | 591 | if(access(QFile::encodeName(lockfile), F_OK) == 0) { |
592 | // if ((fd = Requester::rq-> | 592 | // if ((fd = Requester::rq-> |
593 | if ((fd = openLockfile(QFile::encodeName(lockfile), O_RDONLY)) >= 0) { | 593 | if ((fd = openLockfile(QFile::encodeName(lockfile), O_RDONLY)) >= 0) { |
594 | // Mario: it's not necessary to read more than lets say 32 bytes. If | 594 | // Mario: it's not necessary to read more than lets say 32 bytes. If |
595 | // file has more than 32 bytes, skip the rest | 595 | // file has more than 32 bytes, skip the rest |
596 | char oldlock[33]; // safe | 596 | char oldlock[33]; // safe |
597 | int sz = read(fd, &oldlock, 32); | 597 | int sz = read(fd, &oldlock, 32); |
598 | close (fd); | 598 | close (fd); |
599 | if (sz <= 0) | 599 | if (sz <= 0) |
600 | return 1; | 600 | return 1; |
601 | oldlock[sz] = '\0'; | 601 | oldlock[sz] = '\0'; |
602 | 602 | ||
603 | odebug << "Device is locked by: " << oldlock << "" << oendl; | 603 | odebug << "Device is locked by: " << oldlock << "" << oendl; |
604 | 604 | ||
605 | int oldpid; | 605 | int oldpid; |
606 | int match = sscanf(oldlock, "%d", &oldpid); | 606 | int match = sscanf(oldlock, "%d", &oldpid); |
607 | 607 | ||
608 | // found a pid in lockfile ? | 608 | // found a pid in lockfile ? |
609 | if (match < 1 || oldpid <= 0) | 609 | if (match < 1 || oldpid <= 0) |
610 | return 1; | 610 | return 1; |
611 | 611 | ||
612 | // check if process exists | 612 | // check if process exists |
613 | if (kill((pid_t)oldpid, 0) == 0 || errno != ESRCH) | 613 | if (kill((pid_t)oldpid, 0) == 0 || errno != ESRCH) |
614 | return 1; | 614 | return 1; |
615 | 615 | ||
616 | odebug << "lockfile is stale" << oendl; | 616 | odebug << "lockfile is stale" << oendl; |
617 | } | 617 | } |
618 | } | 618 | } |
619 | 619 | ||
620 | fd = openLockfile(_pppdata->modemDevice(),O_WRONLY|O_TRUNC|O_CREAT); | 620 | fd = openLockfile(_pppdata->modemDevice(),O_WRONLY|O_TRUNC|O_CREAT); |
621 | if(fd >= 0) { | 621 | if(fd >= 0) { |
622 | sprintf(newlock,"%010d\n", getpid()); | 622 | sprintf(newlock,"%010d\n", getpid()); |
623 | odebug << "Locking Device: " << newlock << "" << oendl; | 623 | odebug << "Locking Device: " << newlock << "" << oendl; |
624 | 624 | ||
625 | write(fd, newlock, strlen(newlock)); | 625 | write(fd, newlock, strlen(newlock)); |
626 | close(fd); | 626 | close(fd); |
627 | modem_is_locked=true; | 627 | modem_is_locked=true; |
628 | 628 | ||
629 | return 0; | 629 | return 0; |
630 | } | 630 | } |
631 | 631 | ||
632 | return -1; | 632 | return -1; |
633 | 633 | ||
634 | } | 634 | } |
635 | 635 | ||
636 | 636 | ||
637 | // UnLock modem device | 637 | // UnLock modem device |
638 | void Modem::unlockdevice() { | 638 | void Modem::unlockdevice() { |
639 | if (modem_is_locked) { | 639 | if (modem_is_locked) { |
640 | odebug << "UnLocking Modem Device" << oendl; | 640 | odebug << "UnLocking Modem Device" << oendl; |
641 | close(modemfd); | 641 | close(modemfd); |
642 | modemfd = -1; | 642 | modemfd = -1; |
643 | unlink(lockfile); | 643 | unlink(lockfile); |
644 | lockfile[0] = '\0'; | 644 | lockfile[0] = '\0'; |
645 | modem_is_locked=false; | 645 | modem_is_locked=false; |
646 | } | 646 | } |
647 | } | 647 | } |
648 | 648 | ||
649 | int Modem::openLockfile( QString lockfile, int flags) | 649 | int Modem::openLockfile( QString lockfile, int flags) |
650 | { | 650 | { |
651 | int fd; | 651 | int fd; |
652 | int mode; | 652 | int mode; |
653 | flags = O_RDONLY; | 653 | flags = O_RDONLY; |
654 | if(flags == O_WRONLY|O_TRUNC|O_CREAT) | 654 | if(flags == O_WRONLY|O_TRUNC|O_CREAT) |
655 | mode = 0644; | 655 | mode = 0644; |
656 | else | 656 | else |
657 | mode = 0; | 657 | mode = 0; |
658 | 658 | ||
659 | lockfile = LOCK_DIR; | 659 | lockfile = LOCK_DIR; |
660 | lockfile += "/LCK.."; | 660 | lockfile += "/LCK.."; |
661 | lockfile += device.right( device.length() - device.findRev("/") -1 ); | 661 | lockfile += device.right( device.length() - device.findRev("/") -1 ); |
662 | odebug << "lockfile >" << lockfile.latin1() << "<" << oendl; | 662 | odebug << "lockfile >" << lockfile.latin1() << "<" << oendl; |
663 | // TODO: | 663 | // TODO: |
664 | // struct stat st; | 664 | // struct stat st; |
665 | // if(stat(lockfile.data(), &st) == -1) { | 665 | // if(stat(lockfile.data(), &st) == -1) { |
666 | // if(errno == EBADF) | 666 | // if(errno == EBADF) |
667 | // return -1; | 667 | // return -1; |
668 | // } else { | 668 | // } else { |
669 | // // make sure that this is a regular file | 669 | // // make sure that this is a regular file |
670 | // if(!S_ISREG(st.st_mode)) | 670 | // if(!S_ISREG(st.st_mode)) |
671 | // return -1; | 671 | // return -1; |
672 | // } | 672 | // } |
673 | if ((fd = open(lockfile, flags, mode)) == -1) { | 673 | if ((fd = open(lockfile, flags, mode)) == -1) { |
674 | odebug << "error opening lockfile!" << oendl; | 674 | odebug << "error opening lockfile!" << oendl; |
675 | lockfile = QString::null; | 675 | lockfile = QString::null; |
676 | fd = open(DEVNULL, O_RDONLY); | 676 | fd = open(DEVNULL, O_RDONLY); |
677 | } else | 677 | } else |
678 | fchown(fd, 0, 0); | 678 | fchown(fd, 0, 0); |
679 | return fd; | 679 | return fd; |
680 | } | 680 | } |
681 | 681 | ||
682 | 682 | ||
683 | 683 | ||
684 | void alarm_handler(int) { | 684 | void alarm_handler(int) { |
685 | // fprintf(stderr, "alarm_handler(): Received SIGALRM\n"); | 685 | // fprintf(stderr, "alarm_handler(): Received SIGALRM\n"); |
686 | 686 | ||
687 | // jump | 687 | // jump |
688 | siglongjmp(jmp_buffer, 1); | 688 | siglongjmp(jmp_buffer, 1); |
689 | } | 689 | } |
690 | 690 | ||
691 | 691 | ||
692 | const char* Modem::authFile(Auth method, int version) { | 692 | const char* Modem::authFile(Auth method, int version) { |
693 | switch(method|version) { | 693 | switch(method|version) { |
694 | case PAP|Original: | 694 | case PAP|Original: |
695 | return PAP_AUTH_FILE; | 695 | return PAP_AUTH_FILE; |
696 | break; | 696 | break; |
697 | case PAP|New: | 697 | case PAP|New: |
698 | return PAP_AUTH_FILE".new"; | 698 | return PAP_AUTH_FILE".new"; |
@@ -911,175 +911,175 @@ bool Modem::execpppd(const char *arguments) { | |||
911 | ::close( m_pppdLOG[0] ); | 911 | ::close( m_pppdLOG[0] ); |
912 | ::setenv( "LANG", "C", 1 ); // overwrite | 912 | ::setenv( "LANG", "C", 1 ); // overwrite |
913 | dup2(m_pppdLOG[1], 11 ); // for logfd 11 | 913 | dup2(m_pppdLOG[1], 11 ); // for logfd 11 |
914 | dup2(modemfd, 0); | 914 | dup2(modemfd, 0); |
915 | dup2(modemfd, 1); | 915 | dup2(modemfd, 1); |
916 | 916 | ||
917 | 917 | ||
918 | switch (checkForInterface()) { | 918 | switch (checkForInterface()) { |
919 | case 1: | 919 | case 1: |
920 | fprintf(stderr, "Cannot determine if kernel supports ppp.\n"); | 920 | fprintf(stderr, "Cannot determine if kernel supports ppp.\n"); |
921 | break; | 921 | break; |
922 | case -1: | 922 | case -1: |
923 | fprintf(stderr, "Kernel does not support ppp, oops.\n"); | 923 | fprintf(stderr, "Kernel does not support ppp, oops.\n"); |
924 | break; | 924 | break; |
925 | case 0: | 925 | case 0: |
926 | fprintf(stderr, "Kernel supports ppp alright.\n"); | 926 | fprintf(stderr, "Kernel supports ppp alright.\n"); |
927 | break; | 927 | break; |
928 | } | 928 | } |
929 | 929 | ||
930 | execve(pppdPath(), args, 0L); | 930 | execve(pppdPath(), args, 0L); |
931 | _exit(0); | 931 | _exit(0); |
932 | break; | 932 | break; |
933 | 933 | ||
934 | default: | 934 | default: |
935 | odebug << "In parent: pppd pid " << pppdPid << "\n" << oendl; | 935 | odebug << "In parent: pppd pid " << pppdPid << "\n" << oendl; |
936 | close(modemfd); | 936 | close(modemfd); |
937 | 937 | ||
938 | ::close( m_pppdLOG[1] ); | 938 | ::close( m_pppdLOG[1] ); |
939 | // set it to nonblocking io | 939 | // set it to nonblocking io |
940 | int flag = ::fcntl( m_pppdLOG[0], F_GETFL ); | 940 | int flag = ::fcntl( m_pppdLOG[0], F_GETFL ); |
941 | 941 | ||
942 | if ( !(flag & O_NONBLOCK) ) { | 942 | if ( !(flag & O_NONBLOCK) ) { |
943 | odebug << "Setting nonblocking io" << oendl; | 943 | odebug << "Setting nonblocking io" << oendl; |
944 | flag |= O_NONBLOCK; | 944 | flag |= O_NONBLOCK; |
945 | ::fcntl(m_pppdLOG[0], F_SETFL, flag ); | 945 | ::fcntl(m_pppdLOG[0], F_SETFL, flag ); |
946 | } | 946 | } |
947 | 947 | ||
948 | delete m_modemDebug; | 948 | delete m_modemDebug; |
949 | m_modemDebug = new QSocketNotifier(m_pppdLOG[0], QSocketNotifier::Read, this ); | 949 | m_modemDebug = new QSocketNotifier(m_pppdLOG[0], QSocketNotifier::Read, this ); |
950 | connect(m_modemDebug, SIGNAL(activated(int) ), | 950 | connect(m_modemDebug, SIGNAL(activated(int) ), |
951 | this, SLOT(slotModemDebug(int) ) ); | 951 | this, SLOT(slotModemDebug(int) ) ); |
952 | 952 | ||
953 | modemfd = -1; | 953 | modemfd = -1; |
954 | m_pppdDev = QString::fromLatin1("ppp0"); | 954 | m_pppdDev = QString::fromLatin1("ppp0"); |
955 | return true; | 955 | return true; |
956 | break; | 956 | break; |
957 | } | 957 | } |
958 | } | 958 | } |
959 | 959 | ||
960 | 960 | ||
961 | bool Modem::killpppd() { | 961 | bool Modem::killpppd() { |
962 | odebug << "In killpppd and pid is " << pppdPid << "" << oendl; | 962 | odebug << "In killpppd and pid is " << pppdPid << "" << oendl; |
963 | if(pppdPid > 0) { | 963 | if(pppdPid > 0) { |
964 | delete m_modemDebug; | 964 | delete m_modemDebug; |
965 | m_modemDebug = 0; | 965 | m_modemDebug = 0; |
966 | odebug << "In killpppd(): Sending SIGTERM to " << pppdPid << "\n" << oendl; | 966 | odebug << "In killpppd(): Sending SIGTERM to " << pppdPid << "\n" << oendl; |
967 | if(kill(pppdPid, SIGTERM) < 0) { | 967 | if(kill(pppdPid, SIGTERM) < 0) { |
968 | odebug << "Error terminating " << pppdPid << ". Sending SIGKILL\n" << oendl; | 968 | odebug << "Error terminating " << pppdPid << ". Sending SIGKILL\n" << oendl; |
969 | if(kill(pppdPid, SIGKILL) < 0) { | 969 | if(kill(pppdPid, SIGKILL) < 0) { |
970 | odebug << "Error killing " << pppdPid << "\n" << oendl; | 970 | odebug << "Error killing " << pppdPid << "\n" << oendl; |
971 | return false; | 971 | return false; |
972 | } | 972 | } |
973 | } | 973 | } |
974 | } | 974 | } |
975 | return true; | 975 | return true; |
976 | } | 976 | } |
977 | 977 | ||
978 | 978 | ||
979 | void Modem::parseargs(char* buf, char** args) { | 979 | void Modem::parseargs(char* buf, char** args) { |
980 | int nargs = 0; | 980 | int nargs = 0; |
981 | int quotes; | 981 | int quotes; |
982 | 982 | ||
983 | while(nargs < MaxArgs-1 && *buf != '\0') { | 983 | while(nargs < MaxArgs-1 && *buf != '\0') { |
984 | 984 | ||
985 | quotes = 0; | 985 | quotes = 0; |
986 | 986 | ||
987 | // Strip whitespace. Use nulls, so that the previous argument is | 987 | // Strip whitespace. Use nulls, so that the previous argument is |
988 | // terminated automatically. | 988 | // terminated automatically. |
989 | 989 | ||
990 | while ((*buf == ' ' ) || (*buf == '\t' ) || (*buf == '\n' ) ) | 990 | while ((*buf == ' ' ) || (*buf == '\t' ) || (*buf == '\n' ) ) |
991 | *buf++ = '\0'; | 991 | *buf++ = '\0'; |
992 | 992 | ||
993 | // detect begin of quoted argument | 993 | // detect begin of quoted argument |
994 | if (*buf == '"' || *buf == '\'') { | 994 | if (*buf == '"' || *buf == '\'') { |
995 | quotes = *buf; | 995 | quotes = *buf; |
996 | *buf++ = '\0'; | 996 | *buf++ = '\0'; |
997 | } | 997 | } |
998 | 998 | ||
999 | // save the argument | 999 | // save the argument |
1000 | if(*buf != '\0') { | 1000 | if(*buf != '\0') { |
1001 | *args++ = buf; | 1001 | *args++ = buf; |
1002 | nargs++; | 1002 | nargs++; |
1003 | } | 1003 | } |
1004 | 1004 | ||
1005 | if (!quotes) | 1005 | if (!quotes) |
1006 | while ((*buf != '\0') && (*buf != '\n') && | 1006 | while ((*buf != '\0') && (*buf != '\n') && |
1007 | (*buf != '\t') && (*buf != ' ')) | 1007 | (*buf != '\t') && (*buf != ' ')) |
1008 | buf++; | 1008 | buf++; |
1009 | else { | 1009 | else { |
1010 | while ((*buf != '\0') && (*buf != quotes)) | 1010 | while ((*buf != '\0') && (*buf != quotes)) |
1011 | buf++; | 1011 | buf++; |
1012 | *buf++ = '\0'; | 1012 | *buf++ = '\0'; |
1013 | } | 1013 | } |
1014 | } | 1014 | } |
1015 | 1015 | ||
1016 | *args = 0L; | 1016 | *args = 0L; |
1017 | } | 1017 | } |
1018 | 1018 | ||
1019 | bool Modem::execPPPDaemon(const QString & arguments) | 1019 | bool Modem::execPPPDaemon(const QString & arguments) |
1020 | { | 1020 | { |
1021 | if(execpppd(arguments)) { | 1021 | if(execpppd(arguments)) { |
1022 | _pppdata->setpppdRunning(true); | 1022 | _pppdata->setpppdRunning(true); |
1023 | return true; | 1023 | return true; |
1024 | } else | 1024 | } else |
1025 | return false; | 1025 | return false; |
1026 | } | 1026 | } |
1027 | 1027 | ||
1028 | void Modem::killPPPDaemon() | 1028 | void Modem::killPPPDaemon() |
1029 | { | 1029 | { |
1030 | _pppdata->setpppdRunning(false); | 1030 | _pppdata->setpppdRunning(false); |
1031 | killpppd(); | 1031 | killpppd(); |
1032 | } | 1032 | } |
1033 | 1033 | ||
1034 | int Modem::pppdExitStatus() | 1034 | int Modem::pppdExitStatus() |
1035 | { | 1035 | { |
1036 | return _pppdExitStatus; | 1036 | return _pppdExitStatus; |
1037 | } | 1037 | } |
1038 | 1038 | ||
1039 | int Modem::openResolv(int flags) | 1039 | int Modem::openResolv(int flags) |
1040 | { | 1040 | { |
1041 | int fd; | 1041 | int fd; |
1042 | if ((fd = open(_PATH_RESCONF, flags)) == -1) { | 1042 | if ((fd = open(_PATH_RESCONF, flags)) == -1) { |
1043 | odebug << "error opening resolv.conf!" << oendl; | 1043 | odebug << "error opening resolv.conf!" << oendl; |
1044 | fd = open(DEVNULL, O_RDONLY); | 1044 | fd = open(DEVNULL, O_RDONLY); |
1045 | } | 1045 | } |
1046 | return fd; | 1046 | return fd; |
1047 | } | 1047 | } |
1048 | 1048 | ||
1049 | bool Modem::setHostname(const QString & name) | 1049 | bool Modem::setHostname(const QString & name) |
1050 | { | 1050 | { |
1051 | return sethostname(name, name.length()) == 0; | 1051 | return sethostname(name, name.length()) == 0; |
1052 | } | 1052 | } |
1053 | 1053 | ||
1054 | QString Modem::pppDevice()const { | 1054 | QString Modem::pppDevice()const { |
1055 | return m_pppdDev; | 1055 | return m_pppdDev; |
1056 | } | 1056 | } |
1057 | void Modem::setPPPDevice( const QString& dev ) { | 1057 | void Modem::setPPPDevice( const QString& dev ) { |
1058 | m_pppdDev = dev; | 1058 | m_pppdDev = dev; |
1059 | } | 1059 | } |
1060 | pid_t Modem::pppPID()const { | 1060 | pid_t Modem::pppPID()const { |
1061 | return pppdPid; | 1061 | return pppdPid; |
1062 | } | 1062 | } |
1063 | void Modem::setPPPDPid( pid_t pid ) { | 1063 | void Modem::setPPPDPid( pid_t pid ) { |
1064 | odebug << "Modem setting pid" << oendl; | 1064 | odebug << "Modem setting pid" << oendl; |
1065 | _pppdExitStatus = -1; | 1065 | _pppdExitStatus = -1; |
1066 | pppdPid = pid; | 1066 | pppdPid = pid; |
1067 | modemfd = -1; | 1067 | modemfd = -1; |
1068 | } | 1068 | } |
1069 | void Modem::slotModemDebug(int fd) { | 1069 | void Modem::slotModemDebug(int fd) { |
1070 | char buf[2049]; | 1070 | char buf[2049]; |
1071 | int len; | 1071 | int len; |
1072 | 1072 | ||
1073 | // read in pppd data look for Using interface | 1073 | // read in pppd data look for Using interface |
1074 | // then read the interface | 1074 | // then read the interface |
1075 | // we limit to 10 device now 0-9 | 1075 | // we limit to 10 device now 0-9 |
1076 | if((len = ::read(fd, buf, 2048)) > 0) { | 1076 | if((len = ::read(fd, buf, 2048)) > 0) { |
1077 | buf[len+1] = '\0'; | 1077 | buf[len+1] = '\0'; |
1078 | char *found; | 1078 | char *found; |
1079 | if ( (found = ::strstr(buf, "Using interface ") ) ) { | 1079 | if ( (found = ::strstr(buf, "Using interface ") ) ) { |
1080 | found += 16; | 1080 | found += 16; |
1081 | m_pppdDev = QString::fromLatin1(found, 5 ); | 1081 | m_pppdDev = QString::fromLatin1(found, 5 ); |
1082 | m_pppdDev = m_pppdDev.simplifyWhiteSpace(); | 1082 | m_pppdDev = m_pppdDev.simplifyWhiteSpace(); |
1083 | } | 1083 | } |
1084 | } | 1084 | } |
1085 | } | 1085 | } |
diff --git a/noncore/settings/networksettings/wlan/wlanimp2.cpp b/noncore/settings/networksettings/wlan/wlanimp2.cpp index 4294b12..d36a702 100644 --- a/noncore/settings/networksettings/wlan/wlanimp2.cpp +++ b/noncore/settings/networksettings/wlan/wlanimp2.cpp | |||
@@ -33,49 +33,49 @@ using namespace Opie::Net; | |||
33 | #include <qcombobox.h> | 33 | #include <qcombobox.h> |
34 | #include <qlistview.h> | 34 | #include <qlistview.h> |
35 | #include <qvbox.h> | 35 | #include <qvbox.h> |
36 | #include <qprogressbar.h> | 36 | #include <qprogressbar.h> |
37 | 37 | ||
38 | /* STD */ | 38 | /* STD */ |
39 | #include <assert.h> | 39 | #include <assert.h> |
40 | #include <errno.h> | 40 | #include <errno.h> |
41 | #include <string.h> | 41 | #include <string.h> |
42 | 42 | ||
43 | #define WIRELESS_OPTS "/etc/pcmcia/wireless.opts" | 43 | #define WIRELESS_OPTS "/etc/pcmcia/wireless.opts" |
44 | #define PREUP "/etc/network/if-pre-up.d/wireless-tools" | 44 | #define PREUP "/etc/network/if-pre-up.d/wireless-tools" |
45 | 45 | ||
46 | /** | 46 | /** |
47 | * Constructor, read in the wireless.opts file for parsing later. | 47 | * Constructor, read in the wireless.opts file for parsing later. |
48 | */ | 48 | */ |
49 | WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), interface(i), currentProfile("*") { | 49 | WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), interface(i), currentProfile("*") { |
50 | interfaces = new Interfaces(); | 50 | interfaces = new Interfaces(); |
51 | interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces); | 51 | interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces); |
52 | tabWidget->insertTab(interfaceSetup, "TCP/IP"); | 52 | tabWidget->insertTab(interfaceSetup, "TCP/IP"); |
53 | 53 | ||
54 | // Check sanity - the existance of the wireless-tools if-pre-up script | 54 | // Check sanity - the existance of the wireless-tools if-pre-up script |
55 | QFile file(QString(PREUP)); | 55 | QFile file(QString(PREUP)); |
56 | if (file.exists()) { | 56 | if (file.exists()) { |
57 | owarn << QString("WLANImp: Unable to open /etc/network/if-pre-up.d/wireless-tools") << oendl; | 57 | owarn << QString("WLANImp: Unable to open /etc/network/if-pre-up.d/wireless-tools") << oendl; |
58 | } | 58 | } |
59 | 59 | ||
60 | connect( rescanButton, SIGNAL( clicked() ), this, SLOT( rescanNeighbourhood() ) ); | 60 | connect( rescanButton, SIGNAL( clicked() ), this, SLOT( rescanNeighbourhood() ) ); |
61 | connect( netView, SIGNAL( clicked(QListViewItem*) ), this, SLOT( selectNetwork(QListViewItem*) ) ); | 61 | connect( netView, SIGNAL( clicked(QListViewItem*) ), this, SLOT( selectNetwork(QListViewItem*) ) ); |
62 | netView->setColumnAlignment( col_chn, AlignCenter ); | 62 | netView->setColumnAlignment( col_chn, AlignCenter ); |
63 | netView->setItemMargin( 3 ); | 63 | netView->setItemMargin( 3 ); |
64 | netView->setAllColumnsShowFocus( true ); | 64 | netView->setAllColumnsShowFocus( true ); |
65 | 65 | ||
66 | } | 66 | } |
67 | 67 | ||
68 | WLANImp::~WLANImp() { | 68 | WLANImp::~WLANImp() { |
69 | //FIXME: delete interfaces; | 69 | //FIXME: delete interfaces; |
70 | } | 70 | } |
71 | 71 | ||
72 | /** | 72 | /** |
73 | * Change the profile for both wireless settings and network settings. | 73 | * Change the profile for both wireless settings and network settings. |
74 | */ | 74 | */ |
75 | void WLANImp::setProfile(const QString &profile){ | 75 | void WLANImp::setProfile(const QString &profile){ |
76 | interfaceSetup->setProfile(profile); | 76 | interfaceSetup->setProfile(profile); |
77 | parseOpts(); | 77 | parseOpts(); |
78 | } | 78 | } |
79 | 79 | ||
80 | void WLANImp::parseOpts() { | 80 | void WLANImp::parseOpts() { |
81 | bool error; | 81 | bool error; |
@@ -214,49 +214,49 @@ void WLANImp::accept() { | |||
214 | QMessageBox::information(this, "Error", "Please select/enter an ESSID.", QMessageBox::Ok); | 214 | QMessageBox::information(this, "Error", "Please select/enter an ESSID.", QMessageBox::Ok); |
215 | return; | 215 | return; |
216 | } | 216 | } |
217 | 217 | ||
218 | if (specifyAp->isChecked() && macEdit->text().isEmpty()) { | 218 | if (specifyAp->isChecked() && macEdit->text().isEmpty()) { |
219 | QMessageBox::information(this, "Error", "Please enter the MAC address of the Access Point.", QMessageBox::Ok); | 219 | QMessageBox::information(this, "Error", "Please enter the MAC address of the Access Point.", QMessageBox::Ok); |
220 | return; | 220 | return; |
221 | } | 221 | } |
222 | 222 | ||
223 | // Try to save the interfaces settings. | 223 | // Try to save the interfaces settings. |
224 | writeOpts(); | 224 | writeOpts(); |
225 | 225 | ||
226 | // Close out the dialog | 226 | // Close out the dialog |
227 | // FIXME: QDialog::accept(); | 227 | // FIXME: QDialog::accept(); |
228 | } | 228 | } |
229 | 229 | ||
230 | void WLANImp::writeOpts() { | 230 | void WLANImp::writeOpts() { |
231 | // eh can't really do anything about it other then return. :-D | 231 | // eh can't really do anything about it other then return. :-D |
232 | if(!interfaces->isInterfaceSet()){ | 232 | if(!interfaces->isInterfaceSet()){ |
233 | QMessageBox::warning(0,"Inface not set","should not happen!!!"); | 233 | QMessageBox::warning(0,"Inface not set","should not happen!!!"); |
234 | return; | 234 | return; |
235 | } | 235 | } |
236 | bool error = false; | 236 | bool error = false; |
237 | 237 | ||
238 | odebug << "setting wlan interface " << interfaces->getInterfaceName( error ).latin1() << "" << oendl; | 238 | odebug << "setting wlan interface " << interfaces->getInterfaceName( error ).latin1() << "" << oendl; |
239 | 239 | ||
240 | if (error) QMessageBox::warning(0,"Inface not set","should not happen!!!"); | 240 | if (error) QMessageBox::warning(0,"Inface not set","should not happen!!!"); |
241 | 241 | ||
242 | interfaces->setInterfaceOption(QString("wireless_mode"), mode->currentText()); | 242 | interfaces->setInterfaceOption(QString("wireless_mode"), mode->currentText()); |
243 | interfaces->setInterfaceOption(QString("wireless_essid"), essid->currentText()); | 243 | interfaces->setInterfaceOption(QString("wireless_essid"), essid->currentText()); |
244 | 244 | ||
245 | if (specifyAp->isChecked()) { | 245 | if (specifyAp->isChecked()) { |
246 | interfaces->setInterfaceOption(QString("wireless_ap"), macEdit->text()); | 246 | interfaces->setInterfaceOption(QString("wireless_ap"), macEdit->text()); |
247 | } else { | 247 | } else { |
248 | interfaces->removeInterfaceOption(QString("wireless_ap")); | 248 | interfaces->removeInterfaceOption(QString("wireless_ap")); |
249 | } | 249 | } |
250 | 250 | ||
251 | if (specifyChan->isChecked()) { | 251 | if (specifyChan->isChecked()) { |
252 | interfaces->setInterfaceOption(QString("wireless_channel"), networkChannel->text()); | 252 | interfaces->setInterfaceOption(QString("wireless_channel"), networkChannel->text()); |
253 | } else { | 253 | } else { |
254 | interfaces->removeInterfaceOption(QString("wireless_channel")); | 254 | interfaces->removeInterfaceOption(QString("wireless_channel")); |
255 | } | 255 | } |
256 | 256 | ||
257 | if (wepEnabled->isChecked()) { | 257 | if (wepEnabled->isChecked()) { |
258 | QStringList keyList; | 258 | QStringList keyList; |
259 | 259 | ||
260 | if (! keyLineEdit0->text().isNull()) { | 260 | if (! keyLineEdit0->text().isNull()) { |
261 | keyList += keyLineEdit0->text(); | 261 | keyList += keyLineEdit0->text(); |
262 | keyList += "[1]"; | 262 | keyList += "[1]"; |
@@ -288,200 +288,199 @@ void WLANImp::writeOpts() { | |||
288 | keyList += "[3]"; | 288 | keyList += "[3]"; |
289 | } else if (keyRadio3->isChecked()) { | 289 | } else if (keyRadio3->isChecked()) { |
290 | keyList += "[4]"; | 290 | keyList += "[4]"; |
291 | } | 291 | } |
292 | interfaces->setInterfaceOption(QString("wireless_key"), keyList.join(QString(" "))); | 292 | interfaces->setInterfaceOption(QString("wireless_key"), keyList.join(QString(" "))); |
293 | } else { | 293 | } else { |
294 | interfaces->removeInterfaceOption(QString("wireless_key")); | 294 | interfaces->removeInterfaceOption(QString("wireless_key")); |
295 | } | 295 | } |
296 | interfaces->removeInterfaceOption(QString("wireless_enc")); | 296 | interfaces->removeInterfaceOption(QString("wireless_enc")); |
297 | 297 | ||
298 | if(!interfaceSetup->saveChanges()) | 298 | if(!interfaceSetup->saveChanges()) |
299 | return; | 299 | return; |
300 | 300 | ||
301 | QDialog::accept(); | 301 | QDialog::accept(); |
302 | } | 302 | } |
303 | 303 | ||
304 | /* | 304 | /* |
305 | * Scan for possible wireless networks around... | 305 | * Scan for possible wireless networks around... |
306 | * ... powered by Wellenreiter II technology (C) Michael 'Mickey' Lauer <mickeyl@handhelds.org> | 306 | * ... powered by Wellenreiter II technology (C) Michael 'Mickey' Lauer <mickeyl@handhelds.org> |
307 | */ | 307 | */ |
308 | 308 | ||
309 | void WLANImp::rescanNeighbourhood() | 309 | void WLANImp::rescanNeighbourhood() |
310 | { | 310 | { |
311 | QString name = interface->getInterfaceName(); | 311 | QString name = interface->getInterfaceName(); |
312 | odebug << "rescanNeighbourhood via '" << name << "'" << oendl; | 312 | odebug << "rescanNeighbourhood via '" << name << "'" << oendl; |
313 | 313 | ||
314 | OWirelessNetworkInterface* wiface = static_cast<OWirelessNetworkInterface*>( ONetwork::instance()->interface( name ) ); | 314 | OWirelessNetworkInterface* wiface = static_cast<OWirelessNetworkInterface*>( ONetwork::instance()->interface( name ) ); |
315 | assert( wiface ); | 315 | assert( wiface ); |
316 | 316 | ||
317 | // try to guess device type | 317 | // try to guess device type |
318 | QString devicetype; | 318 | QString devicetype; |
319 | QFile m( "/proc/modules" ); | 319 | QFile m( "/proc/modules" ); |
320 | if ( m.open( IO_ReadOnly ) ) | 320 | if ( m.open( IO_ReadOnly ) ) |
321 | { | 321 | { |
322 | QString line; | 322 | QString line; |
323 | QTextStream modules( &m ); | 323 | QTextStream modules( &m ); |
324 | while( !modules.atEnd() && !devicetype ) | 324 | while( !modules.atEnd() && !devicetype ) |
325 | { | 325 | { |
326 | modules >> line; | 326 | modules >> line; |
327 | if ( line.contains( "cisco" ) ) devicetype = "cisco"; | 327 | if ( line.contains( "cisco" ) ) devicetype = "cisco"; |
328 | else if ( line.contains( "hostap" ) ) devicetype = "hostap"; | 328 | else if ( line.contains( "hostap" ) ) devicetype = "hostap"; |
329 | else if ( line.contains( "prism" ) ) devicetype = "wlan-ng"; /* puke */ | 329 | else if ( line.contains( "prism" ) ) devicetype = "wlan-ng"; /* puke */ |
330 | else if ( line.contains( "orinoco" ) ) devicetype = "orinoco"; | 330 | else if ( line.contains( "orinoco" ) ) devicetype = "orinoco"; |
331 | } | 331 | } |
332 | } | 332 | } |
333 | if ( devicetype.isEmpty() ) | 333 | if ( devicetype.isEmpty() ) |
334 | { | 334 | { |
335 | owarn << "rescanNeighbourhood(): couldn't guess device type :(" << oendl; | 335 | owarn << "rescanNeighbourhood(): couldn't guess device type :(" << oendl; |
336 | return; | 336 | return; |
337 | } | 337 | } |
338 | else | 338 | else |
339 | { | 339 | { |
340 | odebug << "rescanNeighbourhood(): device type seems to be '" << devicetype << "'" << oendl; | 340 | odebug << "rescanNeighbourhood(): device type seems to be '" << devicetype << "'" << oendl; |
341 | } | 341 | } |
342 | 342 | ||
343 | // configure interface to receive 802.11 management frames | 343 | // configure interface to receive 802.11 management frames |
344 | 344 | ||
345 | wiface->setUp( true ); | 345 | wiface->setUp( true ); |
346 | wiface->setPromiscuousMode( true ); | 346 | wiface->setPromiscuousMode( true ); |
347 | 347 | ||
348 | if ( devicetype == "cisco" ) wiface->setMonitoring( new OCiscoMonitoringInterface( wiface, false ) ); | 348 | if ( devicetype == "cisco" ) wiface->setMonitoring( new OCiscoMonitoringInterface( wiface, false ) ); |
349 | else if ( devicetype == "hostap" ) wiface->setMonitoring( new OHostAPMonitoringInterface( wiface, false ) ); | 349 | else if ( devicetype == "hostap" ) wiface->setMonitoring( new OHostAPMonitoringInterface( wiface, false ) ); |
350 | else if ( devicetype == "wlan-ng" ) wiface->setMonitoring( new OWlanNGMonitoringInterface( wiface, false ) ); | 350 | else if ( devicetype == "wlan-ng" ) wiface->setMonitoring( new OWlanNGMonitoringInterface( wiface, false ) ); |
351 | else if ( devicetype == "orinoco" ) wiface->setMonitoring( new OOrinocoMonitoringInterface( wiface, false ) ); | 351 | else if ( devicetype == "orinoco" ) wiface->setMonitoring( new OOrinocoMonitoringInterface( wiface, false ) ); |
352 | else | 352 | else |
353 | { | 353 | { |
354 | odebug << "rescanNeighbourhood(): unsupported device type for monitoring :(" << oendl; | 354 | odebug << "rescanNeighbourhood(): unsupported device type for monitoring :(" << oendl; |
355 | return; | 355 | return; |
356 | } | 356 | } |
357 | 357 | ||
358 | wiface->setMode( "monitor" ); | 358 | wiface->setMode( "monitor" ); |
359 | if ( wiface->mode() != "monitor" ) | 359 | if ( wiface->mode() != "monitor" ) |
360 | { | 360 | { |
361 | owarn << "rescanNeighbourhood(): Unable to bring device into monitor mode (" << strerror( errno ) << ")." << oendl; | 361 | owarn << "rescanNeighbourhood(): Unable to bring device into monitor mode (" << strerror( errno ) << ")." << oendl; |
362 | return; | 362 | return; |
363 | } | 363 | } |
364 | 364 | ||
365 | // open a packet capturer | 365 | // open a packet capturer |
366 | OPacketCapturer* cap = new OPacketCapturer(); | 366 | OPacketCapturer* cap = new OPacketCapturer(); |
367 | cap->open( name ); | 367 | cap->open( name ); |
368 | if ( !cap->isOpen() ) | 368 | if ( !cap->isOpen() ) |
369 | { | 369 | { |
370 | owarn << "rescanNeighbourhood(): Unable to open libpcap (" << strerror( errno ) << ")." << oendl; | 370 | owarn << "rescanNeighbourhood(): Unable to open libpcap (" << strerror( errno ) << ")." << oendl; |
371 | return; | 371 | return; |
372 | } | 372 | } |
373 | 373 | ||
374 | // display splash screen | 374 | // display splash screen |
375 | QFrame* splash = new QFrame( this, "splash", false, WStyle_StaysOnTop | WStyle_DialogBorder | WStyle_Customize ); | 375 | QFrame* splash = new QFrame( this, "splash", false, WStyle_StaysOnTop | WStyle_DialogBorder | WStyle_Customize ); |
376 | splash->setLineWidth( 2 ); | 376 | splash->setLineWidth( 2 ); |
377 | splash->setFrameStyle( QFrame::Panel | QFrame::Raised ); | 377 | splash->setFrameStyle( QFrame::Panel | QFrame::Raised ); |
378 | QVBoxLayout* vbox = new QVBoxLayout( splash, 4, 4 ); | 378 | QVBoxLayout* vbox = new QVBoxLayout( splash, 4, 4 ); |
379 | QLabel* lab = new QLabel( "<center><b>Scanning...</b><br>Please Wait...</center>", splash ); | 379 | QLabel* lab = new QLabel( "<center><b>Scanning...</b><br>Please Wait...</center>", splash ); |
380 | QProgressBar* pb = new QProgressBar( wiface->channels(), splash ); | 380 | QProgressBar* pb = new QProgressBar( wiface->channels(), splash ); |
381 | vbox->addWidget( lab ); | 381 | vbox->addWidget( lab ); |
382 | vbox->addWidget( pb ); | 382 | vbox->addWidget( pb ); |
383 | pb->setCenterIndicator( true ); | 383 | pb->setCenterIndicator( true ); |
384 | pb->setFixedHeight( pb->sizeHint().height() ); | 384 | pb->setFixedHeight( pb->sizeHint().height() ); |
385 | QWidget* widgetDesktop = qApp->desktop(); | 385 | QWidget* widgetDesktop = qApp->desktop(); |
386 | int dw = widgetDesktop->width(); | 386 | int dw = widgetDesktop->width(); |
387 | int dh = widgetDesktop->height(); | 387 | int dh = widgetDesktop->height(); |
388 | int pw = vbox->sizeHint().width(); | 388 | int pw = vbox->sizeHint().width(); |
389 | int ph = vbox->sizeHint().height(); | 389 | int ph = vbox->sizeHint().height(); |
390 | splash->setGeometry((dw-pw)/2,(dh-ph)/2,pw,ph); | 390 | splash->setGeometry((dw-pw)/2,(dh-ph)/2,pw,ph); |
391 | splash->show(); | 391 | splash->show(); |
392 | splash->raise(); | 392 | splash->raise(); |
393 | qApp->processEvents(); | 393 | qApp->processEvents(); |
394 | 394 | ||
395 | // set capturer to non-blocking mode | 395 | // set capturer to non-blocking mode |
396 | cap->setBlocking( false ); | 396 | cap->setBlocking( false ); |
397 | 397 | ||
398 | for ( int i = 1; i <= wiface->channels(); ++i ) | 398 | for ( int i = 1; i <= wiface->channels(); ++i ) |
399 | { | 399 | { |
400 | wiface->setChannel( i ); | 400 | wiface->setChannel( i ); |
401 | pb->setProgress( i ); | 401 | pb->setProgress( i ); |
402 | qApp->processEvents(); | 402 | qApp->processEvents(); |
403 | odebug << "rescanNeighbourhood(): listening on channel " << i << "..." << oendl; | 403 | odebug << "rescanNeighbourhood(): listening on channel " << i << "..." << oendl; |
404 | OPacket* p = cap->next( 1000 ); | 404 | OPacket* p = cap->next( 1000 ); |
405 | if ( !p ) | 405 | if ( !p ) |
406 | { | 406 | { |
407 | odebug << "rescanNeighbourhood(): nothing received on channel " << i << "" << oendl; | 407 | odebug << "rescanNeighbourhood(): nothing received on channel " << i << "" << oendl; |
408 | } | 408 | } |
409 | else | 409 | else |
410 | { | 410 | { |
411 | odebug << "rescanNeighbourhood(): TADAA - something came in on channel " << i << "" << oendl; | 411 | odebug << "rescanNeighbourhood(): TADAA - something came in on channel " << i << "" << oendl; |
412 | handlePacket( p ); | 412 | handlePacket( p ); |
413 | } | 413 | } |
414 | } | 414 | } |
415 | 415 | ||
416 | cap->close(); | 416 | cap->close(); |
417 | wiface->setMode( "managed" ); // TODO: use previous mode | 417 | wiface->setMode( "managed" ); // TODO: use previous mode |
418 | wiface->setPromiscuousMode( false ); | 418 | wiface->setPromiscuousMode( false ); |
419 | 419 | ||
420 | splash->hide(); | 420 | splash->hide(); |
421 | delete splash; | 421 | delete splash; |
422 | 422 | ||
423 | } | 423 | } |
424 | 424 | ||
425 | void WLANImp::handlePacket( OPacket* p ) | 425 | void WLANImp::handlePacket( OPacket* p ) |
426 | { | 426 | { |
427 | 427 | ||
428 | // check if we received a beacon frame | 428 | // check if we received a beacon frame |
429 | OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( p->child( "802.11 Management" ) ); | 429 | OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( p->child( "802.11 Management" ) ); |
430 | if ( beacon && beacon->managementType() == "Beacon" ) | 430 | if ( beacon && beacon->managementType() == "Beacon" ) |
431 | { | 431 | { |
432 | 432 | ||
433 | QString type; | 433 | QString type; |
434 | if ( beacon->canIBSS() ) | 434 | if ( beacon->canIBSS() ) |
435 | { | 435 | { |
436 | type = "adhoc"; | 436 | type = "adhoc"; |
437 | } | 437 | } |
438 | else if ( beacon->canESS() ) | 438 | else if ( beacon->canESS() ) |
439 | { | 439 | { |
440 | type = "managed"; | 440 | type = "managed"; |
441 | } | 441 | } |
442 | else | 442 | else |
443 | { | 443 | { |
444 | owarn << "handlePacket(): invalid frame [possibly noise] detected!" << oendl; | 444 | owarn << "handlePacket(): invalid frame [possibly noise] detected!" << oendl; |
445 | return; | 445 | return; |
446 | } | 446 | } |
447 | 447 | ||
448 | OWaveLanManagementSSID* ssid = static_cast<OWaveLanManagementSSID*>( p->child( "802.11 SSID" ) ); | 448 | OWaveLanManagementSSID* ssid = static_cast<OWaveLanManagementSSID*>( p->child( "802.11 SSID" ) ); |
449 | QString essid = ssid ? ssid->ID() : QString("<unknown>"); | 449 | QString essid = ssid ? ssid->ID() : QString("<unknown>"); |
450 | OWaveLanManagementDS* ds = static_cast<OWaveLanManagementDS*>( p->child( "802.11 DS" ) ); | 450 | OWaveLanManagementDS* ds = static_cast<OWaveLanManagementDS*>( p->child( "802.11 DS" ) ); |
451 | int channel = ds ? ds->channel() : -1; | 451 | int channel = ds ? ds->channel() : -1; |
452 | OWaveLanPacket* header = static_cast<OWaveLanPacket*>( p->child( "802.11" ) ); | 452 | OWaveLanPacket* header = static_cast<OWaveLanPacket*>( p->child( "802.11" ) ); |
453 | displayFoundNetwork( type, channel, essid, header->macAddress2() ); | 453 | displayFoundNetwork( type, channel, essid, header->macAddress2() ); |
454 | } | 454 | } |
455 | } | 455 | } |
456 | 456 | ||
457 | 457 | ||
458 | void WLANImp::displayFoundNetwork( const QString& mode, int channel, const QString& ssid, const OMacAddress& mac ) | 458 | void WLANImp::displayFoundNetwork( const QString& mode, int channel, const QString& ssid, const OMacAddress& mac ) |
459 | { | 459 | { |
460 | 460 | ||
461 | qDebug( "found network: <%s>, chn %d, ssid '%s', mac '%s'", (const char*) mode, channel, | 461 | odebug << "found network: <" << (const char*) mode << ">, chn " << channel |
462 | (const char*) ssid, | 462 | << ", ssid '" << (const char*) ssid << "', mac '" << (const char*) mac.toString() << "'" << oendl; |
463 | (const char*) mac.toString() ); | ||
464 | 463 | ||
465 | QListViewItemIterator it( netView ); | 464 | QListViewItemIterator it( netView ); |
466 | while ( it.current() && it.current()->text( col_ssid ) != ssid ) ++it; | 465 | while ( it.current() && it.current()->text( col_ssid ) != ssid ) ++it; |
467 | if ( !it.current() ) // ssid didn't show up yet | 466 | if ( !it.current() ) // ssid didn't show up yet |
468 | { | 467 | { |
469 | QListViewItem* item = new QListViewItem( netView, mode.left( 1 ).upper(), ssid, QString::number( channel ), mac.toString() ); | 468 | QListViewItem* item = new QListViewItem( netView, mode.left( 1 ).upper(), ssid, QString::number( channel ), mac.toString() ); |
470 | QString name; | 469 | QString name; |
471 | name.sprintf( "networksettings/%s", (const char*) mode ); | 470 | name.sprintf( "networksettings/%s", (const char*) mode ); |
472 | item->setPixmap( col_mode, Resource::loadPixmap( name ) ); | 471 | item->setPixmap( col_mode, Resource::loadPixmap( name ) ); |
473 | qApp->processEvents(); | 472 | qApp->processEvents(); |
474 | } | 473 | } |
475 | 474 | ||
476 | } | 475 | } |
477 | 476 | ||
478 | 477 | ||
479 | void WLANImp::selectNetwork( QListViewItem* item ) | 478 | void WLANImp::selectNetwork( QListViewItem* item ) |
480 | { | 479 | { |
481 | bool ok; | 480 | bool ok; |
482 | if ( item ) | 481 | if ( item ) |
483 | { | 482 | { |
484 | specifyAp->setChecked(true); | 483 | specifyAp->setChecked(true); |
485 | macEdit->setText( item->text( col_mac ) ); | 484 | macEdit->setText( item->text( col_mac ) ); |
486 | specifyChan->setChecked( item->text( col_mode ) == "A" ); | 485 | specifyChan->setChecked( item->text( col_mode ) == "A" ); |
487 | networkChannel->setValue( item->text( col_chn ).toInt( &ok ) ); | 486 | networkChannel->setValue( item->text( col_chn ).toInt( &ok ) ); |