Adam Ierymenko
|
f102fd7f92
Extend in-band world updates to handle moons too.
|
9 lat temu |
Adam Ierymenko
|
64774d0d4f
Replace piecemeal designation of upstreams with the concept of moons, which is simpler and easier to use and inherits all the cool live update stuff of worlds (now called planets) and global roots.
|
9 lat temu |
Adam Ierymenko
|
84732fcb12
Wire through external path lookup. Static paths should now work.
|
9 lat temu |
Adam Ierymenko
|
42ba70e79e
Replace long callback arg list with struct, and implement path whitelisting, path blacklisting, and local.conf support for roles.
|
9 lat temu |
Adam Ierymenko
|
c61ca1dea2
Keep connections up for netconf stuff as well as frames.
|
9 lat temu |
Adam Ierymenko
|
9f550292fe
Simply network auth logic and always sent error on auth failure even for unknown networks to prevent forensics.
|
9 lat temu |
Adam Ierymenko
|
d3524f3609
Refactor COM stuff a bit, and respond to COM requests a bit more readily for rapid setup. Will need to revisit later.
|
9 lat temu |
Adam Ierymenko
|
5b6d27e659
Implement relay policy, and setting multicast limit to 0 now disables multicast on the network as would be expected.
|
9 lat temu |
Adam Ierymenko
|
cba37c6107
Add a few more rate limit gates for anti-DOS hardening.
|
9 lat temu |
Adam Ierymenko
|
ea1da3321a
Rate gate requests for COM.
|
9 lat temu |
Adam Ierymenko
|
ab9afbc749
(1) Public networks now get COMs even though they do not gate with them since they will need them to push auth for multicast stuff, (2) added a bunch of rate limit circuit breakers for anti-DOS, (3) cleanup.
|
9 lat temu |
Adam Ierymenko
|
0d4109a9f1
More refactoring to clean up code, and add a gate function to make sure we do not handle OK packets we did not expect. This hardens up a few potential edge cases around security, since such messages might be used to e.g. pollute a cache and DOS under certain conditions.
|
9 lat temu |
Adam Ierymenko
|
c7a4da3dd3
Turns out we do not need to pass network to receive().
|
9 lat temu |
Adam Ierymenko
|
1908aa55f5
Refactor MULTICAST_LIKE pushing to eliminate redundant and unnecessary pushes and simplify code.
|
9 lat temu |
Adam Ierymenko
|
a7d988745b
Use ECHO instead of HELLO where possible.
|
9 lat temu |
Adam Ierymenko
|
ff9f8b1c2b
Typo fix.
|
9 lat temu |
Adam Ierymenko
|
b5c86b6ba4
Bunch more path refactoring. Peers no longer forget paths, but do not normally use expired paths. Expired paths might still be tried if nothing else is reachable.
|
9 lat temu |
Adam Ierymenko
|
f2d2df2b11
Cluster build fix.
|
9 lat temu |
Adam Ierymenko
|
48a374c82c
(1) fix crazy bug introduced in doRENDEZVOUS(), (2) reclaim Paths after paths[] condense, (3) fix an edge case around symmetric NAT and external IP change detection.
|
9 lat temu |
Adam Ierymenko
|
8a2e8bd585
Rework how paths are set as remote cluster preferred. The code is now clearer and cluster preference indications are now very sticky as they should be.
|
9 lat temu |
Adam Ierymenko
|
43780742b0
comments, docs
|
9 lat temu |
Adam Ierymenko
|
d7f2287ce9
More tweaks to path behavior.
|
9 lat temu |
Adam Ierymenko
|
eebcf08084
Tweaks to new Path code for dual-stack operation, and other fixes.
|
9 lat temu |
Adam Ierymenko
|
4992ac2d9f
Cluster sub-optimal is in fact necessary...
|
9 lat temu |
Adam Ierymenko
|
4f8253dcdb
Tweaks to path handling...
|
9 lat temu |
Adam Ierymenko
|
d1101441b3
Tweak some timings.
|
9 lat temu |
Adam Ierymenko
|
e8f6b4b5d3
Rest of big Path canonicalization refactor.
|
9 lat temu |
Adam Ierymenko
|
584228b2b5
Dead code removal, and get rid of reliable() because we will no longer make that distinction.
|
9 lat temu |
Adam Ierymenko
|
c476285bd6
Harden PUSH_DIRECT_PATHS and simplify things by only doing it on receive when hops>0 and trust has been established.
|
9 lat temu |
Adam Ierymenko
|
e1310a764a
More cleanup and removal of cruft due to obsolete network-specific relays (will be replaced with federation stuff).
|
9 lat temu |