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
fab022df18
chore: run mix format
2022-11-26 16:04:44 +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
e5c0c9ea2b
only store packets when we have any sessions
2022-11-26 15:49:39 +01:00
Alain Zscheile
b0964e369f
make packet spool errors fatal
2022-11-26 15:46:02 +01:00
Alain Zscheile
1f056a298c
fix simple bugs in persistence
2022-11-26 15:42:15 +01:00
Alain Zscheile
dc7db318e8
first try at persistence
2022-11-26 15:34:51 +01:00
Alain Zscheile
61312e68ce
add PacketSpool manager
2022-11-26 14:30:53 +01:00
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