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 @@ -61,9 +61,9 @@ static sigjmp_buf jmp_buffer; -Modem *Modem::modem = 0; +//Modem *Modem::modem = 0; const char* pppdPath() { // wasting a few bytes @@ -90,33 +90,32 @@ const char* pppdPath() { return pppdPath; } -Modem::Modem() +Modem::Modem( PPPData* pd ) { - if (Modem::modem != 0) return; //CORRECT? + _pppdata = pd; modemfd = -1; _pppdExitStatus = -1; pppdPid = -1; sn = 0L; data_mode = false; modem_is_locked = false; lockfile[0] = '\0'; device = "/dev/modem"; - modem = this; } -Modem::~Modem() { - modem = 0; +Modem::~Modem() +{ } speed_t Modem::modemspeed() { // convert the string modem speed int the gpppdata object to a t_speed type // to set the modem. The constants here should all be ifdef'd because // other systems may not have them - int i = PPPData::data()->speed().toInt()/100; + int i = _pppdata->speed().toInt()/100; switch(i) { case 24: return B2400; @@ -164,9 +163,9 @@ bool Modem::opentty() { // int flags; //begin if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { close(modemfd); - device = PPPData::data()->modemDevice(); + device = _pppdata->modemDevice(); if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) { qDebug("error opening modem device !"); errmsg = i18n("Unable to open modem."); return false; @@ -174,9 +173,9 @@ bool Modem::opentty() { //bend if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { //} #if 0 - if(PPPData::data()->UseCDLine()) { + if(_pppdata->UseCDLine()) { if(ioctl(modemfd, TIOCMGET, &flags) == -1) { errmsg = i18n("Unable to detect state of CD line."); ::close(modemfd); modemfd = -1; @@ -222,10 +221,10 @@ bool Modem::opentty() { tty.c_lflag &= ~ICANON; // non-canonical mode tty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHOKE); - if(PPPData::data()->flowcontrol() != "None") { - if(PPPData::data()->flowcontrol() == "CRTSCTS") { + if(_pppdata->flowcontrol() != "None") { + if(_pppdata->flowcontrol() == "CRTSCTS") { tty.c_cflag |= CRTSCTS; } else { tty.c_iflag |= IXON | IXOFF; @@ -352,9 +351,9 @@ bool Modem::writeLine(const char *buf) { int len = strlen(buf); char *b = new char[len+2]; memcpy(b, buf, len); // different modems seem to need different line terminations - QString term = PPPData::data()->enter(); + QString term = _pppdata->enter(); if(term == "LF") b[len++]='\n'; else if(term == "CR") b[len++]='\r'; @@ -392,11 +391,11 @@ bool Modem::hangup() { if (data_mode) escape_to_command_mode(); // Then hangup command - writeLine(PPPData::data()->modemHangupStr().local8Bit()); + writeLine(_pppdata->modemHangupStr().local8Bit()); - usleep(PPPData::data()->modemInitDelay() * 10000); // 0.01 - 3.0 sec + usleep(_pppdata->modemInitDelay() * 10000); // 0.01 - 3.0 sec #ifndef DEBUG_WO_DIALING if (sigsetjmp(jmp_buffer, 1) == 0) { // set alarm in case tcsendbreak() hangs @@ -430,9 +429,9 @@ bool Modem::hangup() { modemstat |= TIOCM_DTR; ioctl(modemfd, TIOCMSET, &modemstat); #endif - usleep(PPPData::data()->modemInitDelay() * 10000); // 0.01 - 3.0 secs + usleep(_pppdata->modemInitDelay() * 10000); // 0.01 - 3.0 secs cfsetospeed(&temptty, modemspeed()); cfsetispeed(&temptty, modemspeed()); tcsetattr(modemfd, TCSAFLUSH, &temptty); @@ -453,13 +452,13 @@ void Modem::escape_to_command_mode() { // tcflush(modemfd, TCIOFLUSH); // +3 because quiet time must be greater than guard time. - usleep((PPPData::data()->modemEscapeGuardTime()+3)*20000); - QCString tmp = PPPData::data()->modemEscapeStr().local8Bit(); + usleep((_pppdata->modemEscapeGuardTime()+3)*20000); + QCString tmp = _pppdata->modemEscapeStr().local8Bit(); write(modemfd, tmp.data(), tmp.length()); tcflush(modemfd, TCIOFLUSH); - usleep((PPPData::data()->modemEscapeGuardTime()+3)*20000); + usleep((_pppdata->modemEscapeGuardTime()+3)*20000); data_mode = false; } @@ -573,18 +572,18 @@ QString Modem::parseModemSpeed(const QString &s) { int Modem::lockdevice() { int fd; char newlock[80]=""; // safe - if(!PPPData::data()->modemLockFile()) { + if(!_pppdata->modemLockFile()) { qDebug("The user doesn't want a lockfile."); return 0; } if (modem_is_locked) return 1; QString lockfile = LOCK_DIR"/LCK.."; - lockfile += PPPData::data()->modemDevice().mid(5); // append everything after /dev/ + lockfile += _pppdata->modemDevice().mid(5); // append everything after /dev/ if(access(QFile::encodeName(lockfile), F_OK) == 0) { // if ((fd = Requester::rq-> if ((fd = openLockfile(QFile::encodeName(lockfile), O_RDONLY)) >= 0) { @@ -613,9 +612,9 @@ if ((fd = openLockfile(QFile::encodeName(lockfile), O_RDONLY)) >= 0) { qDebug( "lockfile is stale" ); } } - fd = openLockfile(PPPData::data()->modemDevice(),O_WRONLY|O_TRUNC|O_CREAT); + fd = openLockfile(_pppdata->modemDevice(),O_WRONLY|O_TRUNC|O_CREAT); if(fd >= 0) { sprintf(newlock,"%010d\n", getpid()); qDebug("Locking Device: %s", newlock); @@ -987,17 +986,17 @@ void Modem::parseargs(char* buf, char** args) { bool Modem::execPPPDaemon(const QString & arguments) { if(execpppd(arguments)==0) { - PPPData::data()->setpppdRunning(true); + _pppdata->setpppdRunning(true); return true; } else return false; } void Modem::killPPPDaemon() { - PPPData::data()->setpppdRunning(false); + _pppdata->setpppdRunning(false); killpppd(); } int Modem::pppdExitStatus() |