forked from I2P_Developers/i2p.i2p
Compare commits
3 Commits
i2p.i2p-2.
...
i2p.i2p.2.
Author | SHA1 | Date | |
---|---|---|---|
eb4e95544c | |||
9727f96c02 | |||
5c5ff2e602 |
@ -1192,7 +1192,6 @@ class ClientConnectionRunner {
|
||||
if (_floodfillNetworkDatabaseFacade == null) {
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("getFloodfillNetworkDatabaseFacade is null for runner");
|
||||
return _context.netDb();
|
||||
}
|
||||
return this._floodfillNetworkDatabaseFacade;
|
||||
}
|
||||
|
@ -785,11 +785,6 @@ class ClientManager {
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("Getting subDb for desthash: " + destHash);
|
||||
ClientConnectionRunner runner = getRunner(destHash);
|
||||
if (runner == null){
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("ClientManager got a null runner in getClientFloodfillNetworkDatabaseFacade for " + destHash);
|
||||
return null;
|
||||
}
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("ClientManager got a runner in getClientFloodfillNetworkDatabaseFacade for " + destHash);
|
||||
return runner.getFloodfillNetworkDatabaseFacade();
|
||||
|
@ -22,6 +22,7 @@ import net.i2p.data.i2cp.I2CPMessageException;
|
||||
import net.i2p.data.i2cp.SessionId;
|
||||
import net.i2p.router.JobImpl;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
|
||||
import net.i2p.util.Log;
|
||||
|
||||
/**
|
||||
@ -91,7 +92,7 @@ class LookupDestJob extends JobImpl {
|
||||
try {
|
||||
bd = Blinding.decode(context, b);
|
||||
SigningPublicKey spk = bd.getUnblindedPubKey();
|
||||
BlindData bd2 = _runner.getFloodfillNetworkDatabaseFacade().getBlindData(spk);
|
||||
BlindData bd2 = getRequiredFloodfillNetworkDatabaseFacade().getBlindData(spk);
|
||||
if (bd2 != null) {
|
||||
// BlindData from database may have privkey or secret
|
||||
// check if we need it but don't have it
|
||||
@ -110,7 +111,7 @@ class LookupDestJob extends JobImpl {
|
||||
long exp = now + ((bd.getAuthRequired() || bd.getSecretRequired()) ? 365*24*60*60*1000L
|
||||
: 90*24*68*60*1000L);
|
||||
bd.setExpiration(exp);
|
||||
_runner.getFloodfillNetworkDatabaseFacade().setBlindData(bd);
|
||||
getRequiredFloodfillNetworkDatabaseFacade().setBlindData(bd);
|
||||
}
|
||||
h = bd.getBlindedHash();
|
||||
if (_log.shouldDebug())
|
||||
@ -185,14 +186,14 @@ class LookupDestJob extends JobImpl {
|
||||
if (timeout > 1500)
|
||||
timeout -= 500;
|
||||
// TODO tell router this is an encrypted lookup, skip 38 or earlier ffs?
|
||||
_runner.getFloodfillNetworkDatabaseFacade().lookupDestination(_hash, done, timeout, _fromLocalDest);
|
||||
getRequiredFloodfillNetworkDatabaseFacade().lookupDestination(_hash, done, timeout, _fromLocalDest);
|
||||
} else {
|
||||
// blinding decode fail
|
||||
returnFail(HostReplyMessage.RESULT_DECRYPTION_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
private String toBase32(){
|
||||
private String toBase32() {
|
||||
if (_fromLocalDest != null)
|
||||
return _fromLocalDest.toBase32();
|
||||
return null;
|
||||
@ -204,10 +205,10 @@ class LookupDestJob extends JobImpl {
|
||||
}
|
||||
public String getName() { return "LeaseSet Lookup Reply to Client"; }
|
||||
public void runJob() {
|
||||
Destination dest = _runner.getFloodfillNetworkDatabaseFacade().lookupDestinationLocally(_hash);
|
||||
Destination dest = getRequiredFloodfillNetworkDatabaseFacade().lookupDestinationLocally(_hash);
|
||||
if (dest == null && _blindData != null) {
|
||||
// TODO store and lookup original hash instead
|
||||
LeaseSet ls = _runner.getFloodfillNetworkDatabaseFacade().lookupLeaseSetLocally(_hash);
|
||||
LeaseSet ls = getRequiredFloodfillNetworkDatabaseFacade().lookupLeaseSetLocally(_hash);
|
||||
if (ls != null && ls.getType() == DatabaseEntry.KEY_TYPE_ENCRYPTED_LS2) {
|
||||
// already decrypted
|
||||
EncryptedLeaseSet encls = (EncryptedLeaseSet) ls;
|
||||
@ -265,4 +266,25 @@ class LookupDestJob extends JobImpl {
|
||||
_runner.doSend(msg);
|
||||
} catch (I2CPMessageException ime) {}
|
||||
}
|
||||
|
||||
/**
|
||||
* If we don't have an FNDF in our runner, get the main netDb instead. This happens
|
||||
* if there is not a session established yet.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private FloodfillNetworkDatabaseFacade getRequiredFloodfillNetworkDatabaseFacade() {
|
||||
if (_runner.getDestHash() == null) {
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("destHash is null in runner in lookup for " + _hash + " using the main DB instead");
|
||||
return getContext().netDb();
|
||||
}
|
||||
FloodfillNetworkDatabaseFacade fndf = _runner.getFloodfillNetworkDatabaseFacade();
|
||||
if (fndf == null){
|
||||
fndf = getContext().netDb();
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("fndf is null in lookup for " + _runner.getDestHash() + " using the main DB instead");
|
||||
}
|
||||
return fndf;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user