Changeset 30eb089


Ignore:
Timestamp:
Jul 26, 2017 11:14:30 PM (3 years ago)
Author:
str4d <str4d@…>
Branches:
master
Children:
fe2387e
Parents:
ee1112cc
Message:

/debug:

  • Add container divs and styling markup
  • Add top navigation menu
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • apps/routerconsole/jsp/debug.jsp

    ree1112cc r30eb089  
    1616<h1>Router Debug</h1>
    1717<div class="main" id="debug">
     18
     19<div class="confignav">
     20<span class="tab"><a href="#debug_portmapper">Port Mapper</a></span>
     21<span class="tab"><a href="#appmanager">App Manager</a></span>
     22<span class="tab"><a href="#updatemanager">Update Manager</a></span>
     23<span class="tab"><a href="#skm">Session Key Manager</a></span>
     24<span class="tab"><a href="#dht">Router DHT</a></span>
     25</div>
     26
    1827<%
    1928    /*
     
    2332
    2433    /*
     34     *  Print out the status for the PortMapper
     35     */
     36    ctx.portMapper().renderStatusHTML(out);
     37
     38    /*
     39     *  Print out the status for the AppManager
     40     */
     41
     42    out.print("<div class=\"debug_section\" id=\"appmanager\">");
     43    ctx.routerAppManager().renderStatusHTML(out);
     44            out.print("</div>");
     45
     46
     47    /*
    2548     *  Print out the status for the UpdateManager
    2649     */
     50    out.print("<div class=\"debug_section\" id=\"updatemanager\">");
    2751    net.i2p.app.ClientAppManager cmgr = ctx.clientAppManager();
    2852    if (cmgr != null) {
     
    3256            umgr.renderStatusHTML(out);
    3357        }
     58    out.print("</div>");
    3459    }
    35 
    36     /*
    37      *  Print out the status for the AppManager
    38      */
    39     ctx.routerAppManager().renderStatusHTML(out);
    40 
    41     /*
    42      *  Print out the status for the PortMapper
    43      */
    44     ctx.portMapper().renderStatusHTML(out);
    4560
    4661    /*
    4762     *  Print out the status for all the SessionKeyManagers
    4863     */
    49     out.print("<h2>Router SKM</h2>");
     64    out.print("<div class=\"debug_section\" id=\"skm\">");
     65    out.print("<h2>Router Session Key Manager</h2>");
    5066    ctx.sessionKeyManager().renderStatusHTML(out);
    5167    java.util.Set<net.i2p.data.Destination> clients = ctx.clientManager().listClients();
     68    out.print("</div>");
    5269    for (net.i2p.data.Destination dest : clients) {
    5370        net.i2p.data.Hash h = dest.calculateHash();
    5471        net.i2p.crypto.SessionKeyManager skm = ctx.clientManager().getClientSessionKeyManager(h);
    5572        if (skm != null) {
    56             out.print("<h2>" + h.toBase64().substring(0,6) + " SKM</h2>");
     73            out.print("<div class=\"debug_section\">");
     74            out.print("<h2>" + h.toBase64().substring(0,6) + " Session Key Manager</h2>");
    5775            skm.renderStatusHTML(out);
     76            out.print("</div>");
    5877        }
    5978    }
     
    6281     *  Print out the status for the NetDB
    6382     */
    64     out.print("<h2>Router DHT</h2>");
     83    out.print("<h2 id=\"dht\">Router DHT</h2>");
    6584    ctx.netDb().renderStatusHTML(out);
    6685
  • core/java/src/net/i2p/kademlia/KBucketSet.java

    ree1112cc r30eb089  
    731731            throw new UnsupportedOperationException();
    732732        }
    733    
     733
    734734        public void clear() {}
    735735
     
    737737            throw new UnsupportedOperationException();
    738738        }
    739    
     739
    740740        public boolean remove(T peer) {
    741741            return false;
     
    766766    public String toString() {
    767767        StringBuilder buf = new StringBuilder(1024);
     768        buf.append("<div class=\"debug_container buckets\">");
    768769        buf.append("<hr><b>Bucket set rooted on:</b> ").append(_us.toString())
    769770           .append(" K=").append(BUCKET_SIZE)
     
    780781            }
    781782        } finally { releaseReadLock(); }
     783        buf.append("</div>");
    782784        return buf.toString();
    783785    }
  • core/java/src/net/i2p/util/PortMapper.java

    ree1112cc r30eb089  
    180180    public void renderStatusHTML(Writer out) throws IOException {
    181181        List<String> services = new ArrayList<String>(_dir.keySet());
    182         out.write("<h2>Port Mapper</h2><table><tr><th>Service<th>Host<th>Port\n");
     182        out.write("<h2 id=\"debug_portmapper\">Port Mapper</h2><table id=\"portmapper\"><tr><th>Service<th>Host<th>Port\n");
    183183        Collections.sort(services);
    184184        for (String s : services) {
  • history.txt

    ree1112cc r30eb089  
    112017-07-26 str4d
     2 * Console:
     3   - /debug:
     4     - Add container divs and styling markup
     5     - Add top navigation menu
    26 * I2PSnark:
    37   - Mitigate truncation of ratings dropdown in comments section (translations)
  • router/java/src/net/i2p/router/crypto/TransientSessionKeyManager.java

    ree1112cc r30eb089  
    9090    private final int _lowThreshold;
    9191
    92     /** 
     92    /**
    9393     * Let outbound session tags sit around for this long before expiring them.
    9494     * Inbound tag expiration is set by SESSION_LIFETIME_MAX_MS
     
    156156    public static final int LOW_THRESHOLD = 30;
    157157
    158     /** 
     158    /**
    159159     * The session key manager should only be constructed and accessed through the
    160160     * application context.  This constructor should only be used by the
     
    166166    }
    167167
    168     /** 
     168    /**
    169169     *  @param tagsToSend how many to send at a time, may be lower or higher than lowThreshold. 1-128
    170170     *  @param lowThreshold below this, send more. 1-128
     
    186186        _context.simpleTimer2().addEvent(new CleanupEvent(), 60*1000);
    187187    }
    188    
     188
    189189    @Override
    190190    public void shutdown() {
     
    409409                return end - _context.clock().now();
    410410        }
    411         return 0; 
     411        return 0;
    412412    }
    413413
     
    560560            }
    561561        }
    562        
     562
    563563        int overage = _inboundTagSets.size() - MAX_INBOUND_SESSION_TAGS;
    564564        if (overage > 0)
     
    569569        //if (false) aggressiveExpire();
    570570    }
    571    
     571
    572572    /**
    573573     * remove a bunch of arbitrarily selected tags, then drop all of
     
    617617            }
    618618        }
    619         _log.logAlways(Log.WARN, "TOO MANY SESSION TAGS!  removed " + removed.size() 
     619        _log.logAlways(Log.WARN, "TOO MANY SESSION TAGS!  removed " + removed.size()
    620620                     + " tag sets arbitrarily, with " + tags + " tags,"
    621621                     + "where there are " + old + " long lasting sessions, "
     
    720720    public void renderStatusHTML(Writer out) throws IOException {
    721721        StringBuilder buf = new StringBuilder(1024);
    722         buf.append("<h2>Inbound sessions</h2>" +
     722        buf.append("<h3 class=\"debug_inboundsessions\">Inbound sessions</h3>" +
    723723                   "<table>");
    724724        Set<TagSet> inbound = getInboundTagSets();
     
    739739            Set<TagSet> sets = new TreeSet<TagSet>(new TagSetComparator());
    740740            sets.addAll(e.getValue());
    741             buf.append("<tr><td><b>Session key</b>: ").append(skey.toBase64()).append("</td>" +
     741            buf.append("<tr><td><b>Session key:</b> ").append(skey.toBase64()).append("</td>" +
    742742                       "<td><b># Sets:</b> ").append(sets.size()).append("</td></tr>" +
    743                        "<tr><td colspan=\"2\"><ul>");
     743                       "<tr class=\"expiry\"><td colspan=\"2\"><ul>");
    744744            for (TagSet ts : sets) {
    745745                int size = ts.getTags().size();
     
    748748                long expires = ts.getDate() - now;
    749749                if (expires > 0)
    750                     buf.append(" Expires in:</b> ").append(DataHelper.formatDuration2(expires)).append(" with ");
     750                    buf.append(" expires in:</b> ").append(DataHelper.formatDuration2(expires)).append(" with ");
    751751                else
    752                     buf.append(" Expired:</b> ").append(DataHelper.formatDuration2(0 - expires)).append(" ago with ");
     752                    buf.append(" expired:</b> ").append(DataHelper.formatDuration2(0 - expires)).append(" ago with ");
    753753                buf.append(size).append('/').append(ts.getOriginalSize()).append(" tags remaining</li>");
    754754            }
     
    760760        buf.append(DataHelper.formatSize2(32*total)).append("B)</th></tr>\n" +
    761761                   "</table>" +
    762                    "<h2><b>Outbound sessions</b></h2>" +
     762                   "<h3 class=\"debug_outboundsessions\">Outbound sessions</h3>" +
    763763                   "<table>");
    764764        total = 0;
     
    768768            Set<TagSet> sets = new TreeSet<TagSet>(new TagSetComparator());
    769769            sets.addAll(sess.getTagSets());
    770             buf.append("<tr><td><b>Target public key:</b> ").append(toString(sess.getTarget())).append("<br>" +
     770            buf.append("<tr class=\"debug_outboundtarget\"><td><div class=\"debug_targetinfo\"><b>Target public key:</b> ").append(toString(sess.getTarget())).append("<br>" +
    771771                       "<b>Established:</b> ").append(DataHelper.formatDuration2(now - sess.getEstablishedDate())).append(" ago<br>" +
    772772                       "<b>Ack Received?</b> ").append(sess.getAckReceived()).append("<br>" +
    773773                       "<b>Last Used:</b> ").append(DataHelper.formatDuration2(now - sess.getLastUsedDate())).append(" ago<br>" +
    774                        "<b>Session key:</b> ").append(sess.getCurrentKey().toBase64()).append("</td>" +
     774                       "<b>Session key:</b> ").append(sess.getCurrentKey().toBase64()).append("</div></td>" +
    775775                       "<td><b># Sets:</b> ").append(sess.getTagSets().size()).append("</td></tr>" +
    776776                       "<tr><td colspan=\"2\"><ul>");
     
    11631163            return first;
    11641164        }
    1165        
     1165
    11661166        //public Exception getCreatedBy() { return _createdBy; }
    11671167
     
    11751175         */
    11761176        public boolean getAcked() { return _acked; }
    1177        
     1177
    11781178/******    this will return a dup if two in the same ms, so just use java
    11791179        @Override
     
    11851185            return (int) rv;
    11861186        }
    1187        
     1187
    11881188        @Override
    11891189        public boolean equals(Object o) {
    11901190            if ((o == null) || !(o instanceof TagSet)) return false;
    11911191            TagSet ts = (TagSet) o;
    1192             return DataHelper.eq(ts.getAssociatedKey(), _key) 
     1192            return DataHelper.eq(ts.getAssociatedKey(), _key)
    11931193                   //&& DataHelper.eq(ts.getTags(), getTags())
    11941194                   && ts.getDate() == _date;
  • router/java/src/net/i2p/router/startup/RouterAppManager.java

    ree1112cc r30eb089  
    2424 */
    2525public class RouterAppManager extends ClientAppManagerImpl {
    26    
     26
    2727    private final RouterContext _context;
    2828    private final Log _log;
     
    128128        }
    129129    }
    130    
     130
    131131    /**
    132132     *  Register with the manager under the given name,
     
    151151        return super.register(app);
    152152    }
    153    
     153
    154154    /// end ClientAppManager interface
    155155
     
    188188        buf.append("<h2>App Manager</h2>");
    189189        buf.append("<h3>Tracked</h3>");
     190        buf.append("<div class=\"debug_container\">");
    190191        toString1(buf);
     192        buf.append("</div>");
    191193        buf.append("<h3>Registered</h3>");
     194        buf.append("<div class=\"debug_container\">");
    192195        toString2(buf);
     196        buf.append("</div>");
    193197        out.write(buf.toString());
    194198    }
     
    203207            ClientApp key = entry.getKey();
    204208            String[] val = entry.getValue();
    205             list.add("[" + key.getName() + "] = [" + key.getClass().getName() + ' ' + Arrays.toString(val) + "] " + key.getState() + "<br>");
     209            list.add("[<b>" + key.getName() + "</b>] = [" + key.getClass().getName() + ' ' + Arrays.toString(val) + "] <i>" + key.getState() + "</i><br>");
    206210        }
    207211        Collections.sort(list);
     
    220224            String key = entry.getKey();
    221225            ClientApp val = entry.getValue();
    222             list.add("[" + key + "] = [" + val.getClass().getName() + "]<br>");
     226            list.add("[<b>" + key + "</b>] = [" + val.getClass().getName() + "]<br>");
    223227        }
    224228        Collections.sort(list);
Note: See TracChangeset for help on using the changeset viewer.