fix no values sent in response to 'find' request

This was due to using the wrong InfoHash field from the ParsedMessage when
responding to 'find' request.
This commit is contained in:
Simon Désaulniers authored and Adrien Béraud committed 2016-05-02 15:25:15 -04:00
1 parent 8cc6c21d19
commit ff72487b02
3 files changed
+26 -25

No files matched your search

+2 -2
View File
@@ -176,7 +176,7 @@ NetworkEngine::processMessage(const uint8_t *buf, size_t buflen, const sockaddr
DHT_LOG.DEBUG("[node %s %s] got 'find' request (%d).",
msg.id.toString().c_str(), print_addr(from, fromlen).c_str(), msg.want);
++in_stats.find;
RequestAnswer answer = onFindNode(node, msg.info_hash, msg.want);
RequestAnswer answer = onFindNode(node, msg.target, msg.want);
auto nnodes = bufferNodes(from->sa_family, msg.target, msg.want, answer.nodes, answer.nodes6);
sendNodesValues(from, fromlen, msg.tid, nnodes.first, nnodes.second, {}, answer.ntoken);
break;
@@ -186,7 +186,7 @@ NetworkEngine::processMessage(const uint8_t *buf, size_t buflen, const sockaddr
node->id.toString().c_str(), print_addr(node->ss, node->sslen).c_str(), msg.info_hash.toString().c_str());
++in_stats.get;
RequestAnswer answer = onGetValues(node, msg.info_hash, msg.want);
auto nnodes = bufferNodes(from->sa_family, msg.target, msg.want, answer.nodes, answer.nodes6);
auto nnodes = bufferNodes(from->sa_family, msg.info_hash, msg.want, answer.nodes, answer.nodes6);
sendNodesValues(from, fromlen, msg.tid, nnodes.first, nnodes.second, answer.values, answer.ntoken);
break;
}