summaryrefslogtreecommitdiff
path: root/node
AgeCommit message (Collapse)Author
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.
2015-07-06Fix bug in direct path push send.Adam Ierymenko
2015-07-06Fix a regression.Adam Ierymenko
2015-07-06Unix side of local interface address awareness for GitHub issue #180.Adam Ierymenko
2015-07-06Plumbing for local interface addresses -- GitHub issue #180Adam Ierymenko
2015-07-06Almost everything for GitHub issue #180 except direct path map setup.Adam Ierymenko
2015-07-06Almost all of GitHub issue #180Adam Ierymenko
2015-07-06Check Network::isAllowed() always on multicast send.Adam Ierymenko
2015-07-06pushDirectPaths() implementationAdam Ierymenko
2015-07-06Some cleanup, docs, and Path -> Path > RemotePath refactor.Adam Ierymenko
2015-07-06For curiosity add Salsa20/8 to benchmarks.Adam Ierymenko
2015-07-06Include COM with EXT_FRAME in bridged case.Adam Ierymenko
2015-07-06Kill debug line.Adam Ierymenko
2015-07-06docsAdam Ierymenko
2015-07-06Documentation in Packet, more work on path push, and clean up ancient legacy ↵Adam Ierymenko
support code in Switch.
2015-07-02Revert slow non-SSE Salsa20 modification since it did not fix Android/ARM ↵Adam Ierymenko
issue. Also update Salsa20 comments and clean up a bit.
2015-07-01For @glimberg -- a *possible* fix to the alignment headaches on Android/ARM. ↵Adam Ierymenko
If this works we should find a define that can be used to enable it there since it will slow things down on non-x86 other architectures.
2015-06-29Rename VERB_CMA to the more descriptive VERB_PHYSICAL_ADDRESS_PUSHAdam Ierymenko
2015-06-29Fix semantics of std::unique() to actually remove duplicates (hidden memory ↵Adam Ierymenko
leak?)
2015-06-26Put multicast txQueue back to list.Adam Ierymenko
2015-06-26Fix cert verification check for self signed signaturesKees Bos
2015-06-26GitHub issue #191 - kill intra-network multicast rate limits (which were not ↵Adam Ierymenko
well supported or easily configurable anyway) -- this is really left over from the old collaborative multicast propagation algorithm. New algorithm (in for a while) has been sender-side replication in which sender "pays" all bandwidth, which intrinsically limits multicast.
2015-06-26Redo conversion of _networks to a vector. Just use a simple linear search ↵Adam Ierymenko
and put the nwid in a pair with the pointer so linear search can be done without pointer chasing. This should be the fastest option for anything less than dozens of networks, and should save memory over the old map.
2015-06-23replace vector::erase, was missed in a previous commit (ref #186)Moritz Warning
2015-06-22Merge branch '_networks_vector' of https://github.com/mwarning/ZeroTierOne ↵Adam Ierymenko
into adamierymenko-dev
2015-06-20use _network function to reduce source code complexityMoritz Warning
2015-06-20replace _networks map by vectorMoritz Warning
_networks is usually quite small, using binary search on a vector might be faster comapred to std::map. This is especially true when using uClibc++, which uses a list.
2015-06-19Root server terminology cleanup, and tighten up a security check by checking ↵Adam Ierymenko
full identity of peers instead of just address.
2015-06-18Merge pull request #186 from mwarning/txQueue_vectorAdam Ierymenko
replace txQueue list by vector for faster memory access and less allo…
2015-06-19replace txQueue list by vector for faster memory access and less allocationsMoritz Warning