Simon Désaulniers
c0b4bf8a46
dht,api: enable optional permanent put on dht
...
A permanent put is going to be executed once and every time the data expires on
each SearchNode.
2016-07-18 18:11:24 -04:00
Adrien Béraud
3a42846f98
utils: include ws2tcpip.h on Windows
2016-05-28 16:40:56 -04:00
Adrien Béraud
5ca04b1da4
utils: include socket.h
2016-05-27 16:03:30 -04:00
Adrien Béraud
c831ec8f16
rng: add include guard
2016-05-27 15:46:45 -04:00
Adrien Béraud
d44c59016e
network_engine: remove onNewNode return value
2016-05-27 14:54:56 -04:00
Adrien Béraud
4d75f64576
log: rename ERROR to ERR to build on Windows
2016-05-27 12:30:32 -04:00
Adrien Béraud
564e97fce7
dht: use 4 listen nodes
2016-05-24 03:44:18 -04:00
Adrien Béraud
6cdc242b6e
node: add pendingMesageCount
2016-05-24 03:44:18 -04:00
Adrien Béraud
db376aa0a2
scheduler: simplify design
2016-05-22 16:56:47 -04:00
Adrien Béraud
0e7dda680a
header cleanup
2016-05-22 16:56:47 -04:00
Adrien Béraud
22958342f1
headers: move inclusion of networking APIs to Infohash
2016-05-20 12:12:44 -04:00
Adrien Béraud
84578f7820
value: reduce size limit to 14KB
2016-05-19 17:28:31 -04:00
Adrien Béraud
9ad21d5c5d
dht: remove newSearch()
2016-05-18 01:23:18 -04:00
Adrien Béraud
891969f5eb
node: reduce max response time to 1s
2016-05-17 20:39:16 -04:00
Adrien Béraud
e68a2fd967
securedht: add public key cache
2016-05-17 20:39:16 -04:00
Adrien Béraud
cc18afd818
value: make 'owner' a shared_ptr
2016-05-17 20:39:16 -04:00
Adrien Béraud
79dde3378a
dht: increase max searches
2016-05-14 23:16:23 -04:00
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