Commit graph

194 commits

Author SHA1 Message Date
Joakim Frostegård
a9f1aeb70c Add crate keywords, update descriptions 2022-03-20 20:41:56 +01:00
Joakim Frostegård
83987563ec udp: replace dependency "chrono" with "time" 2022-03-20 19:57:44 +01:00
Joakim Frostegård
5176b18ef9 common: rename AHashIndexMap to AmortizedIndexMap 2022-03-20 19:42:46 +01:00
Joakim Frostegård
e938351a9e udp: set default max_scrape_torrents=70, max_response_peers=50 2022-02-20 01:47:03 +01:00
Joakim Frostegård
3785e57513 Sort dependencies in Cargo.toml files 2022-02-20 01:44:34 +01:00
Joakim Frostegård
903010dbe1 udp: use action 1 for IPv6 announce responses; refactor protocol code
According to BEP015, action 1 is to be used.
2022-02-20 01:35:24 +01:00
Joakim Frostegård
8e7f8425f9 udp: default to 120s max_connection_age, since it is in BEP0015 2022-02-20 00:48:58 +01:00
Joakim Frostegård
14a4c10546 s/toml_config/aquatic_toml_config/ 2022-02-19 15:11:00 +01:00
Joakim Frostegård
5e8777d2e2 udp, http: remove unused parking_lot dependency 2022-02-19 14:13:27 +01:00
Joakim Frostegård
29ea935744 udp: request workers: use config.statistics.active() 2022-02-19 14:09:24 +01:00
Joakim Frostegård
91dcd3de4d
Add CanonicalSocketAddr struct (#49)
* Add CanonicalSocketAddr struct to aquatic_common, use in aquatic_udp

* udp_bench: fix build error by using CanonicalSocketAddr
2022-02-02 22:34:54 +01:00
Joakim Frostegård
0d3c6111ca udp: run cargo fmt 2022-01-13 19:21:53 +01:00
Joakim Frostegård
f0dc7c19f3 udp: show separate statistics for all response types 2022-01-13 19:16:25 +01:00
Joakim Frostegård
00c4e74374 udp: use slab for pending scrape responses to fix potential issue
Peers sometimes send multiple scrape requests with the same transaction
id, which would previously cause warnings due to replacing the
PendingScrapeMapEntry and later not finding it.
2022-01-13 18:35:41 +01:00
Joakim Frostegård
700dd68d2c
udp scrape improvements (#43)
* udp_protocol: forbid full scrapes

* udp: improve PendingScrapeResponseMap logging

* udp: PendingScrapeResponseMap: store less data, improve logging

* udp: PendingScrapeResponseMap: log if replacing entry on insert

* udp: PendingScrapeResponseMap: use remote addr in key

* Run cargo fmt

* README: update copyright end year

* udp: move scrape request splitting logic into PendingScrapeResponseMap

* udp: add quickcheck test test_pending_scrape_response_map

* udp protocol: fix failing test_scrape_request_convert_identity
2022-01-06 11:48:16 +01:00
Joakim Frostegård
e5a1461613
udp: include ConnectionId in PendingScrapeResponseMap key (#42) 2021-12-28 03:16:15 +01:00
Joakim Frostegård
a208775104
Include documentation in printed config files (#41)
* Start work on printing toml config with comments

* WIP: toml_config: extract default values for fields

* WIP: toml_config: handle single-level nested structs

* WIP: toml_config: improve comment handling, std type trait impls

* WIP: toml_config: add Private trait, improve comment handling, clean up

* toml_config: fix default value bug; improve tests

* Use toml_config in all applicable crates; add toml_config enum support

* toml_config: improve comments

* toml_config_derive: support enum comments

* Improve config comments for udp, cli_helpers, common

* Improve config comments

* Add tests for Config struct TomlConfig implementations

* Improve Config comments

* Improve Config comments

* ws, http: add config comments for tls cert and private key lines

* small fixes to toml_config and toml_config_derive

* Run cargo fmt

* Fix typo in several config comments

* Update README

* Update README
2021-12-26 11:33:27 +01:00
Joakim Frostegård
aaa00a53ce udp: statistics html: don't display link to repo 2021-12-22 00:31:37 +01:00
Joakim Frostegård
f531a246b0 udp: support writing statistics html report to file 2021-12-21 23:16:48 +01:00
Joakim Frostegård
7892e6f508 udp: move TorrentMap and related types to workers/request.rs 2021-11-29 21:03:47 +01:00
Joakim Frostegård
dd573cdb30 Run cargo fmt 2021-11-28 22:11:21 +01:00
Joakim Frostegård
125d3c49d6 udp: config: rename channel_recv_timeout_ms and move to root, add docs 2021-11-28 22:10:29 +01:00
Joakim Frostegård
2fe57b9f67 udp: add config key worker_channel_size to enable bounded channels 2021-11-28 21:59:11 +01:00
Joakim Frostegård
aa3253fcd6 udp: use idiomatic folder structure (lib.rs + main.rs in src) 2021-11-27 18:17:25 +01:00
Joakim Frostegård
b9bc5a2aa4 udp: request worker: use ValidUntil::new_with_now 2021-11-27 18:12:19 +01:00
Joakim Frostegård
d565c6e046 udp: socket worker: only create access list cache once 2021-11-27 18:11:08 +01:00
Joakim Frostegård
473276cd46 Switch to rust edition 2021 2021-11-24 18:56:26 +01:00
Joakim Frostegård
2f15b2cc8e udp: make tracker-side statistics more accurate 2021-11-21 20:39:27 +01:00
Joakim Frostegård
3a4056058b udp: statistics: properly handle ipv4-mapped ipv6 addresses 2021-11-21 20:16:17 +01:00
Joakim Frostegård
f001c69dc7 udp: statistics: print only for active protocols 2021-11-21 20:09:39 +01:00
Joakim Frostegård
f68bbff700 udp: split statistics by ipv4/ipv6 2021-11-21 20:04:18 +01:00
Joakim Frostegård
34f263f6b9 udp: new file structure: each worker types is submod of workers mod 2021-11-21 19:39:44 +01:00
Joakim Frostegård
a1243c59d6 udp: avoid Ordering::SeqCst for atomic operations 2021-11-19 12:30:05 +01:00
Joakim Frostegård
2c336793b1 udp: statistics: improve atomic usize vec sum code 2021-11-19 12:22:11 +01:00
Joakim Frostegård
c78716153b udp: statistics: show number of peers 2021-11-19 12:17:39 +01:00
Joakim Frostegård
59e95894b9 udp: statistics: show number of torrents and access list len 2021-11-19 12:04:16 +01:00
Joakim Frostegård
fee3c9ca4e Update mio to version 0.8 2021-11-19 03:01:03 +01:00
Joakim Frostegård
028a366ce5 Don't unnecessarily constrain crate versions in Cargo.toml files 2021-11-19 02:45:53 +01:00
Joakim Frostegård
dc841ef0de udp: add config setting for network poll timeout 2021-11-19 01:23:41 +01:00
Joakim Frostegård
029193b512 udp: network: check less often if periodic tasks need to be done 2021-11-19 01:20:39 +01:00
Joakim Frostegård
a530dc2860 udp: network: update ValidUntil structs less often 2021-11-19 01:18:58 +01:00
Joakim Frostegård
9c919a6ecb udp: clean pending scrape map 2021-11-19 01:10:37 +01:00
Joakim Frostegård
2e7c8ac904 udp: reorder code in network.rs for better readability 2021-11-19 00:59:52 +01:00
Joakim Frostegård
07b959c9d4 udp: run cargo fmt 2021-11-18 22:42:37 +01:00
Joakim Frostegård
210550c719 udp: restructure config.rs for better readability 2021-11-18 22:42:37 +01:00
Joakim Frostegård
8dd9177c40 udp: clean up common file, move some code to other files 2021-11-18 22:42:37 +01:00
Joakim Frostegård
138ae710ef udp: remove io_uring version, it is slower than mio version 2021-11-18 22:42:37 +01:00
Joakim Frostegård
99632d4be5 udp: implement torrent map cleaning for new, sharded torrent state 2021-11-18 22:42:37 +01:00
Joakim Frostegård
c5bf3901ea run cargo fmt 2021-11-18 22:42:37 +01:00
Joakim Frostegård
5ef0935c97 udp: remove unused config var max_requests_per_iter 2021-11-18 22:42:36 +01:00