Changeset e5c7b79


Ignore:
Timestamp:
Sep 20, 2008 2:08:02 PM (12 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
f492770
Parents:
6b1224b2
Message:
  • NetDb?: Fix the totally broken "check new routers against blocklist" code from 3 checkins ago
  • tunnels.jsp: Sort participating tunnels by usage, display rate
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • history.txt

    r6b1224b2 re5c7b79  
     12008-09-20 zzz
     2    * NetDb: Fix the totally broken "check new routers against blocklist"
     3      code from 3 checkins ago
     4    * tunnels.jsp: Sort participating tunnels by usage, display rate
     5
    162008-09-19 zzz
    27    * Tunnels:
  • router/java/src/net/i2p/router/RouterVersion.java

    r6b1224b2 re5c7b79  
    1818    public final static String ID = "$Revision: 1.548 $ $Date: 2008-06-07 23:00:00 $";
    1919    public final static String VERSION = "0.6.3";
    20     public final static long BUILD = 7;
     20    public final static long BUILD = 8;
    2121    public static void main(String args[]) {
    2222        System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
  • router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java

    r6b1224b2 re5c7b79  
    8282        } else if (_message.getValueType() == DatabaseStoreMessage.KEY_TYPE_ROUTERINFO) {
    8383            getContext().statManager().addRateData("netDb.storeRouterInfoHandled", 1, 0);
     84            Hash key = _message.getKey();
    8485            if (_log.shouldLog(Log.INFO))
    85                 _log.info("Handling dbStore of router " + _message.getKey() + " with publishDate of "
     86                _log.info("Handling dbStore of router " + key + " with publishDate of "
    8687                          + new Date(_message.getRouterInfo().getPublished()));
    8788            try {
    88                 prevNetDb = getContext().netDb().store(_message.getKey(), _message.getRouterInfo());
     89                prevNetDb = getContext().netDb().store(key, _message.getRouterInfo());
    8990                wasNew = ((null == prevNetDb) || (prevNetDb.getPublished() < _message.getRouterInfo().getPublished()));
    90                 getContext().profileManager().heardAbout(_message.getKey());
     91                // Check new routerinfo address against blocklist
     92                if (wasNew) {
     93                    if (prevNetDb == null) {
     94                        if ((!getContext().shitlist().isShitlistedForever(key)) &&
     95                            getContext().blocklist().isBlocklisted(key) &&
     96                            _log.shouldLog(Log.ERROR))
     97                                _log.error("Blocklisting new peer " + key);
     98                    } else {
     99                        Set oldAddr = prevNetDb.getAddresses();
     100                        Set newAddr = _message.getRouterInfo().getAddresses();
     101                        if (newAddr != null && (!newAddr.equals(oldAddr)) &&
     102                            (!getContext().shitlist().isShitlistedForever(key)) &&
     103                            getContext().blocklist().isBlocklisted(key) &&
     104                            _log.shouldLog(Log.ERROR))
     105                                _log.error("New address received, Blocklisting old peer " + key);
     106                    }
     107                }
     108                getContext().profileManager().heardAbout(key);
    91109            } catch (IllegalArgumentException iae) {
    92110                invalidMessage = iae.getMessage();
     
    128146                }
    129147
    130                 // Check new routerinfo address against blocklist
    131                 if (wasNew) {
    132                     if (prevNetDb == null) {
    133                         if ((!getContext().shitlist().isShitlistedForever(_fromHash)) &&
    134                             getContext().blocklist().isBlocklisted(_fromHash) &&
    135                             _log.shouldLog(Log.ERROR))
    136                                 _log.error("Blocklisting new peer " + _fromHash);
    137                     } else {
    138                         Set oldAddr = prevNetDb.getAddresses();
    139                         Set newAddr = _message.getRouterInfo().getAddresses();
    140                         if (newAddr != null && (!newAddr.equals(oldAddr)) &&
    141                             (!getContext().shitlist().isShitlistedForever(_fromHash)) &&
    142                             getContext().blocklist().isBlocklisted(_fromHash) &&
    143                             _log.shouldLog(Log.ERROR))
    144                                 _log.error("New address received, Blocklisting old peer " + _fromHash);
    145                     }
    146                 }
    147148            } else {
    148149                if (_log.shouldLog(Log.WARN))
  • router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java

    r6b1224b2 re5c7b79  
    44import java.io.Writer;
    55import java.util.ArrayList;
     6import java.util.Comparator;
    67import java.util.HashMap;
    78import java.util.Iterator;
    89import java.util.List;
    910import java.util.Map;
     11import java.util.Set;
     12import java.util.TreeSet;
    1013
    1114import net.i2p.data.DataHelper;
     
    445448        }
    446449       
    447         List participating = _context.tunnelDispatcher().listParticipatingTunnels();
     450        Set participating = new TreeSet(new TunnelComparator());
     451        participating.addAll(_context.tunnelDispatcher().listParticipatingTunnels());
    448452        out.write("<h2><a name=\"participating\">Participating tunnels</a>:</h2><table border=\"1\">\n");
    449453        out.write("<tr><td><b>Receive on</b></td><td><b>From</b></td><td>"
    450454                  + "<b>Send on</b></td><td><b>To</b></td><td><b>Expiration</b></td>"
    451                   + "<td><b>Usage</b></td><td><b>Role</b></td></tr>\n");
     455                  + "<td><b>Usage</b></td><td><b>Rate</b></td><td><b>Role</b></td></tr>\n");
    452456        long processed = 0;
    453457        RateStat rs = _context.statManager().getRate("tunnel.participatingMessageCount");
     
    455459            processed = (long)rs.getRate(10*60*1000).getLifetimeTotalValue();
    456460        int inactive = 0;
    457         for (int i = 0; i < participating.size(); i++) {
    458             HopConfig cfg = (HopConfig)participating.get(i);
     461        for (Iterator iter = participating.iterator(); iter.hasNext(); ) {
     462            HopConfig cfg = (HopConfig)iter.next();
    459463            if (cfg.getProcessedMessagesCount() <= 0) {
    460464                inactive++;
     
    484488                out.write("<td align=right>(grace period)</td>");
    485489            out.write("<td align=right>" + cfg.getProcessedMessagesCount() + "KB</td>");
     490            int lifetime = (int) ((_context.clock().now() - cfg.getCreation()) / 1000);
     491            if (lifetime <= 0)
     492                lifetime = 1;
     493            if (lifetime > 10*60)
     494                lifetime = 10*60;
     495            int bps = 1024 * (int) cfg.getProcessedMessagesCount() / lifetime;
     496            out.write("<td align=right>" + bps + "Bps</td>");
    486497            if (cfg.getSendTo() == null)
    487498                out.write("<td>Outbound Endpoint</td>");
     
    498509    }
    499510   
     511    class TunnelComparator implements Comparator {
     512         public int compare(Object l, Object r) {
     513             return (int) (((HopConfig)r).getProcessedMessagesCount() - ((HopConfig)l).getProcessedMessagesCount());
     514        }
     515    }
     516
    500517    private void renderPool(Writer out, TunnelPool in, TunnelPool outPool) throws IOException {
    501518        List tunnels = null;
Note: See TracChangeset for help on using the changeset viewer.