Changeset 0b28965 for apps


Ignore:
Timestamp:
Mar 4, 2019 6:37:01 PM (15 months ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
bfafdd34
Parents:
268a3ee
Message:

Console: Fix NPEs displaying encrypted LS2

File:
1 edited

Legend:

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

    r268a3ee r0b28965  
    6262    private class LeaseSetComparator implements Comparator<LeaseSet> {
    6363         public int compare(LeaseSet l, LeaseSet r) {
    64              Destination dl = l.getDestination();
    65              Destination dr = r.getDestination();
     64             Hash dl = l.getHash();
     65             Hash dr = r.getHash();
    6666             boolean locall = _context.clientManager().isLocal(dl);
    6767             boolean localr = _context.clientManager().isLocal(dr);
    6868             if (locall && !localr) return -1;
    6969             if (localr && !locall) return 1;
    70              return dl.calculateHash().toBase64().compareTo(dr.calculateHash().toBase64());
     70             return dl.toBase32().compareTo(dr.toBase32());
    7171        }
    7272    }
     
    448448          buf.append("<div class=\"leasesets_container\">");
    449449          for (LeaseSet ls : leases) {
     450            // warning - will be null for non-local encrypted
    450451            Destination dest = ls.getDestination();
    451452            Hash key = ls.getHash();
     
    456457                buf.append(" <b>(").append(_t("Encrypted")).append(")</b>");
    457458            buf.append("</th>");
    458             if (_context.clientManager().isLocal(dest)) {
     459            if (_context.clientManager().isLocal(key)) {
    459460                buf.append("<th><a href=\"tunnels#" + key.toBase64().substring(0,4) + "\">" + _t("Local") + "</a> ");
    460461                boolean unpublished = ! _context.clientManager().shouldPublishLeaseSet(key);
     
    490491            } else {
    491492                buf.append("<th><b>").append(_t("Destination")).append(":</b> ");
    492                 String host = _context.namingService().reverseLookup(dest);
     493                String host = (dest != null) ? _context.namingService().reverseLookup(dest) : null;
    493494                if (host != null) {
    494495                    buf.append("<a href=\"http://").append(host).append("/\">").append(host).append("</a></th>");
    495496                } else {
    496                     String b32 = dest.toBase32();
    497                     buf.append("<code>").append(dest.toBase64().substring(0, 6)).append("</code></th>")
    498                        .append("</tr>\n<tr><td");
     497                    String b32 = key.toBase32();
     498                    buf.append("<code>");
     499                    if (dest != null)
     500                        buf.append(dest.toBase64().substring(0, 6));
     501                    else
     502                        buf.append("n/a");
     503                    buf.append("</code></th>" +
     504                               "</tr>\n<tr><td");
    499505                    if (!linkSusi)
    500506                        buf.append(" colspan=\"2\"");
    501507                    buf.append("><a href=\"http://").append(b32).append("\">").append(b32).append("</a></td>\n");
    502                     if (linkSusi) {
     508                    if (linkSusi && dest != null) {
    503509                       buf.append("<td class=\"addtobook\"><a title=\"").append(_t("Add to addressbook"))
    504510                       .append("\" href=\"/susidns/addressbook.jsp?book=private&amp;destination=")
     
    545551                buf.append("</td></tr>\n<tr><td colspan=\"2\">");
    546552                //buf.append(dest.toBase32()).append("<br>");
    547                 buf.append("<b>Signature type:</b> ").append(dest.getSigningPublicKey().getType());
     553                buf.append("<b>Signature type:</b> ");
     554                if (dest != null && type != DatabaseEntry.KEY_TYPE_ENCRYPTED_LS2) {
     555                    buf.append(dest.getSigningPublicKey().getType());
     556                } else {
     557                    // encrypted, show blinded key type
     558                    buf.append(ls.getSigningKey().getType());
     559                }
    548560                if (type == DatabaseEntry.KEY_TYPE_LEASESET) {
    549561                    buf.append("</td></tr>\n<tr><td colspan=\"2\"><b>Encryption Key:</b> ELGAMAL_2048 ")
Note: See TracChangeset for help on using the changeset viewer.