Compare commits

...

2 Commits

Author SHA1 Message Date
eyedeekay
077eb9966a Router: add getter for _negativeCache that always gets the right one 2023-10-18 12:17:20 -04:00
eyedeekay
284bdcb67b Router: bypass the negative cache when the db is a subdb 2023-10-17 14:29:31 -04:00

View File

@@ -282,8 +282,7 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
if (_ds != null)
_ds.stop();
_exploreKeys.clear();
if (_negativeCache != null)
_negativeCache.clear();
negativeCache().clear();
if (isMainDb())
blindCache().shutdown();
}
@@ -386,9 +385,10 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
} catch (IOException ioe) {
throw new RuntimeException("Unable to initialize netdb storage", ioe);
}
_negativeCache = new NegativeLookupCache(_context);
if (isMainDb())
if (isMainDb()) {
_negativeCache = new NegativeLookupCache(_context);
blindCache().startup();
}
createHandlers();
@@ -802,7 +802,7 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
return ls.getDestination();
}
} else {
return _negativeCache.getBadDest(key);
return negativeCache().getBadDest(key);
}
return null;
}
@@ -1514,7 +1514,7 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
*/
void dropAfterLookupFailed(Hash peer) {
_context.peerManager().removeCapabilities(peer);
_negativeCache.cache(peer);
negativeCache().cache(peer);
_kb.remove(peer);
//if (removed) {
// if (_log.shouldLog(Log.INFO))
@@ -1656,7 +1656,7 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
* @since 0.9.4 moved from FNDF to KNDF in 0.9.16
*/
void lookupFailed(Hash key) {
_negativeCache.lookupFailed(key);
negativeCache().lookupFailed(key);
}
/**
@@ -1666,7 +1666,7 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
* @since 0.9.4 moved from FNDF to KNDF in 0.9.16
*/
boolean isNegativeCached(Hash key) {
boolean rv = _negativeCache.isCached(key);
boolean rv = negativeCache().isCached(key);
if (rv)
_context.statManager().addRateData("netDb.negativeCache", 1);
return rv;
@@ -1677,7 +1677,7 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
* @since 0.9.16
*/
void failPermanently(Destination dest) {
_negativeCache.failPermanently(dest);
negativeCache().failPermanently(dest);
}
/**
@@ -1687,7 +1687,7 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
* @since 0.9.16
*/
public boolean isNegativeCachedForever(Hash key) {
return _negativeCache.getBadDest(key) != null;
return negativeCache().getBadDest(key) != null;
}
/**
@@ -1698,4 +1698,11 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
public void renderStatusHTML(Writer out) throws IOException {
out.write(_kb.toString().replace("\n", "<br>\n"));
}
private NegativeLookupCache negativeCache() {
if (_negativeCache != null)
return _negativeCache;
KademliaNetworkDatabaseFacade kndf = (KademliaNetworkDatabaseFacade) _context.netDb();
return kndf.negativeCache();
}
}