Adam Ierymenko
|
7fbe2f7adf
|
Tweak some more timings for better reliability.
|
2015-11-02 15:38:53 -08:00 |
|
Adam Ierymenko
|
1b4cc4af5c
|
Fix evil bug, and instrument/assert on some other stuff, and a bit of cleanup.
|
2015-10-30 15:54:40 -07:00 |
|
Adam Ierymenko
|
7382c328da
|
Null pointer bug appears fixed... testing again at large scale.
|
2015-10-30 14:23:28 -07:00 |
|
Adam Ierymenko
|
641b0dec44
|
.
|
2015-10-30 14:12:20 -07:00 |
|
Adam Ierymenko
|
2fbb5d0bbf
|
.
|
2015-10-30 14:11:45 -07:00 |
|
Adam Ierymenko
|
d8dbbf7484
|
Add some debug code in TRACE mode to catch a bug.
|
2015-10-30 14:11:10 -07:00 |
|
Adam Ierymenko
|
377ccff600
|
getPeer() had a small potential to be unsafe.
|
2015-10-30 13:39:28 -07:00 |
|
Adam Ierymenko
|
68d6d3c4ff
|
Fix bug in peer count.
|
2015-10-28 14:29:08 -07:00 |
|
Adam Ierymenko
|
4221552c0b
|
Use getPeerNoCache() in Cluster to avoid keeping all peers cached everywhere.
|
2015-10-27 16:52:44 -07:00 |
|
Adam Ierymenko
|
865acfa40f
|
Cluster status plumbing.
|
2015-10-26 12:41:08 -07:00 |
|
Adam Ierymenko
|
e6a63f5547
|
Fix bug in setWorld that might have caused a peer entry for myself (which would never be used)
|
2015-10-23 13:57:02 -07:00 |
|
Adam Ierymenko
|
95953b48f9
|
Do not allow VERB_RENDEZVOUS from non-upstream peers to block potential DOS vector.
|
2015-10-19 12:56:29 -07:00 |
|
Adam Ierymenko
|
619e113748
|
Work in progress on Cluster for new root infrastructure, multi-homing.
|
2015-10-14 14:12:12 -07:00 |
|
Adam Ierymenko
|
5d2f523e81
|
World stuff...
|
2015-10-13 12:10:44 -07:00 |
|
Adam Ierymenko
|
cae58f43f1
|
More World stuff, and mkworld.
|
2015-10-13 08:49:36 -07:00 |
|
Adam Ierymenko
|
1b1945c63e
|
Work in progress on refactoring root-topology into World and adding in-band updates.
|
2015-10-12 18:25:29 -07:00 |
|
Adam Ierymenko
|
76a95dc58f
|
The return of peer peristence.
|
2015-10-01 17:09:01 -07:00 |
|
Adam Ierymenko
|
3a959a7763
|
Swap out std::map<> for Hashtable<> for main peer database in Topology. (ongoing std::map-ectomy)
|
2015-09-04 12:14:21 -07:00 |
|
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)
|
2015-07-27 17:02:43 -07:00 |
|
Adam Ierymenko
|
7bae95836c
|
Root server terminology cleanup, and tighten up a security check by checking full identity of peers instead of just address.
|
2015-06-19 10:23:25 -07:00 |
|
Kees Bos
|
a425bbc673
|
Renamed supernode to rootserver
|
2015-05-06 12:05:20 +02:00 |
|
Adam Ierymenko
|
aab17d9f1f
|
Kill obsolete amSupernode method -- we now have no differing behaviors.
|
2015-06-01 19:18:26 -07:00 |
|
Adam Ierymenko
|
ccc73b920e
|
Node peer list function for CAPI, and some Peer cleanup.
|
2015-04-08 18:45:21 -07:00 |
|
Adam Ierymenko
|
ee2f51f48e
|
Make Toplogy use dataStoreXX() methods from Node, and get rid of old TCP stuff.
|
2015-04-08 15:12:04 -07:00 |
|
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.
|
2015-04-07 19:31:11 -07:00 |
|
Adam Ierymenko
|
52c3b7c34e
|
Implemented empirical determination of external addressing, paritioned per scope.
|
2015-04-07 11:56:10 -07:00 |
|
Adam Ierymenko
|
a2821e9000
|
Add code to check external surface against reported surface from other trusted peers, and also rename ExternalSurface to SelfAwareness because lulz.
|
2015-04-06 20:17:21 -07:00 |
|
Adam Ierymenko
|
ee0f56355b
|
Send path simplification.
|
2015-04-03 13:14:37 -07:00 |
|
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.
|
2015-04-02 17:54:56 -07:00 |
|
Adam Ierymenko
|
93012b0ee5
|
Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware]
|
2015-02-17 13:11:34 -08:00 |
|
Adam Ierymenko
|
eeed31b396
|
Ping supernodes on surface change, and also reset TCP flag.
|
2015-02-02 17:02:23 -08:00 |
|
Adam Ierymenko
|
37d23336ed
|
Surface logic in Topology.
|
2015-02-02 16:23:26 -08:00 |
|
Adam Ierymenko
|
61cff47f5b
|
Code to track externally visible address surface.
|
2015-02-02 15:24:05 -08:00 |
|
Adam Ierymenko
|
4e95384ad6
|
Cleanup, add tristate to config code in Network, and happy new year!
|
2015-01-05 17:47:59 -08:00 |
|
Adam Ierymenko
|
74f36f5dc0
|
Windows build fixes.
|
2014-10-19 12:56:39 -07:00 |
|
Adam Ierymenko
|
a8bd8fff93
|
Make several changes to eliminate potential deadlock or recursive lock conditions, and add back rescan of multicast groups on network startup.
|
2014-10-14 16:38:27 -07:00 |
|
Adam Ierymenko
|
2416491cbc
|
Permanently retire peers.persist, but make iddb.d always enabled instead since identities are what we really want to cache.
|
2014-10-13 14:12:51 -07:00 |
|
Adam Ierymenko
|
e1882b614b
|
Some cleanup, Multicaster now sends multicasts as it gets additional members.
|
2014-10-01 14:05:25 -07:00 |
|
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.
|
2014-09-24 13:53:03 -07:00 |
|
Adam Ierymenko
|
2762db8408
|
More work on control bus refactor...
|
2014-09-17 12:54:39 -07:00 |
|
Adam Ierymenko
|
1d37204a37
|
Refactoring in progress... pardon our dust...
|
2014-09-12 16:57:37 -07:00 |
|
Adam Ierymenko
|
4e9280fc7a
|
Rip out dead "firewall opener" code, replace in pipeline with anti-symmetric-NAT tactics.
|
2014-09-05 16:23:24 -07:00 |
|
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
|
2014-08-14 19:52:22 -04:00 |
|
Adam Ierymenko
|
be6b61b1bc
|
Accept supernode dictionaries in Topology, also fix (unused) field name in one of these.
|
2014-08-14 18:06:18 -04:00 |
|
Adam Ierymenko
|
8a804b5257
|
(1) Disable firewall openers (its easy to re-enable), (2) Do some prep work for making supernode topology hot-updatable.
|
2014-08-05 14:05:50 -07:00 |
|
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.
|
2014-06-30 11:31:04 -07:00 |
|
Adam Ierymenko
|
8fb442d81a
|
Yet more cleanup to TCP logic, this time adding a master switch and adding UDP preference in send().
|
2014-04-09 17:08:35 -07:00 |
|
Adam Ierymenko
|
fe85426df6
|
A few more tweaks to TCP failover... seems to be switching back and forth pretty well now!
|
2014-04-03 17:12:34 -07:00 |
|
Adam Ierymenko
|
158002d2d1
|
Tweak some timings and stuff.
|
2014-04-03 16:19:41 -07:00 |
|
Adam Ierymenko
|
c96d3ebf8c
|
Such ping logic. So edge case.
|
2014-04-03 14:36:52 -07:00 |
|
Adam Ierymenko
|
700a450806
|
More tweaks to algorithm for determining when to fail over to TCP, and stop supernodes from resynchronizing unless explicitly ordered.
|
2014-04-01 18:39:10 -07:00 |
|
Adam Ierymenko
|
daaec84c6b
|
Add TCP channel support for supernode list, make Peer pick the first path if all paths are equally dead.
|
2014-03-26 15:35:15 -07:00 |
|
Adam Ierymenko
|
33ad3deaee
|
Builds with new Path code.
|
2014-03-21 13:46:55 -07:00 |
|
Adam Ierymenko
|
ba3f04deed
|
Work in progress: refactoring paths, adding TCP fallback.
|
2014-03-20 20:07:35 -07:00 |
|
Adam Ierymenko
|
b5c3a92be2
|
Boring stuff: update dates in copyrights across all files.
|
2014-02-16 12:40:22 -08:00 |
|
Adam Ierymenko
|
525ab3faa9
|
Take TRACE back out of Mac makefile, fix a few decode little things.
|
2014-01-30 15:26:12 -08:00 |
|
Adam Ierymenko
|
490e86dde3
|
Bunch of fixes to startup, pinging, and choice of route. Also some TRACE updates.
|
2014-01-30 14:23:52 -08:00 |
|
Adam Ierymenko
|
6e076e77d8
|
More work on connection reset stuff...
|
2014-01-29 22:04:23 -08:00 |
|
Adam Ierymenko
|
694e9f2bdc
|
Some cleanup and rationalization of main loop.
|
2014-01-29 14:09:12 -08:00 |
|
Adam Ierymenko
|
d6a346ca6e
|
Fix for GitHub issue #35 and also possibly partial fix for #29 issues.
|
2014-01-28 16:12:24 -08:00 |
|
Adam Ierymenko
|
612c17240a
|
Dead code removal, fix for cleanup GitHub issue #28
|
2013-12-06 16:49:20 -08:00 |
|
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.
|
2013-10-21 14:12:00 -04:00 |
|
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.
|
2013-10-21 11:15:47 -04:00 |
|
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.
|
2013-10-21 10:29:44 -04:00 |
|
Adam Ierymenko
|
ca93b4a1ac
|
Clean up some stuff, including a few spots where exceptions were not being handled correctly.
|
2013-10-18 14:16:53 -04:00 |
|
Adam Ierymenko
|
4267e7da93
|
Remove a whole bunch of now-unnecessary cruft from Topology and PacketDecoder.
|
2013-10-05 10:19:12 -04:00 |
|
Adam Ierymenko
|
58538500f2
|
Clean up some routine stuff like pings, and stop keeping links open forever even if there are no frames passing between them.
|
2013-10-02 16:12:10 -04:00 |
|
Adam Ierymenko
|
4c06fcfc9d
|
More include formatting cleanup.
|
2013-09-17 15:53:59 -04:00 |
|
Adam Ierymenko
|
8a46452a70
|
Move template parameter in Thread to a more logical scope location.
|
2013-08-08 09:19:36 -04:00 |
|
Adam Ierymenko
|
e73c4cb68b
|
Whole bunch of stuff: netconf, bug fixes, tweaks to ping and firewall opener timing code.
|
2013-08-06 00:05:39 -04:00 |
|
Adam Ierymenko
|
a7c4cbe53a
|
CLI debugging, got rid of nasty old Thread class and replaced with newer cleaner portable idiom.
|
2013-08-05 16:06:16 -04:00 |
|
Adam Ierymenko
|
0c7f8e247c
|
Add amSupernode to make code clearer in the check-if-self-is-supernode case.
|
2013-07-23 10:23:55 -07:00 |
|
Adam Ierymenko
|
76bc9968ff
|
New simpler command interface via loopback UDP protected by a crypto token.
|
2013-07-17 14:10:44 -04:00 |
|
Adam Ierymenko
|
f934b81703
|
Several bug fixes in newly refactored code.
|
2013-07-12 16:40:59 -04:00 |
|
Adam Ierymenko
|
9e28bbfbb2
|
Factored out multicast propagation algorithm from Switch and Topology, also cleaned up and clarified it a bit.
|
2013-07-10 17:24:27 -04:00 |
|
Adam Ierymenko
|
7c85a638b0
|
Added creation and periodic update of a file called "status" in the home directory that contains peer link status. Useful for debugging and statistics. Send it SIGHUP to force an update now. Otherwise it updates every 120 seconds.
|
2013-07-06 14:58:34 -04:00 |
|
Adam Ierymenko
|
150850b800
|
New git repository for release - version 0.2.0 tagged
|
2013-07-04 16:56:19 -04:00 |
|