Adam Ierymenko
|
cbaef66e82
|
Fix a deadlock in federation/upstream code.
|
2016-11-21 16:04:01 -08:00 |
|
Adam Ierymenko
|
1fcbb1fbed
|
Proactively auto-load designated upstreams.
|
2016-11-18 10:39:26 -08:00 |
|
Adam Ierymenko
|
bf8d71e82c
|
Add notion of upstream that is separate from root in Topology, etc.
|
2016-11-17 16:20:41 -08:00 |
|
Adam Ierymenko
|
d3524f3609
|
Refactor COM stuff a bit, and respond to COM requests a bit more readily for rapid setup. Will need to revisit later.
|
2016-09-20 21:21:34 -07:00 |
|
Adam Ierymenko
|
b5c86b6ba4
|
Bunch more path refactoring. Peers no longer forget paths, but do not normally use expired paths. Expired paths might still be tried if nothing else is reachable.
|
2016-09-07 11:13:17 -07:00 |
|
Adam Ierymenko
|
4931e44998
|
Implement "weak pointer" behavior on Topology Path canonicalization hash table.
|
2016-09-02 12:34:02 -07:00 |
|
Adam Ierymenko
|
00fd9c3a15
|
It builds... almost ready to test some rules engine stuff.
|
2016-08-08 17:33:26 -07:00 |
|
Adam Ierymenko
|
f057bb63cd
|
More work on tags and capabilities.
|
2016-08-04 09:02:35 -07:00 |
|
Adam Ierymenko
|
7e6e56e2bc
|
Bunch of work on pushing and replication of tags and capabilities, and protocol cleanup.
|
2016-08-03 18:04:08 -07:00 |
|
Adam Ierymenko
|
91940cbcf5
|
Kill network preferred relays -- this feature is gone (and was seldom used anyway) in favor of federation.
|
2016-08-02 14:40:26 -07:00 |
|
Adam Ierymenko
|
10564d8e14
|
Init trusted path count to zero. Meh.
|
2016-07-21 19:05:14 -07:00 |
|
Adam Ierymenko
|
b9dba97fdb
|
Bunch more refactoring for an even more compact NetworkConfig representation, especially rules.
|
2016-04-26 17:11:25 -07:00 |
|
Adam Ierymenko
|
8a9762331f
|
Fix one more old NetworkConfig bit of code.
|
2016-04-12 12:54:14 -07:00 |
|
Adam Ierymenko
|
2e5caa335a
|
Old SF root is dead. Now we are just on Alice and Bob. (world update for 1.1.4)
|
2016-01-13 10:18:41 -08:00 |
|
Adam Ierymenko
|
4e4fd51117
|
boring doc stuff
|
2016-01-12 14:04:55 -08:00 |
|
Adam Ierymenko
|
d8143a5e18
|
Implement first pass on rapid dead path detection, and increment version to 1.1.3 (dev)
|
2016-01-05 16:41:54 -08:00 |
|
Adam Ierymenko
|
436c1fac1d
|
Selectively move over changes from "edge" to "dev" excluding netcon.
|
2015-12-21 16:15:39 -08:00 |
|
Adam Ierymenko
|
ce5b7f0305
|
The World as of 2015-11-20
|
2015-11-20 12:49:23 -08:00 |
|
Adam Ierymenko
|
9169b6c999
|
Fix crash on exit in Windows (does not affect other OSes) and revert debugging tweak in Windows version that prevented service from starting after real install.
|
2015-11-17 09:56:19 -08:00 |
|
Adam Ierymenko
|
456bfea58d
|
Real World -- edge now talks to real net.
|
2015-11-16 19:27:36 -08:00 |
|
Grant Limberg
|
75f8ee1b9c
|
get the compiler to stop complaining about two string literals (one a macro) next to each other without an intervening space
|
2015-11-14 18:19:33 -08:00 |
|
Adam Ierymenko
|
0d9f33dc4f
|
Fix: (1) Windows stack overflow due to buffer too large in peer deserialize, (2) clean up some other stuff seen during debugging and reduce the sizes of some buffers due to Windows small stack size, (3) remove a redundant try/catch.
|
2015-11-13 12:14:28 -08:00 |
|
Adam Ierymenko
|
ccae473783
|
Eliminate Windows warnings.
|
2015-11-12 16:51:33 -08:00 |
|
Adam Ierymenko
|
4e9d430476
|
Make root and relay selection somewhat more robust.
|
2015-11-02 16:03:28 -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
|
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
|
a1a0ee4edb
|
Fix infinite loop in Cluster, clean up some stuff elsewhere, and back out rate limiting in PUSH_DIRECT_PATHS for now (but we will do something else to mitigate amplification attacks)
|
2015-10-27 12:01:00 -07:00 |
|
Adam Ierymenko
|
17e7528e2c
|
More root cleanup.
|
2015-10-27 10:40:31 -07:00 |
|
Adam Ierymenko
|
8a7a0b6b88
|
Cleanup, including simplification of root server picking algorithm since we no longer need all that craziness.
|
2015-10-27 10:37:39 -07:00 |
|
Adam Ierymenko
|
0b82c9ebad
|
Fix infinite loop if there are no live roots (never happened before?!? wow!)
|
2015-10-26 16:09:56 -07:00 |
|
Adam Ierymenko
|
de761c5a82
|
Fix test world def.
|
2015-10-26 15:47:32 -07:00 |
|
Adam Ierymenko
|
6cf1da166f
|
Add the whole new World, though with test identities at this point.
|
2015-10-26 15:12:28 -07:00 |
|
Adam Ierymenko
|
865acfa40f
|
Cluster status plumbing.
|
2015-10-26 12:41:08 -07:00 |
|
Adam Ierymenko
|
d2b1dfe424
|
Fully specify new network in alice-test, this will (with different identities) eventually become the World.
|
2015-10-23 15:51:50 -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
|
eb79d4a2f3
|
Wire up peer announcement in cluster.
|
2015-10-20 16:24:21 -07:00 |
|
Adam Ierymenko
|
69dad37d8f
|
Restore default World for commit to upstream
|
2015-10-19 15:23:43 -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
|
aa6e3c79a0
|
Some test stuff that will not be pushed elsewhere.
|
2015-10-19 10:49:31 -07:00 |
|
Adam Ierymenko
|
f9f60f89d9
|
Peer save/restore fix.
|
2015-10-16 10:45:58 -07:00 |
|
Adam Ierymenko
|
59389b3dce
|
Untested cluster code, not enabled.
|
2015-10-14 14:17:55 -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
|
e268d9492a
|
cleanup
|
2015-10-13 12:18:47 -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
|
5384f185ae
|
Simplify Dictionary and reduce memory usage, now no more std::maps in core.
|
2015-10-01 18:12:16 -07:00 |
|
Adam Ierymenko
|
76a95dc58f
|
The return of peer peristence.
|
2015-10-01 17:09:01 -07:00 |
|
Adam Ierymenko
|
a3db7d0728
|
Refactor: move network COMs out of Network and into Peer in prep for tightening up multicast lookup and other things.
|
2015-10-01 11:11:52 -07:00 |
|
Adam Ierymenko
|
f69454ec98
|
(1) Make ZT_ naming convention consistent (get rid of ZT1_), (2) Make local interface a full sockaddr_storage instead of an int identifier, which turns out to be better for multi-homing and other uses.
|
2015-09-24 16:21:36 -07:00 |
|
Adam Ierymenko
|
367ffde00c
|
Plumb through localInterfaceId to track local interfaces corresponding with remote addresses.
|
2015-09-23 13:49:56 -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
|
93bb934d4e
|
Some cleanup, docs, and Path -> Path > RemotePath refactor.
|
2015-07-06 14:08:13 -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
|
4d5a6a25d3
|
Add events for packet decode errors, etc., and re-implement TRACE as an event.
|
2015-04-08 16:49: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
|
52c3b7c34e
|
Implemented empirical determination of external addressing, paritioned per scope.
|
2015-04-07 11:56:10 -07:00 |
|
Adam Ierymenko
|
817824b88b
|
Some external surface awareness work, and IP scope classification.
|
2015-04-07 10:57:59 -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
|
4e95384ad6
|
Cleanup, add tristate to config code in Network, and happy new year!
|
2015-01-05 17:47:59 -08: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
|
7a37326cc0
|
Fix sleeper bug that probably did nothing in setSupernodes().
|
2014-10-14 14:59:17 -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
|
6316011024
|
Make crypto and compression build optimized in debug, and also try disabling peers.persist -- might ship this way as it seems more trouble than its worth.
|
2014-10-12 11:42:49 -07:00 |
|
Adam Ierymenko
|
e53d208ea4
|
Improve security posture by eliminating non-const data() accessor from Buffer.
|
2014-10-02 10:06:29 -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
|
282114e96c
|
Makefile changes, and make Topology::getBestSupernode() return the "next" supernode if I am a supernode. Also some comment cleanup.
|
2014-08-19 10:09:21 -07:00 |
|
Adam Ierymenko
|
aa59cfd545
|
Web request part of supernode resync (not quite done, needs test)
|
2014-08-15 23:37:35 -04: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
|
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
|
7831c4bfef
|
Cleanup, dead code removal, some pretty insignificant security stuff that's based on recommendations.
|
2014-04-18 00:14:12 -07:00 |
|
Adam Ierymenko
|
f13493edb2
|
Oops... turns out we need to differentiate incoming from outgoing TCP and indeed learn incoming TCP paths. Otherwise the recipient of a TCP connection does not know to reply via TCP! Heh.
|
2014-03-31 22:23:55 -07:00 |
|
Adam Ierymenko
|
8e587ae481
|
Clean dead paths from peers.
|
2014-03-31 11:41:14 -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
|
8d3eb1a258
|
A few renamings to be consistent.
|
2014-03-21 14:18:35 -07:00 |
|
Adam Ierymenko
|
33ad3deaee
|
Builds with new Path code.
|
2014-03-21 13:46:55 -07:00 |
|
Adam Ierymenko
|
b5c3a92be2
|
Boring stuff: update dates in copyrights across all files.
|
2014-02-16 12:40:22 -08:00 |
|
Adam Ierymenko
|
9acfd3eb73
|
Build fix on Linux with G++.
|
2014-02-11 23:09:53 +00:00 |
|
Adam Ierymenko
|
0ad84b8723
|
Possible bug fix in Topology, have to test...
|
2014-02-11 15:02:21 -08:00 |
|
Adam Ierymenko
|
d452ed7db8
|
Fix inverted sense bug in new skip-stale-relay logic.
|
2014-02-03 21:15:29 -08:00 |
|
Adam Ierymenko
|
d7bc3c6f4a
|
Fix infinite loop bug introduced in last commit.
|
2014-02-03 12:28:23 -08:00 |
|
Adam Ierymenko
|
d04e5a1fe0
|
Add a simple but very nice mechanism for avoiding potentially dead supernodes.
|
2014-02-03 11:09:09 -08:00 |
|
Adam Ierymenko
|
22efa1ab53
|
Windows Installer work, fix 100% CPU bug in EthernetTap on Windows, Windows lockDownFile() implementation that uses 'cacls' utility.
|
2014-01-26 10:21:43 -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
|
0e43e5e8f2
|
Rest of work on new hashcash based identity scheme.
|
2013-10-05 07:00:55 -04:00 |
|
Adam Ierymenko
|
4e010da54b
|
Work in progress...
|
2013-09-26 17:45:19 -04:00 |
|
Adam Ierymenko
|
487eb17ec0
|
ZeroTierOne for Windows binary project, builds and runs and mostly works but still some issues with tap.
|
2013-08-26 17:22:20 -04:00 |
|