Commit Graph
1180 Commits
Author SHA1 Message Date
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