145 Commits (b3e3d4cacca37a4850e4e1a91fb8c42a5b13cb26)

Author SHA1 Message Date
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
Adam Ierymenko 05b2c0743f Tighten up dead path detection. Should now auto-detect dead paths in less than 10 seconds at a very small cost in ECHO requests (or HELLOs for older peers). GitHib issue #272 10 years ago
Adam Ierymenko 4d94ae77b4 simplify if 10 years ago
Adam Ierymenko d8143a5e18 Implement first pass on rapid dead path detection, and increment version to 1.1.3 (dev) 10 years ago
Adam Ierymenko 436c1fac1d Selectively move over changes from "edge" to "dev" excluding netcon. 10 years ago
Adam Ierymenko 0940d673db Always advertise to the cluster when we have a peer even if we have also 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. 10 years ago
Adam Ierymenko 32ec378e3b Announce that we have peers on the cluster when we first see them to improve startup times, and add a result crunching script to tests/http. 11 years ago
Adam Ierymenko 2cc50bdb10 Try bringing back TTL escalation -- may help with Docker (IP-MASQ) type NAT 11 years ago
Adam Ierymenko 35c4e28f31 Mark geo-redirected paths as suboptimal and do not report that we have a peer if all we have is one of these. Also a few other small fixes. 11 years ago
Adam Ierymenko 57b71bfff0 Cluster simplification and refactor work in progress... 11 years ago
Adam Ierymenko 6bc8c9d8ef Clustering cleanup, still a work in progress. 11 years ago
Adam Ierymenko 5f39d5b7ea Further pare down Cluster messaging and rename some stuff. 11 years ago
Adam Ierymenko a42d714a87 . 11 years ago
Adam Ierymenko a994573a43 Eliminate some more dead code. We may do path trust, but not like that. 11 years ago
Adam Ierymenko cdc99bfee1 Add a circuit breaker for VERB_PUSH_DIRECT_PATHS. 11 years ago
Adam Ierymenko cc1b275ad9 Replicate peer endpoints and forget paths if we have them -- this allows two clusters to talk to each other, whereas forgetting all paths does not. 11 years ago
Adam Ierymenko cc6080fe38 (1) No need to confirm if we are a root (small optimization), (2) Refactor peer affinity tracking. 11 years ago
Adam Ierymenko 218ef07d8e Build fix in TRACE mode. 11 years ago
Adam Ierymenko 16bc3e0398 Factor out RemotePath subclass of Path -- no longer needed, just cruft. 11 years ago
Adam Ierymenko 40976c02a4 Forget paths to peers if we are handing them off. 11 years ago
Adam Ierymenko a1a0ee4edb Fix infinite loop in Cluster, clean up some stuff elsewhere, and back out rate limiting in PUSH_DIRECT_PATHS for now (but we will do something else to mitigate amplification attacks) 11 years ago
Adam Ierymenko 9617208e40 Some cleanup, and use VERB_PUSH_DIRECT_PATHS to redirect newer peers. 11 years ago
Adam Ierymenko 69857b4ba8 Refactor cluster redirects to move code to push peers out of the actual Cluster function that checks for redirect, and clean up Peer::received() to be a bit more logical. 11 years ago
Adam Ierymenko e713f7a54c Can redirect in response to a few more verbs, just not these. 11 years ago
Adam Ierymenko 98d856daa2 Only send redirects to the sending InetAddress and only in response to a set of certain frame types to avoid potential race conditions. 11 years ago
Adam Ierymenko 8bfb02ba3c Only send redirects for the same address class, and elminiate some TRACE noise. 11 years ago
Adam Ierymenko 978b056a01 Wire in redirectPeer(), now about ready to test clustering! 11 years ago
Adam Ierymenko 2258e36a59 Move replication of COMs to avoid race condition. 11 years ago
Adam Ierymenko 59e1444b27 Finish wiring up Cluster, fix some issues with other recent changes. 11 years ago
Adam Ierymenko eb79d4a2f3 Wire up peer announcement in cluster. 11 years ago
Adam Ierymenko 57e29857cf Cluster work -- integrating with the rest of the code. 11 years ago
Adam Ierymenko cfdcce6d12 Fix very obscure IP scope classification logic bug. 11 years ago
Adam Ierymenko 9150778757 . 11 years ago
Adam Ierymenko 50f3ccd3c9 . 11 years ago
Adam Ierymenko 584072fa6a Fix for V4/V6 stable addressing. 11 years ago
Adam Ierymenko cc4d0199e7 Fix vProto init. 11 years ago
Adam Ierymenko 781f06ef82 Accept OK for confirm of HELLO or ECHO. 11 years ago
Adam Ierymenko 5ce3aac929 Add rate limit on receive of DIRECT_PATH_PUSH to prevent DOS exploitation. 11 years ago
Adam Ierymenko 2229e91b57 IPv6 support fixes. 11 years ago
Adam Ierymenko 5d2f523e81 World stuff... 11 years ago
Adam Ierymenko 7d62dbe9f7 Tune NAT-t keepalives so that timing is better obeyed, clean up a build warning, and fix a potential source of network recursion (though harmless). 11 years ago
Adam Ierymenko ab0228f626 More cleanup and simple refactoring, consolidate InetAddres serialize/deserialize into the class. 11 years ago
Grant Limberg 6080a45c9c change cert to com. no variable named cert. 11 years ago
Adam Ierymenko 2c196307ee --bugs; 11 years ago
Adam Ierymenko 53e5f94b99 . 11 years ago
Adam Ierymenko 9405150b11 Restore group announcement on Peer::receive() but centralize packet composition in one place. 11 years ago