From 2f72563b1fc3d5e21652a45d45048e71b67f30b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20D=C3=A9saulniers?= <sim.desaulniers@gmail.com> Date: Tue, 19 Jul 2016 15:52:21 -0400 Subject: [PATCH] dht: return consistent query from local storage When querying from local storage with SELECT f, a FieldValueIndex with empty fields was returned without considering the SELECT statement requiring only a field "f". --- src/dht.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dht.cpp b/src/dht.cpp index 9ebc4f81..dc24096f 100644 --- a/src/dht.cpp +++ b/src/dht.cpp @@ -1681,8 +1681,8 @@ void Dht::query(const InfoHash& id, QueryCallback cb, DoneCallback done_cb, Quer return newvals; }; std::vector<std::shared_ptr<FieldValueIndex>> local_fields(values.size()); - std::transform(values.begin(), values.end(), local_fields.begin(), [](const std::shared_ptr<Value>& v) { - return std::make_shared<FieldValueIndex>(*v); + std::transform(values.begin(), values.end(), local_fields.begin(), [&q](const std::shared_ptr<Value>& v) { + return std::make_shared<FieldValueIndex>(*v, q.select); }); auto qcb = std::bind(callbackWrapper<FieldValueIndex, QueryCallback>, cb, done_cb, _1, add_fields, op); -- GitLab