summaryrefslogtreecommitdiff
authorskyhusker <skyhusker>2005-04-24 18:04:05 (UTC)
committer skyhusker <skyhusker>2005-04-24 18:04:05 (UTC)
commit2654d303f9ee732ef938ab1a54f314b2e6605579 (patch) (side-by-side diff)
tree68181686ffaea0deeaaf64fb60d6dda099ed4e1b
parent909be3f5cc74846f74febdfe53d5b9f92bdd4471 (diff)
downloadopie-2654d303f9ee732ef938ab1a54f314b2e6605579.zip
opie-2654d303f9ee732ef938ab1a54f314b2e6605579.tar.gz
opie-2654d303f9ee732ef938ab1a54f314b2e6605579.tar.bz2
Relaxed fix for errors in ntpdate command, avoiding false error messages. Fixes bug #1357.
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/netsystemtime/mainwindow.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/settings/netsystemtime/mainwindow.cpp b/noncore/settings/netsystemtime/mainwindow.cpp
index 01d9a98..1f9f8c3 100644
--- a/noncore/settings/netsystemtime/mainwindow.cpp
+++ b/noncore/settings/netsystemtime/mainwindow.cpp
@@ -256,129 +256,129 @@ void MainWindow::slotDisplayNTPTab( bool display )
// Create widget if it hasn't needed
if ( display && !ntpTab )
{
ntpTab = new NTPTabWidget( mainWidget );
connect( ntpTab, SIGNAL(getNTPTime()), this, SLOT(slotGetNTPTime()) );
}
// Display/hide tab
display ? mainWidget->addTab( ntpTab, "netsystemtime/ntptab", tr( "Time Server" ) )
: mainWidget->removePage( ntpTab );
}
void MainWindow::slotDisplayPredictTab( bool display )
{
predictTabEnabled = display;
// Create widget if it hasn't needed
if ( display && !predictTab )
{
}
// Display/hide tab
display ? mainWidget->addTab( predictTab, "netsystemtime/predicttab", tr( "Predict" ) )
: mainWidget->removePage( predictTab );
}
void MainWindow::slotGetNTPTime()
{
ntpInteractive = true;
runNTP();
}
void MainWindow::slotTimerGetNTPTime()
{
ntpInteractive = false;
runNTP();
}
void MainWindow::slotProbeNTPServer()
{
ntpSock->connectToHost( settingsTab->ntpServer(), 123 );
}
void MainWindow::slotNtpOutput( OProcess *, char *buffer, int buflen )
{
QString output = QString( buffer ).left( buflen );
ntpOutput.append( output );
if ( ntpTabEnabled )
ntpTab->addNtpOutput( output );
}
void MainWindow::slotNtpFinished( OProcess *p )
{
QString output;
QDateTime dt = QDateTime::currentDateTime();
// Re-enable set time buttons & change app caption to indicate time update is happening
if ( ntpTabEnabled )
ntpTab->setNTPBtnEnabled( true );
timeTab->setNTPBtnEnabled( true );
setCaption( tr( "SystemTime" ) );
// Verify run was successful
- if ( p->exitStatus() != 0 || !p->normalExit() )
+ if ( p->exitStatus() != 0 )
{
if ( isVisible() && ntpInteractive )
{
output = tr( "Error while getting time from\n server: " );
output.append( settingsTab->ntpServer() );
QMessageBox::critical(this, tr( "Error" ), output );
}
// slotCheckNtp(-1);
return;
}
// Set controls on time tab to new time value
timeTab->setDateTime( dt );
// Write out lookup information
Config config( "ntp" );
config.setGroup( "lookups" );
int lastLookup = config.readNumEntry( "time", 0 );
int lookupCount = config.readNumEntry( "count", 0 );
bool lastNtp = config.readBoolEntry( "lastNtp", false );
int time = TimeConversion::toUTC( QDateTime::currentDateTime() );
config.writeEntry( "time", time );
// Calculate new time/time shift
QString _offset = "offset";
QString _sec = "sec";
QRegExp _reOffset = QRegExp( _offset );
QRegExp _reEndOffset = QRegExp( _sec );
int posOffset = _reOffset.match( ntpOutput );
int posEndOffset = _reEndOffset.match( ntpOutput, posOffset );
posOffset += _offset.length() + 1;
QString diff = ntpOutput.mid( posOffset, posEndOffset - posOffset - 1 );
float timeShift = diff.toFloat();
if ( timeShift == 0.0 )
return;
int secsSinceLast = time - lastLookup;
output = tr( "%1 seconds").arg(QString::number( timeShift ));
// Display information on time server tab
if ( ntpTabEnabled )
{
ntpTab->setTimeShift( output );
ntpTab->setNewTime( dt.toString() );
}
if ( lastNtp && lastLookup > 0 && secsSinceLast > 60 * ntpDelay )
{
QString grpname = QString( "lookup_" ).append( QString::number( lookupCount ) );
config.setGroup( grpname );
lookupCount++;
predictTab->setShiftPerSec( (int)(timeShift / secsSinceLast) );
config.writeEntry( "secsSinceLast", secsSinceLast );
config.writeEntry( "timeShift", QString::number( timeShift ) );
config.setGroup( "lookups" );
config.writeEntry( "count", lookupCount );
config.writeEntry( "lastNtp", true );
}
}
void MainWindow::slotNTPDelayChanged( int delay )
{
ntpTimer->changeInterval( delay * 1000 * 60 );
ntpDelay = delay;