Commit graph

326 commits

Author SHA1 Message Date
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
064d6fb14b Update TODO 2022-07-18 23:31:18 +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
720ceacf99 ws: remove peer from all torrent maps when connection is closed 2022-07-05 13:13:53 +02:00
Joakim Frostegård
b06c12e9a5 Update TODO 2022-07-05 11:38:50 +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
a852b290ca Add cli flag for printing parsed config 2022-07-05 11:15:53 +02:00
Joakim Frostegård
a7837ebffb Update TODO 2022-07-04 12:01:53 +02:00
Joakim Frostegård
5cfd270ab7 udp: add optional resending buffer for responses that failed to send 2022-06-28 00:56:29 +02:00
Joakim Frostegård
783c8c4bd9 Update TODO 2022-06-27 22:32:05 +02:00
Joakim Frostegård
b438588f01 Update TODO 2022-06-23 01:47:44 +02:00
Joakim Frostegård
e69f489b1a Update TODO 2022-05-10 23:12:59 +02:00
Joakim Frostegård
201879c519 Update TODO 2022-04-15 23:59:18 +02:00
Joakim Frostegård
cad74df689 Update TODO 2022-04-14 23:06:54 +02:00
Joakim Frostegård
10cb0849d6 Update TODO 2022-04-14 17:51:15 +02:00
Joakim Frostegård
0685c99349 Update TODO 2022-04-13 22:31:02 +02:00
Joakim Frostegård
113fe8f5fd Update TODO 2022-04-06 19:55:12 +02:00
Joakim Frostegård
b4d1c46595 Update TODO 2022-04-06 02:23:06 +02:00
Joakim Frostegård
94ee4027e8 Update TODO 2022-04-06 01:53:00 +02:00
Joakim Frostegård
6f30d05453 Update TODO 2022-04-05 01:33:02 +02:00
Joakim Frostegård
9dfc3a82ad Update TODO 2022-04-04 12:49:29 +02:00
Joakim Frostegård
44b50204e2 Switch to thin LTO; add Cargo profile release-debug 2022-04-04 12:32:42 +02:00
Joakim Frostegård
9f8f80a17b http protocol: remove AnnounceRequest::compact, fail parsing if set to 0 2022-04-04 12:16:13 +02:00
Joakim Frostegård
71c070cf98 Update TODO 2022-04-04 12:07:34 +02:00
Joakim Frostegård
98e7e5cc13 http_protocol: implement axum IntoResponse, use in http_private 2022-04-03 20:20:51 +02:00
Joakim Frostegård
5e79df8e7e Update TODO 2022-04-03 19:52:33 +02:00
Joakim Frostegård
44f4474fb2 Update TODO 2022-04-03 00:56:54 +02:00
Joakim Frostegård
6e97bff93f Update TODO 2022-04-02 14:21:44 +02:00
Joakim Frostegård
4e79bd334a Update TODO 2022-03-31 12:29:35 +02:00
Joakim Frostegård
34857910b0 Update TODO 2022-03-24 16:33:34 +01:00
Joakim Frostegård
894cb215ea Update TODO 2022-03-20 19:43:14 +01:00
Joakim Frostegård
66dd92e575 Update TODO 2022-03-20 18:48:07 +01:00
Joakim Frostegård
e3ce111548 Reorganize and clean up TODO, add some entries 2022-02-20 00:44:56 +01:00
Joakim Frostegård
0d501dc833 Update TODO 2022-02-19 15:19:42 +01:00
Joakim Frostegård
348c8a5400 Update TODO 2022-02-03 19:31: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
f14ab8e351 Update TODO 2021-11-29 11:04:52 +01:00
Joakim Frostegård
adda2bd282 Update TODO 2021-11-28 13:13:15 +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
deac3898ef Update TODO 2021-11-26 16:08:23 +01:00
Joakim Frostegård
2e3f7a4c9f Update TODO 2021-11-20 15:15:18 +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
de52d35357 Update TODO 2021-11-19 02:45:48 +01:00
Joakim Frostegård
3d88689c77 Update TODO 2021-11-18 23:03:54 +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
b5643aa7ab Update TODO 2021-11-18 22:42:37 +01:00