Commit graph

44 commits

Author SHA1 Message Date
Alain Zscheile
d8f2dc3e66 batch calls to SessionManager and PacketSpool 2022-11-26 22:13:58 +01:00
Alain Zscheile
5abd39c1e3 fix handling of edge cases 2022-11-26 21:56:29 +01:00
Alain Zscheile
f45bdf405a chore: run 'mix format' 2022-11-26 21:51:37 +01:00
Alain Zscheile
f4eca16582 session keys for upstream connections should be two-sided 2022-11-26 21:50:49 +01:00
Alain Zscheile
6b2c5b2695 only call SessionManager when sesskey is not nil 2022-11-26 18:35:05 +01:00
Alain Zscheile
35a393c7fa pull: choose packet source based upon if sesskey is set 2022-11-26 16:04:21 +01:00
Alain Zscheile
dc7db318e8 first try at persistence 2022-11-26 15:34:51 +01:00
Alain Zscheile
0d508cc142 directly use exit keyword 2022-11-26 00:58:04 +01:00
Alain Zscheile
8cf076bf5f Floof.serve should be always tail-recursive 2022-11-26 00:54:03 +01:00
Alain Zscheile
e4d71e0b88 put DistributorSeen into separate module to prevent indirection via Distributor 2022-11-26 00:23:53 +01:00
Alain Zscheile
4c5c0cb865 SessMgr/Distr: improve handling of session hand-over 2022-11-26 00:00:44 +01:00
Alain Zscheile
66fe833492 fix formatting and improve SessMgr set_for_all loop 2022-11-25 23:11:26 +01:00
Alain Zscheile
19409b738b make session handling more robust
previously, a crashing client process would take the whole backlog
with it. now, the SessionManager manages the backlog if a session is setup
2022-11-25 17:16:44 +01:00
Alain Zscheile
682d46baef sessmgr: rename deattach -> detach 2022-11-25 02:00:15 +01:00
Alain Zscheile
7e1b6ff303 omit unnecessary double check of Enum.empty? surrounding send_summary 2022-11-25 01:57:25 +01:00
Alain Zscheile
a6e99faf74 omit unnecessary summary packets 2022-11-25 01:50:11 +01:00
Alain Zscheile
491037e900 fix crash in partition_hashes due to missing Map->list conversion 2022-11-25 01:46:51 +01:00
Alain Zscheile
7d5a88bed8 protocol decode only works on bitstrings 2022-11-25 01:44:19 +01:00
Alain Zscheile
2503fe9a11 more debugging 2022-11-25 01:35:02 +01:00
Alain Zscheile
80aefd160a fix crash at summary building 2022-11-25 01:31:00 +01:00
Alain Zscheile
2a6405cd71 fix+allow usage of session keys for upstream connections 2022-11-25 01:29:17 +01:00
Alain Zscheile
f341237271 fix crash at startup when upstream is given 2022-11-25 01:17:23 +01:00
Alain Zscheile
2ed3e90018 put backlogged stuff properly back into session to prevent message leak 2022-11-24 23:14:11 +01:00
Alain Zscheile
3b9aa3f301 get rid of 'id' field in messages, use Blake2b hash instead 2022-11-24 23:11:09 +01:00
Alain Zscheile
166dbee97b handle closing tcp connection better 2022-11-24 21:15:35 +01:00
Alain Zscheile
7981edd41f correctly register session key, fix lru race condition in tests 2022-11-24 20:57:09 +01:00
Alain Zscheile
47f4dadad7 support adjusting listening options 2022-11-24 20:29:30 +01:00
Alain Zscheile
825b65f9ee run 'mix format' 2022-11-24 20:01:34 +01:00
Alain Zscheile
8f8db8c841 fix invalid socket calling convention 2022-11-24 18:58:09 +01:00
Alain Zscheile
0c9e6d2b70 add :gen_tcp.close calls 2022-11-24 18:41:29 +01:00
Alain Zscheile
6c3c295f43 distributor: use GenServer instead 2022-11-24 18:34:08 +01:00
Alain Zscheile
625afcbd55 first try at integration test 2022-11-24 16:30:14 +01:00
Alain Zscheile
00a0fcaef8 add more message utilities 2022-11-24 11:19:30 +01:00
Alain Zscheile
77142702b3 Floof: export 'official' function for message emitting 2022-11-24 11:03:26 +01:00
Alain Zscheile
8b7b4cc650 omit another double-decode of XferInner; explicit ACK for messages 2022-11-24 10:53:14 +01:00
Alain Zscheile
71992dc5d4 Floof: factor out summary sending 2022-11-24 10:41:41 +01:00
Alain Zscheile
cf71af1d98 Floof: inline handle_outgoing 2022-11-24 10:36:51 +01:00
Alain Zscheile
9dc3bbed71 add support for automatic connection to upstream hosts 2022-11-24 10:34:32 +01:00
Alain Zscheile
420ba2fd64 Floof/server: use Map / MapSet where appropriate, instead of lists 2022-11-24 10:02:42 +01:00
Alain Zscheile
39c2930b52 cache get_xfer_id calls 2022-11-24 09:46:49 +01:00
Alain Zscheile
2f97c28add allow subscribing to sessions 2022-11-24 01:33:43 +01:00
Alain Zscheile
f03838ba6e make the boundary between XferBlob and XferInner more explicit 2022-11-23 10:54:26 +01:00
Alain Zscheile
a048ffb70a baseline stuff 2022-11-23 00:17:46 +01:00
Alain Zscheile
9b189b7f4f initial commit 2022-11-22 17:35:08 +01:00