Changeset fcfe439


Ignore:
Timestamp:
Sep 15, 2008 4:20:23 PM (12 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
69d9c054
Parents:
e734a558
Message:
  • NetDb?: Check new routers against blocklist
File:
1 edited

Legend:

Unmodified
Added
Removed
  • router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java

    re734a558 rfcfe439  
    1010
    1111import java.util.Date;
     12import java.util.Set;
    1213
    1314import net.i2p.data.Hash;
     
    5960        String invalidMessage = null;
    6061        boolean wasNew = false;
     62        RouterInfo prevNetDb = null;
    6163        if (_message.getValueType() == DatabaseStoreMessage.KEY_TYPE_LEASESET) {
    6264            getContext().statManager().addRateData("netDb.storeLeaseSetHandled", 1, 0);
     
    8486                          + new Date(_message.getRouterInfo().getPublished()));
    8587            try {
    86                 RouterInfo match = getContext().netDb().store(_message.getKey(), _message.getRouterInfo());
    87                 wasNew = ((null == match) || (match.getPublished() < _message.getRouterInfo().getPublished()));
     88                prevNetDb = getContext().netDb().store(_message.getKey(), _message.getRouterInfo());
     89                wasNew = ((null == prevNetDb) || (prevNetDb.getPublished() < _message.getRouterInfo().getPublished()));
    8890                getContext().profileManager().heardAbout(_message.getKey());
    8991            } catch (IllegalArgumentException iae) {
     
    123125                        // don't flood it *again*
    124126                        getContext().statManager().addRateData("netDb.storeFloodOld", 1, 0);
     127                    }
     128                }
     129
     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);
    125145                    }
    126146                }
Note: See TracChangeset for help on using the changeset viewer.