Commit graph

67 commits

Author SHA1 Message Date
Alain Zscheile
bf46142dab decode XferInner only when appropriate
That is, make sure that the signature is valid before decoding
2022-11-26 13:00:53 +01:00
Alain Zscheile
025b4a826f make TTL hop-based
this avoid dozens of issues regarding time warps, and also solves the issue
of infinitely cycling packets when the system is under saturation, as now
packets expire after passing the set amount of hops
2022-11-26 12:55:48 +01:00
Alain Zscheile
ecf27c1f01 always discard already seen packets 2022-11-26 02:29:26 +01:00
Alain Zscheile
1bb7597803 README: add missing 'import Config' 2022-11-26 02:13:38 +01:00
Alain Zscheile
163979612d distr: fix superfluous requestpull due to bothed origin skip 2022-11-26 02:01:16 +01:00
Alain Zscheile
8ecdfa6701 debug SessionManager (superfluous requestpull) 2022-11-26 01:57:49 +01:00
Alain Zscheile
a81c306107 fix state corruption in SessionManager 2022-11-26 01:46:34 +01:00
Alain Zscheile
d873117a93 README: document basic usage 2022-11-26 01:34:10 +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
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