forked from I2P_Developers/i2p.i2p
* Clock: Synchronization, log large shifts to event log
This commit is contained in:
@ -43,7 +43,7 @@ public class Clock implements Timestamper.UpdateListener {
|
||||
/** we fetch it on demand to avoid circular dependencies (logging uses the clock) */
|
||||
protected Log getLog() { return _context.logManager().getLog(Clock.class); }
|
||||
|
||||
/** if the clock is skewed by 3+ days, fuck 'em */
|
||||
/** if the clock is skewed by 3+ days, forget it */
|
||||
public final static long MAX_OFFSET = 3 * 24 * 60 * 60 * 1000;
|
||||
/** after we've started up and shifted the clock, don't allow shifts of more than 10 minutes */
|
||||
public final static long MAX_LIVE_OFFSET = 10 * 60 * 1000;
|
||||
@ -67,7 +67,7 @@ public class Clock implements Timestamper.UpdateListener {
|
||||
*
|
||||
* @param offsetMs the delta from System.currentTimeMillis() (NOT the delta from now())
|
||||
*/
|
||||
public void setOffset(long offsetMs, boolean force) {
|
||||
public synchronized void setOffset(long offsetMs, boolean force) {
|
||||
if (false) return;
|
||||
long delta = offsetMs - _offset;
|
||||
if (!force) {
|
||||
|
@ -1056,6 +1056,7 @@ public class Router implements RouterClock.ClockShiftListener {
|
||||
return;
|
||||
if (delta > -60*1000 && delta < 60*1000)
|
||||
return;
|
||||
_eventLog.addEvent(EventLog.CLOCK_SHIFT, Long.toString(delta));
|
||||
// update the routing key modifier
|
||||
_context.routingKeyGenerator().generateDateBasedModData();
|
||||
if (_context.commSystem().countActivePeers() <= 0)
|
||||
|
@ -91,7 +91,7 @@ public class RouterClock extends Clock {
|
||||
* @since 0.7.12
|
||||
* @param offsetMs the delta from System.currentTimeMillis() (NOT the delta from now())
|
||||
*/
|
||||
private void setOffset(long offsetMs, boolean force, int stratum) {
|
||||
private synchronized void setOffset(long offsetMs, boolean force, int stratum) {
|
||||
long delta = offsetMs - _offset;
|
||||
if (!force) {
|
||||
if ((offsetMs > MAX_OFFSET) || (offsetMs < 0 - MAX_OFFSET)) {
|
||||
@ -236,7 +236,7 @@ public class RouterClock extends Clock {
|
||||
*
|
||||
* @since 0.8.8
|
||||
*/
|
||||
private void notifyMassive(long shift) {
|
||||
private synchronized void notifyMassive(long shift) {
|
||||
long nowNanos = System.nanoTime();
|
||||
// try to prevent dups, not guaranteed
|
||||
// nanoTime() isn't guaranteed to be monotonic either :(
|
||||
|
Reference in New Issue
Block a user