From 1ea210ace6e898b88f38a6a2abe86bd0dd644bba Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Wed, 11 Mar 2020 16:18:17 -0400 Subject: [PATCH 1/2] typo fix --- llarp/nodedb.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llarp/nodedb.cpp b/llarp/nodedb.cpp index 97ba19a98..e7026f73f 100644 --- a/llarp/nodedb.cpp +++ b/llarp/nodedb.cpp @@ -542,7 +542,7 @@ llarp_nodedb::select_random_hop_excluding( const size_t pos = llarp::randint() % sz; std::advance(itr, pos); const auto start = itr; - while(itr == entries.end()) + while(itr != entries.end()) { if(exclude.count(itr->first) == 0) { From a1e85000350646d8873086b50aff8e20379b447a Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Wed, 11 Mar 2020 16:25:19 -0400 Subject: [PATCH 2/2] use for loop --- llarp/nodedb.cpp | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/llarp/nodedb.cpp b/llarp/nodedb.cpp index e7026f73f..37a90420a 100644 --- a/llarp/nodedb.cpp +++ b/llarp/nodedb.cpp @@ -538,34 +538,14 @@ llarp_nodedb::select_random_hop_excluding( return false; } - auto itr = entries.begin(); const size_t pos = llarp::randint() % sz; - std::advance(itr, pos); - const auto start = itr; - while(itr != entries.end()) + for(auto itr = std::next(entries.begin(), pos); itr != entries.end(); ++itr) { - if(exclude.count(itr->first) == 0) + if(exclude.count(itr->first) == 0 and itr->second.rc.IsPublicRouter()) { - if(itr->second.rc.IsPublicRouter()) - { - result = itr->second.rc; - return true; - } - } - itr++; - } - itr = entries.begin(); - while(itr != start) - { - if(exclude.count(itr->first) == 0) - { - if(itr->second.rc.IsPublicRouter()) - { - result = itr->second.rc; - return true; - } + result = itr->second.rc; + return true; } - ++itr; } return false; }