Commit graph

108 commits

Author SHA1 Message Date
Alain Zscheile
d26c73179f prune unavailable packets from sessions 2022-11-28 01:05:32 +01:00
Alain Zscheile
4917ffaab6 add logfile backend 2022-11-28 00:54:25 +01:00
Alain Zscheile
e44eafd6bb better information about removed packets 2022-11-28 00:37:45 +01:00
Alain Zscheile
08a3df4c1a add ability to get list of all registered hashes from sessions 2022-11-28 00:35:28 +01:00
Alain Zscheile
9b03d7e482 warn about vanished packets 2022-11-28 00:31:42 +01:00
Alain Zscheile
eb59c9b9ae provide hard backpressure in distribution 2022-11-28 00:24:45 +01:00
Alain Zscheile
c0a210fa6e temporary: log presented hashes 2022-11-28 00:03:52 +01:00
Alain Zscheile
b10928e533 another try at fixing timeout issues 2022-11-27 23:37:47 +01:00
Alain Zscheile
63ac6567b6 replace all infinities with 10s 2022-11-27 23:22:26 +01:00
Alain Zscheile
ccbe916aeb fix: invalid MapSet usage 2022-11-27 23:17:25 +01:00
Alain Zscheile
83327c71dd prevent dead-lock during garbage-collection 2022-11-27 23:12:03 +01:00
Alain Zscheile
771854002f fix remaining timeouts 2022-11-27 23:00:49 +01:00
Alain Zscheile
5c5d2e3355 refactor: SessionManager should use GenServer (prevents hard-to-avoid timeouts) 2022-11-27 22:50:14 +01:00
Alain Zscheile
93f9852771 make garbage collection periodic to avoid bursts 2022-11-27 22:23:15 +01:00
Alain Zscheile
355d559195 coalesce drop notifications 2022-11-27 21:52:41 +01:00
Alain Zscheile
30daf44281 Distributor should excert backpressure due to filtering overhead 2022-11-27 21:46:15 +01:00
Alain Zscheile
c74d1b061c refactor(PacketSpool): :keep_only should be a call, make :fetch more resilient 2022-11-27 19:18:12 +01:00
Alain Zscheile
85e31bbca0 scaling fix: coalesce session push notifications 2022-11-27 19:04:15 +01:00
Alain Zscheile
d97a7bff81 SessionManager: fix state corruption 2022-11-27 17:33:22 +01:00
Alain Zscheile
35b82e3a7b SessionManager: fix misuse of :dets.delete_object 2022-11-27 17:30:48 +01:00
Alain Zscheile
3ed0806df9 fix SessionManager set_for_all 2022-11-27 17:24:39 +01:00
Alain Zscheile
faec74dc0c debug Distributor 2022-11-27 17:15:45 +01:00
Alain Zscheile
5206a83324 get rid of diverging SessionPushed behavior 2022-11-27 17:06:22 +01:00
Alain Zscheile
cfae3386c5 fix SessionManager crash on MapSet/all_keys 2022-11-27 17:00:58 +01:00
Alain Zscheile
73ae3ebe6e fix SessionPushed handling 2022-11-27 16:56:29 +01:00
Alain Zscheile
3ac8b8e07c increase reliability of sessions 2022-11-27 13:30:17 +01:00
Alain Zscheile
7bbf59625a add ability to supply arbitrary filters 2022-11-27 00:40:44 +01:00
Alain Zscheile
740bee0073 chore: update usage tutorial 2022-11-26 23:45:38 +01:00
Alain Zscheile
c48367ff09 send public key with every message
this is more efficient and solves key distribution concerns
2022-11-26 23:41:56 +01:00
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