Joakim Frostegård
e0c4a4eaf7
ws: allow peers to use multiple PeerIds, but only one per torrent
2022-10-09 22:21:06 +02:00
Joakim Frostegård
b6287d12e4
ws, http: name threads properly and include indices
2022-09-25 12:36:20 +02:00
Joakim Frostegård
c76d7442e2
Use regular (ahash) IndexMap for PeerMaps
2022-08-06 16:53:49 +02:00
Joakim Frostegård
c0ed0eb7db
Merge pull request #86 from greatest-ape/more-compact-peers
...
Reduce ValidUntil size; reduce size of various ws structs; improve aquatic_http_protocol
2022-08-06 12:09:41 +02:00
Joakim Frostegård
fcf18c845f
Reduce ValidUntil size; reduce size of various ws structs
2022-08-01 14:15:06 +02:00
Joakim Frostegård
9b2c5b97df
ws: add logging in create_tcp_listener
2022-07-23 17:35:11 +02:00
Joakim Frostegård
b79636730c
ws: add some info level logging
2022-07-19 23:45:15 +02:00
Joakim Frostegård
7255202268
ws: add error message context when loading certificate files
2022-07-19 17:30:58 +02:00
Joakim Frostegård
7b06bf8736
ws: don't attempt to parse TLS files when running without TLS
2022-07-19 17:29:13 +02:00
Joakim Frostegård
355f3e04c6
Update ws code comments; update TODO.md
2022-07-19 17:01:07 +02:00
Joakim Frostegård
a62b2033a5
ws: avoid X-Forwarded-For parsing since we only need to know IPv4/IPv6
2022-07-19 16:12:00 +02:00
Joakim Frostegård
3b94b8e588
WIP: ws: parse X-FORWARDED-FOR headers
2022-07-19 00:56:27 +02:00
Joakim Frostegård
88971cd870
ws: rename enable_http_health_check to enable_http_health_checks
2022-07-18 23:29:45 +02:00
Joakim Frostegård
a16ce91d46
ws: make TLS optional, allow HTTP health checks without TLS only
2022-07-18 23:23:36 +02:00
Joakim Frostegård
018f32e9e9
ws: add optional HTTP 200 response for GET /health without TLS
2022-07-18 22:09:34 +02:00
Joakim Frostegård
720ceacf99
ws: remove peer from all torrent maps when connection is closed
2022-07-05 13:13:53 +02:00
Joakim Frostegård
b30da1a930
ws: store peer_id and announced info hashes in ConnectionReference
2022-07-05 12:03:51 +02:00
Joakim Frostegård
cedf0b61ca
Exit with error message on unrecognized config keys
2022-07-05 11:26:46 +02:00
Joakim Frostegård
12fc8bcf1e
ws: rename request workers to swarm workers
2022-07-04 11:55:53 +02:00
Joakim Frostegård
fb2794643d
udp, common: rename request workers to swarm workers
2022-07-04 11:49:39 +02:00
Joakim Frostegård
bd6764afaf
Move aquatic_cli_helpers code into aquatic_common and remove crate
2022-04-06 19:02:39 +02:00
Joakim Frostegård
f50c8970b5
aquatic_ws: use PanicSentinel, simplify lib.rs
2022-04-06 18:44:09 +02:00
Joakim Frostegård
3f46db01ff
Run cargo fmt
2022-04-06 01:14:47 +02:00
Joakim Frostegård
cb2f7483d3
Return anyhow::Result on PrivDropper waiting and socket creation
2022-04-05 23:15:29 +02:00
Joakim Frostegård
c888017072
Improve privilege dropping; run cargo fmt
2022-04-05 01:26:40 +02:00
Joakim Frostegård
908e18360c
Merge branch 'master' into cpu-pinning-2022-03-30
2022-04-04 22:49:25 +02:00
Joakim Frostegård
6c149331dc
Rewrite CpuPinningConfig implementation to support aquatic_toml_config
2022-04-04 22:38:47 +02:00
Joakim Frostegård
58ac5e7fe8
ws: use create_rustls_config from aquatic_common
2022-04-03 19:46:05 +02:00
Joakim Frostegård
fb607ac0c2
Improve CPU pinning
2022-03-30 22:53:15 +02:00
Joakim Frostegård
5ac5d20b6e
cargo fmt
2022-03-24 16:34:13 +01:00
Joakim Frostegård
f5b1cd5525
Add command-line option for printing version and commit info
2022-03-24 16:17:17 +01:00
Joakim Frostegård
f0a1b8e1e1
ws: rewrite connection cleaning retain fn
2022-03-23 21:38:30 +01:00
Joakim Frostegård
5176b18ef9
common: rename AHashIndexMap to AmortizedIndexMap
2022-03-20 19:42:46 +01:00
Joakim Frostegård
06a716f78a
ws: implement network.only_ipv6 and network.tcp_backlog
2022-03-20 18:41:41 +01:00
Joakim Frostegård
66232df6d2
ws: remove pub visibility where not needed
2022-03-18 15:47:14 +01:00
Joakim Frostegård
193ad1689f
ws: move code from common.rs into lib.rs and request.rs
2022-03-18 15:45:07 +01:00
Joakim Frostegård
667cf04085
ws: remove mio implementation
2022-03-18 15:15:34 +01:00
Joakim Frostegård
14a4c10546
s/toml_config/aquatic_toml_config/
2022-02-19 15:11:00 +01:00
Joakim Frostegård
8889ab586c
Use CanonicalSocketAddr in ws and http; remove old option from common
2022-02-03 19:29:21 +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
67c4c02bbd
aquatic_ws: mio: replace native_tls with rustls, rewrite connection state logic completely ( #38 )
...
* ws: mio: use rustls, rewrite Connection logic
* ws: mio: improve poll register/deregister handling
* ws: mio: work on type-level poll registry safety
* ws: mio: use stronger poll registry type-level guarantees
* ws: mio: fix stream reading
* ws: clean up, run fmt
* ws: mio: don't require registered connection for writing, improve docs
* ws: mio: add Connection::get_meta(), make Connection::meta private
* ws: mio: add ConnectionMap struct; remove utils.rs
* ws: mio: move token counter into ConnectionMap, improve docs
* ws: mio: connection: move Connection struct above state structs
* Update TODO
* ws: fix build errors
* ws: upgrade to tungstenite 0.16
* ws load test: don't panic on Close message; print shorter errors
* ws: fix socket worker bugs, add log statements
* ws: mio: wait for write availability if would block for ws messages
* Update README
* ws: mio: limit channels & queues; read 1 message only; other fixes
* ws: mio: send local responses each event; decrease channel size
* Update TODO
* ws: mio: limit ws send queue, fixing memory leak; limit pending messages
Also change some log output levels and run rustfmt
* Update TODO
* Update TODO
2021-12-16 16:09:36 +01:00
Joakim Frostegård
222fac0e09
Improve aquatic_ws glommio implementation, fixing memory leak ( #37 )
...
* ws: upgrade tungstenite and async-tungstenite to 0.16
* ws: use latest glommio
* ws: glommio: add config key connection_cleaning_interval
* ws: glommio: limit socket worker local channel size
Quick fix for memory leak
* ws: glommio: use prioritized task queue for sending responses
This is a start on trying to fix the large amount of responses
being dropped due to local response channel being full
* scripts/watch-threads.sh: don't highlight changes
* ws: glommio: await when sending responses from shared to local
* ws: glommio: limit ws message queue; add lots of ::log::warn for debug
* ws: glommio: add timeout to send_out_message, maybe pinpointing issue
* ws: glommio: clean up, tweak channel sizes; update TODO
* ws: glommio: set send timeout to 10s, add backpressure, accept drops
* ws: glommio: yield if needed in ConnectionReader backoff loop
* ws load test: add config key connection_creation_interval_ms
* ws load test: don't print "run connection" when opening connection
* ws load test: rename config num_connection to num_connections_per_worker
* ws load test config: improve order of code in file
* ws: glommio: info-level log for socket send timeout
* ws glommio: clean idle connections, improve cleaning code
* ws: glommio: make ConnectionWriter::send_error_response fallible; fmt
* ws: glommio: store JoinHandle in conn reference, cancel task on clean
* add scripts/heaptrack.sh
* Update TODO
2021-12-11 18:50:05 +01:00
Joakim Frostegård
baec259feb
ws: use file naming more in line with other impls; other small fixes
2021-11-27 18:35:45 +01:00
Joakim Frostegård
d20e57d861
ws: use idiomatic folder structure
2021-11-27 18:19:43 +01:00
Joakim Frostegård
321add8455
udp glommio, ws: give worker threads names
2021-11-11 19:59:21 +01:00
Joakim Frostegård
40df1b587f
run cargo fmt
2021-11-11 17:53:02 +01:00
Joakim Frostegård
4f8328b70a
Feature-gate CPU pinning, since it only works on Linux
2021-11-09 11:40:16 +01:00
Joakim Frostegård
e86410291a
cpu pinning: set affinity to multiple hyperthreads, fix issues
2021-11-07 13:31:03 +01:00
Joakim Frostegård
b54694bbc0
aquatic_ws: improve cpu pinning
2021-11-07 11:46:48 +01:00
Joakim Frostegård
1d34ba25bb
aquatic_ws: mio: release torrent map lock quicker in handlers
2021-11-05 13:40:30 +01:00