1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! Implementation of the Bittorrent Mainline Distributed Hash Table.
extern crate bip_bencode;
extern crate bip_handshake;
extern crate bip_util;
extern crate crc;
extern crate log;
extern crate mio;
extern crate rand;
extern crate chrono;
extern crate error_chain;
// Mainline DHT extensions supported on behalf of libtorrent:
// - Always send 'nodes' on a get_peers response even if 'values' is present
// - Unrecognized requests which contain either an 'info_hash' or 'target' arguments are interpreted as 'find_node'
// - Client identification will be present in all outgoing messages in the form of the 'v' key TODO
// const CLIENT_IDENTIFICATION: &'static [u8] = &[b'B', b'I', b'P', 0, 1];
// * IPv6 is currently NOT supported in this implementation
// TODO: The Vuze dht operates over a protocol that is different than the mainline dht.
// It would be possible to create a dht client that can work over both dhts simultaneously,
// this would require essentially a completely separate routing table of course and so it
// might make sense to make this distinction available to the user and allow them to startup
// two dhts using the different protocols on their own.
// const VUZE_DHT: (&'static str, u16) = ("dht.aelitis.com", 6881);
pub use ;
pub use Router;
pub use ;
pub use Handshaker;
/// Test
pub use ;