Fossil SCM

Be more forgiving of time skew when transferring large packets over slow networks. Ticket [25d3f8d5641deed]

drh 2011-03-02 22:49 trunk
Commit 139c7e52e2cd81291fca0cd2d9745243942f520c
1 file changed +9 -6
+9 -6
--- src/xfer.c
+++ src/xfer.c
@@ -1426,16 +1426,19 @@
14261426
char zTime[20];
14271427
double rDiff;
14281428
sqlite3_snprintf(sizeof(zTime), zTime, "%.19s", &zLine[12]);
14291429
rDiff = db_double(9e99, "SELECT julianday('%q') - %.17g",
14301430
zTime, rArrivalTime);
1431
- if( rDiff<0.0 ) rDiff = -rDiff;
1432
- if( rDiff>9e98 ) rDiff = 0.0;
1433
- if( (rDiff*24.0*3600.0)>=60.0 ){
1434
- fossil_warning("*** time skew *** server time differs by %s",
1435
- db_timespan_name(rDiff));
1436
- g.clockSkewSeen = 1;
1431
+ if( rDiff>9e98 || rDiff<-9e98 ) rDiff = 0.0;
1432
+ if( (rDiff*24.0*3600.0) > 10.0 ){
1433
+ fossil_warning("*** time skew *** server is fast by %s",
1434
+ db_timespan_name(rDiff));
1435
+ g.clockSkewSeen = 1;
1436
+ }else if( rDiff*24.0*3600.0 < -(blob_size(&recv)/5000.0 + 20.0) ){
1437
+ fossil_warning("*** time skew *** server is slow by %s",
1438
+ db_timespan_name(-rDiff));
1439
+ g.clockSkewSeen = 1;
14371440
}
14381441
}
14391442
continue;
14401443
}
14411444
xfer.nToken = blob_tokenize(&xfer.line, xfer.aToken, count(xfer.aToken));
14421445
--- src/xfer.c
+++ src/xfer.c
@@ -1426,16 +1426,19 @@
1426 char zTime[20];
1427 double rDiff;
1428 sqlite3_snprintf(sizeof(zTime), zTime, "%.19s", &zLine[12]);
1429 rDiff = db_double(9e99, "SELECT julianday('%q') - %.17g",
1430 zTime, rArrivalTime);
1431 if( rDiff<0.0 ) rDiff = -rDiff;
1432 if( rDiff>9e98 ) rDiff = 0.0;
1433 if( (rDiff*24.0*3600.0)>=60.0 ){
1434 fossil_warning("*** time skew *** server time differs by %s",
1435 db_timespan_name(rDiff));
1436 g.clockSkewSeen = 1;
 
 
 
1437 }
1438 }
1439 continue;
1440 }
1441 xfer.nToken = blob_tokenize(&xfer.line, xfer.aToken, count(xfer.aToken));
1442
--- src/xfer.c
+++ src/xfer.c
@@ -1426,16 +1426,19 @@
1426 char zTime[20];
1427 double rDiff;
1428 sqlite3_snprintf(sizeof(zTime), zTime, "%.19s", &zLine[12]);
1429 rDiff = db_double(9e99, "SELECT julianday('%q') - %.17g",
1430 zTime, rArrivalTime);
1431 if( rDiff>9e98 || rDiff<-9e98 ) rDiff = 0.0;
1432 if( (rDiff*24.0*3600.0) > 10.0 ){
1433 fossil_warning("*** time skew *** server is fast by %s",
1434 db_timespan_name(rDiff));
1435 g.clockSkewSeen = 1;
1436 }else if( rDiff*24.0*3600.0 < -(blob_size(&recv)/5000.0 + 20.0) ){
1437 fossil_warning("*** time skew *** server is slow by %s",
1438 db_timespan_name(-rDiff));
1439 g.clockSkewSeen = 1;
1440 }
1441 }
1442 continue;
1443 }
1444 xfer.nToken = blob_tokenize(&xfer.line, xfer.aToken, count(xfer.aToken));
1445

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button