Changeset 0570fed
- Timestamp:
- Apr 1, 2014 1:05:51 PM (7 years ago)
- Branches:
- master
- Children:
- 24a133fe
- Parents:
- b206665
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
history.txt
rb206665 r0570fed 1 2014-04-01 zzz 2 * Console: Fix summary bar html when displaying an update constraint 3 * NetDB: Handle RI response from non-floodfill router down a client tunnel 4 1 5 * 2014-03-31 0.9.12 released 2 6 -
router/java/src/net/i2p/router/RouterVersion.java
rb206665 r0570fed 19 19 public final static String ID = "Monotone"; 20 20 public final static String VERSION = CoreVersion.VERSION; 21 public final static long BUILD = 0;21 public final static long BUILD = 1; 22 22 23 23 /** for example "-test" */ -
router/java/src/net/i2p/router/networkdb/kademlia/IterativeSearchJob.java
rb206665 r0570fed 101 101 102 102 /** 103 * Lookup using the client's tunnels 103 * Lookup using the client's tunnels. 104 * Do not use for RI lookups down client tunnels, 105 * as the response will be dropped in InboundMessageDistributor. 104 106 * @param fromLocalDest use these tunnels for the lookup, or null for exploratory 105 107 * @since 0.9.10 … … 117 119 _sentTime = new ConcurrentHashMap<Hash, Long>(TOTAL_SEARCH_LIMIT); 118 120 _fromLocalDest = fromLocalDest; 121 if (fromLocalDest != null && !isLease && _log.shouldLog(Log.WARN)) 122 _log.warn("Search for RI " + key + " down client tunnel " + fromLocalDest, new Exception()); 119 123 } 120 124 -
router/java/src/net/i2p/router/tunnel/InboundMessageDistributor.java
rb206665 r0570fed 5 5 import net.i2p.data.LeaseSet; 6 6 import net.i2p.data.Payload; 7 import net.i2p.data.RouterInfo; 7 8 import net.i2p.data.TunnelId; 8 9 import net.i2p.data.i2np.DataMessage; … … 19 20 import net.i2p.router.TunnelInfo; 20 21 import net.i2p.router.message.GarlicMessageReceiver; 21 //import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;22 import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade; 22 23 import net.i2p.util.Log; 23 24 … … 83 84 if (dsm.getEntry().getType() == DatabaseEntry.KEY_TYPE_ROUTERINFO) { 84 85 // FVSJ may result in an unsolicited RI store if the peer went non-ff. 85 // Maybe we can figure out a way to handle this safely, so we don't ask him again. 86 // For now, just hope we eventually find out through other means. 86 // We handle this safely, so we don't ask him again. 87 87 // Todo: if peer was ff and RI is not ff, queue for exploration in netdb (but that isn't part of the facade now) 88 88 if (_log.shouldLog(Log.WARN)) 89 89 _log.warn("Dropping DSM down a tunnel for " + _client + ": " + msg); 90 // Handle safely by just updating the caps table, after doing basic validation 91 Hash key = dsm.getKey(); 92 if (_context.routerHash().equals(key)) 93 return; 94 RouterInfo ri = (RouterInfo) dsm.getEntry(); 95 if (!key.equals(ri.getIdentity().getHash())) 96 return; 97 if (!ri.isValid()) 98 return; 99 RouterInfo oldri = _context.netDb().lookupRouterInfoLocally(key); 100 // only update if RI is newer and non-ff 101 if (oldri != null && oldri.getPublished() < ri.getPublished() && 102 !FloodfillNetworkDatabaseFacade.isFloodfill(ri)) { 103 if (_log.shouldLog(Log.WARN)) 104 _log.warn("Updating caps for RI " + key + " from \"" + 105 oldri.getCapabilities() + "\" to \"" + ri.getCapabilities() + '"'); 106 _context.peerManager().setCapabilities(key, ri.getCapabilities()); 107 } 90 108 return; 91 109 } else if (dsm.getReplyToken() != 0) {
Note: See TracChangeset
for help on using the changeset viewer.