author | tille <tille> | 2002-06-26 17:12:58 (UTC) |
---|---|---|
committer | tille <tille> | 2002-06-26 17:12:58 (UTC) |
commit | 18905bcc671622ab11b4e3d4447e4cd34f7308ee (patch) (side-by-side diff) | |
tree | d239f73841774b4514dea4476109b1e4336124a5 | |
parent | 9d692658a94c59889c6e46baaeae971226952eb8 (diff) | |
download | opie-18905bcc671622ab11b4e3d4447e4cd34f7308ee.zip opie-18905bcc671622ab11b4e3d4447e4cd34f7308ee.tar.gz opie-18905bcc671622ab11b4e3d4447e4cd34f7308ee.tar.bz2 |
network changes
-rw-r--r-- | noncore/settings/netsystemtime/ntp.cpp | 21 | ||||
-rw-r--r-- | noncore/settings/netsystemtime/ntp.h | 3 |
2 files changed, 19 insertions, 5 deletions
diff --git a/noncore/settings/netsystemtime/ntp.cpp b/noncore/settings/netsystemtime/ntp.cpp index b2f5332..6a5c062 100644 --- a/noncore/settings/netsystemtime/ntp.cpp +++ b/noncore/settings/netsystemtime/ntp.cpp @@ -37,13 +37,12 @@ Ntp::Ntp( QWidget* parent, const char* name, WFlags fl ) Config cfg("ntp",Config::User); cfg.setGroup("settings"); -// _maxOffset = cfg.readNumEntry("maxOffset",5); -// _minLookupDiff = cfg.readNumEntry("minLookupDiff",10); SpinBoxMinLookupDelay->setValue( cfg.readNumEntry("minLookupDiff",41) ); SpinBoxNtpDelay->setValue( cfg.readNumEntry("ntpRefreshFreq",42) ); ComboNtpSrv->setCurrentItem( cfg.readNumEntry("ntpServer", 0) ); ntpTimer = new QTimer(this); + processTimer = new QTimer(this); ntpTimer->start(SpinBoxNtpDelay->value()*1000*60); ntpProcess = new OProcess( ); @@ -116,6 +115,9 @@ void Ntp::slotRunNtp() } TextLabelStartTime->setText(QDateTime::currentDateTime().toString()); ntpOutPut( tr("Running:")+"\nntpdate "+getNtpServer() ); + connect( processTimer, SIGNAL( timeout() ), SLOT(slotTimeoutNtpProcess()) ); + processTimer->start(2*1000*60, true); + ntpProcess->clearArguments(); *ntpProcess << "ntpdate" << getNtpServer(); bool ret = ntpProcess->start(OProcess::NotifyOnExit,OProcess::AllOutput); @@ -138,8 +140,14 @@ void Ntp::getNtpOutput(OProcess *proc, char *buffer, int buflen) lineStrOld = lineStr; } -void Ntp::ntpFinished(OProcess*) +void Ntp::ntpFinished(OProcess *p) { + if (!p->normalExit()) + { + slotProbeNtpServer(); + return; + } + processTimer->stop(); Config cfg("ntp",Config::User); cfg.setGroup("lookups"); int lastLookup = cfg.readNumEntry("time",0); @@ -261,7 +269,6 @@ void Ntp::slotCheckNtp(int i) connect( ButtonSetTime, SIGNAL(clicked()), SLOT(setPredictTime()) ); connect( ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) ); } -// ntpTimer->start(SpinBoxNtpDelay->value()*1000*60); } void Ntp::slotProbeNtpServer() @@ -279,3 +286,9 @@ void Ntp::ntpOutPut(QString out) MultiLineEditntpOutPut->append(out); MultiLineEditntpOutPut->setCursorPosition(MultiLineEditntpOutPut->numLines() + 1,0,FALSE); } + +void Ntp::slotTimeoutNtpProcess() +{ + ntpProcess->kill(); + slotProbeNtpServer(); +} diff --git a/noncore/settings/netsystemtime/ntp.h b/noncore/settings/netsystemtime/ntp.h index c78dc55..d166973 100644 --- a/noncore/settings/netsystemtime/ntp.h +++ b/noncore/settings/netsystemtime/ntp.h @@ -25,7 +25,7 @@ private: float _shiftPerSec; int _lookupDiff; OProcess *ntpProcess; - QTimer *ntpTimer; + QTimer *ntpTimer, *processTimer; QSocket *ntpSock; float getTimeShift(); @@ -42,6 +42,7 @@ private slots: void setPredictTime(); void slotProbeNtpServer(); void slotNtpDelayChanged(int); + void slotTimeoutNtpProcess(); }; #endif |