Commit Graph
282 Commits
Author SHA1 Message Date
Adrien Béraud a926e273af dht: forward-declare more internal structures 2016-05-14 15:48:34 -04:00
Adrien Béraud f1b3e41e63 securedht: override all versions of Dht::get 2016-05-14 15:48:34 -04:00
Adrien Béraud e37307654f make sure securedht methods override dht's 2016-05-13 16:38:23 -04:00
Adrien Béraud d3b9c4b7b6 network engine: improve node packing 2016-05-13 16:38:23 -04:00
Adrien Béraud d26a34f409 node_cache: use std::map 2016-05-13 16:38:23 -04:00
Guillaume Roguez c5da946e76 crypto: mark all operator bool as explicit
If operator bool is not marked as explicit and you try to do such:

a == b

where a and b are instances of class with overloaded bool operator,
the behavior is not the waited one: a and b are casted to bool
BEFORE the comparaison! This could lead into non waited situation.

This patch fixes all operator bool() where overloaded.
This also implements PublicKey operators == and != as needed in value.h.
This last showed a typical case explained upper.

Signed-off-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
2016-05-10 15:26:15 -04:00
Adrien Béraud 91bf5bb41b allow to cancel request without network engine 2016-05-10 12:50:20 -04:00
Adrien Béraud 040e3770ad node: use requests to determinate state 2016-05-09 16:17:59 -04:00
Adrien Béraud ef1bf5ccec move node cache to message engine 2016-05-08 00:37:52 -04:00
Adrien Béraud 8cc53b1751 add node cache, split dhtrunner.h from dht.h 2016-05-08 00:37:52 -04:00
Simon Désaulniers 98a3960bf8 fix wrong std::move in Value::Filter::chain
Also, instance calls to Value::Filter::chain methods were moving the calling
instance while you may not want this in many cases.
2016-05-05 16:29:59 -04:00
Adrien Béraud 92613f5fbf net: improve request state consistency 2016-05-03 18:33:38 -04:00
Adrien Béraud c215bf1d39 net: a pending request is a non-completed request 2016-05-03 13:56:05 -04:00
Adrien Béraud add1179bc2 dht: remove constexpr to preserve backward compatibility 2016-05-03 13:55:18 -04:00
Adrien Béraud 733cf335d3 dht: limit concurrent search requests instead of steps intervals 2016-05-03 12:05:14 -04:00
Adrien Béraud 15f4ea4d88 node: add toString() 2016-05-03 11:09:28 -04:00
Simon Désaulniers 8cce5cd6e8 removed commented duplicate utility function 2016-05-02 15:25:15 -04:00
Adrien Béraud 820598c179 network engine: change sendError message argument to std::string 2016-05-02 15:25:15 -04:00
Adrien Béraud a0a108512c expire request when node is expired 2016-05-02 15:25:15 -04:00
Adrien Béraud d062f7bd24 make sendPing use Node by default
previous code was duplicating nodes, causing
sending many "dubious node" pings to the same node.
2016-05-02 15:25:15 -04:00
Adrien Béraud 0890ed9c4f move routing table to a different file 2016-05-02 15:25:15 -04:00
Adrien Béraud f9e6662f7d use Node in tellListener 2016-05-02 15:25:15 -04:00
Adrien Béraud 20662a9b4c cancel request when receiving token error 2016-05-02 15:25:15 -04:00
Adrien Béraud 3367043e92 NE fixes 2016-05-02 15:25:15 -04:00
Simon Désaulniers badf9a3027 replaced tabs with spaces in multiple files. 2016-05-02 15:25:15 -04:00
Simon Désaulniers f7a334a979 dht: make sure searchStep is called when needed. 2016-05-02 15:25:15 -04:00
Simon Désaulniers 08dc666839 dht: network engine does the node ping count 2016-05-02 15:25:15 -04:00
Simon Désaulniers 97fccc4458 dht: fix drop due to ratelimit bug 2016-05-02 15:25:15 -04:00
Simon Désaulniers ee31881825 changed license to GPLv3 2016-05-02 15:25:15 -04:00
Simon Désaulniers dafae934c4 actually cancelling listens when appropriate
Just before, listens were "cancelled", but unsued memory in network engine's
data structure would be left there.
2016-05-02 15:25:15 -04:00
Simon Désaulniers 2a88117dd4 netengine: merging RequestStatus, Request
This is a change needed to enable easy and clean cancelling of requests from the
upper layer (dht layer). Request's content that was hidden from (dht layer) is
still hidden (private), but enable NetworkEngine as a friend of the Request
class for accessing lower layer attributes.
2016-05-02 15:25:15 -04:00
Simon Désaulniers 72f4d58f7e dht: fix listen confirmation, getvalues concurency
Upon receiving a listen confirmation, a Request structure shall be left alive in
the NetworkEngine's map so that further 'get values' answers for that same
listen can be treated properly. This was sort of handled before, but with a
concurency issue between the set of values returned associated to the listen
request and just before the listenConfirmation was returned.
2016-05-02 15:25:15 -04:00
Simon Désaulniers 717b58fcc6 dht: handling get token only after 'get' request. 2016-05-02 15:25:15 -04:00
Simon Désaulniers 608be10446 using SearchNode::last_get_reply in dumpsearch 2016-05-02 15:25:15 -04:00
Simon Désaulniers d5f67e97d0 dht: let Dht::inserNode set SearchNode reply time 2016-05-02 15:25:15 -04:00
Simon Désaulniers 4aad11f003 dht: fix Scheduler::run() job calls order
When executing a job, the internal jobs map can be changed, therefor successive
job calls have to make another call to timers.begin() to get the first job to
execute.
2016-05-02 15:25:15 -04:00
Simon Désaulniers dc1e1d9454 stop stacking jobs now rescheduling instead 2016-05-02 15:25:15 -04:00
Simon Désaulniers 674f25fcae fix listen was not handled... 2016-05-02 15:25:15 -04:00
Simon Désaulniers 120dc509cf fix 'get' request stuck/slow, handling candidates
Making a call to searchSendGetValues() when a 'get' request finishes/expires,
accelerates the process in the same way it was done before. Candidates also let
the requests resolve faster.
2016-05-02 15:25:15 -04:00
Simon Désaulniers ff72487b02 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.
2016-05-02 15:25:15 -04:00
Simon Désaulniers 8cc6c21d19 keeping last get reply time in search nodes 2016-05-02 15:25:15 -04:00
Simon Désaulniers d8716e4bd4 adding missing file includes (src,cmake,autotools) 2016-05-02 15:25:15 -04:00
Simon Désaulniers 66e8cf431b add missing MSG_CONFIRM definition 2016-05-02 15:25:15 -04:00
Simon Désaulniers c299385401 add forgotten sendPing signature change 2016-05-02 15:25:15 -04:00
Simon Désaulniers e32e480a12 fixing scheduler wrong time returned on run() 2016-05-02 15:25:15 -04:00
Simon Désaulniers 8b35e2bc09 fix some segfault errors 2016-05-02 15:25:15 -04:00
Simon Désaulniers 848d95c8b2 Properly handling request status as shared_ptr
this is concerning the shared_ptr objects in SearchNode.
2016-05-02 15:25:15 -04:00
Simon Désaulniers e8ec4bb8b4 fix scheduler wrong returned time upon run()
makes more sense to return the "nextJobTime".
2016-05-02 15:25:15 -04:00
Simon Désaulniers 82f67f642f fix wrong nodes serlialisation bug 2016-05-02 15:25:14 -04:00
Simon Désaulniers 244877526f fix blacklisting for wrong reason. 2016-05-02 15:25:14 -04:00