From 18905bcc671622ab11b4e3d4447e4cd34f7308ee Mon Sep 17 00:00:00 2001 From: tille Date: Wed, 26 Jun 2002 17:12:58 +0000 Subject: network changes --- (limited to 'noncore') 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 -- cgit v0.9.0.2