Simon Désaulniers
b74e42eae9
using scheduler for timing dht operations
2016-05-02 15:25:14 -04:00
Simon Désaulniers
8364a61082
moving network stuff to NetworkEngine
...
dht_socket variables can be handled in NetworkEngine. Dht::network_engine now
declared as value instead of std::unique_ptr.
2016-05-02 15:25:14 -04:00
Simon Désaulniers
4b13fcac70
fixing various compilation errors
2016-05-02 15:25:14 -04:00
Simon Désaulniers
2df9cd5363
send* calls to network engine + on done routines
2016-05-02 15:25:14 -04:00
Simon Désaulniers
69fab983f5
[WIP] ondone + searchnode status
2016-05-02 15:25:14 -04:00
Simon Désaulniers
74b265641d
checking UDP replytime in network engine
2016-05-02 15:25:14 -04:00
Simon Désaulniers
ba8d1af008
using map for ordering searches structures
...
Now ordering searches by InfoHash in different maps (ipv4 and ipv6). This is a
minor improvement for queries over searches.
2016-05-02 15:25:14 -04:00
Simon Désaulniers
9faef0427f
send* methods return NetworkEngine::RequestStatus
...
Previously, the request id was returned. This was needed for cancelling
requests. Returning std::shared_ptr<RequestStatus> enables cancelling the
requests, checking if a request is done and access to timings concerning this
request. This will replace the SearchNode's RequestStatus.
2016-05-02 15:25:14 -04:00
Simon Désaulniers
4383e83dda
add initial schedular class.
2016-05-02 15:25:14 -04:00
Simon Désaulniers
0f94e0de0c
moved infohash constexpr where appropriate
2016-05-02 15:25:14 -04:00
Simon Désaulniers
a1333fcaa5
handling notify listeners when storage changed
2016-05-02 15:25:14 -04:00
Simon Désaulniers
f93fb92ff5
add NetworkEngine::processMessage
2016-05-02 15:25:14 -04:00
Simon Désaulniers
2a61d79b42
enabling DHT log in network engine.
2016-05-02 15:25:14 -04:00
Simon Désaulniers
44d5a0620c
add reception callbacks
2016-05-02 15:25:14 -04:00
Simon Désaulniers
90b73bca56
add closest nodes buffering methods
2016-05-02 15:25:14 -04:00
Simon Désaulniers
594de2bd88
factorized common dependencies
2016-05-02 15:25:14 -04:00
Simon Désaulniers
48512bfd0f
delete packet processing methods in dht.cpp
2016-05-02 15:25:14 -04:00
Simon Désaulniers
9e950c8fed
serialization and packing methods
2016-05-02 15:24:58 -04:00
Simon Désaulniers
91fa097195
add template erase_if for map
2016-05-02 15:24:58 -04:00
Simon Désaulniers
ee3caba05e
add intial NetworkEngine class
2016-05-02 15:24:58 -04:00
Adrien Béraud
9b45eabb00
infohash: remove std::hash
...
InfoHash is an hash itself, std::hash reduces the precision,
could cause potential security issues or bugs.
2016-05-01 15:27:13 -04:00
Adrien Béraud
08c21069c4
filters: add 'or' chaining
2016-04-30 03:16:05 -04:00
Adrien Béraud
1af71e88a7
filters: handle null filter in chain()
2016-04-30 03:16:05 -04:00
Adrien Béraud
54143d58bf
dht: limit search nodes
...
* Don't remove candidate nodes (they are counted as "bad" nodes)
* Remove as much nodes as necessary to keep the node count bounded
2016-04-26 15:35:28 -04:00
Adrien Béraud
4683310933
extend fix to previous GCC versions
...
Fix suport of GCC 4.8 by extending the fix to
versions before 4.9
2016-04-21 21:46:37 -04:00
Guillaume Roguez
ed7a92481c
fix support of gcc 4.9
...
Some Android NDK uses gcc 4.9.0 and this one has a bug
that prevent to use "default" keyword to assign defaulted
methods (like move-constructor).
This issue is solved in 4.9.2.
This patch permits gcc 4.9.0 support by implementing
by hand previously defaulted methods.
2016-04-19 16:25:51 -04:00
Adrien Béraud
69e3addb2c
crypto: add CA certificate generation options
2016-04-19 12:30:42 -04:00
Adrien Béraud
30d5f7bea5
msgpack: add support for 1.4+
2016-04-14 23:05:37 -04:00
Adrien Béraud
db5cac4556
crypto: avoid forward declarations
2016-04-11 15:16:36 -04:00
Adrien Béraud
1c8735e71a
crypto: use argon2 for key stretching
2016-04-11 15:16:36 -04:00
Adrien Béraud
52b10819de
crypto: add key stretching
2016-04-11 15:16:36 -04:00
Adrien Béraud
a7da1b4288
Merge pull request #57 from sim590/benchmark-dht-log
...
Enabling dht log in the benchmark
2016-04-11 12:06:42 -04:00
Guillaume Roguez
5d9c6090dd
dht: ensure to not copy Storage instances
...
This path deletes copy-constructor and copy-assignement and
default defines move-contructor and move-assignement methods.
Also uses emplace_back than push_back on dht::store vector
to have a better efficiency.
Signed-off-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com >
2016-04-11 11:46:24 -04:00
Adrien Béraud
8d69de598a
Merge pull request #55 from sim590/progressive-refill
...
Search progressive refill optimisation
2016-04-11 11:28:44 -04:00
Adrien Béraud
49db43372b
im message: add status field
2016-04-10 19:43:50 -04:00
Simon Désaulniers
2329239843
add delay between two successive refills
...
3 searchStep calls is what's needed to flag a node expired. So waiting at least
3 times SEARCH_GET_STEP time seems reasonable.
2016-04-08 23:12:09 -04:00
Simon Désaulniers
21667141ad
refill Search in unsynced state as much as needed
...
Search::refilled removed so that any number of refill may be done.
2016-04-08 23:11:02 -04:00
Simon Désaulniers
e9bda23ae4
add Search::getNumberOfBadNodes() method
2016-04-08 23:10:05 -04:00
Simon Désaulniers
4e54ac3ac3
dht: adding dht::log common utilities namespace
2016-04-08 18:36:02 -04:00
Adrien Béraud
7b1707299c
crypto: improve documentation
2016-03-24 21:32:05 -04:00
Adrien Béraud
b698687f99
crypto: add documentation
2016-02-18 22:24:33 -05:00
Simon Désaulniers
bfe41dbb45
Merge pull request #36 from kaldoran/log_print
...
Using standard library function for handling ascii out of range characters.
2016-02-15 12:39:58 -05:00
Edric
9fbe11738d
Remove int/unsigned int comparison warning
2016-02-15 11:33:35 -05:00
Kaldoran
47e56f2397
Change ascii value to std::isprint() function
2016-02-15 11:28:44 -05:00
Adrien Béraud
b640f34949
rng: fix typo
2016-01-28 01:07:35 -05:00
Adrien Béraud
1d4d67038a
dht: fix compilation on older clang
2016-01-22 15:35:45 -05:00
Adrien Béraud
d5dcfa0889
dht: introduce and enforce a maximum storage size
...
The default storage limit is 64 MB
2016-01-22 02:01:07 -05:00
Adrien Béraud
a44b809513
dht: get token with find_nodes, use it for announces
2016-01-19 15:23:37 -05:00
Adrien Béraud
b2ee07861d
reduce default storage time to 10 minutes
2016-01-19 15:23:37 -05:00
Adrien Béraud
388d43b89a
reduce maximum value size to 56 KB
...
A larger maximum size was supported by the protocol but
not the underlying transport (UDP).
2016-01-19 15:23:37 -05:00