summaryrefslogtreecommitdiff
path: root/node/Peer.cpp
AgeCommit message (Collapse)Author
2017-01-27Add comments to join ("orbit") moons.Adam Ierymenko
2017-01-27Extend in-band world updates to handle moons too.Adam Ierymenko
2017-01-27Replace piecemeal designation of upstreams with the concept of moons, which ↵Adam Ierymenko
is simpler and easier to use and inherits all the cool live update stuff of worlds (now called planets) and global roots.
2016-11-22Wire through external path lookup. Static paths should now work.Adam Ierymenko
2016-11-22Replace long callback arg list with struct, and implement path whitelisting, ↵Adam Ierymenko
path blacklisting, and local.conf support for roles.
2016-11-09Keep connections up for netconf stuff as well as frames.Adam Ierymenko
2016-09-27Simply network auth logic and always sent error on auth failure even for ↵Adam Ierymenko
unknown networks to prevent forensics.
2016-09-20Refactor COM stuff a bit, and respond to COM requests a bit more readily for ↵Adam Ierymenko
rapid setup. Will need to revisit later.
2016-09-13Implement relay policy, and setting multicast limit to 0 now disables ↵Adam Ierymenko
multicast on the network as would be expected.
2016-09-13Add a few more rate limit gates for anti-DOS hardening.Adam Ierymenko
2016-09-12Rate gate requests for COM.Adam Ierymenko
2016-09-09(1) Public networks now get COMs even though they do not gate with them ↵Adam Ierymenko
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.
2016-09-09More refactoring to clean up code, and add a gate function to make sure we ↵Adam Ierymenko
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.
2016-09-07Turns out we do not need to pass network to receive().Adam Ierymenko
2016-09-07Refactor MULTICAST_LIKE pushing to eliminate redundant and unnecessary ↵Adam Ierymenko
pushes and simplify code.
2016-09-07Use ECHO instead of HELLO where possible.Adam Ierymenko
2016-09-07Typo fix.Adam Ierymenko
2016-09-07Bunch more path refactoring. Peers no longer forget paths, but do not ↵Adam Ierymenko
normally use expired paths. Expired paths might still be tried if nothing else is reachable.
2016-09-06Cluster build fix.Adam Ierymenko
2016-09-06(1) fix crazy bug introduced in doRENDEZVOUS(), (2) reclaim Paths after ↵Adam Ierymenko
paths[] condense, (3) fix an edge case around symmetric NAT and external IP change detection.
2016-09-06Rework how paths are set as remote cluster preferred. The code is now ↵Adam Ierymenko
clearer and cluster preference indications are now very sticky as they should be.
2016-09-06comments, docsAdam Ierymenko
2016-09-05More tweaks to path behavior.Adam Ierymenko
2016-09-03Tweaks to new Path code for dual-stack operation, and other fixes.Adam Ierymenko
2016-09-02Cluster sub-optimal is in fact necessary...Adam Ierymenko
2016-09-02Tweaks to path handling...Adam Ierymenko
2016-09-02Tweak some timings.Adam Ierymenko
2016-09-02Rest of big Path canonicalization refactor.Adam Ierymenko
2016-08-24Dead code removal, and get rid of reliable() because we will no longer make ↵Adam Ierymenko
that distinction.
2016-08-24Harden PUSH_DIRECT_PATHS and simplify things by only doing it on receive ↵Adam Ierymenko
when hops>0 and trust has been established.
2016-08-09More cleanup and removal of cruft due to obsolete network-specific relays ↵Adam Ierymenko
(will be replaced with federation stuff).
2016-08-08It builds... almost ready to test some rules engine stuff.Adam Ierymenko
2016-08-05.Adam Ierymenko
2016-08-04.Adam Ierymenko
2016-04-19Cleanup in numerous places, reduce network chattiness around MULTICAST_LIKE, ↵Adam Ierymenko
and fix a "how was that working" latent bug causing some control traffic to take the scenic route.
2016-04-19Revise peer path weighting to always prioritize cluster-optimal paths.Adam Ierymenko
2016-04-18(1) cluster members send a flag indicating that a PUSH_DIRECT_PATHS is a ↵Adam Ierymenko
cluster redirect, (2) 1.1.5 uses this to avoid a bug (this bug does not exist in 1.1.4)
2016-03-28Fix some broken TRACEs and a tiny reorder in a few ifs.Adam Ierymenko
2016-02-10More tweaks to new symmetric NAT buster, and stop using old iterative method ↵Adam Ierymenko
since this supersedes it.
2016-02-09Tweak needsOurMembershipCertificate timing to resolve a possible source of ↵Adam Ierymenko
occasional dropped packets.
2016-01-12boring doc stuffAdam Ierymenko
2016-01-12Docs and cleanup.Adam Ierymenko
2016-01-12Simplify Peer locking to eliminate deadlock with new path recursion check ↵Adam Ierymenko
code (and also probably improve performance).
2016-01-11Instead of using binary packet comparison, add a callback to the API to ↵Adam Ierymenko
explicitly check whether paths should be used. Check in with this callback (if present) when learning new paths or sending initial packets.
2016-01-11Remove somewhat ugly and costly anti-recursion hack -- we will switch to ↵Adam Ierymenko
more explicit methods.
2016-01-06Close another potential anti-recursion loophole.Adam Ierymenko
2016-01-06Roots should probably not do this since it would likely be a waste of packets.Adam Ierymenko
2016-01-06AntiRecursion cleanup and some other minor things.Adam Ierymenko
2016-01-06Tighten up dead path detection. Should now auto-detect dead paths in less ↵Adam Ierymenko
than 10 seconds at a very small cost in ECHO requests (or HELLOs for older peers). GitHib issue #272
2016-01-05simplify ifAdam Ierymenko