Diffstat (limited to 'noncore/settings/networksettings/ppp/modem.cpp') (more/less context) (show 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 | |||
@@ -62,7 +62,7 @@ | |||
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() { |
@@ -91,9 +91,9 @@ const char* 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; |
@@ -102,12 +102,11 @@ Modem::Modem() | |||
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 | ||
@@ -115,7 +114,7 @@ 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: |
@@ -165,7 +164,7 @@ bool Modem::opentty() { | |||
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."); |
@@ -175,7 +174,7 @@ bool Modem::opentty() { | |||
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); |
@@ -223,8 +222,8 @@ bool Modem::opentty() { | |||
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 { |
@@ -353,7 +352,7 @@ bool Modem::writeLine(const char *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") |
@@ -393,9 +392,9 @@ bool Modem::hangup() { | |||
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) { |
@@ -431,7 +430,7 @@ bool Modem::hangup() { | |||
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()); |
@@ -454,11 +453,11 @@ void Modem::escape_to_command_mode() { | |||
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 | } |
@@ -574,7 +573,7 @@ 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 | } |
@@ -583,7 +582,7 @@ int Modem::lockdevice() { | |||
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-> |
@@ -614,7 +613,7 @@ if ((fd = openLockfile(QFile::encodeName(lockfile), O_RDONLY)) >= 0) { | |||
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); |
@@ -988,7 +987,7 @@ void Modem::parseargs(char* buf, char** args) { | |||
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; |
@@ -996,7 +995,7 @@ bool Modem::execPPPDaemon(const QString & arguments) | |||
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 | ||