Diffstat (limited to 'noncore/settings/networksettings/ppp/modem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/networksettings/ppp/modem.cpp | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/noncore/settings/networksettings/ppp/modem.cpp b/noncore/settings/networksettings/ppp/modem.cpp index 5139482..002c8e7 100644 --- a/noncore/settings/networksettings/ppp/modem.cpp +++ b/noncore/settings/networksettings/ppp/modem.cpp | |||
@@ -53,25 +53,25 @@ | |||
53 | #define i18n QObject::tr | 53 | #define i18n QObject::tr |
54 | #define qError qDebug | 54 | #define qError qDebug |
55 | //#include <kdebug.h> | 55 | //#include <kdebug.h> |
56 | //#include <config.h> | 56 | //#include <config.h> |
57 | 57 | ||
58 | #define MY_ASSERT(x) if (!(x)) { \ | 58 | #define MY_ASSERT(x) if (!(x)) { \ |
59 | qFatal( "ASSERT: \"%s\" in %s (%d)\n",#x,__FILE__,__LINE__); \ | 59 | qFatal( "ASSERT: \"%s\" in %s (%d)\n",#x,__FILE__,__LINE__); \ |
60 | exit(1); } | 60 | exit(1); } |
61 | 61 | ||
62 | 62 | ||
63 | static sigjmp_buf jmp_buffer; | 63 | static sigjmp_buf jmp_buffer; |
64 | 64 | ||
65 | Modem *Modem::modem = 0; | 65 | //Modem *Modem::modem = 0; |
66 | 66 | ||
67 | 67 | ||
68 | const char* pppdPath() { | 68 | const char* pppdPath() { |
69 | // wasting a few bytes | 69 | // wasting a few bytes |
70 | static char buffer[sizeof(PPPDSEARCHPATH)+sizeof(PPPDNAME)]; | 70 | static char buffer[sizeof(PPPDSEARCHPATH)+sizeof(PPPDNAME)]; |
71 | static char *pppdPath = 0L; | 71 | static char *pppdPath = 0L; |
72 | char *p; | 72 | char *p; |
73 | 73 | ||
74 | if(pppdPath == 0L) { | 74 | if(pppdPath == 0L) { |
75 | const char *c = PPPDSEARCHPATH; | 75 | const char *c = PPPDSEARCHPATH; |
76 | while(*c != '\0') { | 76 | while(*c != '\0') { |
77 | while(*c == ':') | 77 | while(*c == ':') |
@@ -82,49 +82,48 @@ const char* pppdPath() { | |||
82 | *p = '\0'; | 82 | *p = '\0'; |
83 | strcat(p, "/"); | 83 | strcat(p, "/"); |
84 | strcat(p, PPPDNAME); | 84 | strcat(p, PPPDNAME); |
85 | if(access(buffer, F_OK) == 0) | 85 | if(access(buffer, F_OK) == 0) |
86 | return (pppdPath = buffer); | 86 | return (pppdPath = buffer); |
87 | } | 87 | } |
88 | } | 88 | } |
89 | 89 | ||
90 | return pppdPath; | 90 | return pppdPath; |
91 | } | 91 | } |
92 | 92 | ||
93 | 93 | ||
94 | Modem::Modem() | 94 | Modem::Modem( PPPData* pd ) |
95 | { | 95 | { |
96 | if (Modem::modem != 0) return; //CORRECT? | 96 | _pppdata = pd; |
97 | modemfd = -1; | 97 | modemfd = -1; |
98 | _pppdExitStatus = -1; | 98 | _pppdExitStatus = -1; |
99 | pppdPid = -1; | 99 | pppdPid = -1; |
100 | sn = 0L; | 100 | sn = 0L; |
101 | data_mode = false; | 101 | data_mode = false; |
102 | modem_is_locked = false; | 102 | modem_is_locked = false; |
103 | lockfile[0] = '\0'; | 103 | lockfile[0] = '\0'; |
104 | device = "/dev/modem"; | 104 | device = "/dev/modem"; |
105 | modem = this; | ||
106 | } | 105 | } |
107 | 106 | ||
108 | 107 | ||
109 | Modem::~Modem() { | 108 | Modem::~Modem() |
110 | modem = 0; | 109 | { |
111 | } | 110 | } |
112 | 111 | ||
113 | 112 | ||
114 | speed_t Modem::modemspeed() { | 113 | speed_t Modem::modemspeed() { |
115 | // convert the string modem speed int the gpppdata object to a t_speed type | 114 | // convert the string modem speed int the gpppdata object to a t_speed type |
116 | // to set the modem. The constants here should all be ifdef'd because | 115 | // to set the modem. The constants here should all be ifdef'd because |
117 | // other systems may not have them | 116 | // other systems may not have them |
118 | int i = PPPData::data()->speed().toInt()/100; | 117 | int i = _pppdata->speed().toInt()/100; |
119 | 118 | ||
120 | switch(i) { | 119 | switch(i) { |
121 | case 24: | 120 | case 24: |
122 | return B2400; | 121 | return B2400; |
123 | break; | 122 | break; |
124 | case 96: | 123 | case 96: |
125 | return B9600; | 124 | return B9600; |
126 | break; | 125 | break; |
127 | case 192: | 126 | case 192: |
128 | return B19200; | 127 | return B19200; |
129 | break; | 128 | break; |
130 | case 384: | 129 | case 384: |
@@ -156,35 +155,35 @@ speed_t Modem::modemspeed() { | |||
156 | 155 | ||
157 | default: | 156 | default: |
158 | return B38400; | 157 | return B38400; |
159 | break; | 158 | break; |
160 | } | 159 | } |
161 | } | 160 | } |
162 | 161 | ||
163 | bool Modem::opentty() { | 162 | bool Modem::opentty() { |
164 | // int flags; | 163 | // int flags; |
165 | 164 | ||
166 | //begin if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { | 165 | //begin if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { |
167 | close(modemfd); | 166 | close(modemfd); |
168 | device = PPPData::data()->modemDevice(); | 167 | device = _pppdata->modemDevice(); |
169 | if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) { | 168 | if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) { |
170 | qDebug("error opening modem device !"); | 169 | qDebug("error opening modem device !"); |
171 | errmsg = i18n("Unable to open modem."); | 170 | errmsg = i18n("Unable to open modem."); |
172 | return false; | 171 | return false; |
173 | } | 172 | } |
174 | //bend if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { | 173 | //bend if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { |
175 | //} | 174 | //} |
176 | 175 | ||
177 | #if 0 | 176 | #if 0 |
178 | if(PPPData::data()->UseCDLine()) { | 177 | if(_pppdata->UseCDLine()) { |
179 | if(ioctl(modemfd, TIOCMGET, &flags) == -1) { | 178 | if(ioctl(modemfd, TIOCMGET, &flags) == -1) { |
180 | errmsg = i18n("Unable to detect state of CD line."); | 179 | errmsg = i18n("Unable to detect state of CD line."); |
181 | ::close(modemfd); | 180 | ::close(modemfd); |
182 | modemfd = -1; | 181 | modemfd = -1; |
183 | return false; | 182 | return false; |
184 | } | 183 | } |
185 | if ((flags&TIOCM_CD) == 0) { | 184 | if ((flags&TIOCM_CD) == 0) { |
186 | errmsg = i18n("The modem is not ready."); | 185 | errmsg = i18n("The modem is not ready."); |
187 | ::close(modemfd); | 186 | ::close(modemfd); |
188 | modemfd = -1; | 187 | modemfd = -1; |
189 | return false; | 188 | return false; |
190 | } | 189 | } |
@@ -214,26 +213,26 @@ bool Modem::opentty() { | |||
214 | tty.c_cc[VTIME] = 0; | 213 | tty.c_cc[VTIME] = 0; |
215 | tty.c_oflag = 0; | 214 | tty.c_oflag = 0; |
216 | tty.c_lflag = 0; | 215 | tty.c_lflag = 0; |
217 | 216 | ||
218 | tty.c_cflag &= ~(CSIZE | CSTOPB | PARENB); | 217 | tty.c_cflag &= ~(CSIZE | CSTOPB | PARENB); |
219 | tty.c_cflag |= CS8 | CREAD; | 218 | tty.c_cflag |= CS8 | CREAD; |
220 | tty.c_cflag |= CLOCAL; // ignore modem status lines | 219 | tty.c_cflag |= CLOCAL; // ignore modem status lines |
221 | tty.c_iflag = IGNBRK | IGNPAR /* | ISTRIP */ ; | 220 | tty.c_iflag = IGNBRK | IGNPAR /* | ISTRIP */ ; |
222 | tty.c_lflag &= ~ICANON; // non-canonical mode | 221 | tty.c_lflag &= ~ICANON; // non-canonical mode |
223 | tty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHOKE); | 222 | tty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHOKE); |
224 | 223 | ||
225 | 224 | ||
226 | if(PPPData::data()->flowcontrol() != "None") { | 225 | if(_pppdata->flowcontrol() != "None") { |
227 | if(PPPData::data()->flowcontrol() == "CRTSCTS") { | 226 | if(_pppdata->flowcontrol() == "CRTSCTS") { |
228 | tty.c_cflag |= CRTSCTS; | 227 | tty.c_cflag |= CRTSCTS; |
229 | } | 228 | } |
230 | else { | 229 | else { |
231 | tty.c_iflag |= IXON | IXOFF; | 230 | tty.c_iflag |= IXON | IXOFF; |
232 | tty.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */ | 231 | tty.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */ |
233 | tty.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */ | 232 | tty.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */ |
234 | } | 233 | } |
235 | } | 234 | } |
236 | else { | 235 | else { |
237 | tty.c_cflag &= ~CRTSCTS; | 236 | tty.c_cflag &= ~CRTSCTS; |
238 | tty.c_iflag &= ~(IXON | IXOFF); | 237 | tty.c_iflag &= ~(IXON | IXOFF); |
239 | } | 238 | } |
@@ -344,25 +343,25 @@ bool Modem::writeChar(unsigned char c) { | |||
344 | } | 343 | } |
345 | } while(s == 0); | 344 | } while(s == 0); |
346 | 345 | ||
347 | return true; | 346 | return true; |
348 | } | 347 | } |
349 | 348 | ||
350 | 349 | ||
351 | bool Modem::writeLine(const char *buf) { | 350 | bool Modem::writeLine(const char *buf) { |
352 | int len = strlen(buf); | 351 | int len = strlen(buf); |
353 | char *b = new char[len+2]; | 352 | char *b = new char[len+2]; |
354 | memcpy(b, buf, len); | 353 | memcpy(b, buf, len); |
355 | // different modems seem to need different line terminations | 354 | // different modems seem to need different line terminations |
356 | QString term = PPPData::data()->enter(); | 355 | QString term = _pppdata->enter(); |
357 | if(term == "LF") | 356 | if(term == "LF") |
358 | b[len++]='\n'; | 357 | b[len++]='\n'; |
359 | else if(term == "CR") | 358 | else if(term == "CR") |
360 | b[len++]='\r'; | 359 | b[len++]='\r'; |
361 | else if(term == "CR/LF") { | 360 | else if(term == "CR/LF") { |
362 | b[len++]='\r'; | 361 | b[len++]='\r'; |
363 | b[len++]='\n'; | 362 | b[len++]='\n'; |
364 | } | 363 | } |
365 | int l = len; | 364 | int l = len; |
366 | while(l) { | 365 | while(l) { |
367 | int wr = write(modemfd, &b[len-l], l); | 366 | int wr = write(modemfd, &b[len-l], l); |
368 | if(wr < 0) { | 367 | if(wr < 0) { |
@@ -384,27 +383,27 @@ bool Modem::hangup() { | |||
384 | // this is probably the most imporant snippet of code in the whole of | 383 | // this is probably the most imporant snippet of code in the whole of |
385 | // kppp. If people complain about kppp being stuck, this piece of code | 384 | // kppp. If people complain about kppp being stuck, this piece of code |
386 | // is most likely the reason. | 385 | // is most likely the reason. |
387 | struct termios temptty; | 386 | struct termios temptty; |
388 | 387 | ||
389 | if(modemfd >= 0) { | 388 | if(modemfd >= 0) { |
390 | 389 | ||
391 | // is this Escape & HangupStr stuff really necessary ? (Harri) | 390 | // is this Escape & HangupStr stuff really necessary ? (Harri) |
392 | 391 | ||
393 | if (data_mode) escape_to_command_mode(); | 392 | if (data_mode) escape_to_command_mode(); |
394 | 393 | ||
395 | // Then hangup command | 394 | // Then hangup command |
396 | writeLine(PPPData::data()->modemHangupStr().local8Bit()); | 395 | writeLine(_pppdata->modemHangupStr().local8Bit()); |
397 | 396 | ||
398 | usleep(PPPData::data()->modemInitDelay() * 10000); // 0.01 - 3.0 sec | 397 | usleep(_pppdata->modemInitDelay() * 10000); // 0.01 - 3.0 sec |
399 | 398 | ||
400 | #ifndef DEBUG_WO_DIALING | 399 | #ifndef DEBUG_WO_DIALING |
401 | if (sigsetjmp(jmp_buffer, 1) == 0) { | 400 | if (sigsetjmp(jmp_buffer, 1) == 0) { |
402 | // set alarm in case tcsendbreak() hangs | 401 | // set alarm in case tcsendbreak() hangs |
403 | signal(SIGALRM, alarm_handler); | 402 | signal(SIGALRM, alarm_handler); |
404 | alarm(2); | 403 | alarm(2); |
405 | 404 | ||
406 | tcsendbreak(modemfd, 0); | 405 | tcsendbreak(modemfd, 0); |
407 | 406 | ||
408 | alarm(0); | 407 | alarm(0); |
409 | signal(SIGALRM, SIG_IGN); | 408 | signal(SIGALRM, SIG_IGN); |
410 | } else { | 409 | } else { |
@@ -422,52 +421,52 @@ bool Modem::hangup() { | |||
422 | cfsetispeed(&temptty, B0); | 421 | cfsetispeed(&temptty, B0); |
423 | tcsetattr(modemfd, TCSAFLUSH, &temptty); | 422 | tcsetattr(modemfd, TCSAFLUSH, &temptty); |
424 | #else | 423 | #else |
425 | int modemstat; | 424 | int modemstat; |
426 | ioctl(modemfd, TIOCMGET, &modemstat); | 425 | ioctl(modemfd, TIOCMGET, &modemstat); |
427 | modemstat &= ~TIOCM_DTR; | 426 | modemstat &= ~TIOCM_DTR; |
428 | ioctl(modemfd, TIOCMSET, &modemstat); | 427 | ioctl(modemfd, TIOCMSET, &modemstat); |
429 | ioctl(modemfd, TIOCMGET, &modemstat); | 428 | ioctl(modemfd, TIOCMGET, &modemstat); |
430 | modemstat |= TIOCM_DTR; | 429 | modemstat |= TIOCM_DTR; |
431 | ioctl(modemfd, TIOCMSET, &modemstat); | 430 | ioctl(modemfd, TIOCMSET, &modemstat); |
432 | #endif | 431 | #endif |
433 | 432 | ||
434 | usleep(PPPData::data()->modemInitDelay() * 10000); // 0.01 - 3.0 secs | 433 | usleep(_pppdata->modemInitDelay() * 10000); // 0.01 - 3.0 secs |
435 | 434 | ||
436 | cfsetospeed(&temptty, modemspeed()); | 435 | cfsetospeed(&temptty, modemspeed()); |
437 | cfsetispeed(&temptty, modemspeed()); | 436 | cfsetispeed(&temptty, modemspeed()); |
438 | tcsetattr(modemfd, TCSAFLUSH, &temptty); | 437 | tcsetattr(modemfd, TCSAFLUSH, &temptty); |
439 | #endif | 438 | #endif |
440 | return true; | 439 | return true; |
441 | } else | 440 | } else |
442 | return false; | 441 | return false; |
443 | } | 442 | } |
444 | 443 | ||
445 | 444 | ||
446 | void Modem::escape_to_command_mode() { | 445 | void Modem::escape_to_command_mode() { |
447 | // Send Properly bracketed escape code to put the modem back into command state. | 446 | // Send Properly bracketed escape code to put the modem back into command state. |
448 | // A modem will accept AT commands only when it is in command state. | 447 | // A modem will accept AT commands only when it is in command state. |
449 | // When a modem sends the host the CONNECT string, that signals | 448 | // When a modem sends the host the CONNECT string, that signals |
450 | // that the modem is now in the connect state (no long accepts AT commands.) | 449 | // that the modem is now in the connect state (no long accepts AT commands.) |
451 | // Need to send properly timed escape sequence to put modem in command state. | 450 | // Need to send properly timed escape sequence to put modem in command state. |
452 | // Escape codes and guard times are controlled by S2 and S12 values. | 451 | // Escape codes and guard times are controlled by S2 and S12 values. |
453 | // | 452 | // |
454 | tcflush(modemfd, TCIOFLUSH); | 453 | tcflush(modemfd, TCIOFLUSH); |
455 | 454 | ||
456 | // +3 because quiet time must be greater than guard time. | 455 | // +3 because quiet time must be greater than guard time. |
457 | usleep((PPPData::data()->modemEscapeGuardTime()+3)*20000); | 456 | usleep((_pppdata->modemEscapeGuardTime()+3)*20000); |
458 | QCString tmp = PPPData::data()->modemEscapeStr().local8Bit(); | 457 | QCString tmp = _pppdata->modemEscapeStr().local8Bit(); |
459 | write(modemfd, tmp.data(), tmp.length()); | 458 | write(modemfd, tmp.data(), tmp.length()); |
460 | tcflush(modemfd, TCIOFLUSH); | 459 | tcflush(modemfd, TCIOFLUSH); |
461 | usleep((PPPData::data()->modemEscapeGuardTime()+3)*20000); | 460 | usleep((_pppdata->modemEscapeGuardTime()+3)*20000); |
462 | 461 | ||
463 | data_mode = false; | 462 | data_mode = false; |
464 | } | 463 | } |
465 | 464 | ||
466 | 465 | ||
467 | const QString Modem::modemMessage() { | 466 | const QString Modem::modemMessage() { |
468 | return errmsg; | 467 | return errmsg; |
469 | } | 468 | } |
470 | 469 | ||
471 | 470 | ||
472 | QString Modem::parseModemSpeed(const QString &s) { | 471 | QString Modem::parseModemSpeed(const QString &s) { |
473 | // this is a small (and bad) parser for modem speeds | 472 | // this is a small (and bad) parser for modem speeds |
@@ -565,34 +564,34 @@ QString Modem::parseModemSpeed(const QString &s) { | |||
565 | qDebug( "The parsed result is: %s", result.latin1()); | 564 | qDebug( "The parsed result is: %s", result.latin1()); |
566 | 565 | ||
567 | return result; | 566 | return result; |
568 | } | 567 | } |
569 | 568 | ||
570 | 569 | ||
571 | // Lock modem device. Returns 0 on success 1 if the modem is locked and -1 if | 570 | // Lock modem device. Returns 0 on success 1 if the modem is locked and -1 if |
572 | // a lock file can't be created ( permission problem ) | 571 | // a lock file can't be created ( permission problem ) |
573 | int Modem::lockdevice() { | 572 | int Modem::lockdevice() { |
574 | int fd; | 573 | int fd; |
575 | char newlock[80]=""; // safe | 574 | char newlock[80]=""; // safe |
576 | 575 | ||
577 | if(!PPPData::data()->modemLockFile()) { | 576 | if(!_pppdata->modemLockFile()) { |
578 | qDebug("The user doesn't want a lockfile."); | 577 | qDebug("The user doesn't want a lockfile."); |
579 | return 0; | 578 | return 0; |
580 | } | 579 | } |
581 | 580 | ||
582 | if (modem_is_locked) | 581 | if (modem_is_locked) |
583 | return 1; | 582 | return 1; |
584 | 583 | ||
585 | QString lockfile = LOCK_DIR"/LCK.."; | 584 | QString lockfile = LOCK_DIR"/LCK.."; |
586 | lockfile += PPPData::data()->modemDevice().mid(5); // append everything after /dev/ | 585 | lockfile += _pppdata->modemDevice().mid(5); // append everything after /dev/ |
587 | 586 | ||
588 | if(access(QFile::encodeName(lockfile), F_OK) == 0) { | 587 | if(access(QFile::encodeName(lockfile), F_OK) == 0) { |
589 | // if ((fd = Requester::rq-> | 588 | // if ((fd = Requester::rq-> |
590 | if ((fd = openLockfile(QFile::encodeName(lockfile), O_RDONLY)) >= 0) { | 589 | if ((fd = openLockfile(QFile::encodeName(lockfile), O_RDONLY)) >= 0) { |
591 | // Mario: it's not necessary to read more than lets say 32 bytes. If | 590 | // Mario: it's not necessary to read more than lets say 32 bytes. If |
592 | // file has more than 32 bytes, skip the rest | 591 | // file has more than 32 bytes, skip the rest |
593 | char oldlock[33]; // safe | 592 | char oldlock[33]; // safe |
594 | int sz = read(fd, &oldlock, 32); | 593 | int sz = read(fd, &oldlock, 32); |
595 | close (fd); | 594 | close (fd); |
596 | if (sz <= 0) | 595 | if (sz <= 0) |
597 | return 1; | 596 | return 1; |
598 | oldlock[sz] = '\0'; | 597 | oldlock[sz] = '\0'; |
@@ -605,25 +604,25 @@ if ((fd = openLockfile(QFile::encodeName(lockfile), O_RDONLY)) >= 0) { | |||
605 | // found a pid in lockfile ? | 604 | // found a pid in lockfile ? |
606 | if (match < 1 || oldpid <= 0) | 605 | if (match < 1 || oldpid <= 0) |
607 | return 1; | 606 | return 1; |
608 | 607 | ||
609 | // check if process exists | 608 | // check if process exists |
610 | if (kill((pid_t)oldpid, 0) == 0 || errno != ESRCH) | 609 | if (kill((pid_t)oldpid, 0) == 0 || errno != ESRCH) |
611 | return 1; | 610 | return 1; |
612 | 611 | ||
613 | qDebug( "lockfile is stale" ); | 612 | qDebug( "lockfile is stale" ); |
614 | } | 613 | } |
615 | } | 614 | } |
616 | 615 | ||
617 | fd = openLockfile(PPPData::data()->modemDevice(),O_WRONLY|O_TRUNC|O_CREAT); | 616 | fd = openLockfile(_pppdata->modemDevice(),O_WRONLY|O_TRUNC|O_CREAT); |
618 | if(fd >= 0) { | 617 | if(fd >= 0) { |
619 | sprintf(newlock,"%010d\n", getpid()); | 618 | sprintf(newlock,"%010d\n", getpid()); |
620 | qDebug("Locking Device: %s", newlock); | 619 | qDebug("Locking Device: %s", newlock); |
621 | 620 | ||
622 | write(fd, newlock, strlen(newlock)); | 621 | write(fd, newlock, strlen(newlock)); |
623 | close(fd); | 622 | close(fd); |
624 | modem_is_locked=true; | 623 | modem_is_locked=true; |
625 | 624 | ||
626 | return 0; | 625 | return 0; |
627 | } | 626 | } |
628 | 627 | ||
629 | return -1; | 628 | return -1; |
@@ -979,33 +978,33 @@ void Modem::parseargs(char* buf, char** args) { | |||
979 | while ((*buf != '\0') && (*buf != quotes)) | 978 | while ((*buf != '\0') && (*buf != quotes)) |
980 | buf++; | 979 | buf++; |
981 | *buf++ = '\0'; | 980 | *buf++ = '\0'; |
982 | } | 981 | } |
983 | } | 982 | } |
984 | 983 | ||
985 | *args = 0L; | 984 | *args = 0L; |
986 | } | 985 | } |
987 | 986 | ||
988 | bool Modem::execPPPDaemon(const QString & arguments) | 987 | bool Modem::execPPPDaemon(const QString & arguments) |
989 | { | 988 | { |
990 | if(execpppd(arguments)==0) { | 989 | if(execpppd(arguments)==0) { |
991 | PPPData::data()->setpppdRunning(true); | 990 | _pppdata->setpppdRunning(true); |
992 | return true; | 991 | return true; |
993 | } else | 992 | } else |
994 | return false; | 993 | return false; |
995 | } | 994 | } |
996 | 995 | ||
997 | void Modem::killPPPDaemon() | 996 | void Modem::killPPPDaemon() |
998 | { | 997 | { |
999 | PPPData::data()->setpppdRunning(false); | 998 | _pppdata->setpppdRunning(false); |
1000 | killpppd(); | 999 | killpppd(); |
1001 | } | 1000 | } |
1002 | 1001 | ||
1003 | int Modem::pppdExitStatus() | 1002 | int Modem::pppdExitStatus() |
1004 | { | 1003 | { |
1005 | return _pppdExitStatus; | 1004 | return _pppdExitStatus; |
1006 | } | 1005 | } |
1007 | 1006 | ||
1008 | int Modem::openResolv(int flags) | 1007 | int Modem::openResolv(int flags) |
1009 | { | 1008 | { |
1010 | int fd; | 1009 | int fd; |
1011 | if ((fd = open(_PATH_RESCONF, flags)) == -1) { | 1010 | if ((fd = open(_PATH_RESCONF, flags)) == -1) { |