summaryrefslogtreecommitdiff
path: root/node/Peer.cpp
AgeCommit message (Collapse)Author
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
2016-01-05Implement first pass on rapid dead path detection, and increment version to ↵Adam Ierymenko
1.1.3 (dev)
2015-12-21Selectively move over changes from "edge" to "dev" excluding netcon.Adam Ierymenko
2015-11-11Always advertise to the cluster when we have a peer even if we have also ↵Adam Ierymenko
initiated handoff. This might be the cause of the warmup problem -- will test later. At the very least it should not hurt anything due to pick-latest logic and the fact that cluster members with only suboptimal paths do not respond to WANT_PEER.
2015-11-09Announce that we have peers on the cluster when we first see them to improve ↵Adam Ierymenko
startup times, and add a result crunching script to tests/http.
2015-11-09Try bringing back TTL escalation -- may help with Docker (IP-MASQ) type NATAdam Ierymenko
2015-11-09Mark geo-redirected paths as suboptimal and do not report that we have a ↵Adam Ierymenko
peer if all we have is one of these. Also a few other small fixes.