Changeset 700d4d3


Ignore:
Timestamp:
Dec 1, 2018 4:27:53 PM (2 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
9efa0ea
Parents:
026ddb3
Message:

Console: Don't output tunnel IDs for meta LS
Router: Don't try to send to a meta LS in OCMOSJ

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java

    r026ddb3 r700d4d3  
    2727
    2828import net.i2p.crypto.SigType;
     29import net.i2p.data.DatabaseEntry;
    2930import net.i2p.data.DataHelper;
    3031import net.i2p.data.Destination;
     
    518519                }
    519520                buf.append("&nbsp;&nbsp;<b>Distance: </b>").append(fmt.format(biLog2(dist)));
     521                buf.append("&nbsp;&nbsp;<b>Type: </b>").append(ls.getType());
    520522                buf.append("</td></tr>\n<tr><td colspan=\"2\">");
    521523                //buf.append(dest.toBase32()).append("<br>");
     
    528530            }
    529531            buf.append("<tr><td colspan=\"2\"><ul class=\"netdb_leases\">");
     532            boolean isMeta = ls.getType() == DatabaseEntry.KEY_TYPE_META_LS2;
    530533            for (int i = 0; i < ls.getLeaseCount(); i++) {
    531534                Lease lease = ls.getLease(i);
     
    534537                   .append(_t("Gateway")).append("\"></span> <span class=\"tunnel_peer\">");
    535538                buf.append(_context.commSystem().renderPeerHTML(lease.getGateway()));
    536                 buf.append("</span> <span class=\"netdb_tunnel\">").append(_t("Tunnel")).append(" <span class=\"tunnel_id\">")
    537                    .append(lease.getTunnelId().getTunnelId()).append("</span></span> ");
     539                buf.append("</span> ");
     540                if (!isMeta) {
     541                    buf.append("<span class=\"netdb_tunnel\">").append(_t("Tunnel")).append(" <span class=\"tunnel_id\">")
     542                       .append(lease.getTunnelId().getTunnelId()).append("</span></span> ");
     543                }
    538544                if (debug) {
    539545                    long exl = lease.getEndDate().getTime() - now;
  • router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java

    r026ddb3 r700d4d3  
    1212import net.i2p.crypto.TagSetHandle;
    1313import net.i2p.data.Certificate;
     14import net.i2p.data.DatabaseEntry;
    1415import net.i2p.data.DataHelper;
    1516import net.i2p.data.Destination;
     
    272273            return;
    273274        }
     275        if (_leaseSet != null && _leaseSet.getType() == DatabaseEntry.KEY_TYPE_META_LS2) {
     276            // can't send to a meta LS
     277            dieFatal(MessageStatusMessage.STATUS_SEND_FAILURE_BAD_LEASESET);
     278            return;
     279        }
     280
    274281        //if (_log.shouldLog(Log.DEBUG))
    275282        //    _log.debug(getJobId() + ": Send outbound client message job beginning" +
     
    353360            }
    354361            _wantACK = false;
    355             boolean ok = getNextLease();
    356             if (ok) {
     362            int rc = getNextLease();
     363            if (rc == 0) {
    357364                send();
    358365            } else {
     
    360367                if (_log.shouldLog(Log.WARN))
    361368                    _log.warn("Unable to send on a random lease, as getNext returned null (to=" + _toString + ")");
    362                 dieFatal(MessageStatusMessage.STATUS_SEND_FAILURE_NO_LEASESET);
     369                dieFatal(rc);
    363370            }
    364371        }
     
    368375     *  Choose a lease from his leaseset to send the message to. Sets _lease.
    369376     *  Sets _wantACK if it's new or changed.
    370      *  @return success
    371      */
    372     private boolean getNextLease() {
     377     *  @return 0 on success, or a MessageStatusMessage failure code
     378     */
     379    private int getNextLease() {
    373380        // set in runJob if found locally
    374381        if (_leaseSet == null) {
     
    378385                if (_log.shouldLog(Log.WARN))
    379386                    _log.warn(getJobId() + ": Lookup locally didn't find the leaseSet for " + _toString);
    380                 return false;
     387                return MessageStatusMessage.STATUS_SEND_FAILURE_NO_LEASESET;
    381388            }
    382389        }
     390        if (_leaseSet.getType() == DatabaseEntry.KEY_TYPE_META_LS2) {
     391            // can't send to a meta LS
     392            return MessageStatusMessage.STATUS_SEND_FAILURE_BAD_LEASESET;
     393        }
    383394
    384395        // Use the same lease if it's still good
     
    399410                            if (_log.shouldLog(Log.INFO))
    400411                                _log.info(getJobId() + ": Found in cache - lease for " + _toString);
    401                             return true;
     412                            return 0;
    402413                        }
    403414                    }
     
    432443            if (_log.shouldLog(Log.INFO))
    433444                _log.info(getJobId() + ": No leases found from: " + _leaseSet);
    434             return false;
     445            return MessageStatusMessage.STATUS_SEND_FAILURE_BAD_LEASESET;
    435446        }
    436447       
     
    485496            _log.info(getJobId() + ": Added to cache - lease for " + _toString);
    486497        _wantACK = true;
    487         return true;
     498        return 0;
    488499    }
    489500
     
    591602            _cache.lastReplyRequestCache.put(_hashPair, Long.valueOf(now));
    592603            token = getContext().random().nextLong(I2NPMessage.MAX_ID_VALUE);
     604            // 0.9.38 change to DESTINATION reply delivery
     605            // NOPE! Rejected in InboundMessageDistributor
    593606            _inTunnel = selectInboundTunnel();
    594607        } else {
Note: See TracChangeset for help on using the changeset viewer.