Adam Ierymenko
|
3587aa1ea7
|
Add and send certificates of representation to tell people what our valid upstreams are. These are not used yet but will be needed for future privacy modes, etc. Also some cleanup.
|
9 years ago |
Adam Ierymenko
|
dcb1233b0d
|
Slight refactor to RENEDEZVOUS sending code for federation.
|
9 years ago |
Adam Ierymenko
|
9f7919f71f
|
Add comments to join ("orbit") moons.
|
9 years ago |
Adam Ierymenko
|
f102fd7f92
|
Extend in-band world updates to handle moons too.
|
9 years ago |
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 years ago |
Adam Ierymenko
|
84732fcb12
|
Wire through external path lookup. Static paths should now work.
|
9 years ago |
Adam Ierymenko
|
42ba70e79e
|
Replace long callback arg list with struct, and implement path whitelisting, path blacklisting, and local.conf support for roles.
|
9 years ago |
Adam Ierymenko
|
c61ca1dea2
|
Keep connections up for netconf stuff as well as frames.
|
9 years ago |
Adam Ierymenko
|
9f550292fe
|
Simply network auth logic and always sent error on auth failure even for unknown networks to prevent forensics.
|
10 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.
|
10 years ago |
Adam Ierymenko
|
5b6d27e659
|
Implement relay policy, and setting multicast limit to 0 now disables multicast on the network as would be expected.
|
10 years ago |
Adam Ierymenko
|
cba37c6107
|
Add a few more rate limit gates for anti-DOS hardening.
|
10 years ago |
Adam Ierymenko
|
ea1da3321a
|
Rate gate requests for COM.
|
10 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.
|
10 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.
|
10 years ago |
Adam Ierymenko
|
c7a4da3dd3
|
Turns out we do not need to pass network to receive().
|
10 years ago |
Adam Ierymenko
|
1908aa55f5
|
Refactor MULTICAST_LIKE pushing to eliminate redundant and unnecessary pushes and simplify code.
|
10 years ago |
Adam Ierymenko
|
a7d988745b
|
Use ECHO instead of HELLO where possible.
|
10 years ago |
Adam Ierymenko
|
ff9f8b1c2b
|
Typo fix.
|
10 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.
|
10 years ago |
Adam Ierymenko
|
f2d2df2b11
|
Cluster build fix.
|
10 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.
|
10 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.
|
10 years ago |
Adam Ierymenko
|
43780742b0
|
comments, docs
|
10 years ago |
Adam Ierymenko
|
d7f2287ce9
|
More tweaks to path behavior.
|
10 years ago |
Adam Ierymenko
|
eebcf08084
|
Tweaks to new Path code for dual-stack operation, and other fixes.
|
10 years ago |
Adam Ierymenko
|
4992ac2d9f
|
Cluster sub-optimal is in fact necessary...
|
10 years ago |
Adam Ierymenko
|
4f8253dcdb
|
Tweaks to path handling...
|
10 years ago |
Adam Ierymenko
|
d1101441b3
|
Tweak some timings.
|
10 years ago |
Adam Ierymenko
|
e8f6b4b5d3
|
Rest of big Path canonicalization refactor.
|
10 years ago |
Adam Ierymenko
|
584228b2b5
|
Dead code removal, and get rid of reliable() because we will no longer make that distinction.
|
10 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.
|
10 years ago |
Adam Ierymenko
|
e1310a764a
|
More cleanup and removal of cruft due to obsolete network-specific relays (will be replaced with federation stuff).
|
10 years ago |
Adam Ierymenko
|
00fd9c3a15
|
It builds... almost ready to test some rules engine stuff.
|
10 years ago |
Adam Ierymenko
|
e2f783ebbd
|
.
|
10 years ago |
Adam Ierymenko
|
56febbf2ba
|
.
|
10 years ago |
Adam Ierymenko
|
2f18a92e20
|
Cleanup in numerous places, reduce network chattiness around MULTICAST_LIKE, and fix a "how was that working" latent bug causing some control traffic to take the scenic route.
|
10 years ago |
Adam Ierymenko
|
4c455876f9
|
Revise peer path weighting to always prioritize cluster-optimal paths.
|
10 years ago |
Adam Ierymenko
|
cecfa99b7b
|
(1) cluster members send a flag indicating that a PUSH_DIRECT_PATHS is a cluster redirect, (2) 1.1.5 uses this to avoid a bug (this bug does not exist in 1.1.4)
|
10 years ago |
Adam Ierymenko
|
284e5d83b5
|
Fix some broken TRACEs and a tiny reorder in a few ifs.
|
10 years ago |
Adam Ierymenko
|
0c951b6e56
|
More tweaks to new symmetric NAT buster, and stop using old iterative method since this supersedes it.
|
10 years ago |
Adam Ierymenko
|
4769dacf61
|
Tweak needsOurMembershipCertificate timing to resolve a possible source of occasional dropped packets.
|
10 years ago |
Adam Ierymenko
|
4e4fd51117
|
boring doc stuff
|
10 years ago |
Adam Ierymenko
|
3883ac08c7
|
Docs and cleanup.
|
10 years ago |
Adam Ierymenko
|
740eb6ebc4
|
Simplify Peer locking to eliminate deadlock with new path recursion check code (and also probably improve performance).
|
10 years ago |
Adam Ierymenko
|
b3e3d4cacc
|
Instead of using binary packet comparison, add a callback to the API to explicitly check whether paths should be used. Check in with this callback (if present) when learning new paths or sending initial packets.
|
10 years ago |
Adam Ierymenko
|
1023ef23b7
|
Remove somewhat ugly and costly anti-recursion hack -- we will switch to more explicit methods.
|
10 years ago |
Adam Ierymenko
|
a56fbc1929
|
Close another potential anti-recursion loophole.
|
10 years ago |
Adam Ierymenko
|
47ce52228b
|
Roots should probably not do this since it would likely be a waste of packets.
|
10 years ago |
Adam Ierymenko
|
9aee72099e
|
AntiRecursion cleanup and some other minor things.
|
10 years ago |