- Update dependencies (#445, #454, #456, #459, #460, #463, #465, #467)
- Use pure rust cryptography instead of
libsodium
(#446, #447, #449, #450, #452, #453, #455) - Resolve dependency cycle between modules (#448)
- Use
thiserror
instead of unmaintainedfailure
(#457) - Merge
tox_node
andtox
repositories (#466) - Fix deadlocks (#461, #464)
- Fix bug in k-bucket eviction (#443)
- Code cleanup (#441, #442)
- Implement k-tree with force-k modification (#436)
- Replace
parking_lot
mutex withfutures
mutex (#434) - Send userstatus from echo server (#431)
- Drop MIT license (#428)
- Use idiomatic sodiumoxide API for password KDF (#425)
- Split toxcore into separate crates (#420)
- Migrate to the new tokio (#419)
- Move to nom5 (#418)
- Replace intervals as bare
u64
s withDuration
s (#407) - Use AtomicU64 instead of locks (#406)
- Handle TCP
net_crypto
packets (#392) - Use correct key for tcp connection (#391)
- Add TCP support for onion client (#389)
- Send net crypto packets via TCP (#386)
- Handle friend requests inside onion client (#380)
- Friends connection (#367)
- Do not store peer_session_pk in net crypto status (#373)
- Re-grouping file transfer packets from messenger (#371)
- Add ser/de for Conference packets (#356, #358)
- Properly increase unsuccessful attempts counter in tcp client (#369)
- Add .editorconfig (#366)
- Implement onion client (#312)
- Refactor send timeouts (#365)
- Fix overflow in the netcrypto stats calculation (#364)
- Add macros for errors (#357)
- Add "new" method to DhtPkAnnouncePayload (#351)
- Add function to kill a crypto connection (#350)
- Add method to get random nodes from fake friends (#349)
- Store both IPv4 and IPv6 addresses in the crypto connection (#347)
- Add function to set friend's IP address (#346)
- Handle incoming crypto handshake (#345)
- Add function to add a new net crypto connection (#344)
- Add function to get random relays we are connected to (#343)
- Add method for sending lossless packet (#340)
- Handle CryptoData packet (#342)
- Add encrypt/decrypt functions to InnerOnionDataRequest (#341)
- Adjust RequestQueue so that it can be used for onion client (#338)
- Add ser/de for Messenger::FileSendRequest (#331)
- More generic KbucketNode (#339)
- Reduce the number of tokio deps (#337)
- Do not replace a friend with empty struct after readding (#332)
- Add ser/de for MSI packet (#313)
- Fix wrong keys being used for net crypto handshake (#329)
- Add ser/de for Onion::FriendReq (#324)
- Do not send the same packet to the same node twice (#323)
- Add ser/de for Messenger::StatusMessage (#316)
- Add ser/de for Messenger::Typing packet (#318)
- Add packet for DHT PK announcing (#321)
- Add ser/de for Messenger::UserStatus packet (#317)
- Unify IpPort structs (#322)
- Add ser/de for Messenger::Message packet (#319)
- Add ser/de for Messenger::Action packet (#320)
- Add ser/de for Messenger::FileControl packet (#315)
- Add ser/de for Messenger::FileData packet (#314)
- Add function for unbiased random numbers (#309)
- Unify kbucket with nodes queue (#310)
- Add dht::MAIN_LOOP_INTERVAL const (#304)
- Update parking_lot and env_logger deps (#303)
- Do not require exact minor version of the deps (#301)
- Remove useless logs from dht::Server::handle_packet (#300)
- Add timeout for the TCP handshake (10 seconds) (#299)
- Use impl Future instead of IoFuture (#295)
- Move to Edition 2018 (#298)
- Add limit for TCP connections count (#297)
- Use failure crate in lan_discovery with Error-ErrorKind pattern (#285)
- Relax assert rule for floats to avoid sporadic test failures (#296, #302)
- Fix crash on invalid DHT packets (#294)
- Update the onion proposal link (#292)
- Use assert_eq and assert_ne whenever possible (#290)
- Use impl Future instead of IoFuture (#291)
- Fix clippy warnings (#288)
- Add crypto_init() to all tests (#281)
- Add ConnectionId for TCP packets as separate type (#287)
- Handle reconnections inside tcp_server correctly (#286)
- Remove unused variable is_hole_punching_enabled (#282)
- Update GitlabCI to use new libsodium (#283)
- Use O(1) links in tcp_client (#280)
- Index server links with O(1) (#261)
- Add ServerExt for running DHT server on UdpSocket (#278)
- Implement congestion control for net_crypto (#271)
- Use bounded stream instead of unbounded (#277)
- Add zerho.info to copyrights (#275, #276, #284)
- Remove all unsafe code from sodiumoxide (#274)
- Implement a core for TCP client (#255)
- Fix 'Address already in use' in tests (#272, #273)
- Update sodiumoxide to v0.2 (#160)
- Speed up TravisCI (remove cache) (#269)
- Add counters for TCP and UDP packets (#268)
- Use crate failure (#265, #270, #267, #289)
- Add tox-rs logo to the documentation (#263)
- Use PrecomputedCache to speed up crypto (#257)
- fix verifing commit message script for Travis-CI on Github (#260)
- Change kpp AppveyorCI to org:tox-rs/tox (#262)
- Fix unlinking TCP clients in server on shutdown (#258)
- Fix NLL warnings (#256)
- Fix connection_id verification in tcp_server (#253)
- Silence wrong ping_id error in NodesResponse (#252)
- Silence onion_return decrypt errors (#251)
- Add DHT packet handler to be handled in client only (#250)
- Ignore client shutdown errors in tcp_server (#248)
- Move connection_id validation to parsers in tcp_server (#247)
- Temporary disabling hanging tcp test (#246)
- Add parser for Hardening DhtRequest (#245)
- Verify length of incoming BootstrapInfo packet (#243)
- Add unparsed buffer to codecs' errors (#242)
- Use crate failure for toxencryptsave (#241)
- Fix broken tcp test due to tokio update (#240)
- Use crate failure for Codec and ServerExt (#239)
- Use callback to get the message of the day (#238)
- Remove linkage from client when closing a client (#237)
- Remove redundant tcp Server::Client::send_impl (#235)
- Merge ServerProcessor with ServerExt (#234)
- Do not return an error if tcp connection by id was not found (#233)
- Reenable clippy and unused_parens warnings (#232)
- Add dummy implementation of TcpConnection (#231)
- Get rid of crate quickcheck (#230)
- Don't validate PublicKey in parsers due to bug in c-toxcore (#228)
- Use tokio::spawn to run TCP connections (#227)
- Remove dht_old/ (#226)
- Add test for status of established connection in net_crypto (#225)
- Ipv6Addr/Ipv4Addr parsing optimization (#224)
- Fix clippy warnings (#223)
- Add parser for Nickname packet for Messenger (#222)
- Give appropriate names to the bucket and kbucket (#221)
- Validate PublicKey when parsing (#220)
- Add tests for Packet for FriendConnection (#219)
- Add parser of Offline packet for Messenger (#218)
- Refactor onion to use Server::get_closest (#217)
- Simplify dht node, fix IPv6 issues (#216)
- NodesQueue stores PackedNodes(#215)
- parser for Online packet for Messenger (#214)
- Fill node_to_bootstrap of friend with close nodes (#212)
- Parse packet type FriendRequests (#211)
- Add parameter for eviction strategy (#210)
- Speed up 'cargo test' for tcp (#209)
- Simplify constructor of Kbucket (#207)
- Refactor SockAndTime struct (#206)
- Parse packet type ShareRelays (#205)
- Add fake friends to DHT (#204)
- Handle all connections in ServerExt::run (#203)
- Renaming and minor refactoring (#202)
- Parse packet type Alive (#201, #208)
- Treat IPv4 and IPv6 addresses of same node as they belonged to different nodes (#200)
- Fix Appveyor to download libsodium v1.0.16 (#198)
- Remove pub from DHT Server::try_add_close_nodes (#197)
- Remove take_while while bootstrapping from nodes (#196)
- Avoid issues with floating point arithmetic (#195)
- Fix log for TCP server (#194)
- Bootstrap from bootstrap nodes when all nodes in Kbucket are discarded (#192)
- Limit bootstrap nodes of friend instead of close nodes (#191)
- Use cargo-clippy instead of deprecated clippy plugin (#189)
- Fix clippy warnings (#188, #190)
- Fix add overflow in DHT server (#187)
- Get closest global IP in OnionAnnounce (#187)
- Improve DHT tests (#186)
- Relicense to MIT/GPLv3+ (#185)
- Fix hole punching (#183, #193)
- Simplify example and synchronize it with tox-node (#182)
- Use DhtNode instead of PackedNode (#181)
- Update the status of the project (#180)
- Send periodic pings in TCP server (#178)
- Fix binary search in Kbucket (#177)
- Add crypto_core::random_usize (#176)
- Add mutable iterator for Kbucket (#175)
- DHT refactoring, NAT fixes, improve ping sender (#174, #179, #193)
- Set onion sink for DHT Server via setter (#173)
- Poll Future in PingSender::try_add (#172)
- Fix IPv6 in DHT (#171)
- Add TCP:ServerExt to serve each TCP connection (#170)
- Do not send LAN IPs in NodesResponse (#168)
- Optional LanDiscovery for DhtNode (#167)
- DHT refactoring, move periodic tasks from example into lib code (#161)
- Update the deps of the project (#159)
- Refactor old state_format, save/load DHT state from raw bytes (#158)
- Setup code coverage for gitlab CI (#157)
- Do not fall on invalid DHT packets (#156)
- Update minimal rustc version to 1.25 (#155)
- Migrate to cloc from tokio_timer (#154)
- Add Ping iterator (#151)
- Implement CryptoData handling (#150)
- Separate ClientData from DhtNode (#147)
- Implement CI on Travis for OsX (#145)
- Add Good and Bad status of a dht node (#144)
- Use correct IPv6 broadcast address (#143)
- Unify send functions, do not layer errors, set tcp onion sink in separate method (#143)
- Implement Net crypto handshake (#142)
- Update the status of the project (#140, #148)
- Fix the mechanism of verification commit messages in gitlab (#139)
- Add BootstrapInfo handler (#138)
- Fix type of DHT handle_packet function (#136)
- Prettify code a little bit in DHT module (#133)
- Implement Hole Punching and NatPing (#132)
- Add parsing for net crypto packets: CookieResponse, CryptoHandshake and CryptoData (#131)
- Add sha512 to cryptocore, refactor crypto core a little bit (#130)
- Implemented CI for gitlab for Linux and Windows (#129)
- Use constant keypair in example dht node (#128)
- Fix length of payloads in docs (#126, #127)
- Fix serialization of NodesResponsePayload (#126)
- Add DhtPkAnnounce payload to DhtRequest packet (#125)
- Add "onion" prefix to announce request/response (#123)
- Use crate
hex
instead of deprecatedrustc-serialize
(#122) - Add IpPort::protocol to onion::IpPort (#119)
- Update minimal version of Rust to 1.24.0 (#118)
- Add full NodesRequest example (#117)
- Handle DHT onion packets that should be redirected to TCP (#116)
- Fix OnionRequest and OnionResponse packets in TCP module (#115)
- Update the version of
cookie-factory
(#114) - Add sender's address to onion sink (#113)
- Move to our IoFuture since it is going to be deprecated in tokio (#112)
- Implement OnionAnnounce struct (#77)
- Use InnerOnionResponse as onion response payload (#85)
- Handle onion request/response packets in DHT Node (#88)
- Handle OnionAnnounceRequest/OnionDataRequest packets (#106)
- Add sender's address to TCP's onion sink (#113)
- Update TCP onion packets (#115)
- Migrate to parking_lot::RwLock instead of std (#82)
- Refactor DHT Node, remove client struct (#96)
- Fix "Decrypting DhtRequest failed" (#102)
- Add TCP Relay client connection (#10)
- Improve TCP Relay tests (#103)
- Add hash of pings to DHT server (#98)
- Fix ".ping_id does not match" (#86, #87)
- Migrate to tokio-timer v0.2 (#108)
- Remove timedout clients from DHT Node (#73)
- Remove useless union value from decryption errors (#110)
- Implement Lan Discovery handler (#71, #78)
- Split Onion, TCP, DHT Packet into multiple files (#72, #83, #109)
- Move to our IoFuture since it is going to be deprecated in tokio (#112)
- Parse all Onion packets (#50)
- Update Onion docs (#46)
- Enable OsX builds in CI (#62)
- Multithreaded TCP Relay (#58)
- Multithreaded DHT Node (#65)
- Update DHT Codec (#48)
- Fix clippy warnings (#63, #64)
- Parse TCP all packets
- Parse DHT Ping/Nat/NodesRequest/NodeResponse packets
- Parse Onion Request/Response packets
- Add example for TCP Relay
- Add example for DHT Node
- Squatter release (we did not make it)