/** * @throws IllegalStateException if already signed */ public void addLease(Lease lease) { if (lease == null) throw new IllegalArgumentException("erm, null lease"); if (lease.getGateway() == null) throw new IllegalArgumentException("erm, lease has no gateway"); if (getType() != KEY_TYPE_META_LS2 && lease.getTunnelId() == null) throw new IllegalArgumentException("erm, lease has no tunnel"); if (_signature != null) throw new IllegalStateException(); if (_leases.size() >= MAX_LEASES) throw new IllegalArgumentException("Too many leases - max is " + MAX_LEASES); _leases.add(lease); long expire = lease.getEndDate().getTime(); if (expire < _firstExpiration) _firstExpiration = expire; if (expire > _lastExpiration) _lastExpiration = expire; }
@Override public boolean equals(Object object) { if (object == this) return true; if ((object == null) || !(object instanceof Lease)) return false; Lease lse = (Lease) object; return DataHelper.eq(_end, lse.getEndDate()) && DataHelper.eq(_tunnelId, lse.getTunnelId()) && DataHelper.eq(_gateway, lse.getGateway()); }
ByteArrayOutputStream baos = new ByteArrayOutputStream(datalen); for (int i = 0; i < size; i++) { _leases.get(i).getGateway().writeBytes(baos); _leases.get(i).getTunnelId().writeBytes(baos);
ByteArrayOutputStream baos = new ByteArrayOutputStream(datalen); for (int i = 0; i < size; i++) { _leases.get(i).getGateway().writeBytes(baos); _leases.get(i).getTunnelId().writeBytes(baos);
_lease.getGateway().equals(lease.getGateway())) { if (_log.shouldLog(Log.INFO)) _log.info(getJobId() + ": Found in cache - lease for " + _toString); RouterInfo ri = getContext().netDb().lookupRouterInfoLocally(l.getGateway()); if (ri == null || ri.getCapabilities().indexOf(Router.CAPABILITY_UNREACHABLE) < 0) { _lease = l; _log.warn(getJobId() + ": Skipping unreachable gateway " + l.getGateway() + " for " + _toString);
@Override protected LeaseSet locked_buildNewLeaseSet() { LeaseSet ls = _context.netDb().lookupLeaseSetLocally(_aliasOf.getSettings().getDestination()); if (ls == null) return null; // copy everything so it isn't corrupted LeaseSet rv = new LeaseSet(); for (int i = 0; i < ls.getLeaseCount(); i++) { Lease old = ls.getLease(i); Lease lease = new Lease(); lease.setEndDate(old.getEndDate()); lease.setTunnelId(old.getTunnelId()); lease.setGateway(old.getGateway()); rv.addLease(lease); } return rv; }
lease.setTunnelId(old.getTunnelId()); lease.setGateway(old.getGateway()); lease.setEndDate(old.getEndDate()); } else {
nl.setGateway(lease.getGateway()); nl.setTunnelId(lease.getTunnelId()); nl.setEndDate(new Date(endTime)); for (int i = 0; i < requested.getLeaseCount(); i++) { Lease lease = requested.getLease(i); rmsg.addEndpoint(lease.getGateway(), lease.getTunnelId());
+ _toString + " at " + _lease.getTunnelId() + " on " + _lease.getGateway());
if (! current.getLease(i).getTunnelId().equals(set.getLease(i).getTunnelId())) break; if (! current.getLease(i).getGateway().equals(set.getLease(i).getGateway())) break; if (i == leases - 1) {
getContext().tunnelDispatcher().dispatchOutbound(_msg, _outTunnel.getSendTunnelId(0), _lease.getTunnelId(), _lease.getGateway()); long dispatchSendTime = getContext().clock().now() - before;