Adam Ierymenko
|
2ec88e8008
|
Remove old circuit test code. Rules engine will let us do this much better and more simply.
|
2017-05-30 10:19:45 -07:00 |
|
Adam Ierymenko
|
f9a9c2d009
|
Config object was never even being initialized on leave. Never noticed since desktop and server clients did not use.
|
2017-05-23 14:45:16 -07:00 |
|
Adam Ierymenko
|
1b68d6dbdc
|
License header update.
|
2017-04-27 20:47:25 -07:00 |
|
Adam Ierymenko
|
4f2a779769
|
JSONDB performance improvements, threading fix.
|
2017-04-24 20:51:02 -07:00 |
|
Adam Ierymenko
|
7a94f63058
|
Back out NaCl since the old one with xmm6 salsa2012 does not support multi-block use and the new one is slower.
|
2017-04-17 17:54:12 -07:00 |
|
Adam Ierymenko
|
df48738ac9
|
Enable use of NaCl for faster X64 Salsa20 implementations. Also include binary for OSX for easy build. Blazingly fast.
|
2017-04-17 16:43:03 -07:00 |
|
Adam Ierymenko
|
139c4b5633
|
Significant simplification to path logic.
|
2017-04-14 17:53:32 -07:00 |
|
Adam Ierymenko
|
88a4a3b1ba
|
Pass tptr on leave.
|
2017-04-11 08:47:02 -07:00 |
|
Adam Ierymenko
|
91c9f4cb20
|
Fix TRACE and CLUSTER builds.
|
2017-03-27 17:33:25 -07:00 |
|
Adam Ierymenko
|
e4896b257f
|
Add thread PTR that gets passed through the entire ZT core call stack and then passed to handler functions resulting from a call.
|
2017-03-27 17:03:17 -07:00 |
|
Adam Ierymenko
|
5e6a4e5f5e
|
Send revocations automatically on deauth for instant kill, also fix some issues with the RP.
|
2017-03-06 15:12:28 -08:00 |
|
Adam Ierymenko
|
1d39be61b2
|
ZeroTier now has link quality measurement. We are not using this yet but decided to put it in to prep for future QoS support and SD-WAN stuff.
|
2017-03-01 14:36:52 -08:00 |
|
Adam Ierymenko
|
2bf9145ae6
|
Outgoing side of packet counter for link quality reporting. Also some cleanup and a cluster mode build fix.
|
2017-03-01 10:22:57 -08:00 |
|
Adam Ierymenko
|
4b11566505
|
Integrate moon concept into http config bus, and clean up that code quite a bit.
|
2017-02-13 14:27:08 -08:00 |
|
Adam Ierymenko
|
42f28bce52
|
Cleanup and make moons (federated roots) a little easier to deal with.
|
2017-02-13 09:03:48 -08:00 |
|
Adam Ierymenko
|
43182f8f57
|
Docs, code cleanup, and protect the extra new fields of HELLO with encryption as a precaution.
|
2017-02-05 16:19:03 -08:00 |
|
Adam Ierymenko
|
9e7c778cc8
|
Fix deadlock.
|
2017-01-27 16:16:06 -08:00 |
|
Adam Ierymenko
|
1d775af34a
|
Fix moon persistence.
|
2017-01-27 15:35:21 -08:00 |
|
Adam Ierymenko
|
9f7919f71f
|
Add comments to join ("orbit") moons.
|
2017-01-27 15:27:26 -08:00 |
|
Adam Ierymenko
|
0b3b994241
|
Relay policy can now be computed.
|
2017-01-27 14:05:09 -08:00 |
|
Adam Ierymenko
|
64774d0d4f
|
Replace piecemeal designation of upstreams with the concept of moons, which is simpler and easier to use and inherits all the cool live update stuff of worlds (now called planets) and global roots.
|
2017-01-27 13:27:52 -08:00 |
|
Adam Ierymenko
|
d7e7ad4f88
|
Can't send a user message to self.
|
2017-01-11 17:46:52 -08:00 |
|
Adam Ierymenko
|
d5528e4e9a
|
Wire up VERB_USER_MESSAGE in core.
|
2017-01-09 15:55:07 -08:00 |
|
Adam Ierymenko
|
244f37179c
|
Minor security: lock roots to only be reachable via World IPs.
|
2016-12-05 16:09:42 -08:00 |
|
Adam Ierymenko
|
84732fcb12
|
Wire through external path lookup. Static paths should now work.
|
2016-11-22 14:23:13 -08:00 |
|
Adam Ierymenko
|
42ba70e79e
|
Replace long callback arg list with struct, and implement path whitelisting, path blacklisting, and local.conf support for roles.
|
2016-11-22 10:54:58 -08:00 |
|
Adam Ierymenko
|
cbaef66e82
|
Fix a deadlock in federation/upstream code.
|
2016-11-21 16:04:01 -08:00 |
|
Adam Ierymenko
|
97d915b06c
|
Expose relay policy in node settings.
|
2016-11-21 15:35:18 -08:00 |
|
Adam Ierymenko
|
673c0c811e
|
Wire through upstream stuff and add setRole().
|
2016-11-18 13:48:49 -08:00 |
|
Adam Ierymenko
|
2ea9f516e1
|
Rate gate expensive validation of new identities in HELLO.
|
2016-11-18 12:59:04 -08:00 |
|
Adam Ierymenko
|
1615ef1114
|
Rename getBestRoot() etc.
|
2016-11-17 16:31:58 -08:00 |
|
Adam Ierymenko
|
12d32b9311
|
Small fix to send pushes if not a reply.
|
2016-11-10 11:57:45 -08:00 |
|
Adam Ierymenko
|
226123ca08
|
Refactor controller to permit sending of pushes as well as just replies to config requests.
|
2016-11-10 11:54:47 -08:00 |
|
Adam Ierymenko
|
c61ca1dea2
|
Keep connections up for netconf stuff as well as frames.
|
2016-11-09 16:04:08 -08:00 |
|
Adam Ierymenko
|
7e4b6b594b
|
It now builds.
|
2016-09-26 17:05:39 -07: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
|
5b6d27e659
|
Implement relay policy, and setting multicast limit to 0 now disables multicast on the network as would be expected.
|
2016-09-13 14:27:18 -07:00 |
|
Adam Ierymenko
|
ab9afbc749
|
(1) Public networks now get COMs even though they do not gate with them since they will need them to push auth for multicast stuff, (2) added a bunch of rate limit circuit breakers for anti-DOS, (3) cleanup.
|
2016-09-09 11:36:10 -07:00 |
|
Adam Ierymenko
|
0d4109a9f1
|
More refactoring to clean up code, and add a gate function to make sure we do not handle OK packets we did not expect. This hardens up a few potential edge cases around security, since such messages might be used to e.g. pollute a cache and DOS under certain conditions.
|
2016-09-09 08:43:58 -07:00 |
|
Adam Ierymenko
|
16df2c3363
|
Clean up handling of COMs, network access control, and fix a backward compatiblity issue.
|
2016-09-08 19:48:05 -07:00 |
|
Adam Ierymenko
|
1908aa55f5
|
Refactor MULTICAST_LIKE pushing to eliminate redundant and unnecessary pushes and simplify code.
|
2016-09-07 15:15:52 -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
|
eebcf08084
|
Tweaks to new Path code for dual-stack operation, and other fixes.
|
2016-09-03 15:39:05 -07:00 |
|
Adam Ierymenko
|
4f8253dcdb
|
Tweaks to path handling...
|
2016-09-02 13:33:56 -07:00 |
|
Adam Ierymenko
|
e8f6b4b5d3
|
Rest of big Path canonicalization refactor.
|
2016-09-02 11:51:33 -07:00 |
|
Adam Ierymenko
|
ccea3d04d6
|
Push NETWORK_CONFIG_REFRESH on POSTs to /member/... in controller.
|
2016-08-24 14:28:16 -07:00 |
|
Adam Ierymenko
|
e1310a764a
|
More cleanup and removal of cruft due to obsolete network-specific relays (will be replaced with federation stuff).
|
2016-08-09 15:45:26 -07:00 |
|
Adam Ierymenko
|
98152d974a
|
More cleanup and removal of DeferredPackets, will do the latter in a more elegant way.
|
2016-08-04 11:40:38 -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
|
9657675755
|
Plumbing through trusted path stuff to OneService.
|
2016-07-12 11:30:22 -07:00 |
|
Adam Ierymenko
|
765082fdb6
|
Trusted path support, and version bump to 1.1.9
|
2016-07-12 08:29:50 -07:00 |
|
Adam Ierymenko
|
8b9519f0af
|
Simplify a bunch of NetworkConfig stuff by eliminating accessors, also makes network controller easier to refactor.
|
2016-05-06 16:13:11 -07:00 |
|
Adam Ierymenko
|
7913fa7bbd
|
Dead code removal.
|
2016-05-06 11:13:34 -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
|
2f18a92e20
|
Cleanup in numerous places, reduce network chattiness around MULTICAST_LIKE, and fix a "how was that working" latent bug causing some control traffic to take the scenic route.
|
2016-04-19 12:09:35 -07:00 |
|
Adam Ierymenko
|
bbd9915056
|
Refactor Node for new NetworkConfig
|
2016-04-12 12:26:10 -07:00 |
|
Adam Ierymenko
|
8ef78e7e7d
|
Preserve add local interface address add order and send in that order since this is a priority.
|
2016-04-06 11:50:00 -07:00 |
|
Adam Ierymenko
|
c7c61b4ac0
|
Fix checking of path address validity.
|
2016-02-22 16:01:35 -08:00 |
|
Adam Ierymenko
|
4e4fd51117
|
boring doc stuff
|
2016-01-12 14:04:55 -08:00 |
|
Adam Ierymenko
|
83ef98a9dc
|
Add a network-associated user ptr in API.
|
2016-01-12 11:04:35 -08:00 |
|
Adam Ierymenko
|
b3e3d4cacc
|
Instead of using binary packet comparison, add a callback to the API to explicitly check whether paths should be used. Check in with this callback (if present) when learning new paths or sending initial packets.
|
2016-01-11 10:17:44 -08:00 |
|
Adam Ierymenko
|
1023ef23b7
|
Remove somewhat ugly and costly anti-recursion hack -- we will switch to more explicit methods.
|
2016-01-11 09:06:10 -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
|
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
|
94f4316a0e
|
Fix for possible high CPU usage on multicast queries.
|
2015-11-09 14:54:05 -08:00 |
|
Adam Ierymenko
|
5f39d5b7ea
|
Further pare down Cluster messaging and rename some stuff.
|
2015-11-06 14:37:17 -08:00 |
|
Adam Ierymenko
|
8ef4edebbf
|
Deferred decode for HELLO to prevent HELLOcalypse under high load of new peers.
|
2015-11-05 12:22:58 -08:00 |
|
Adam Ierymenko
|
7fbe2f7adf
|
Tweak some more timings for better reliability.
|
2015-11-02 15:38:53 -08:00 |
|
Adam Ierymenko
|
60ce886605
|
Tweak some timings for better reliability.
|
2015-11-02 15:15:20 -08:00 |
|
Adam Ierymenko
|
a994573a43
|
Eliminate some more dead code. We may do path trust, but not like that.
|
2015-10-29 09:42:15 -07:00 |
|
Adam Ierymenko
|
16bc3e0398
|
Factor out RemotePath subclass of Path -- no longer needed, just cruft.
|
2015-10-27 15:00:16 -07:00 |
|
Adam Ierymenko
|
0ffbd05c0e
|
--wtf; prevent roots from TCP fallback
|
2015-10-27 12:21:57 -07:00 |
|
Adam Ierymenko
|
5ff7733f84
|
More plumbing of cluster status.
|
2015-10-26 12:49:17 -07:00 |
|
Adam Ierymenko
|
e9648a6cdf
|
Clarify logic in pinging, and prevent roots from pinging "down."
|
2015-10-23 14:05:12 -07:00 |
|
Adam Ierymenko
|
57e29857cf
|
Cluster work -- integrating with the rest of the code.
|
2015-10-20 15:27:53 -07:00 |
|
Adam Ierymenko
|
584072fa6a
|
Fix for V4/V6 stable addressing.
|
2015-10-19 14:04:36 -07:00 |
|
Adam Ierymenko
|
2229e91b57
|
IPv6 support fixes.
|
2015-10-16 10:10:12 -07:00 |
|
Adam Ierymenko
|
489e1a5b83
|
Don't keep connections up longer than the alive timeout (unless they are relays or roots)
|
2015-10-13 13:51:54 -07:00 |
|
Adam Ierymenko
|
70d8e3ad94
|
Expose world ID and world timestamp in ZT_NodeStatus
|
2015-10-13 12:31:38 -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
|
a95fa379cc
|
Circuit tests basically work but need some tweaks, and fix some issues found with valgrind.
|
2015-10-09 14:51:38 -07:00 |
|
Adam Ierymenko
|
0c498556d5
|
Unroll Salsa20 fully for a little more speed (non-SSE now almost as fast as SSE)
|
2015-10-09 09:39:27 -07:00 |
|
Grant Limberg
|
9347d6c866
|
Make it so ZeroTierOne.h can be used with a C compiler again.
|
2015-10-07 18:04:40 -07:00 |
|
Adam Ierymenko
|
1b2cac0cc5
|
Trim some cruft that is not used and probably never would be.
|
2015-10-07 09:38:33 -07:00 |
|
Adam Ierymenko
|
3593fb3462
|
Send initial CIRCUIT_TEST packet.
|
2015-10-06 15:16:41 -07:00 |
|
Adam Ierymenko
|
d3f29d09e8
|
Plumbing through circuit test stuff.
|
2015-10-06 14:42:51 -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
|
2a527ea82e
|
Fix for timer jitter problem.
|
2015-09-23 14:01:41 -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
|
5fcef91278
|
Ignore old root-topology if present -- fix for upgrading on Linux and possibly elsewhere.
|
2015-08-25 09:42:37 -07:00 |
|
Adam Ierymenko
|
7a15d8a7e3
|
Fix leaving of networks to actually call Network::destroy().
|
2015-07-24 14:50:44 -07:00 |
|
Adam Ierymenko
|
0b354803f3
|
Clean up some YAGNI issues with implementation of GitHub issue #180, and make best path choice aware of path rank.
|
2015-07-13 10:03:04 -07:00 |
|
Adam Ierymenko
|
3f567a07ca
|
Save a little bit of RAM by getting rid of overkill CMWC4096 non-crypto PRNG and replacing it with a simple non-crypto PRNG that just uses Salsa20.
|
2015-07-07 10:49:50 -07:00 |
|
Adam Ierymenko
|
c863ff3f02
|
A bunch of comments and cleanup, including some to yesterday's direct path pushing changes. Move path viability check to one place, and stop trying to use link-local addresses since they are not reliable.
|
2015-07-07 08:54:48 -07:00 |
|
Adam Ierymenko
|
235f4762b7
|
Plumbing for local interface addresses -- GitHub issue #180
|
2015-07-06 15:51:04 -07:00 |
|
Adam Ierymenko
|
79e9a8bcc2
|
Almost everything for GitHub issue #180 except direct path map setup.
|
2015-07-06 15:28:48 -07:00 |
|
Adam Ierymenko
|
93bb934d4e
|
Some cleanup, docs, and Path -> Path > RemotePath refactor.
|
2015-07-06 14:08:13 -07:00 |
|