summaryrefslogtreecommitdiff
authortille <tille>2002-06-26 17:12:58 (UTC)
committer tille <tille>2002-06-26 17:12:58 (UTC)
commit18905bcc671622ab11b4e3d4447e4cd34f7308ee (patch) (side-by-side diff)
treed239f73841774b4514dea4476109b1e4336124a5
parent9d692658a94c59889c6e46baaeae971226952eb8 (diff)
downloadopie-18905bcc671622ab11b4e3d4447e4cd34f7308ee.zip
opie-18905bcc671622ab11b4e3d4447e4cd34f7308ee.tar.gz
opie-18905bcc671622ab11b4e3d4447e4cd34f7308ee.tar.bz2
network changes
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/netsystemtime/ntp.cpp21
-rw-r--r--noncore/settings/netsystemtime/ntp.h3
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
@@ -32,23 +32,22 @@ Ntp::Ntp( QWidget* parent, const char* name, WFlags fl )
{
ntpSrvs.setGroup(QString::number(i));
ComboNtpSrv->insertItem( ntpSrvs.readEntry("name") );
}
if ( srvCount==0 ) ComboNtpSrv->insertItem(tr("time.fu-berlin.de"));
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( );
connect( SpinBoxNtpDelay, SIGNAL( valueChanged(int) ),
SLOT(slotNtpDelayChanged(int)) );
ntpSock = new QSocket( this );
connect( ntpSock, SIGNAL( error(int) ),
@@ -111,16 +110,19 @@ void Ntp::slotRunNtp()
) {
case QMessageBox::Ok: break;
case QMessageBox::Cancel: return;
default: return;
}
}
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);
if ( !ret ) {
qDebug("Error while executing ntpdate");
ntpOutPut( tr("Error while executing ntpdate"));
}
}
@@ -133,18 +135,24 @@ void Ntp::getNtpOutput(OProcess *proc, char *buffer, int buflen)
if (lineStr!=lineStrOld)
{
ntpOutPut(lineStr);
_ntpOutput += lineStr;
}
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);
int lookupCount = cfg.readNumEntry("count",-1);
int time = TimeConversion::toUTC( QDateTime::currentDateTime() );
cfg.writeEntry("time", time);
cfg.setGroup("correction");
cfg.writeEntry("time", time);
@@ -256,17 +264,16 @@ void Ntp::slotCheckNtp(int i)
}
}else{
preditctTime();
ButtonSetTime->setText( tr("Set predicted time") );
if (i>0)ntpOutPut(tr("Could not connect to server ")+getNtpServer());
connect( ButtonSetTime, SIGNAL(clicked()), SLOT(setPredictTime()) );
connect( ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) );
}
-// ntpTimer->start(SpinBoxNtpDelay->value()*1000*60);
}
void Ntp::slotProbeNtpServer()
{
ntpSock->connectToHost( getNtpServer() ,123);
}
void Ntp::slotNtpDelayChanged(int delay)
@@ -274,8 +281,14 @@ void Ntp::slotNtpDelayChanged(int delay)
ntpTimer->changeInterval( delay*1000*60 );
}
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
@@ -20,28 +20,29 @@ protected:
QDateTime predictedTime;
private:
QString _ntpOutput;
float _shiftPerSec;
int _lookupDiff;
OProcess *ntpProcess;
- QTimer *ntpTimer;
+ QTimer *ntpTimer, *processTimer;
QSocket *ntpSock;
float getTimeShift();
void readLookups();
void ntpOutPut(QString);
bool ntpDelayElapsed();
QString getNtpServer();
private slots:
void slotRunNtp();
void getNtpOutput(OProcess *proc, char *buffer, int buflen);
void ntpFinished(OProcess*);
void preditctTime();
void slotCheckNtp(int);
void setPredictTime();
void slotProbeNtpServer();
void slotNtpDelayChanged(int);
+ void slotTimeoutNtpProcess();
};
#endif