Commit graph

2033 commits

Author SHA1 Message Date
Joakim Frostegård
7b2a7a4f46 ws: improve socket worker connection code 2023-11-17 00:15:41 +01:00
Joakim Frostegård
fe5ccf6646
ws: refactor, bug fixes, improvements (#155)
- split swarm worker into two modules
- split socket worker into two modules
- keep track of which offers peers have sent and only allow matching
answers
- always clean up after closing connection
- use channel for telling connections to close
- move some logic into new ConnectionRunner struct
- use slotmap for connection reference storage
- fix double counting of error responses
- actually close connections that take too long to send responses to
- remove announced_info_hashes entry on AnnounceEvent::Stopped
2023-11-09 18:06:21 +01:00
Joakim Frostegård
af9d5a55f6
Merge pull request #154 from greatest-ape/work-2023-10-30
improve ws protocol struct naming and documentation; update TODO
2023-10-30 22:44:06 +01:00
Joakim Frostegård
dadb227c63 Update TODO 2023-10-30 20:19:51 +01:00
Joakim Frostegård
577161e540 ws protocol: simplify code for AnnounceAction and ScrapeAction 2023-10-30 19:49:45 +01:00
Joakim Frostegård
d94936a50b ws: require offer/answer sdp field to be String, fix related code 2023-10-30 19:37:25 +01:00
Joakim Frostegård
c37bf89650 ws: include "type" field in RtcOffer and RtcAnswer 2023-10-30 19:34:24 +01:00
Joakim Frostegård
0789f7ec3b improve ws protocol struct naming and documentation 2023-10-30 19:13:46 +01:00
Joakim Frostegård
b473bb6fba
Merge pull request #152 from greatest-ape/work-2023-10-24
ws & http: reload tls config on SIGUSR1
2023-10-24 21:40:54 +02:00
Joakim Frostegård
0d83bd51ee ws: skip updating tls cert if file data same as currently loaded 2023-10-24 20:42:18 +02:00
Joakim Frostegård
78645fe658 ws: auto-close connections after grace period when updating tls config 2023-10-24 20:23:30 +02:00
Joakim Frostegård
99647a323a http: reload tls config on SIGUSR1 2023-10-24 18:44:49 +02:00
Joakim Frostegård
6a23ef9103 ws: reload tls config on SIGUSR1 2023-10-24 18:36:56 +02:00
Joakim Frostegård
c5c995bb80
Split README into separate files (#150)
* Create a separate udp README file

* Split README into separate files for all three implementations

* Minor README fixes
2023-10-19 19:59:11 +02:00
Joakim Frostegård
891ad71751
Merge pull request #149 from greatest-ape/work-2023-10-18
Update dependencies; move all crates to new "crates" dir
2023-10-19 19:16:41 +02:00
Joakim Frostegård
9b032f7e24 Move all crates to new crates dir 2023-10-18 23:53:41 +02:00
Joakim Frostegård
3835da22ac ws: update simd-json to v0.12 2023-10-18 23:24:53 +02:00
Joakim Frostegård
c2f7b6ed92 ws: upgrade tungstenite 2023-10-18 23:11:06 +02:00
Joakim Frostegård
1667339ee5 Run cargo update
Updating aho-corasick v1.0.4 -> v1.1.2
    Updating anstyle v1.0.2 -> v1.0.4
    Updating base64 v0.21.3 -> v0.21.4
    Updating bitflags v2.4.0 -> v2.4.1
    Updating blake3 v1.4.1 -> v1.5.0
    Updating bumpalo v3.13.0 -> v3.14.0
    Updating byteorder v1.4.3 -> v1.5.0
    Updating bytes v1.4.0 -> v1.5.0
    Updating clap v4.4.1 -> v4.4.6
    Updating clap_builder v4.4.1 -> v4.4.6
    Updating deranged v0.3.8 -> v0.3.9
    Updating errno v0.3.2 -> v0.3.5
    Updating fastrand v2.0.0 -> v2.0.1
    Updating flate2 v1.0.27 -> v1.0.28
    Updating git-testament v0.2.4 -> v0.2.5
    Updating git-testament-derive v0.1.14 -> v0.2.0
    Updating hashbrown v0.14.0 -> v0.14.1
    Updating hermit-abi v0.3.2 -> v0.3.3
    Updating indexmap v2.0.0 -> v2.0.2
    Updating indicatif v0.17.6 -> v0.17.7
    Updating io-uring v0.6.1 -> v0.6.2
    Updating libc v0.2.147 -> v0.2.149
    Updating libm v0.2.7 -> v0.2.8
    Updating libmimalloc-sys v0.1.34 -> v0.1.35
    Updating linux-raw-sys v0.4.5 -> v0.4.10
    Updating lock_api v0.4.10 -> v0.4.11
    Updating memchr v2.6.0 -> v2.6.4
    Updating mimalloc v0.1.38 -> v0.1.39
    Removing no-std-compat v0.4.1
    Updating num-traits v0.2.16 -> v0.2.17
    Updating object v0.32.0 -> v0.32.1
    Updating ordered-float v3.9.1 -> v3.9.2
    Updating os_str_bytes v6.5.1 -> v6.6.1
    Updating parking v2.1.0 -> v2.2.0
      Adding powerfmt v0.2.0
    Updating proc-macro2 v1.0.66 -> v1.0.69
    Updating rayon v1.7.0 -> v1.8.0
    Updating rayon-core v1.11.0 -> v1.12.0
    Updating regex v1.9.4 -> v1.10.2
    Updating regex-automata v0.3.7 -> v0.4.3
    Updating regex-syntax v0.7.5 -> v0.8.2
    Updating rustix v0.38.9 -> v0.38.19
    Updating rustls-webpki v0.101.4 -> v0.101.6
    Updating serde v1.0.188 -> v1.0.189
    Updating serde_bencode v0.2.3 -> v0.2.4
    Updating serde_derive v1.0.188 -> v1.0.189
    Updating serde_json v1.0.105 -> v1.0.107
    Updating sha1 v0.10.5 -> v0.10.6
    Updating simd-json v0.10.6 -> v0.10.7
    Updating smallvec v1.11.0 -> v1.11.1
    Updating socket2 v0.5.3 -> v0.5.4
    Removing subtle v2.5.0
    Updating syn v2.0.29 -> v2.0.38
    Updating thiserror v1.0.47 -> v1.0.49
    Updating thiserror-impl v1.0.47 -> v1.0.49
    Updating time v0.3.28 -> v0.3.30
    Updating time-core v0.1.1 -> v0.1.2
    Updating time-macros v0.2.14 -> v0.2.15
    Updating tokio v1.32.0 -> v1.33.0
    Updating tracing v0.1.37 -> v0.1.39
    Updating tracing-attributes v0.1.26 -> v0.1.27
    Updating tracing-core v0.1.31 -> v0.1.32
    Updating typenum v1.16.0 -> v1.17.0
    Updating unicode-ident v1.0.11 -> v1.0.12
    Updating unicode-width v0.1.10 -> v0.1.11
    Updating waker-fn v1.1.0 -> v1.1.1
    Updating walkdir v2.3.3 -> v2.4.0
    Updating winapi-util v0.1.5 -> v0.1.6
2023-10-18 22:55:01 +02:00
Joakim Frostegård
bf6e686ef2
Merge pull request #147 from greatest-ape/work-2023-08-30
common: make extract_response_peers code more idiomatic
2023-08-31 14:11:16 +02:00
Joakim Frostegård
abbd008d7e common: make extract_response_peers code more idiomatic 2023-08-30 01:15:37 +02:00
Joakim Frostegård
418b70b0fd
Merge pull request #146 from greatest-ape/work-2023-08-28
update some dependencies, improve udp invalid connection id integration test, clean up
2023-08-29 00:05:11 +02:00
Joakim Frostegård
c9ae2e6830 README: mention that udp io_uring implementation might be unsound 2023-08-28 23:58:12 +02:00
Joakim Frostegård
cdc817cbdf Update TODO 2023-08-28 23:55:16 +02:00
Joakim Frostegård
2e53c9a61f Remove non-functioning aquatic_ws.Dockerfile 2023-08-28 23:51:24 +02:00
Joakim Frostegård
9c8980a673 Remove unused/obsolete scripts 2023-08-28 23:39:30 +02:00
Joakim Frostegård
6c8abceecd Run cargo update
Updating clap v4.4.0 -> v4.4.1
    Updating clap_builder v4.4.0 -> v4.4.1
    Updating memchr v2.5.0 -> v2.6.0
    Updating nix v0.26.2 -> v0.26.4
    Updating regex v1.9.3 -> v1.9.4
    Updating regex-automata v0.3.6 -> v0.3.7
    Updating regex-syntax v0.7.4 -> v0.7.5
    Updating rustls v0.21.6 -> v0.21.7
    Updating time v0.3.27 -> v0.3.28
    Updating time-macros v0.2.13 -> v0.2.14
    Updating url v2.4.0 -> v2.4.1
2023-08-28 23:37:09 +02:00
Joakim Frostegård
fe8fce94ce udp: update constant_time_eq to v0.3.0 2023-08-28 23:36:25 +02:00
Joakim Frostegård
227bf6163c udp: invalid connection id integration test: test scrape request too 2023-08-28 23:33:09 +02:00
Joakim Frostegård
15051ec8f1
Merge pull request #145 from greatest-ape/work-2023-08-27
udp: add integration tests
2023-08-27 19:24:45 +02:00
Joakim Frostegård
e5a986eeec udp: split integration tests into separate files 2023-08-27 19:17:09 +02:00
Joakim Frostegård
10cd6f9a38 udp: integration: add access list tests 2023-08-27 19:04:43 +02:00
Joakim Frostegård
b2f2ecf5ef udp: integration: improve invalid connection id test 2023-08-27 18:36:54 +02:00
Joakim Frostegård
48e383b6a9 udp: integration: add test for invalid connection id, refactor 2023-08-27 18:20:38 +02:00
Joakim Frostegård
589d45a05d udp: integration test: test scrape too, refactor 2023-08-27 17:54:26 +02:00
Joakim Frostegård
20eef8677d udp: add integration test 2023-08-27 12:17:51 +02:00
Joakim Frostegård
2101d31144
Merge pull request #144 from greatest-ape/work-2023-08-26
improve extract_response_peers; run cargo update
2023-08-26 16:55:31 +02:00
Joakim Frostegård
ddbb5a4d9a common: improve test_extract_response_peers 2023-08-26 16:18:20 +02:00
Joakim Frostegård
271f1450f5 Run cargo update
Updating addr2line v0.20.0 -> v0.21.0
    Removing aho-corasick v0.7.20
    Removing aho-corasick v1.0.2
      Adding aho-corasick v1.0.4
    Updating anstyle v1.0.1 -> v1.0.2
    Updating anyhow v1.0.72 -> v1.0.75
    Updating backtrace v0.3.68 -> v0.3.69
    Updating base64 v0.21.2 -> v0.21.3
    Updating bitflags v2.3.3 -> v2.4.0
    Updating cc v1.0.79 -> v1.0.83
    Updating clap v4.3.19 -> v4.4.0
    Updating clap_builder v4.3.19 -> v4.4.0
    Updating clap_lex v0.5.0 -> v0.5.1
      Adding deranged v0.3.8
    Updating flate2 v1.0.26 -> v1.0.27
    Updating gimli v0.27.3 -> v0.28.0
 Downgrading hashbrown v0.13.2 -> v0.13.1
    Updating httpdate v1.0.2 -> v1.0.3
    Updating indicatif v0.17.5 -> v0.17.6
    Updating intrusive-collections v0.9.5 -> v0.9.6
    Updating io-uring v0.6.0 -> v0.6.1
    Updating libmimalloc-sys v0.1.33 -> v0.1.34
    Updating linux-raw-sys v0.4.3 -> v0.4.5
    Updating log v0.4.19 -> v0.4.20
    Removing memoffset v0.8.0
    Updating metrics-util v0.15.0 -> v0.15.1
    Updating mimalloc v0.1.37 -> v0.1.38
    Updating object v0.31.1 -> v0.32.0
    Updating ordered-float v3.7.0 -> v3.9.1
    Updating pin-project v1.1.2 -> v1.1.3
    Updating pin-project-internal v1.1.2 -> v1.1.3
    Updating pin-project-lite v0.2.10 -> v0.2.13
    Updating portable-atomic v1.4.2 -> v1.4.3
    Updating quote v1.0.32 -> v1.0.33
    Updating regex v1.9.1 -> v1.9.3
    Updating regex-automata v0.3.4 -> v0.3.6
    Updating rustix v0.38.4 -> v0.38.9
    Updating rustls v0.21.5 -> v0.21.6
    Updating rustls-webpki v0.101.2 -> v0.101.4
    Updating serde v1.0.178 -> v1.0.188
    Updating serde_derive v1.0.178 -> v1.0.188
    Updating serde_json v1.0.104 -> v1.0.105
    Updating simd-json v0.10.4 -> v0.10.6
    Updating slab v0.4.8 -> v0.4.9
    Updating syn v2.0.27 -> v2.0.29
    Updating thiserror v1.0.44 -> v1.0.47
    Updating thiserror-impl v1.0.44 -> v1.0.47
    Updating time v0.3.23 -> v0.3.27
    Updating time-macros v0.2.10 -> v0.2.13
    Updating tokio v1.29.1 -> v1.32.0
    Updating windows-targets v0.48.1 -> v0.48.5
    Updating windows_aarch64_gnullvm v0.48.0 -> v0.48.5
    Updating windows_aarch64_msvc v0.48.0 -> v0.48.5
    Updating windows_i686_gnu v0.48.0 -> v0.48.5
    Updating windows_i686_msvc v0.48.0 -> v0.48.5
    Updating windows_x86_64_gnu v0.48.0 -> v0.48.5
    Updating windows_x86_64_gnullvm v0.48.0 -> v0.48.5
    Updating windows_x86_64_msvc v0.48.0 -> v0.48.5
2023-08-26 15:48:02 +02:00
Joakim Frostegård
95422ff3f1 common: improve extract_response_peers 2023-08-26 15:46:52 +02:00
Joakim Frostegård
242fa29b8f
Merge pull request #143 from greatest-ape/work-2023-07-30
Update dependencies
2023-07-30 21:02:05 +02:00
Joakim Frostegård
7f01f4024a Upgrade hashbrown and indexmap crates 2023-07-30 20:32:30 +02:00
Joakim Frostegård
99d8436117 Run cargo update
Updating addr2line v0.19.0 -> v0.20.0
    Updating aho-corasick v1.0.1 -> v1.0.2
    Updating anstyle v1.0.0 -> v1.0.1
    Updating anyhow v1.0.71 -> v1.0.72
    Updating arrayvec v0.7.2 -> v0.7.4
    Updating backtrace v0.3.67 -> v0.3.68
      Adding bitflags v2.3.3
    Updating blake3 v1.3.3 -> v1.4.1
    Updating clap v4.3.1 -> v4.3.19
    Updating clap_builder v4.3.1 -> v4.3.19
    Updating colored v2.0.0 -> v2.0.4
    Updating compact_str v0.7.0 -> v0.7.1
    Removing constant_time_eq v0.2.5
      Adding constant_time_eq v0.2.6
      Adding constant_time_eq v0.3.0
    Updating cpufeatures v0.2.7 -> v0.2.9
    Updating crossbeam-epoch v0.9.14 -> v0.9.15
    Updating crossbeam-utils v0.8.15 -> v0.8.16
    Updating either v1.8.1 -> v1.9.0
    Updating errno v0.3.1 -> v0.3.2
    Updating form_urlencoded v1.1.0 -> v1.2.0
    Updating getrandom v0.2.9 -> v0.2.10
    Updating gimli v0.27.2 -> v0.27.3
    Updating halfbrown v0.2.2 -> v0.2.4
    Removing hermit-abi v0.2.6
    Removing hermit-abi v0.3.1
      Adding hermit-abi v0.3.2
    Updating hyper v0.14.26 -> v0.14.27
    Updating idna v0.3.0 -> v0.4.0
    Updating indicatif v0.17.4 -> v0.17.5
    Removing io-lifetimes v1.0.11
    Updating ipnet v2.7.2 -> v2.8.0
    Updating is-terminal v0.4.7 -> v0.4.9
    Updating itoa v1.0.6 -> v1.0.9
    Updating js-sys v0.3.63 -> v0.3.64
    Updating libc v0.2.144 -> v0.2.147
    Updating linux-raw-sys v0.3.8 -> v0.4.3
    Updating lock_api v0.4.9 -> v0.4.10
    Updating log v0.4.18 -> v0.4.19
      Adding memoffset v0.9.0
    Updating metrics v0.21.0 -> v0.21.1
    Removing miniz_oxide v0.6.2
    Updating num-traits v0.2.15 -> v0.2.16
    Updating num_cpus v1.15.0 -> v1.16.0
    Updating object v0.30.3 -> v0.31.1
    Updating once_cell v1.17.2 -> v1.18.0
    Updating os_str_bytes v6.5.0 -> v6.5.1
    Updating percent-encoding v2.2.0 -> v2.3.0
    Updating pin-project v1.1.0 -> v1.1.2
    Updating pin-project-internal v1.1.0 -> v1.1.2
    Updating pin-project-lite v0.2.9 -> v0.2.10
    Updating plotters v0.3.4 -> v0.3.5
    Updating plotters-backend v0.3.4 -> v0.3.5
    Updating plotters-svg v0.3.3 -> v0.3.5
    Updating portable-atomic v1.3.3 -> v1.4.2
    Updating privdrop v0.5.3 -> v0.5.4
    Updating proc-macro2 v1.0.59 -> v1.0.66
    Updating quote v1.0.28 -> v1.0.32
    Updating regex v1.8.3 -> v1.9.1
      Adding regex-automata v0.3.4
    Updating regex-syntax v0.7.2 -> v0.7.4
    Updating rustix v0.37.19 -> v0.38.4
    Updating rustls v0.21.1 -> v0.21.5
    Updating rustls-pemfile v1.0.2 -> v1.0.3
    Updating rustls-webpki v0.100.1 -> v0.101.2
    Updating rustversion v1.0.12 -> v1.0.14
    Updating ryu v1.0.13 -> v1.0.15
    Updating scopeguard v1.1.0 -> v1.2.0
    Updating serde v1.0.163 -> v1.0.178
    Updating serde_bytes v0.11.9 -> v0.11.12
    Updating serde_derive v1.0.163 -> v1.0.178
    Updating serde_json v1.0.96 -> v1.0.104
    Updating signal-hook v0.3.15 -> v0.3.17
    Updating simd-json v0.10.3 -> v0.10.4
    Updating simple_logger v4.1.0 -> v4.2.0
    Updating smallvec v1.10.0 -> v1.11.0
    Updating snafu v0.7.4 -> v0.7.5
    Updating snafu-derive v0.7.4 -> v0.7.5
    Updating syn v2.0.18 -> v2.0.27
    Updating thiserror v1.0.40 -> v1.0.44
    Updating thiserror-impl v1.0.40 -> v1.0.44
    Updating time v0.3.21 -> v0.3.23
    Updating time-macros v0.2.9 -> v0.2.10
    Updating tokio v1.28.2 -> v1.29.1
    Updating tracing-attributes v0.1.24 -> v0.1.26
    Updating unicode-ident v1.0.9 -> v1.0.11
    Updating url v2.3.1 -> v2.4.0
    Updating urlencoding v2.1.2 -> v2.1.3
    Updating want v0.3.0 -> v0.3.1
    Updating wasm-bindgen v0.2.86 -> v0.2.87
    Updating wasm-bindgen-backend v0.2.86 -> v0.2.87
    Updating wasm-bindgen-macro v0.2.86 -> v0.2.87
    Updating wasm-bindgen-macro-support v0.2.86 -> v0.2.87
    Updating wasm-bindgen-shared v0.2.86 -> v0.2.87
    Updating web-sys v0.3.63 -> v0.3.64
    Updating windows-targets v0.48.0 -> v0.48.1
2023-07-30 20:21:27 +02:00
Joakim Frostegård
4d68719355
Merge pull request #141 from greatest-ape/work-2023-06-04
Add aquatic_peer_id crate for peer client parsing, use in aquatic_udp
2023-06-15 09:33:09 +02:00
Joakim Frostegård
0204b6fcc2 ws: support serving metrics on peer id prefixes 2023-06-14 11:36:08 +02:00
Joakim Frostegård
6675126d08 ws: add prometheus peer client metrics 2023-06-14 11:09:23 +02:00
Joakim Frostegård
32aa34366c peer_id: make quickcheck optional but default feature 2023-06-14 09:49:05 +02:00
Joakim Frostegård
bbfe54670a peer_id: don't surround version with parentheses when displaying 2023-06-14 09:46:22 +02:00
Joakim Frostegård
4baba7b34b peer_id: fix deluge version parsing 2023-06-14 09:44:44 +02:00
Joakim Frostegård
8323d963c9 udp: don't incorrectly remove peers in client counting 2023-06-10 00:05:23 +02:00