summaryrefslogtreecommitdiff
path: root/node
AgeCommit message (Collapse)Author
2015-09-04Two for one! (std::map removal)Adam Ierymenko
2015-09-04... and another one!Adam Ierymenko
2015-09-04Another std::map<> dies.Adam Ierymenko
2015-09-04Swap out std::map<> for Hashtable<> for main peer database in Topology. ↵Adam Ierymenko
(ongoing std::map-ectomy)
2015-09-04Add entries() to go with keys() for future use.Adam Ierymenko
2015-09-03Hash table bug fix, and add copy constructor and assignment operator for ↵Adam Ierymenko
principle of least surprise.
2015-08-27Integrate Hashtable into Multicaster, where @mwarning found heaviest ↵Adam Ierymenko
std::map() overhead.
2015-08-27A simple and fast Hashtable, tested but not yet integrated with anything.Adam Ierymenko
2015-08-25Ignore old root-topology if present -- fix for upgrading on Linux and ↵Adam Ierymenko
possibly elsewhere.
2015-07-31Add security notice to auto-update info in -h output, and fix a missing paren.Adam Ierymenko
2015-07-31Remove a bit of redundant logic, and also announce MULTICAST_LIKEs to ↵Adam Ierymenko
controllers (for future use).
2015-07-31Dead code removal.Adam Ierymenko
2015-07-28docs,cleanupAdam Ierymenko
2015-07-28Cancel NAT-t attempts if peer is no longer "alive"Adam Ierymenko
2015-07-28Kill more kittens.Adam Ierymenko
2015-07-28Revert... no luck with any of that.Adam Ierymenko
2015-07-28Play with NAT-t tweaks some more.Adam Ierymenko
2015-07-28Disable type punning on ARM by ifdef.Adam Ierymenko
2015-07-28Remove some left over debug code, and fix attempt to send to self if we are ↵Adam Ierymenko
an active bridge.
2015-07-28Add TRACE for NAT-t debugging.Adam Ierymenko
2015-07-28Try another NAT traversal improvement.Adam Ierymenko
2015-07-28Nuke some abandoned code.Adam Ierymenko
2015-07-27Fix to NAT escalation sequence.Adam Ierymenko
2015-07-27Fix IP scoping bug, and disable remotely reported surface push... not ↵Adam Ierymenko
helping. :(
2015-07-27Fix infinite loop typo.Adam Ierymenko
2015-07-27Push remote surface as reported by peers along with known interface direct ↵Adam Ierymenko
paths to assist with (some) NAT traversal. (trying this, may back out if not effective)
2015-07-27Eliminate some aggressive port scanning NAT-t behavior that has proven ↵Adam Ierymenko
ineffective.
2015-07-24Fix leaving of networks to actually call Network::destroy().Adam Ierymenko
2015-07-23(1) Fix updating of network revision counter on member change.Adam Ierymenko
(2) Go back to timestamp as certificate revision number. This is simpler and more robust than using the network revision number for this and forcing network revision fast-forward, which could cause some peers to fall off the horizon when you don't want them to.
2015-07-23Add a rate limiting circuit breaker to the network controller to prevent ↵Adam Ierymenko
flooding attacks and race conditions.
2015-07-23Eliminate some poorly thought out optimizations from the netconf/controller ↵Adam Ierymenko
interaction, and go ahead and bump version to 1.0.4. For a while in 1.0.3 -dev I was trying to optimize out repeated network controller requests by using a ratcheting mechanism. If the client received a network config that was indeed different from the one it had, it would respond by instantlly requesting it again. Not sure what I was thinking. It's fundamentally unsafe to respond to a message with another message of the same type -- it risks a race condition. In this case that's exactly what could happen. It just isn't worth the added complexity to avoid a tiny, tiny amount of network overhead, so I've taken this whole path out. A few extra bytes every two minutes isn't worth fretting about, but as I recall the reason for this optimization was to save CPU on the controller. This can be achieved by just caching responses in memory *there* and serving those same responses back out if they haven't changed. I think I developed that 'ratcheting' stuff before I went full time on this. It's hard to develop stuff like this without hours of sustained focus.
2015-07-17sp.Adam Ierymenko
2015-07-13Workaround for uclibc missing map::operator==()Adam Ierymenko
2015-07-13Add additional TRACE output in pushDirectPaths.Adam Ierymenko
2015-07-13Clean up some YAGNI issues with implementation of GitHub issue #180, and ↵Adam Ierymenko
make best path choice aware of path rank.
2015-07-13Merge branch 'adamierymenko-dev' of ↵Adam Ierymenko
http://git.int.zerotier.com/zerotier/zerotierone into adamierymenko-dev
2015-07-13Fixes to PUSH_DIRECT_PATHS.Adam Ierymenko
2015-07-13ZT_TRACE build fix.Adam Ierymenko
2015-07-13Put back legacy code to listen for LAN announcements to support same network ↵Adam Ierymenko
location with pre-1.0.4 clients.
2015-07-08Add build def ZT_NO_TYPE_PUNNING, which when defined disables type punning ↵Adam Ierymenko
code that might cause unaligned access errors on architectures that care (e.g. Android/ARM)
2015-07-07Implement ERROR_UNWATNED_MULTICASTAdam Ierymenko
2015-07-07Kill a potential source of type punning BUS errors on Android, and besides ↵Adam Ierymenko
that hack probably did not improve performance at all given the short lenghts of things compared with secureEq()
2015-07-07Save a little bit of RAM by getting rid of overkill CMWC4096 non-crypto PRNG ↵Adam Ierymenko
and replacing it with a simple non-crypto PRNG that just uses Salsa20.
2015-07-07etherTypeName() is only used in Switch and only with ZT_TRACEAdam Ierymenko
2015-07-07Fix potential bug in controller config request.Adam Ierymenko
2015-07-07More cleanup to direct path push, comment fixes, etc.Adam Ierymenko
2015-07-07A bunch of comments and cleanup, including some to yesterday's direct path ↵Adam Ierymenko
pushing changes. Move path viability check to one place, and stop trying to use link-local addresses since they are not reliable.
2015-07-07Revert some bad docs in Packet -- I think we will still use that. Also ↵Adam Ierymenko
rename addMembershipCertificate to more security-descriptive validateAndAddMembershipCertificate, give it a return value, and drop unused force parameter.
2015-07-06Remove debug printf().Adam Ierymenko
2015-07-06Add new .h file to VS build, and Windows side of local interface address ↵Adam Ierymenko
enumeration.