* fix up integration tests

* make recursive router lookup backtrack
pull/514/head
Jeff Becker 5 years ago
parent f8edd3fbce
commit c26145f70e
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -63,14 +63,20 @@ def main():
config['network'] = {
'type' : 'null'
}
config['api'] = {
'enabled': 'false'
}
d = os.path.join(args.dir, svcNodeName(nodeid))
if not os.path.exists(d):
os.mkdir(d)
fp = os.path.join(d, 'daemon.ini')
with open(fp, 'w') as f:
config.write(f)
if nodeid > 0:
f.write("[bootstrap]\nadd-node={}\n".format(os.path.join(basedir,svcNodeName(0), 'rc.signed')))
if nodeid == 0:
otherID = 1
else:
otherID = nodeid - 1
f.write("[bootstrap]\nadd-node={}\n".format(os.path.join(basedir,svcNodeName(otherID), 'rc.signed')))
for nodeid in range(args.clients):
@ -87,6 +93,9 @@ def main():
config['netdb'] = {
'dir': 'netdb'
}
config['api'] = {
'enabled': 'false'
}
config['network'] = {
'type' : 'null'
}
@ -100,7 +109,11 @@ def main():
fp = os.path.join(d, 'daemon.ini')
with open(fp, 'w') as f:
config.write(f)
f.write("[bootstrap]\nadd-node={}\n".format(os.path.join(basedir,svcNodeName(0), 'rc.signed')))
if nodeid == 0:
otherID = 1
else:
otherID = nodeid - 1
f.write("[bootstrap]\nadd-node={}\n".format(os.path.join(basedir,svcNodeName(otherID), 'rc.signed')))
with open(hiddenservice, 'w') as f:
f.write('''[test-service]
tag=test

@ -40,6 +40,11 @@ namespace llarp
virtual bool
LookupRouter(const RouterID& target, RouterLookupHandler result) = 0;
virtual void
LookupRouterRecursive(const RouterID& target, const Key_t& whoasked,
uint64_t whoaskedTX, const Key_t& askpeer,
RouterLookupHandler result = nullptr) = 0;
/// on behalf of whoasked request introset for target from dht router with
/// key askpeer
virtual void

@ -30,6 +30,21 @@ namespace llarp
return true;
}
bool
RecursiveRouterLookup::GetNextPeer(Key_t &nextPeer,
const std::set< Key_t > &exclude)
{
const Key_t K(target.as_array());
return parent->Nodes()->FindCloseExcluding(K, nextPeer, exclude);
}
void
RecursiveRouterLookup::DoNextRequest(const Key_t &peer)
{
parent->LookupRouterRecursive(target, whoasked.node, whoasked.txid, peer,
resultHandler);
}
void
RecursiveRouterLookup::Start(const TXOwner &peer)
{
@ -55,6 +70,7 @@ namespace llarp
{
resultHandler(valuesFound);
}
if(whoasked.node != parent->OurKey())
parent->DHTSendTo(
whoasked.node.as_array(),

@ -20,15 +20,10 @@ namespace llarp
Validate(const RouterContact &rc) const override;
bool
GetNextPeer(Key_t &, const std::set< Key_t > &) override
{
return false;
}
GetNextPeer(Key_t &nextPeer, const std::set< Key_t > &exclude) override;
void
DoNextRequest(const Key_t &) override
{
}
DoNextRequest(const Key_t &peer) override;
void
Start(const TXOwner &peer) override;

@ -13,6 +13,10 @@ namespace llarp
{
MOCK_METHOD2(LookupRouter, bool(const RouterID&, RouterLookupHandler));
MOCK_METHOD5(LookupRouterRecursive,
void(const RouterID&, const dht::Key_t&, uint64_t,
const dht::Key_t&, RouterLookupHandler));
MOCK_METHOD6(LookupIntroSetRecursive,
void(const service::Address&, const dht::Key_t&, uint64_t,
const dht::Key_t&, uint64_t,

Loading…
Cancel
Save