summaryrefslogtreecommitdiff
path: root/node/Peer.cpp
AgeCommit message (Collapse)Author
2015-05-21Completely factor out "desperation" from the core. I thought of a ↵Adam Ierymenko
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.
2015-04-30Fix deadlock in SelfAwareness by deferring reconnects.Adam Ierymenko
2015-04-15Disable a few noisy TRACEs, and limit how often we confirm new paths to ↵Adam Ierymenko
avoid flooding.
2015-04-14Bunch more control plane work, and shelve old UI -- React FTW.Adam Ierymenko
2015-04-10Add some TRACE around pinging (for now), and refactor service/One to just ↵Adam Ierymenko
run in the foreground as some platforms may not require threads at all.
2015-04-10Restrict unite() to desperation==0 since NAT-t only works right now with ↵Adam Ierymenko
direct links.
2015-04-08Node peer list function for CAPI, and some Peer cleanup.Adam Ierymenko
2015-04-08Use max of core or most recent path desperation for pings.Adam Ierymenko
2015-04-07Tons of refactoring, change to desperation algorithm to use max of core or ↵Adam Ierymenko
link, porting over core loop code from old Node.cpp to new CAPI version, etc.
2015-04-07Always use HELLO to contact, and we now confirm newly learned paths via a ↵Adam Ierymenko
two-way handshake to prevent half-connects.
2015-04-07Implemented empirical determination of external addressing, paritioned per ↵Adam Ierymenko
scope.
2015-04-06build fixesAdam Ierymenko
2015-04-06Multicast group join/leave and group membership announcement.Adam Ierymenko
2015-04-03Send path simplification.Adam Ierymenko
2015-04-02The concept of link desperation (escalating to less desirable transports) ↵Adam Ierymenko
simplifies a ton of stuff. Loads of spaghetti logic can die since we no longer have to make these decisions down in the core.
2015-02-17Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware]Adam Ierymenko
2015-01-05Cleanup, add tristate to config code in Network, and happy new year!Adam Ierymenko
2014-11-20Change path selection logic to exclude non-fixed and non-active paths -- ↵Adam Ierymenko
possible fix for "NAT traversal coma" issue. Also fix a typo.
2014-10-21Simplify locking semantics some more to address a deadlock.Adam Ierymenko
2014-10-13Permanently retire peers.persist, but make iddb.d always enabled instead ↵Adam Ierymenko
since identities are what we really want to cache.
2014-10-11Stop persisting last announcement time since Multicaster is volatile. Also ↵Adam Ierymenko
some more legacy multicast fixes.
2014-10-06Bug fix in new multicast frame handler, handling of old "P5" multicast ↵Adam Ierymenko
frames in new way.
2014-10-03Announce multicast group changes on network rescanMulticastGroups()Adam Ierymenko
2014-09-30Everything in for new multicast except IncomingPacket parsing...Adam Ierymenko
2014-09-24Rename the ubiquitous _r pointer to RuntimeEnvironment to RR just to be a ↵Adam Ierymenko
little more consistent about using _ to denote private member variables.
2014-09-05Rip out dead "firewall opener" code, replace in pipeline with ↵Adam Ierymenko
anti-symmetric-NAT tactics.
2014-08-05(1) Disable firewall openers (its easy to re-enable), (2) Do some prep work ↵Adam Ierymenko
for making supernode topology hot-updatable.
2014-06-30Keep track of basic aliveness for peers regardless if direct or indirect ↵Adam Ierymenko
connectivity and use this for multicast propagation. Also consolidate adding of active bridges via the same functor as regular multicast next hops.
2014-06-10Packet decoder work for EXT_FRAME for bridging - GitHub issue #68Adam Ierymenko
2014-04-10More toward GitHub issue #56Adam Ierymenko
2014-04-10Prevent recursive transit of ZeroTier packets, toward GitHub issue #56Adam Ierymenko
2014-04-10Probable fix for GitHub issue #63 - do not unite() if either path is TCP, ↵Adam Ierymenko
since doing so can result in asymmetric failed NAT-t over UDP if one side has a firewall that permits outgoing UDP but not incoming.
2014-04-10More logic cleanup and some documentation / comment improvements.Adam Ierymenko
2014-04-09Yet more cleanup to TCP logic, this time adding a master switch and adding ↵Adam Ierymenko
UDP preference in send().
2014-04-09Some cleanup, and use best (not first) UDP addresses for NAT-t ↵Adam Ierymenko
VERB_RENDEZVOUS computation.
2014-04-09More tweaks to TCP logic for GitHub issue #60Adam Ierymenko
2014-04-09Some adjustments to TCP logic for GitHub issue #60Adam Ierymenko
2014-04-03A few more tweaks to TCP failover... seems to be switching back and forth ↵Adam Ierymenko
pretty well now!
2014-04-03Such ping logic. So edge case.Adam Ierymenko
2014-04-02More tweaks to TCP failover logic. Such edge case.Adam Ierymenko
2014-04-01More tweaks to algorithm for determining when to fail over to TCP, and stop ↵Adam Ierymenko
supernodes from resynchronizing unless explicitly ordered.
2014-04-01The remove paths on send fail thing in Peer.cpp was not well thought out, ↵Adam Ierymenko
and there is no point in mallocing the TCP write buffer.
2014-03-31Oops... turns out we need to differentiate incoming from outgoing TCP and ↵Adam Ierymenko
indeed learn incoming TCP paths. Otherwise the recipient of a TCP connection does not know to reply via TCP! Heh.
2014-03-31Clean dead paths from peers.Adam Ierymenko
2014-03-27Reduce some TRACE noise.Adam Ierymenko
2014-03-26Fix TCP connection accumulation problem, still having issues with TCP tunneling.Adam Ierymenko
2014-03-26Change the way TCP failover is invoked.Adam Ierymenko
2014-03-26If I want it to pick the first, actually picking the first is helpful.Adam Ierymenko
2014-03-26Add TCP channel support for supernode list, make Peer pick the first path if ↵Adam Ierymenko
all paths are equally dead.
2014-03-21Fix deadlock in refactored code.Adam Ierymenko