Commit graph

108 commits

Author SHA1 Message Date
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
ffc32e3036 distr: completely get rid of key handling 2022-11-26 00:04:11 +01:00
Alain Zscheile
4c5c0cb865 SessMgr/Distr: improve handling of session hand-over 2022-11-26 00:00:44 +01:00
Alain Zscheile
f4ae49db83 distr: fix wrong process linking 2022-11-25 23:49:07 +01:00
Alain Zscheile
f5fc1b0033 SessionManager: factor out subscription management 2022-11-25 23:40:12 +01:00
Alain Zscheile
66fe833492 fix formatting and improve SessMgr set_for_all loop 2022-11-25 23:11:26 +01:00
Alain Zscheile
aac69ef4bc SessionManager: get rid of code duplication 2022-11-25 23:08:23 +01:00
Alain Zscheile
5bcccba4e8 improve SessionManager further 2022-11-25 22:58:09 +01:00
Alain Zscheile
cfc7b82864 README: add note about libsodium 2022-11-25 22:42: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
b0e670f02e use erlang R25 2022-11-25 13:35:06 +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
943dd5a236 fix compilation in fresh env 2022-11-25 00:42:44 +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
98bfe3c98b make it possible to use multiple LruCache instances 2022-11-24 20:01:09 +01:00
Alain Zscheile
de9c79016a add LruCache impl 2022-11-24 19:38:32 +01:00
Alain Zscheile
ba863a6a05 add prod config to .gitignore 2022-11-24 19:07:57 +01:00
Alain Zscheile
05eb710fa2 make the test env the default, user should override the env in their config 2022-11-24 19:06:37 +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
49508feb9d fix warning message about {:ok, :done} 2022-11-24 11:00:11 +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
1e52915076 distr/sessmgr: run loop in Agent to share memory 2022-11-24 09:53:34 +01:00
Alain Zscheile
39c2930b52 cache get_xfer_id calls 2022-11-24 09:46:49 +01:00
Alain Zscheile
83ae614581 distr: fix remaining Enum access 2022-11-24 02:05:12 +01:00
Alain Zscheile
f0d84d7817 distrs/sessmgr: properly integrate sessions 2022-11-24 02:00:36 +01:00
Alain Zscheile
2f97c28add allow subscribing to sessions 2022-11-24 01:33:43 +01:00
Alain Zscheile
3671033f6d +SessionManager 2022-11-24 00:56:38 +01:00