mirror of
https://github.com/savoirfairelinux/opendht.git
synced 2026-11-08 04:21:51 +00:00
Add filter of duplicate value
This commit is contained in:
1 file changed
+12
-4
+12
-4
@@ -28,13 +28,13 @@ static std::string blobToString(const Blob &bl) {
|
||||
std::string Prefix::toString() const {
|
||||
std::stringstream ss;
|
||||
|
||||
ss << "Prefix : " << std::endl << "\tContent_ : ";
|
||||
ss << "Prefix : " << std::endl << "\tContent_ : \"";
|
||||
ss << blobToString(content_);
|
||||
ss << std::endl;
|
||||
ss << "\"" << std::endl;
|
||||
|
||||
ss << "\tFlags_ : ";
|
||||
ss << "\tFlags_ : \"";
|
||||
ss << blobToString(flags_);
|
||||
ss << std::endl;
|
||||
ss << "\"" << std::endl;
|
||||
|
||||
return ss.str();
|
||||
}
|
||||
@@ -193,6 +193,14 @@ void Pht::lookupStep(Prefix p, std::shared_ptr<int> lo, std::shared_ptr<int> hi,
|
||||
IndexEntry entry;
|
||||
entry.unpackValue(*value);
|
||||
|
||||
auto it = std::find_if(vals->cbegin(), vals->cend(), [&](const std::shared_ptr<IndexEntry>& ie) {
|
||||
return ie->value == entry.value;
|
||||
});
|
||||
|
||||
/* If we already got the value then get the next one */
|
||||
if (it != vals->cend())
|
||||
return true;
|
||||
|
||||
if (max_common_prefix_len) { /* inexact match case */
|
||||
auto common_bits = Prefix::commonBits(p, entry.prefix);
|
||||
|
||||
|
||||
Reference in new issue
Block a user