summaryrefslogtreecommitdiff
path: root/node/Peer.cpp
AgeCommit message (Collapse)Author
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
2014-03-21A few renamings to be consistent.Adam Ierymenko
2014-03-21Builds with new Path code.Adam Ierymenko
2014-03-20Work in progress: refactoring paths, adding TCP fallback.Adam Ierymenko
2014-03-20Reworking of paths in Peer work-in-progress, and TCP connect support in ↵Adam Ierymenko
SocketManager. Also add FD_SETSIZE checking for the default select implementation of sockets.
2014-03-19IPC changes and SocketManager changes all build!Adam Ierymenko
2014-03-18Everything but the local config bus... blech.Adam Ierymenko
2014-02-16Boring stuff: update dates in copyrights across all files.Adam Ierymenko
2014-02-03Yank a code path it turns out we probably don't want.Adam Ierymenko
2014-01-30Bunch of fixes to startup, pinging, and choice of route. Also some TRACE ↵Adam Ierymenko
updates.
2013-12-31VERSION 0.6.7: revert change for GitHub issue #20Adam Ierymenko
This will have to be thought out more. The old version worked fine 99% of the time so we'll revisit this.
2013-12-31TRACE output improvements and compile fix.Adam Ierymenko
2013-12-31Fix several things:Adam Ierymenko
(1) The changes to path learning in the two previous releases were poorly thought out, and this version should remedy that by introducing PROBE. This is basically a kind of ECHO request and is used to authenticate endpoints that are not learned via a valid request/response pair. Thus we will still passively learn endpoints, but securely. (2) Turns out there was a security oversight in _doHELLO() that could have permitted... well... I'm not sure it was exploitable to do anything particularly interesting since a bad identity would be discarded anyway, but fix it just the same.
2013-12-31VERSION 0.6.5: minor bug fix in peer connection trackingAdam Ierymenko
2013-12-24Fix for GitHub issue #20 (untested)Adam Ierymenko
2013-10-21Get rid of DBM, which technically is a case of YAGNI. Supernodes will need a ↵Adam Ierymenko
way to save identities, but that can be a different feature. Regular clients do not really need a permanent cache (yet). When/if we do need one we can do it then. Until then it only caused problems.
2013-10-05Remove a whole bunch of now-unnecessary cruft from Topology and PacketDecoder.Adam Ierymenko
2013-10-02Clean up some routine stuff like pings, and stop keeping links open forever ↵Adam Ierymenko
even if there are no frames passing between them.
2013-10-01Each peer now tracks the last time it announced multicast LIKEs ↵Adam Ierymenko
independently and does so frequently enough to prevent expires. Also add a multicast debug facility for use on the testnet.
2013-09-24Work in progress...Adam Ierymenko
2013-09-17Get rid of onSent(), which was never used consistently anyway.Adam Ierymenko
2013-07-13Compile fixes, integration of fast PRNG.Adam Ierymenko
2013-07-11More work in progress on Switch / PacketDecoder refactor.Adam Ierymenko
2013-07-11Work in progress...Adam Ierymenko
2013-07-04New git repository for release - version 0.2.0 taggedAdam Ierymenko