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.
|
8 years ago |
Adam Ierymenko
|
84732fcb12
Wire through external path lookup. Static paths should now work.
|
8 years ago |
Adam Ierymenko
|
42ba70e79e
Replace long callback arg list with struct, and implement path whitelisting, path blacklisting, and local.conf support for roles.
|
8 years ago |
Adam Ierymenko
|
c61ca1dea2
Keep connections up for netconf stuff as well as frames.
|
8 years ago |
Adam Ierymenko
|
9f550292fe
Simply network auth logic and always sent error on auth failure even for unknown networks to prevent forensics.
|
9 years ago |
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 years ago |
Adam Ierymenko
|
5b6d27e659
Implement relay policy, and setting multicast limit to 0 now disables multicast on the network as would be expected.
|
9 years ago |
Adam Ierymenko
|
cba37c6107
Add a few more rate limit gates for anti-DOS hardening.
|
9 years ago |
Adam Ierymenko
|
ea1da3321a
Rate gate requests for COM.
|
9 years ago |
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 years ago |
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 years ago |
Adam Ierymenko
|
c7a4da3dd3
Turns out we do not need to pass network to receive().
|
9 years ago |
Adam Ierymenko
|
1908aa55f5
Refactor MULTICAST_LIKE pushing to eliminate redundant and unnecessary pushes and simplify code.
|
9 years ago |
Adam Ierymenko
|
a7d988745b
Use ECHO instead of HELLO where possible.
|
9 years ago |
Adam Ierymenko
|
ff9f8b1c2b
Typo fix.
|
9 years ago |
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 years ago |
Adam Ierymenko
|
f2d2df2b11
Cluster build fix.
|
9 years ago |
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 years ago |
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 years ago |
Adam Ierymenko
|
43780742b0
comments, docs
|
9 years ago |
Adam Ierymenko
|
d7f2287ce9
More tweaks to path behavior.
|
9 years ago |
Adam Ierymenko
|
eebcf08084
Tweaks to new Path code for dual-stack operation, and other fixes.
|
9 years ago |
Adam Ierymenko
|
4992ac2d9f
Cluster sub-optimal is in fact necessary...
|
9 years ago |
Adam Ierymenko
|
4f8253dcdb
Tweaks to path handling...
|
9 years ago |
Adam Ierymenko
|
d1101441b3
Tweak some timings.
|
9 years ago |
Adam Ierymenko
|
e8f6b4b5d3
Rest of big Path canonicalization refactor.
|
9 years ago |
Adam Ierymenko
|
584228b2b5
Dead code removal, and get rid of reliable() because we will no longer make that distinction.
|
9 years ago |
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 years ago |
Adam Ierymenko
|
e1310a764a
More cleanup and removal of cruft due to obsolete network-specific relays (will be replaced with federation stuff).
|
9 years ago |
Adam Ierymenko
|
00fd9c3a15
It builds... almost ready to test some rules engine stuff.
|
9 years ago |