111 Commits (59eb09d06318c8378193dfd40fc37bc308ee9044)

Author SHA1 Message Date
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 0c951b6e56 More tweaks to new symmetric NAT buster, and stop using old iterative method since this supersedes it. 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 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 2160164e8c (1) Get rid of path sorting and just scan them, since sorting may have been a premature optimization that introduced a regression and path instability in a few edge cases, and (2) do not attempt to contact remote paths received via PUSH_DIRECT_PATH if we already have that path and it is already active (dumb, should have done this originally) 10 years ago
Adam Ierymenko 82aa3f59d6 Fix bug in ECHO handling (OK was invalid!), and use ECHO on newer peers for path confirmation. Also get rid of path confirmation circuit breaker since this causes issues with some peers and should be done more intelligently anyway. 10 years ago
Adam Ierymenko ceaef19fb7 Fix for GitHub issue #260 -- fix for (non-exploitable) crash in network preferred relay code 10 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 5f39d5b7ea Further pare down Cluster messaging and rename some stuff. 11 years ago
Adam Ierymenko 4e9d430476 Make root and relay selection somewhat more robust. 11 years ago
Adam Ierymenko 7fbe2f7adf Tweak some more timings for better reliability. 11 years ago
Adam Ierymenko 883c84bdb9 Tweak some timings, and remove some dead code. 11 years ago
Adam Ierymenko 0fd15d9cf3 Fix inverted sense bug. 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 16bc3e0398 Factor out RemotePath subclass of Path -- no longer needed, just cruft. 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 cc4d0199e7 Fix vProto init. 11 years ago
Adam Ierymenko f9f60f89d9 Peer save/restore fix. 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 619e113748 Work in progress on Cluster for new root infrastructure, multi-homing. 11 years ago
Adam Ierymenko 5d2f523e81 World stuff... 11 years ago
Adam Ierymenko 76a95dc58f The return of peer peristence. 11 years ago
Adam Ierymenko 5076c49210 Peer serialization and related changes. 11 years ago
Adam Ierymenko 64bf3ffe6c Mutex cleanup. 11 years ago
Adam Ierymenko a3db7d0728 Refactor: move network COMs out of Network and into Peer in prep for tightening up multicast lookup and other things. 11 years ago
Adam Ierymenko f69454ec98 (1) Make ZT_ naming convention consistent (get rid of ZT1_), (2) Make local interface a full sockaddr_storage instead of an int identifier, which turns out to be better for multi-homing and other uses. 11 years ago
Adam Ierymenko 367ffde00c Plumb through localInterfaceId to track local interfaces corresponding with remote addresses. 11 years ago
Adam Ierymenko 7b8ce16057 Another std::map<> dies. 11 years ago
Adam Ierymenko 0b354803f3 Clean up some YAGNI issues with implementation of GitHub issue #180, and make best path choice aware of path rank. 11 years ago
Adam Ierymenko 778c7e6e70 More cleanup to direct path push, comment fixes, etc. 11 years ago
Adam Ierymenko 255320e2a6 pushDirectPaths() implementation 11 years ago
Adam Ierymenko 93bb934d4e Some cleanup, docs, and Path -> Path > RemotePath refactor. 11 years ago
Adam Ierymenko 5341e32729 Fix to GitHub issue #140 -- network preferred relays. Also go ahead and allow RENDEZVOUS from regular peers. 11 years ago
Adam Ierymenko 5bc89034bc Always ping / contact network preferred relays (if any). 11 years ago
Adam Ierymenko d9006712f6 Completely factor out "desperation" from the core. I thought of a significantly simpler way to move all of this logic entirely into the containing service, liberating the core from any concern over the nature of its pipe to the outside world. 11 years ago
Adam Ierymenko 1213073916 Apple auto-update stuff, now for Windows. 11 years ago
Adam Ierymenko 9279bac385 Fix deadlock in SelfAwareness by deferring reconnects. 11 years ago
Adam Ierymenko 54954f5b88 First pass of Windows cleanup and build fixes... 11 years ago
Adam Ierymenko 98bcc3d4b5 Disable a few noisy TRACEs, and limit how often we confirm new paths to avoid flooding. 11 years ago
Adam Ierymenko 5e331d6733 Restrict unite() to desperation==0 since NAT-t only works right now with direct links. 11 years ago
Adam Ierymenko ccc73b920e Node peer list function for CAPI, and some Peer cleanup. 11 years ago
Adam Ierymenko c894710ac1 Remove Logger.hpp references. 11 years ago
Adam Ierymenko 49f031ccb4 Tons of refactoring, change to desperation algorithm to use max of core or link, porting over core loop code from old Node.cpp to new CAPI version, etc. 11 years ago