diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java index b0ed120be..3468e9a3f 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java +++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java @@ -172,7 +172,7 @@ class NTCPConnection { public NTCPConnection(RouterContext ctx, NTCPTransport transport, SocketChannel chan, SelectionKey key) { _context = ctx; _log = ctx.logManager().getLog(getClass()); - _created = System.currentTimeMillis(); + _created = ctx.clock().now(); _transport = transport; _remAddr = null; _chan = chan; @@ -200,7 +200,7 @@ class NTCPConnection { public NTCPConnection(RouterContext ctx, NTCPTransport transport, RouterIdentity remotePeer, RouterAddress remAddr) { _context = ctx; _log = ctx.logManager().getLog(getClass()); - _created = System.currentTimeMillis(); + _created = ctx.clock().now(); _transport = transport; _remotePeer = remotePeer; _remAddr = remAddr; @@ -302,10 +302,10 @@ class NTCPConnection { System.arraycopy(prevReadEnd, prevReadEnd.length - BLOCK_SIZE, _prevReadBlock, 0, BLOCK_SIZE); //if (_log.shouldLog(Log.DEBUG)) // _log.debug("Inbound established, prevWriteEnd: " + Base64.encode(prevWriteEnd) + " prevReadEnd: " + Base64.encode(prevReadEnd)); - _establishedOn = System.currentTimeMillis(); + _establishedOn = _context.clock().now(); NTCPConnection rv = _transport.inboundEstablished(this); - _nextMetaTime = System.currentTimeMillis() + (META_FREQUENCY / 2) + _context.random().nextInt(META_FREQUENCY); - _nextInfoTime = System.currentTimeMillis() + (INFO_FREQUENCY / 2) + _context.random().nextInt(INFO_FREQUENCY); + _nextMetaTime = _establishedOn + (META_FREQUENCY / 2) + _context.random().nextInt(META_FREQUENCY); + _nextInfoTime = _establishedOn + (INFO_FREQUENCY / 2) + _context.random().nextInt(INFO_FREQUENCY); _establishState = EstablishState.VERIFIED; return rv; } @@ -321,7 +321,7 @@ class NTCPConnection { if (!isEstablished()) return getTimeSinceCreated(); else - return System.currentTimeMillis()-_establishedOn; + return _context.clock().now() -_establishedOn; } public long getMessagesSent() { return _messagesWritten.get(); } @@ -345,13 +345,13 @@ class NTCPConnection { } /** @return milliseconds */ - public long getTimeSinceSend() { return System.currentTimeMillis()-_lastSendTime; } + public long getTimeSinceSend() { return _context.clock().now()-_lastSendTime; } /** @return milliseconds */ - public long getTimeSinceReceive() { return System.currentTimeMillis()-_lastReceiveTime; } + public long getTimeSinceReceive() { return _context.clock().now()-_lastReceiveTime; } /** @return milliseconds */ - public long getTimeSinceCreated() { return System.currentTimeMillis()-_created; } + public long getTimeSinceCreated() { return _context.clock().now()-_created; } /** * @return when this connection was created (not established) @@ -625,13 +625,13 @@ class NTCPConnection { if (_log.shouldLog(Log.DEBUG)) _log.debug("Outbound established, prevWriteEnd: " + Base64.encode(prevWriteEnd) + " prevReadEnd: " + Base64.encode(prevReadEnd)); - _establishedOn = System.currentTimeMillis(); + _establishedOn = _context.clock().now(); _establishState = EstablishState.VERIFIED; _transport.markReachable(getRemotePeer().calculateHash(), false); //_context.banlist().unbanlistRouter(getRemotePeer().calculateHash(), NTCPTransport.STYLE); boolean msgs = !_outbound.isEmpty(); - _nextMetaTime = System.currentTimeMillis() + (META_FREQUENCY / 2) + _context.random().nextInt(META_FREQUENCY); - _nextInfoTime = System.currentTimeMillis() + (INFO_FREQUENCY / 2) + _context.random().nextInt(INFO_FREQUENCY); + _nextMetaTime = _establishedOn + (META_FREQUENCY / 2) + _context.random().nextInt(META_FREQUENCY); + _nextInfoTime = _establishedOn + (INFO_FREQUENCY / 2) + _context.random().nextInt(INFO_FREQUENCY); if (msgs) _transport.getWriter().wantsWrite(this, "outbound established"); } @@ -783,9 +783,10 @@ class NTCPConnection { return; } - if (_nextMetaTime <= System.currentTimeMillis()) { + long now = _context.clock().now(); + if (_nextMetaTime <= now) { sendMeta(); - _nextMetaTime = System.currentTimeMillis() + (META_FREQUENCY / 2) + _context.random().nextInt(META_FREQUENCY / 2); + _nextMetaTime = now + (META_FREQUENCY / 2) + _context.random().nextInt(META_FREQUENCY / 2); } OutNetMessage msg = null; @@ -855,10 +856,10 @@ class NTCPConnection { // for every 6-12 hours that we are connected to a peer, send them // our updated netDb info (they may not accept it and instead query // the floodfill netDb servers, but they may...) - if (_nextInfoTime <= System.currentTimeMillis()) { + if (_nextInfoTime <= now) { // perhaps this should check to see if we are bw throttled, etc? enqueueInfoMessage(); - _nextInfoTime = System.currentTimeMillis() + (INFO_FREQUENCY / 2) + _context.random().nextInt(INFO_FREQUENCY); + _nextInfoTime = now + (INFO_FREQUENCY / 2) + _context.random().nextInt(INFO_FREQUENCY); } } @@ -959,7 +960,7 @@ class NTCPConnection { EventPumper.releaseBuf(buf); return; } - _context.statManager().addRateData("ntcp.throttledReadComplete", (System.currentTimeMillis()-req.getRequestTime())); + _context.statManager().addRateData("ntcp.throttledReadComplete", (_context.clock().now()-req.getRequestTime())); recv(buf); // our reads used to be bw throttled (during which time we were no // longer interested in reading from the network), but we aren't @@ -978,7 +979,7 @@ class NTCPConnection { removeOBRequest(req); ByteBuffer buf = (ByteBuffer)req.attachment(); if (!_closed.get()) { - _context.statManager().addRateData("ntcp.throttledWriteComplete", (System.currentTimeMillis()-req.getRequestTime())); + _context.statManager().addRateData("ntcp.throttledWriteComplete", (_context.clock().now()-req.getRequestTime())); write(buf); } } @@ -1084,7 +1085,7 @@ class NTCPConnection { } } if (msg != null) { - _lastSendTime = System.currentTimeMillis(); + _lastSendTime = _context.clock().now(); _context.statManager().addRateData("ntcp.sendTime", msg.getSendTime()); if (_log.shouldLog(Log.DEBUG)) { _log.debug("I2NP message " + _messagesWritten + "/" + msg.getMessageId() + " sent after " @@ -1130,7 +1131,7 @@ class NTCPConnection { * Stats only for console */ private void updateStats() { - long now = System.currentTimeMillis(); + long now = _context.clock().now(); long time = now - _lastRateUpdated; // If enough time has passed... // Perhaps should synchronize, but if so do the time check before synching... @@ -1468,7 +1469,7 @@ class NTCPConnection { readMeta(buf); init(); } else { - _stateBegin = System.currentTimeMillis(); + _stateBegin = _context.clock().now(); _dataBuf = acquireReadBuf(); System.arraycopy(buf, 2, _dataBuf.getData(), 0, buf.length-2); _nextWrite += buf.length-2; @@ -1526,7 +1527,7 @@ class NTCPConnection { // So use the new handler method that limits the size. h.readMessage(_dataBuf.getData(), 0, _size); I2NPMessage read = h.lastRead(); - long timeToRecv = System.currentTimeMillis() - _stateBegin; + long timeToRecv = _context.clock().now() - _stateBegin; releaseHandler(h); if (_log.shouldLog(Log.DEBUG)) _log.debug("I2NP message " + _messagesRead + "/" + (read != null ? read.getUniqueId() : 0) @@ -1539,7 +1540,7 @@ class NTCPConnection { if (read != null) { _transport.messageReceived(read, _remotePeer, null, timeToRecv, _size); - _lastReceiveTime = System.currentTimeMillis(); + _lastReceiveTime = _context.clock().now(); _messagesRead.incrementAndGet(); } } catch (I2NPMessageException ime) {