61 Commits (477feee8a3fbc84d00c2939b5fc8a9bbf19af2ca)

Author SHA1 Message Date
Adam Ierymenko 76a95dc58f The return of peer peristence. 11 years ago
Adam Ierymenko 3a959a7763 Swap out std::map<> for Hashtable<> for main peer database in Topology. (ongoing std::map-ectomy) 11 years ago
Adam Ierymenko f0003ea922 Push remote surface as reported by peers along with known interface direct paths to assist with (some) NAT traversal. (trying this, may back out if not effective) 11 years ago
Adam Ierymenko 7bae95836c Root server terminology cleanup, and tighten up a security check by checking full identity of peers instead of just address. 11 years ago
Adam Ierymenko aab17d9f1f Kill obsolete amSupernode method -- we now have no differing behaviors. 11 years ago
Kees Bos a425bbc673 Renamed supernode to rootserver 11 years ago
Adam Ierymenko ccc73b920e Node peer list function for CAPI, and some Peer cleanup. 11 years ago
Adam Ierymenko ee2f51f48e Make Toplogy use dataStoreXX() methods from Node, and get rid of old TCP stuff. 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
Adam Ierymenko 52c3b7c34e Implemented empirical determination of external addressing, paritioned per scope. 11 years ago
Adam Ierymenko a2821e9000 Add code to check external surface against reported surface from other trusted peers, and also rename ExternalSurface to SelfAwareness because lulz. 11 years ago
Adam Ierymenko ee0f56355b Send path simplification. 11 years ago
Adam Ierymenko a69e1876f1 The concept of link desperation (escalating to less desirable transports) simplifies a ton of stuff. Loads of spaghetti logic can die since we no longer have to make these decisions down in the core. 11 years ago
Adam Ierymenko 93012b0ee5 Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware] 11 years ago
Adam Ierymenko eeed31b396 Ping supernodes on surface change, and also reset TCP flag. 11 years ago
Adam Ierymenko 37d23336ed Surface logic in Topology. 11 years ago
Adam Ierymenko 61cff47f5b Code to track externally visible address surface. 11 years ago
Adam Ierymenko 4e95384ad6 Cleanup, add tristate to config code in Network, and happy new year! 11 years ago
Adam Ierymenko 74f36f5dc0 Windows build fixes. 12 years ago
Adam Ierymenko a8bd8fff93 Make several changes to eliminate potential deadlock or recursive lock conditions, and add back rescan of multicast groups on network startup. 12 years ago
Adam Ierymenko 2416491cbc Permanently retire peers.persist, but make iddb.d always enabled instead since identities are what we really want to cache. 12 years ago
Adam Ierymenko e1882b614b Some cleanup, Multicaster now sends multicasts as it gets additional members. 12 years ago
Adam Ierymenko 81b12b6826 Rename the ubiquitous _r pointer to RuntimeEnvironment to RR just to be a little more consistent about using _ to denote private member variables. 12 years ago
Adam Ierymenko 2762db8408 More work on control bus refactor... 12 years ago
Adam Ierymenko 1d37204a37 Refactoring in progress... pardon our dust... 12 years ago
Adam Ierymenko 4e9280fc7a Rip out dead "firewall opener" code, replace in pipeline with anti-symmetric-NAT tactics. 12 years ago
Adam Ierymenko c2187c8759 (1) distribute default root-topology in new dictionary format, (2) bump peer serialization version to force obsolescence of old supernodes, (3) stop outputting a log message every time we poll for software updates 12 years ago
Adam Ierymenko be6b61b1bc Accept supernode dictionaries in Topology, also fix (unused) field name in one of these. 12 years ago
Adam Ierymenko 8a804b5257 (1) Disable firewall openers (its easy to re-enable), (2) Do some prep work for making supernode topology hot-updatable. 12 years ago
Adam Ierymenko 88bdb81791 Keep track of basic aliveness for peers regardless if direct or indirect connectivity and use this for multicast propagation. Also consolidate adding of active bridges via the same functor as regular multicast next hops. 12 years ago
Adam Ierymenko 8fb442d81a Yet more cleanup to TCP logic, this time adding a master switch and adding UDP preference in send(). 12 years ago
Adam Ierymenko fe85426df6 A few more tweaks to TCP failover... seems to be switching back and forth pretty well now! 12 years ago
Adam Ierymenko 158002d2d1 Tweak some timings and stuff. 12 years ago
Adam Ierymenko c96d3ebf8c Such ping logic. So edge case. 12 years ago
Adam Ierymenko 700a450806 More tweaks to algorithm for determining when to fail over to TCP, and stop supernodes from resynchronizing unless explicitly ordered. 12 years ago
Adam Ierymenko daaec84c6b Add TCP channel support for supernode list, make Peer pick the first path if all paths are equally dead. 12 years ago
Adam Ierymenko 33ad3deaee Builds with new Path code. 12 years ago
Adam Ierymenko ba3f04deed Work in progress: refactoring paths, adding TCP fallback. 12 years ago
Adam Ierymenko b5c3a92be2 Boring stuff: update dates in copyrights across all files. 12 years ago
Adam Ierymenko 525ab3faa9 Take TRACE back out of Mac makefile, fix a few decode little things. 12 years ago
Adam Ierymenko 490e86dde3 Bunch of fixes to startup, pinging, and choice of route. Also some TRACE updates. 12 years ago
Adam Ierymenko 6e076e77d8 More work on connection reset stuff... 12 years ago
Adam Ierymenko 694e9f2bdc Some cleanup and rationalization of main loop. 12 years ago
Adam Ierymenko d6a346ca6e Fix for GitHub issue #35 and also possibly partial fix for #29 issues. 12 years ago
Adam Ierymenko 612c17240a Dead code removal, fix for cleanup GitHub issue #28 12 years ago
Adam Ierymenko 5e71e07f59 Add persistent identity caching for use on supernodes. Activate by just making an iddb.d directory in the ZeroTier home folder. Also clean up some obsolete cruft from makefiles. 13 years ago
Adam Ierymenko 40e4f39181 Peers are now dumped on shutdown in a persistence cache and reloaded on startup, which is good enough for clients right now. Supernodes will get something else for long-term authoritative identity caching. 13 years ago
Adam Ierymenko 6e217dfcb0 Get rid of DBM, which technically is a case of YAGNI. Supernodes will need a 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. 13 years ago
Adam Ierymenko ca93b4a1ac Clean up some stuff, including a few spots where exceptions were not being handled correctly. 13 years ago
Adam Ierymenko 4267e7da93 Remove a whole bunch of now-unnecessary cruft from Topology and PacketDecoder. 13 years ago