diff --git a/core/java/src/net/i2p/data/LeaseSet.java b/core/java/src/net/i2p/data/LeaseSet.java index 856fe0d98..2fe4aa558 100644 --- a/core/java/src/net/i2p/data/LeaseSet.java +++ b/core/java/src/net/i2p/data/LeaseSet.java @@ -118,6 +118,11 @@ public class LeaseSet extends DatabaseEntry { return KEY_TYPE_LEASESET; } + /** + * Warning - will be null for LS2 EncryptedLeaseSets if not decrypted + * + * @return Destination or null + */ public Destination getDestination() { return _destination; } diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java index bfc596cd2..ef745a190 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java @@ -913,13 +913,15 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad // lookupLeaseSetLocally() latest <= now - Router.CLOCK_FUDGE_FACTOR) { long age = now - earliest; + Destination dest = leaseSet.getDestination(); + String id = dest != null ? dest.toBase32() : leaseSet.getHash().toBase32(); if (_log.shouldLog(Log.WARN)) _log.warn("Old leaseSet! not storing it: " - + leaseSet.getDestination().toBase32() + + id + " first exp. " + new Date(earliest) + " last exp. " + new Date(latest), new Exception("Rejecting store")); - return "Expired leaseSet for " + leaseSet.getDestination().toBase32() + return "Expired leaseSet for " + id + " expired " + DataHelper.formatDuration(age) + " ago"; } if (latest > now + (Router.CLOCK_FUDGE_FACTOR + MAX_LEASE_FUTURE) && @@ -927,11 +929,13 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad latest > now + (Router.CLOCK_FUDGE_FACTOR + MAX_META_LEASE_FUTURE))) { long age = latest - now; // let's not make this an error, it happens when peers have bad clocks + Destination dest = leaseSet.getDestination(); + String id = dest != null ? dest.toBase32() : leaseSet.getHash().toBase32(); if (_log.shouldLog(Log.WARN)) _log.warn("LeaseSet expires too far in the future: " - + leaseSet.getDestination().toBase32() + + id + " expires " + DataHelper.formatDuration(age) + " from now"); - return "Future expiring leaseSet for " + leaseSet.getDestination().toBase32() + return "Future expiring leaseSet for " + id + " expiring in " + DataHelper.formatDuration(age); } return null;