Adrien Béraud
873fbd3d8e
dht: add public address reporting
2015-08-06 15:41:16 -04:00
Adrien Béraud
15f3dee293
introduce configuration structure
2015-08-05 21:55:20 -04:00
Adrien Béraud
59182aa0c4
securedht, dhtrunner: support bootstrap mode
2015-08-04 23:39:15 -04:00
Adrien Béraud
2130d38820
securedht: allow null key or certificate
...
If no key is provided, no value is decrypted.
If no certficate is provided, it is not published and
a random node Id is choosed.
2015-08-04 14:02:04 -04:00
Adrien Béraud
948475301e
infohash: add getRandom()
2015-08-04 14:02:04 -04:00
Adrien Béraud
69cf65d1b2
dhtrunner: update doc
2015-07-28 16:26:46 -04:00
Adrien Béraud
f13b28fed4
dht: add connectivityChanged()
2015-07-28 16:26:35 -04:00
Adrien Béraud
3cbae5526a
dht: add bootstap mode
...
The bootstrap mode is used only for bootstrap nodes.
A bootstrap node will maintain a tree of the whole dht
up to 6 bits deep (8*2^6 = 4096 nodes).
This allows to provide better initial answers to new nodes.
Bootstrap nodes act otherwise normally.
2015-07-27 14:47:58 -04:00
Adrien Béraud
8287416164
dht: add getNodes, isExpired with no time argument
2015-07-27 14:33:47 -04:00
Adrien Béraud
ced114eba4
dht: combine counting of get and announce/listen requests
2015-07-27 14:33:39 -04:00
Adrien Béraud
5323ebd6b1
dht: use a listen keep-alive of 30 seconds
2015-07-27 14:33:39 -04:00
Adrien Béraud
4ad1495e39
dht: improve listen, announce timing consistency
2015-07-24 01:02:35 -04:00
Adrien Béraud
cf3fa7b954
dht: increase max requests per second
2015-07-24 01:02:35 -04:00
Adrien Béraud
178eeae94f
dht: log cleanup
2015-07-24 01:02:35 -04:00
Adrien Béraud
d4094bed9b
tools: update copyright
2015-07-23 14:32:52 -04:00
Adrien Béraud
3124d13004
infohash: toFloat optimisation
2015-07-23 11:06:16 -04:00
Adrien Béraud
d2ed99742e
zero-initialise sockaddr structures
2015-07-23 11:05:50 -04:00
Adrien Béraud
ac13795db0
crypto: add DecryptError
2015-07-14 12:47:12 -04:00
Adrien Béraud
593ca81dbd
infohash: add toFloat()
2015-07-14 12:09:14 -04:00
Adrien Béraud
7729f9e283
types: add payload to trust request
2015-07-13 14:15:08 -04:00
Adrien Béraud
03b873d1ad
value: make time_point non-constexpr for now
2015-07-13 14:15:08 -04:00
Adrien Béraud
3d2a74be49
python: add PyNode
2015-07-13 13:24:55 -04:00
Adrien Béraud
e2004d69cb
prevent sending listen or announce to unsynched nodes
2015-07-11 18:38:11 -04:00
Adrien Béraud
7a3a95bf3e
dht: use time_point::min() as invalid time_point value
2015-07-11 18:38:11 -04:00
Adrien Béraud
5bec9f6764
log cleanup
2015-07-10 23:31:09 -04:00
Adrien Béraud
d2c57b867d
update copyright headers
2015-07-10 23:25:43 -04:00
Adrien Béraud
db1b9c2f38
crypto: add Certificate getName, getIssuerName, getAltNames
2015-07-09 12:32:56 -04:00
Adrien Béraud
a0544e8fcf
dhtrunner: add future<T> get(key)
2015-07-06 11:27:45 -04:00
Adrien Béraud
2470dab029
dht: add a simpler Done Callback
2015-07-06 11:27:45 -04:00
Adrien Béraud
1bc2c5c9f0
dht: cleanup doc
2015-07-06 11:26:37 -04:00
Adrien Béraud
618f4dcddb
crypto: add contructor from blob vector
2015-07-05 17:48:05 -04:00
Adrien Béraud
d16260eca8
crypto: unpack certificate list from blob vector
2015-07-04 22:41:41 -04:00
Adrien Béraud
6a44dab6d3
crypto: add doc
2015-07-03 13:47:57 -04:00
Adrien Béraud
1c6a50969b
crypto: support private key password encryption
2015-07-03 13:45:57 -04:00
Adrien Béraud
aeedb8adac
dhtrunner: allow to bind specific IP addresses
2015-07-02 02:59:28 -04:00
Adrien Béraud
f1ff9a1a87
dht: optimisations in search behavior
...
A candidate flag is added to new search nodes when a search
is already synced.
The flag is waived when a token is retreived from the node.
Candidate nodes behave normally but are not considered
to evaluate the search state (synced etc.).
The behavior of searches if also changed so GET_NODES
updates are now done the same way, no matter if the search
is currently synced. This allow candidate nodes to behave
normally and makes token update asynchronous, causing
less frequent performance hickups.
2015-07-02 02:59:28 -04:00
Adrien Béraud
04623d09f8
dht: simplify get search node selection
2015-07-02 02:59:28 -04:00
Guillaume Roguez
42ba16d080
add python wrapper written in Cython
...
This patch adds in tool/python a Cython written package
to use opendht API throught Python language.
This binding is a prototype with a little subset of OpenDHT API,
mainly for a proof-of-concept
Signed-off-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com >
2015-07-02 02:59:01 -04:00
Adrien Béraud
a63fc649b6
refactoring: move Node out of Dht
2015-07-02 02:59:01 -04:00
Adrien Béraud
dbde59a355
crypto: add key length param in generateIdentity()
2015-07-02 02:58:42 -04:00
Adrien Béraud
680186976f
dht: add node list to done callback
2015-06-25 15:56:03 -04:00
Adrien Béraud
e88e78a2d9
securedht: support external certificate store
...
With setLocalCertificateStore, add an optional
custom callback to find an immediately available
certificate to use for encryption etc.
2015-06-25 11:50:46 -04:00
Adrien Béraud
428ac04812
crypto: add Certificate::isCA
2015-06-25 11:43:11 -04:00
Adrien Béraud
848d1675b9
infohash: add getBit, setBit, operator<
2015-06-25 11:41:38 -04:00
Adrien Béraud
3e5a3c3f2d
dht: getId renamed to getNodeId
2015-06-17 22:34:57 -04:00
Adrien Béraud
40f0488203
dht: address family can be omited in isRunning
2015-06-17 22:34:57 -04:00
Adrien Béraud
ca58b19e48
random_device: add some documentation
2015-06-17 15:40:21 -04:00
Adrien Béraud
0497154f7f
random_device: support RDSEED and fallback to pseudo rng
...
Pseudo random numbers are not ideal but still better than zeros.
Use time-seeded PRNG as a basis and XOR-mix with real random numbers if available.
2015-05-31 09:19:24 -04:00
cberaud
41406833a8
add crypto::random_device
2015-05-15 19:57:04 +05:30
Guillaume Roguez
98233954c4
dht: drop incoming msg with unknown protocol
...
We filter out incoming packet if my_v field is not known.
This prevents to be flooded by others bittorrent-like clients.
Signed-off-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com >
2015-05-14 13:44:11 -04:00