Compare commits

...
2522 Commits
Author SHA1 Message Date
Adam Ierymenko 91b16310ea * Change license from GPL3 to BSL 1.1, see LICENSE.txt
* Fix an issue with the "ipauth" rule and auto-generated unforgeable IPv6 addresses
 * Fix socket/bind errors setting IPs and routes on Linux
2019-08-26 10:33:26 -07:00
Adam Ierymenko 609873e6d1 Windows version bump 2019-08-23 22:10:15 -07:00
Adam Ierymenko 4c616621c2 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-08-23 21:38:15 -07:00
Adam Ierymenko 05470bf202 Fix RPM targets 2019-08-23 21:38:04 -07:00
Adam Ierymenko 633cf9ec04 Warning removal 2019-08-23 21:28:26 -07:00
Adam Ierymenko f3c3a90393 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-08-23 21:24:34 -07:00
Adam Ierymenko 25a48f2f44 Fix RedHat sub-version. 2019-08-23 21:24:05 -07:00
Adam Ierymenko d214a5437f Bump Mac pkg version 2019-08-23 15:24:52 -07:00
Adam Ierymenko de0a5aa840 GitHub issue #994 2019-08-23 12:09:31 -07:00
Adam Ierymenko 6f9e3e3b78 Back out unnecessary hack 2019-08-23 11:14:17 -07:00
Adam Ierymenko 5c5e7fc7ff Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2019-08-23 11:13:13 -07:00
Adam Ierymenko 43e98930e9 distro cleanup 2019-08-23 11:12:25 -07:00
Adam Ierymenko 51ebefc3ab Ifdef these to stop non-Windows IDEs from complaining. 2019-08-23 10:34:37 -07:00
Adam Ierymenko 86add4a6d3 Tolerate any libstdc++6 package "version" for Mint and other distros with weird versions on libstdc++6. 2019-08-23 10:31:12 -07:00
Adam Ierymenko 221a3f9a08 Merge branch 'dev' of http://10.187.0.8/zerotier/ZeroTierOne into dev 2019-08-23 10:20:04 -07:00
Adam Ierymenko 2f74bd5150 Add "make docker" for GitHub issue #1013 2019-08-23 10:19:59 -07:00
Adam Ierymenko e8ae333443 Version bumps, license fixed, and GitHub issue #990 take two 2019-08-23 10:15:13 -07:00
Adam Ierymenko 52a166a71f Relicense: GPLv3 -> ZeroTier BSL 1.1 2019-08-23 09:23:39 -07:00
Adam Ierymenko 509da3ac34 Merge pull request #1012 from wendelb/wendelb-patch-1
Controller-Docs little cleanup
2019-08-21 08:14:38 -07:00
wendelb fe18579061 Removed duplicate line creationTime 2019-08-17 22:50:13 +02:00
Adam Ierymenko 2ec53df7ab Put a limit on the multicast TX queue to prevent memory use ridiculousness. 2019-08-14 10:52:21 -07:00
Adam Ierymenko 1c7b553331 GitHub issue #1000 2019-08-14 10:47:58 -07:00
Adam Ierymenko a0fb519696 Make sure libstdc++ is in RH spec file 2019-08-13 12:58:14 -07:00
Adam Ierymenko 83e6864b78 Version bump in Linux packages for new binaries. 2019-08-13 09:34:56 -07:00
Adam Ierymenko 98af3c0dc1 * Fix high CPU use bug on some platforms
* Fix issues with PostgreSQL controller DB (only affects Central)
 * Restore backward compatibility with MacOS versions prior to 10.13
2019-08-12 13:25:12 -07:00
Adam Ierymenko 5341c216a7 Comment ugly query 2019-08-08 19:20:01 -05:00
Adam Ierymenko 96a0c3d764 ugly query is ugly 2019-08-08 19:16:11 -05:00
Adam Ierymenko 783b49e383 more worky less not worky 2019-08-08 18:58:22 -05:00
Adam Ierymenko d4dc983a01 fix bad column name 2019-08-08 18:31:41 -05:00
Adam Ierymenko 72ccd1020a Another exception fix 2019-08-08 18:11:06 -05:00
Adam Ierymenko 6a9a577c59 rulesSource needs to be required in network or pgsql has issues 2019-08-08 17:56:27 -05:00
Adam Ierymenko 730305ecc7 One more sync fix. 2019-08-08 17:31:32 -05:00
Adam Ierymenko f8f2432ece Shutdown fix 2019-08-08 17:22:20 -05:00
Adam Ierymenko 55087521f6 Add periodic sync check when syncing LF<>another DB 2019-08-08 17:20:50 -05:00
Adam Ierymenko 760ae07d72 Sync bug fix 2019-08-08 16:30:52 -05:00
Adam Ierymenko 28d0070ce2 Fix race in multiple DB mirroring configurations. 2019-08-08 15:29:13 -05:00
Adam Ierymenko ad2a7c2590 More windows build fixes 2019-08-08 15:15:12 -05:00
Adam Ierymenko 8b97755fc5 Windows fixes. 2019-08-08 14:08:35 -05:00
Adam Ierymenko 7bb0d9be1b warning removal 2019-08-08 11:04:11 -05:00
Adam Ierymenko 6c44fcc290 more warning cleanup 2019-08-08 10:28:57 -05:00
Adam Ierymenko c8e7031198 warning cleanup 2019-08-08 10:01:57 -05:00
Adam Ierymenko fb3b2820b5 centos 7 docs 2019-08-08 09:50:05 -05:00
Adam Ierymenko c83a4aef55 cleanup 2019-08-07 21:47:06 -05:00
Adam Ierymenko af7a70bf02 cleanup 2019-08-07 21:11:48 -05:00
Adam Ierymenko 4d70640a15 Remove debug line 2019-08-07 19:06:02 -05:00
Adam Ierymenko b11627a8bc add SDK VirtualTap to new factory method 2019-08-07 18:45:04 -05:00
Adam Ierymenko 7436f85ad0 Require MacOS 10.10 2019-08-07 18:22:03 -05:00
Adam Ierymenko 237c379866 Choose which tap to use (feth or kext) on Mac based on Darwin version. 2019-08-07 18:20:17 -05:00
Adam Ierymenko aca31c7055 Put kext back in Mac distro and use on versions older than High Sierra (which lack the feth device) 2019-08-07 18:14:12 -05:00
Adam Ierymenko 6073e7972f Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-08-07 11:24:04 -05:00
Adam Ierymenko f7e8d8f1dd Fix LFDB path issue when using with Postgress in DBMirrorSet config 2019-08-07 11:23:48 -05:00
Grant Limberg 87016ae815 network update to upsert 2019-08-06 15:30:50 -07:00
Adam Ierymenko 3ed8e46782 Use devtoolset-8 on RHEL/CentOS 7 2019-08-06 16:46:41 -05:00
Adam Ierymenko 3db0197865 Add try/catch in LFDB and add introspection into multicast subscriptions in client network status API 2019-08-06 15:22:57 -05:00
Adam Ierymenko 6174c0c103 Fix deadlock bug. 2019-08-06 13:20:37 -05:00
Adam Ierymenko 8898cb342b . 2019-08-06 13:12:45 -05:00
Adam Ierymenko 9cc76d1115 Remove debug line 2019-08-06 11:01:08 -05:00
Adam Ierymenko 5289d3327c Build fixes 2019-08-06 11:00:35 -05:00
Adam Ierymenko 00fb9c475e More work on DB mirroring. 2019-08-06 10:42:54 -05:00
Adam Ierymenko 3c776675b3 Cruftectomy, work in progress on mirrorring 2019-08-06 08:51:23 -05:00
Adam Ierymenko 37d508ab96 Refactoring in prep for mirroring 2019-08-06 07:51:50 -05:00
Adam Ierymenko f4f8fef82e LFDB fix 2019-08-05 15:30:03 -05:00
Adam Ierymenko cd2e3c79f2 Windows AIP version bump 2019-08-04 20:27:09 -07:00
Adam Ierymenko 7722350178 Version bump to 1.4.2 for all but Windows AIP 2019-08-04 20:13:12 -07:00
Adam Ierymenko a77b4ecddb Add optional function in DB change listener for member online events. 2019-08-04 19:55:52 -07:00
Adam Ierymenko 818b7e4a2e GitHub issue #993 (???) 2019-08-04 15:35:43 -07:00
Adam Ierymenko 00d63f6046 GitHub issue #993 (???) 2019-08-04 15:15:02 -07:00
Adam Ierymenko 639fc60257 GitHub issue #990 2019-08-04 15:08:33 -07:00
Grant Limberg 21467596bc Merge branch 'remove_network_status_table' into dev 2019-08-04 12:38:12 -07:00
Adam Ierymenko 75ebe5172f Fix for sharing of capabilities in 1.4 (problem introduced when push frequency was reduced) 2019-08-02 20:43:02 -07:00
Adam Ierymenko 4a9030b4a0 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-08-02 13:59:10 -07:00
Adam Ierymenko fdc708a624 GitHub issue #979 2019-08-02 13:59:03 -07:00
Adam Ierymenko 67beea1e3d Batch file to clean Windows build dir 2019-08-01 13:21:36 -07:00
Adam Ierymenko 34364ab8ee Bump version 2019-07-31 16:41:35 -07:00
Adam Ierymenko bb99ef1351 Get rid of online status stuff in FileDB, not necessary at all. 2019-07-31 16:41:12 -07:00
Adam Ierymenko b3891e5506 Version 1.4.0.1: bug fix for Mac multicast and IPv4 issues, no change for other platforms 2019-07-31 13:27:08 -07:00
Adam Ierymenko 632d6e04ad Mac multicast bug fix -- GitHub issue #986 2019-07-31 13:25:58 -07:00
Adam Ierymenko db813db7e8 2019-07-29 -- Version 1.4.0
Major Changes

 * Mac version no longer requires a kernel extension, instead making use of the [feth interfaces](https://apple.stackexc
 * Added support for concurrent multipath (multiple paths at once) with traffic weighting by link quality and faster rec
 * Added under-the-hood support for QoS (not yet exposed) that will eventually be configurable via our rules engine.

Minor Changes and Bug Fixes

 * Experimental DB driver for [LF](https://github.com/zerotier/lf) to store network controller data (LFDB.cpp / LFDB.hpp
 * Modified credential push and direct path push timings and algorithms to somewhat reduce "chattiness" of the protocol
 * Removed our beta/half-baked integration of Central with the Windows UI. We're going to do a whole new UI of some kind
 * Fixed stack overflow issues on Linux versions using musl libc.
 * Fixed some alignment problems reported on ARM and ARM64, but some reports we could not reproduce so please report any
 * Fixed numerous other small issues and bugs such as ARM alignment issues causing crashes on some devices.
 * Windows now sets the adapter name such that it is consistent in both the Windows UI and command line utilities.
2019-07-29 16:11:06 -07:00
Adam Ierymenko 837c6270f2 More docs 2019-07-29 15:14:37 -07:00
Adam Ierymenko 8c3c07cb5d docs 2019-07-29 13:50:02 -07:00
Adam Ierymenko 5cc0dd7f55 Windows installer version bump 2019-07-29 12:36:10 -07:00
Adam Ierymenko 79c4d98b61 docs 2019-07-29 12:10:39 -07:00
Adam Ierymenko 678e11530e 1.4 bump 2019-07-29 12:07:44 -07:00
Adam Ierymenko a8f2b39f15 Windows project fixes 2019-07-29 11:05:46 -07:00
Adam Ierymenko add2ac0369 Merge pull request #963 from atopuzov/armv6l
Fix compiling on Raspberry PI Zero W on Arch Linux
2019-07-29 10:23:09 -07:00
Adam Ierymenko 1e475edd1c Merge pull request #973 from unquietwiki/patch-1
Update Dockerfile
2019-07-29 10:22:36 -07:00
Adam Ierymenko 745483708a Merge pull request #974 from squeakbat/master
Don't relink zerotier-one every time.
2019-07-29 10:21:35 -07:00
Adam Ierymenko d9432f2f1e cleanup 2019-07-29 10:19:20 -07:00
Adam Ierymenko eb7081d2a3 Fix for detecting changes in LF from other instances of the same controller. 2019-07-26 19:28:09 -07:00
Adam Ierymenko d9befe3fb3 Debug code removal 2019-07-26 18:51:50 -07:00
Adam Ierymenko 0618452615 LF masking key should be a secret 2019-07-26 17:44:05 -07:00
Adam Ierymenko f6b080b8a2 Abstract out change listener from controller itself to permit DBs to shadow changes from other DBs. 2019-07-26 17:39:00 -07:00
Adam Ierymenko c8c33db1d1 . 2019-07-26 16:03:21 -07:00
Adam Ierymenko 196bac726c Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-07-23 16:06:40 -07:00
Adam Ierymenko ac2688de58 More LFDB work 2019-07-23 16:06:35 -07:00
Joseph Henry d2af12b6a0 Forgot to add ZT_DISABLE_COMPRESSION to linux makefile 2019-07-23 13:33:25 -07:00
Joseph Henry 6958ba9557 Added ZT_DISABLE_COMPRESSION build flag for SDK and low-end NAS builds 2019-07-23 12:39:07 -07:00
Adam Ierymenko 5f11daadf2 Build fix 2019-07-23 09:30:40 -07:00
Adam Ierymenko 99df3fe433 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-07-23 09:29:12 -07:00
Adam Ierymenko d4d350a285 Work in progress 2019-07-23 09:29:08 -07:00
Joseph Henry 8a0b75c83a Added LFDB.o to objects.mk 2019-07-22 15:24:16 -07:00
Joseph Henry 9cf74657e0 Commented out rtnetlink error debug trace 2019-07-22 14:12:21 -07:00
Adam Ierymenko 5edd04638d LFDB work in progress 2019-07-22 13:43:06 -07:00
Ellen Wang eb2f851e65 Don't relink zerotier-one every time.
Because zerotier-one depends on "one", which is a phony target,
making it relinks zerotier-one every time, which is probably
not the desired behavior.

In any case, zerotier-one, zerotier-cli, and zerotier-idtool are
real target, so they should have real dependencies and actions.
The "one" target now depends on these three files.

Behavior is mostly unchanged otherwise.
2019-07-21 21:37:01 -07:00
Joseph Henry a0f47b12b4 Removed Synology-specific home path, changes made elsewhere in SPK 2019-07-19 16:34:31 -07:00
Adam Ierymenko 1b2d9e202e Remove 44/8 as pseudoprivate since it is now partly global. 2019-07-19 13:33:14 -07:00
Michael Adams daa8839005 Update Dockerfile
Update Dockerfile to use Debian 10 + pull the main.sh directly from Github; works for Portainer use.
2019-07-18 17:48:41 -07:00
Grant Limberg 80124bb753 Update release notes 2019-07-16 15:34:26 -07:00
Grant Limberg 861a319014 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2019-07-16 15:20:05 -07:00
Grant Limberg d43e810ecb Finally figured out how to update the network interface names on Windows so that they'll be visible in ipconfig, Get-NetAdapter etc. 2019-07-16 15:16:49 -07:00
Grant Limberg 7afcc17024 no usleep() on Windows 2019-07-16 13:09:10 -07:00
Grant Limberg 2ab2f68725 Add a central database schema version check to central controller startup 2019-07-16 12:15:38 -07:00
Adam Ierymenko 90872c906f Fix FileDB stuff and latency measurement. 2019-07-15 16:30:34 -05:00
Adam Ierymenko bdc2ec1f5e Track online status in FileDB 2019-07-15 15:27:53 -05:00
Grant Limberg 692733fffb Don't write to ztc_network_status table anymore in central controller 2019-07-15 13:00:16 -07:00
Adam Ierymenko d3728d5859 cleanup 2019-07-10 21:30:11 -04:00
Joseph Henry 389331ca29 Ticket #915, added allowSecondaryPort to optionally force ZT to use a single port 2019-07-09 10:31:03 -07:00
Adam Ierymenko b2c4b7e99f Version bunmp 2019-07-09 10:36:25 -04:00
Adam Ierymenko fee6aae442 Drop in faster C25519 agreement code. 2019-07-09 10:31:08 -04:00
Grant Limberg 409406d114 Whoops 2019-07-08 12:36:49 -07:00
Grant Limberg 203414910f Give up to a second for the interface to appear to assign IP addresses 2019-07-08 12:33:26 -07:00
Travis LaDuke ac0082a67e Update README.md 2019-07-02 11:56:19 -07:00
Aleksandar Topuzović 9ccbe85923 Fix compiling on Raspberry PI Zero W on Arch Linux
* Should also fix it for Raspberry PI 1
* "gcc -dumpmachine | cut -d '-' -f 1" reports armv6l
2019-07-01 14:56:02 +01:00
Adam Ierymenko dffbd2113a Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-06-28 11:20:49 -07:00
Adam Ierymenko 7db073d993 Start 1.4.0 release notes. 2019-06-28 11:20:38 -07:00
Adam Ierymenko 3c02c2e4bd Windows installer bump 2019-06-28 08:48:06 -07:00
Adam Ierymenko a17c760181 Fix Mac installer 2019-06-27 14:36:31 -07:00
Adam Ierymenko 54d2fa65dd Version bump, cleanup 2019-06-27 14:31:10 -07:00
Adam Ierymenko a019c3dd5d Tighten up credential push just a bit for faster up-time with older nodes, should not have significant impact on bandwidth. Also some cleanup and push direct path timing fixes. 2019-06-25 13:42:20 -07:00
Adam Ierymenko a3ef9b8a15 Cleanup 2019-06-25 10:06:50 -07:00
Adam Ierymenko 554e0b7c6d Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-06-20 15:20:46 -07:00
Adam Ierymenko fd74e2a583 Windows build changes for 1.2.99 (1.4.0pre) 2019-06-20 15:20:42 -07:00
Grant Limberg af5d3a7f0b dockerfile updates 2019-06-20 14:17:38 -07:00
Adam Ierymenko bb0808c99c Remove current multithreaded receive path, which is not that efficient. We will do something better in the future. 2019-06-19 10:19:59 -07:00
Adam Ierymenko f0295b154b Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-06-17 15:50:11 -07:00
Adam Ierymenko b041de831a More stack->heap 2019-06-17 15:50:05 -07:00
Grant Limberg 21e844cd82 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-06-17 15:32:27 -07:00
Grant Limberg 4e2439bd12 Don't call _phy->getIfName if localSocket is -1 2019-06-17 15:32:21 -07:00
Adam Ierymenko c5a07c7f20 More stack->heap 2019-06-17 15:28:02 -07:00
Adam Ierymenko e2900f4f3c Fix valgrind warning... not sure if it is an actual issue. 2019-06-17 15:23:52 -07:00
Adam Ierymenko aa831dd843 More stack->heap... 2019-06-17 14:55:33 -07:00
Adam Ierymenko 2dc783214c Allocate outp on heap in Peer. 2019-06-17 14:38:27 -07:00
Adam Ierymenko 523df47a65 Check for null data ptr 2019-06-17 14:02:35 -07:00
Adam Ierymenko f66fac3982 Win32 build fix 2019-06-17 13:48:42 -07:00
Adam Ierymenko 9c51ce9c40 Windows build fixes, fix double/float types to get rid of warnings. 2019-06-17 13:32:41 -07:00
Adam Ierymenko 9797540212 merge 2019-06-13 12:53:05 -07:00
Adam Ierymenko ce2338c24a Fix null ptr on managed routes if no IPs are set. 2019-06-13 12:52:38 -07:00
Grant Limberg 3b188ba672 no message 2019-06-13 10:38:42 -07:00
Grant Limberg eb84d61deb remove these from jenkins for now 2019-06-13 10:35:54 -07:00
Grant Limberg 47d29ddcaf Compiler warning cleanup 2019-06-13 10:28:09 -07:00
Grant Limberg f411eb1651 Remove old RethinkDB.cpp/.hpp files from visual studio project 2019-06-13 10:15:45 -07:00
Joseph Henry 94bd2918fa Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-06-12 13:14:23 -07:00
Joseph Henry c3bfcf560b Removed check for port number in multipath path replacement logic 2019-06-12 13:14:14 -07:00
Adam Ierymenko 5b2b088714 Cleanup, version bump. 2019-06-11 14:58:23 -07:00
Adam Ierymenko 0bdfad52e7 docs 2019-06-11 13:51:10 -07:00
Adam Ierymenko cf046a4039 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-06-11 11:01:20 -07:00
Adam Ierymenko 700cc92083 Indent fix 2019-06-11 11:01:12 -07:00
Joseph Henry 2eb9c0924a Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-06-11 10:54:14 -07:00
Joseph Henry ebadc6f203 Added s390x arch flags to makefile and ZeroTierOne.h for ticket #950 2019-06-11 10:54:06 -07:00
Adam Ierymenko 87bce1a36b GitHub issue #886 2019-06-11 10:53:35 -07:00
Adam Ierymenko 848f822171 . 2019-06-06 10:04:11 -07:00
Joseph Henry d4199ddb3e Commented out RingBuffer::dump() as an alternative solution to PR #952 2019-06-03 11:00:04 -07:00
Grant Limberg e4abc91d35 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-05-31 15:10:53 -07:00
Grant Limberg 37d321afc8 dont spin as much in the onlineNotificationThread 2019-05-31 15:10:45 -07:00
Joseph Henry 541e5c510e CLI improvements (peers, and get/set ip, ip4, ip6, etc) 2019-05-31 11:41:24 -07:00
Joseph Henry 90d324ae96 Fixed ZT_SDK build issue. Moved ZT_SDK preprocessor directives to more permanent homes 2019-05-17 10:15:40 -07:00
Adam Ierymenko cacdb445c7 Bump protocol version to 10 2019-05-14 13:54:27 -07:00
Joseph Henry 4743ad0b16 Added convenience swtich for disabling JSON support in SDK build 2019-05-13 12:24:55 -07:00
Joseph Henry 2d5c6fa975 Disabled compression for outbound packets in SDK build 2019-05-13 12:24:22 -07:00
Joseph Henry 95ef13f7a1 Added divisor for ZT_PEER_ACTIVITY_TIMEOUT, gives quicker indication to status change in SDK 2019-05-13 12:24:01 -07:00
Joseph Henry 298e1d5a74 Added 90x90 AppIcon 2019-05-01 12:53:50 -07:00
Grant Limberg 87c75d033e pt 2 2019-04-22 11:36:14 -07:00
Grant Limberg 71ae678930 Make things compile with Android NDK again 2019-04-22 11:35:35 -07:00
Grant Limberg 6a027c9c0a amqp_consume_message now has a timeout
RabbitMQ::consume() will return an empty string if the call to amqp_consume_message times out
2019-04-18 14:57:06 -07:00
Grant Limberg 6014df2847 fix compile & sql errors 2019-04-04 15:11:01 -07:00
Grant Limberg 55a9e6e05e Queue up inserts in onlineNotificationThread() into a multiple insert statement 2019-04-04 12:40:49 -07:00
Adam Ierymenko 02f0eead1c More new Mac ethernet tap bugs. 2019-03-29 15:14:03 -07:00
Adam Ierymenko d77846dcea Add bigness to buffers to prevent overflow on high traffic (Mac tap). 2019-03-29 12:45:02 -07:00
Adam Ierymenko 92c811deb7 Destroy feth devices before creating to delete old ones if they were left behind (MacEthernetTap). 2019-03-29 12:14:03 -07:00
Adam Ierymenko 92f199ab98 More bug fixing for AARCH64. 2019-03-28 22:40:28 +00:00
Adam Ierymenko b65feeba85 One more AARCH64 fix. 2019-03-28 15:23:53 -07:00
Adam Ierymenko 6914425b03 cleanup 2019-03-28 13:58:19 -07:00
Adam Ierymenko 89f57124b2 Never mind, only unused on some builds so leave them there. 2019-03-27 09:30:45 -07:00
Adam Ierymenko 65823332d4 Comment out some unused functions. 2019-03-27 09:29:34 -07:00
Adam Ierymenko ee8682ac75 Temporarily disable the symmetric NAT port prediction code since the current version adds protocol overhead and probably is not that effective. 2019-03-26 15:23:51 -07:00
Adam Ierymenko e3e5137757 Fix more alignment hell in LinuxNetLink for AARCH64 and probably other pedantic architectures. 2019-03-25 22:53:06 +00:00
Adam Ierymenko d81549a7b1 Various other fixes including removal of more mem*() issues and netlink fixes for AARCH64. 2019-03-25 22:19:52 +00:00
Adam Ierymenko d5ac8512e3 ... 2019-03-25 12:58:43 -07:00
Adam Ierymenko f23e354272 Nope, more... 2019-03-25 12:56:03 -07:00
Adam Ierymenko 6475e1faf6 I think this is the last one. 2019-03-25 12:53:31 -07:00
Adam Ierymenko 752fc0742e More mem*() stuff... sigh... 2019-03-25 12:52:19 -07:00
Adam Ierymenko e1091611da More mem*() stuff... 2019-03-25 12:41:59 -07:00
Adam Ierymenko 678116b6d1 One more. 2019-03-25 12:36:54 -07:00
Adam Ierymenko 0a9e2227e8 ... and more 2019-03-25 12:00:54 -07:00
Adam Ierymenko 2600b1f144 Removal of more mem*() calls. 2019-03-25 11:59:14 -07:00
Adam Ierymenko b56753ea9f Get rid of some mem* calls that are bad C++ form (but worked fine) and cause warnings. 2019-03-25 11:45:32 -07:00
Adam Ierymenko 97046b265c Kill ZT_FAST_MEMCPY in selftest. 2019-03-22 15:52:16 -07:00
Adam Ierymenko 2966eac64f Get rid of ZT_FAST_MEMCPY because this is not really needed. 2019-03-22 15:50:15 -07:00
Adam Ierymenko d530356055 RingBuffer<> is now templated with size, buffer is now static. 2019-03-22 14:39:52 -07:00
Adam Ierymenko af3ec000a0 Merge branch 'dev' into edge 2019-03-22 09:38:41 -07:00
Adam Ierymenko 8051127c3b Update credits. 2019-03-21 16:43:53 -07:00
Adam Ierymenko e37eb0aa54 More cleanup of old stuff no longer used. 2019-03-21 16:42:52 -07:00
Adam Ierymenko 130fa35bb1 cleanup 2019-03-21 16:39:56 -07:00
Adam Ierymenko 39e1021f62 Replace certificate based gating of multicast like/gather with a simpler more efficient method, fix some minor issues with request based com/cert push, and clean up some other random stuff. 2019-03-21 16:18:49 -07:00
Adam Ierymenko 63ec19674c . 2019-03-19 16:43:43 -07:00
Travis LaDuke af60e769b0 Allow mac users to make central-controller
Made the smallest change I could figure out.
Had to remove -Werror because something in the postgres adapter woudn't
compile.

brew install postgresql rabbitmq-c
and seems to put the libs in the right place
2019-03-18 17:01:05 -07:00
Adam Ierymenko 087c75d5ee More cleanup. 2019-03-14 16:40:22 -07:00
Adam Ierymenko e03102dbcb Clean out some unnecessarily pedantic auth stuff in favor of a simpler way of gating multicast gathers. 2019-03-14 14:29:15 -07:00
Adam Ierymenko 9d7b7c72b2 Merge branch 'dev' into edge 2019-03-14 13:49:49 -07:00
Travis LaDuke 99c3f02343 Update controller readme
Delete `/controller/network/<network ID>/active` docs

re: #921
2019-03-12 13:02:49 -07:00
Grant Limberg 95bfc29c92 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-03-11 12:26:57 -07:00
Grant Limberg e3cc7c9a80 fix non-central controller builds 2019-03-11 11:16:44 -07:00
Grant Limberg d4c0349de9 Revert "#ifdef'd out multipath/QoS statistics buffers allocations for ZT_PROTOCOL_VERSION<10"
This reverts commit 270debb3fc.
2019-03-11 09:44:40 -07:00
Adam Ierymenko d7a6357393 Merge branch 'dev' into edge 2019-03-08 13:16:02 -08:00
Adam Ierymenko 6fbf21b4f0 Use a smaller MTU, which should not impact throughput since 2800+overhead/2 still fits in two of these. 2019-03-08 13:15:47 -08:00
Grant Limberg 993d850f69 more logs 2019-03-08 10:50:33 -08:00
Grant Limberg cda07b20a2 add mutex to channel numbering 2019-03-08 10:29:36 -08:00
Grant Limberg 52c85aa605 now with more -fPIC 2019-03-08 10:29:19 -08:00
Grant Limberg e5155df6d5 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-03-08 10:21:19 -08:00
Grant Limberg 293d2064c4 librabbitmq built with same clang version as zt 2019-03-08 10:20:53 -08:00
Grant Limberg 171cc3e01a reorder a couple of things 2019-03-08 10:20:19 -08:00
Grant Limberg 8141043560 finish up rabbitmq integration 2019-03-06 16:16:49 -08:00
Grant Limberg 9a3cc93d74 update dockerfile to generate rabbitmq config settings when necessary 2019-03-05 15:47:04 -08:00
Grant Limberg fcb4221f97 rabbitMQ implementation 2019-03-05 15:11:50 -08:00
Grant Limberg 1f13374a4f added struct for rabbitmq config 2019-03-04 17:01:16 -08:00
Grant Limberg 801401a6e7 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-03-04 16:31:36 -08:00
Grant Limberg de1fc43cc5 added librabbitmq library for central controller 2019-03-04 16:27:39 -08:00
Joseph Henry 270debb3fc #ifdef'd out multipath/QoS statistics buffers allocations for ZT_PROTOCOL_VERSION<10 2019-03-01 13:28:00 -08:00
Grant Limberg 59a0a25f35 Merge branch 'controller-live' into dev 2019-03-01 11:13:49 -08:00
Grant Limberg a788486803 Remove /controller/network/<network ID>/active from controller documentation as that path no longer exists.
GitHub Issue #921
2019-02-25 12:13:55 -08:00
Grant Limberg 3d21f0a91f update docker registry used 2019-02-08 10:40:57 -08:00
Grant Limberg f726044e29 no message 2019-02-05 11:48:03 -08:00
Grant Limberg a4b1917361 Fixed a bug where UI elements were attempting to be updated in a background thread.
Also code cleanup & removed confusing startup UI
2019-02-05 11:47:37 -08:00
Adam Ierymenko a3b2aeb001 Take netmask bits from most specific route. 2019-02-01 14:06:34 -08:00
Adam Ierymenko 5b1ef2fb03 Take netmask bits from most specific route. 2019-02-01 14:05:29 -08:00
Joseph Henry d0f78f1e03 Bugfix for heap-use-after-free in concurrent packet processing code (manifests only after terminate() is called) 2019-02-01 11:50:52 -08:00
Joseph Henry 541e91ed8e Fixed potential memory leak in RingBuffer 2019-02-01 11:44:43 -08:00
Adam Ierymenko 321cada1d7 Wrong criteria was wrong. Now with less wrong. 2019-02-01 11:38:19 -08:00
Adam Ierymenko 34c1023ba7 Wrong criteria was wrong. Now with less wrong. 2019-02-01 11:37:30 -08:00
Joseph Henry 82a21d4b71 Bugfix for heap-use-after-free in concurrent packet processing code (manifests only after terminate() is called) 2019-01-30 22:29:51 -08:00
Joseph Henry 23996c7e6b Fixed potential memory leak in RingBuffer 2019-01-27 14:43:29 -08:00
Joseph Henry d7091a0bac Fixed sign-comparison compile warnings in QoS code 2019-01-25 13:24:31 -08:00
Grant Limberg 7414418e2e insert/update host_port on controller start 2019-01-21 11:29:13 -08:00
Grant Limberg 2294770e56 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-01-21 11:18:25 -08:00
Grant Limberg d98bdb5643 WIP: Pass listen port down to Postgres 2019-01-21 11:18:20 -08:00
Joseph Henry 21f4f16e63 Disable HTTP control plane for libzt builds, introduction of getRoutes() for SDK API 2019-01-14 11:34:46 -08:00
Joseph Henry 0e597191b8 Updated licenses for 2019 2019-01-14 10:25:53 -08:00
Travis LaDuke 001ba1a4a7 Update link to knowledge base. 2019-01-09 10:19:02 -08:00
Grant Limberg b59c4a2106 Print error & exit on local.conf parsing error 2019-01-07 11:19:50 -08:00
Grant Limberg c35933cd1e Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-12-10 12:27:00 -08:00
Grant Limberg 0da2efa633 add application_name to pgbouncer connectio string 2018-12-10 12:26:20 -08:00
Grant Limberg e23d95bf03 sleep 60 seconds between deployments 2018-12-07 15:17:12 -08:00
Grant Limberg f6e9f0e2a2 cleanup 2018-12-07 01:58:23 -08:00
Grant Limberg 4a89729529 add INCOMING_PACKET_CONCURRENCY environment variable to be able to specify max threads for receive in controller 2018-12-07 00:59:08 -08:00
Grant Limberg 56a58f2b11 more logging of exits from the central controller 2018-12-06 13:26:53 -08:00
Grant Limberg e959908c51 log message 2018-12-06 13:19:36 -08:00
Grant Limberg 6e3144370a exit controller if onlinenotification thread exits while _run == 1 2018-12-06 13:10:59 -08:00
Grant Limberg 20f02bb772 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-12-06 13:08:39 -08:00
Grant Limberg 1c86f25fab update # of threads for Postgres 2018-12-06 13:08:31 -08:00
Adam Ierymenko e6f9ab929d More speed stuff. 2018-12-06 12:47:58 -08:00
Adam Ierymenko 18d1772bb4 stuff for speed and stuff (testing) 2018-12-06 12:00:49 -08:00
Adam Ierymenko 5535cad773 Revert mutex change. 2018-12-04 16:15:46 -08:00
Adam Ierymenko ec84934d48 Disable spinlock to check CPU usage implications on multithreaded controllers. 2018-12-04 15:59:39 -08:00
Grant Limberg 328d08781a finish pgbouncer integration 2018-12-03 16:12:15 -08:00
Grant Limberg c8d5215870 add handling for PGBOUNCER_CONNSTR environment variable.
alows Central controllers to connect to PGBouncer on some threads.  LISTEN threads still require a direct connection to the DB
2018-12-03 15:19:15 -08:00
Grant Limberg 62ccb48a0b allow alternative ports for central controllers 2018-12-03 15:06:26 -08:00
Grant Limberg 82409eb345 add script to cycle central controllers 2018-12-03 15:04:46 -08:00
Grant Limberg b75f212d70 Replace RethinkDB section in controller/README with PostgreSQL 2018-11-30 10:41:54 -08:00
Grant Limberg ccb856749f back to plain old libpq in dev 2018-11-30 10:40:57 -08:00
Adam Ierymenko 9d2bc9bf4e Merge branch 'master' into dev 2018-11-28 08:44:45 -08:00
Adam Ierymenko 52c4385c16 Merge branch 'master' of http://git.int.zerotier.com/zerotier/ZeroTierOne 2018-11-28 08:44:12 -08:00
Adam Ierymenko 5da7d6d1ae Merge docker update PR 2018-11-28 08:43:50 -08:00
Adam Ierymenko 65e0a74718 Merge pull request #869 from bltavares/patch-2
Update ZeroTier version on Docker
2018-11-28 08:41:42 -08:00
Grant Limberg 01d5d7d78b Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-11-13 16:20:01 -08:00
Grant Limberg e3381a4c1f fix member init query 2018-11-13 16:19:55 -08:00
Adam Ierymenko 03e35b25b8 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-11-13 16:02:31 -08:00
Adam Ierymenko e2b0fb26b1 self-test build fix. 2018-11-13 16:02:26 -08:00
Grant Limberg 01c18cc442 update makefile for libpqxx controller 2018-11-13 16:01:43 -08:00
Grant Limberg 01e6df4d46 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-11-13 16:00:17 -08:00
Grant Limberg 882b03436d WIP: libpxx instead of libpq 2018-11-13 16:00:13 -08:00
Adam Ierymenko 690bd933d5 Support shutdown with postLimit in BlockingQueue 2018-11-13 13:52:45 -08:00
Adam Ierymenko 6684559cd9 More Mac tap improvements and threading efficiency improvements. 2018-11-13 13:51:25 -08:00
Adam Ierymenko 4ed7d20a48 Another stability fix... turns out vfork is problematic here. 2018-11-13 12:46:36 -08:00
Adam Ierymenko 350116c513 Stability improvements for Mac virtual Ethernet tap driver. 2018-11-13 12:42:03 -08:00
Adam Ierymenko 7bde2c089d Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-11-13 12:08:02 -08:00
Adam Ierymenko 90631adb9b Improve multithreading support for OneService (faster, dynamic adjustment of thread count based on HW concurrency). 2018-11-13 12:07:58 -08:00
Adam Ierymenko f6450cd7e1 Cleanup and a minor performance improvement. 2018-11-13 10:19:51 -08:00
Adam Ierymenko 3b6b1d1674 Make incoming packet processor thread pool dynamic based on core count. 2018-11-13 09:35:20 -08:00
Grant Limberg 33d7b22abe Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-11-11 23:06:31 -08:00
Grant Limberg 2f9712e6a7 utility script to update public controllers 2018-11-11 23:06:24 -08:00
Adam Ierymenko b937aeb857 cleanup 2018-11-11 23:03:51 -08:00
Grant Limberg f3d8846df3 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-11-11 22:55:57 -08:00
Grant Limberg 2729db9555 exceptions 2018-11-11 22:55:53 -08:00
Adam Ierymenko 1cec4b1c4c Raise thread count to 8 2018-11-11 22:55:38 -08:00
Adam Ierymenko 7048c77ebc Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-11-11 22:35:26 -08:00
Adam Ierymenko c9c17eaddd Retire RethinkDB, simple receive path multithreading. 2018-11-11 22:35:15 -08:00
Grant Limberg f1b82b734a Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-11-11 21:09:35 -08:00
Grant Limberg 4c0e7aa8b0 more error checking 2018-11-11 21:08:51 -08:00
Adam Ierymenko 296e4616cc Migrate Windows to use Visual Studio 2017 Community instead of 2015. 2018-11-11 20:31:31 -08:00
Adam Ierymenko 15649334a6 Do not use new "feth" devices for ZT traffic. 2018-11-11 19:22:07 -08:00
Adam Ierymenko b3c2c0866f Times should be int64_t, not uint64_t 2018-11-11 17:38:17 -08:00
Joseph Henry c6ae81fac7 Added preprocessor check for __APPLE__ as an attempted fix for ticket #600 2018-11-11 14:23:24 -08:00
Joseph Henry 79086f0858 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-10-26 12:00:01 -07:00
Joseph Henry c148a23df4 Added preprocessor check for ZT_NO_CAPABILITIES around header includes 2018-10-26 11:59:55 -07:00
Adam Ierymenko c56831767e Fix Mac tap agent abort on EINTR. 2018-10-25 20:44:32 -07:00
Adam Ierymenko 72a724f075 Clean up some stuff after new feth tap implementation, and comment agent file. 2018-10-25 13:10:24 -07:00
Adam Ierymenko 96e1df5854 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-10-25 12:43:35 -07:00
Adam Ierymenko 2e44b90f63 OSX no longer requires the kext due to feth black magic! The MacEthernetTapAgent must be installed in /Library/Application Support/ZeroTier/One for ZT to work now. Eventually this can let us do an app bundle, get rid of the pkg, and have ZT itself run with normal or reduced privileges. Also fixes GitHub issue #870 (at least for me) and may be faster than the old kext. 2018-10-25 12:43:30 -07:00
Grant Limberg 5a0adba798 Setup docker container to use jemalloc 2018-10-24 13:36:21 -07:00
Grant Limberg 761cc5c923 remove another noisy log line 2018-10-24 13:36:07 -07:00
Grant Limberg f901b9dd6b Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-10-24 12:08:48 -07:00
Grant Limberg d87fcca176 Fully operational pgsql controller 2018-10-24 12:06:17 -07:00
Grant Limberg 7c72653385 because Windows.... 2018-10-23 13:21:25 -07:00
Joseph Henry 7dbccf08ae Removed unnecessary block before get request. Possible bug fix for Synology NAS ticket #27 2018-10-23 10:58:25 -07:00
Bruno Tavares 2d21c18ebd Update ZeroTier version on Docker
This commit changes the Dockerfile ot use the multi-stage build and help
to get an automated build on Docker.

The idea of the multi-stage build is to use the already stable Debian
distribution channel to provide up-to-date versions of ZeroTier.

The benefit is that it would be possible to automate the image build,
either on Docker Hub, Travis or taking advantage of the [docker-library/official-images] infrastructure.

This changes follows the best-practices suggested by
[docker-library/official-images], such as using a High Availability GPG
keyserver, providing a default CMD, allowing "bash" on `docker run` and
others.

Given that both the builder `debian:stretch` and `alpine:latest` are
official messages and have [manifests], this means that this Dockerfile
is also multi-platform. This means that this same Dockerfile will
pick-up the correct Debian package according to the architecture of the
running system during build.

With this changes we could try to promote the image to be parte of
[docker-library/official-images], and take advantage of automated
publishing of multi-architecture images. Others would be able to use
`docker run zerotier` and download the latest version appropriate to
their system.

Related to #682

[docker-library/official-images]: https://github.com/docker-library/official-images
[manifests]: https://blog.docker.com/2017/09/docker-official-images-now-multi-platform/
2018-10-21 11:28:04 -03:00
Adam Ierymenko 15d0aad3c0 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-10-19 10:06:06 -05:00
Adam Ierymenko f0fc9b1766 Merge branch 'master' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-10-19 10:05:51 -05:00
Joseph Henry 7c0331997a Ticket #739 - Fixed what appears to be a copy-paste error for machine type detection in linux makefile, added line for armv7hl 2018-10-03 15:40:16 -07:00
Joseph Henry 04de2302a7 More insightful errors for get command 2018-10-03 14:24:21 -07:00
Grant Limberg 1da1409db2 get rid of a noisy log line 2018-09-28 10:58:26 -07:00
Grant Limberg c1ea1329c1 Merge branch 'dev' into libpq 2018-09-28 10:56:40 -07:00
Grant Limberg 417aa9547b Working controller & docker container for GKE 2018-09-28 10:55:39 -07:00
Adam Ierymenko 60d5a3c631 Merge pull request #853 from darkain/dev
Fix IPv6 address string representation
2018-09-25 15:32:39 -07:00
Adam Ierymenko 7a42416a78 Merge pull request #822 from dschulz/controller-patch1-dschulz
Add functionality to erase members from networks using file backend i…
2018-09-25 11:38:25 -07:00
Adam Ierymenko 2a143a7505 Merge pull request #858 from tommyang/fix/mac-uninstall-script
macOS uninstall script: remove symlinks from the actual location
2018-09-25 11:36:28 -07:00
Grant Limberg 0510f85a8f Merge branch 'dev' into libpq 2018-09-25 10:19:59 -07:00
Grant Limberg 5b222d0a09 cleanup connections after errors 2018-09-25 10:17:15 -07:00
Travis LaDuke 133b64679c Update README.md 2018-09-24 15:02:11 -07:00
Travis LaDuke 79b88a22c3 Update README.md
Document that allowManagementFrom is an array
2018-09-24 14:58:44 -07:00
Tommy Yang 88d879987d Remove symlinks from the actual location
Binary symlinks are in `/usr/local/bin` instead of `/usr/bin` since commit 0cf4ddd
2018-09-23 16:53:30 -07:00
Joseph Henry 27c37a18f3 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-09-17 14:42:33 -07:00
Joseph Henry b8268d894b Changed home path for Synology 2018-09-17 11:44:56 -07:00
Vincent Milum Jr 79b47b055a Only null terminate the first character 2018-09-15 12:13:06 -07:00
Vincent Milum Jr 8e260bae11 Correcting conversion to/from IP address / string
1) Use existing standard libraries to convert to/from IPv4/IPv6 strings and binary representation.
2) Move null terminator assignment InetAddress::toIpString to top of function, this way if ANY errors occurs that don't write content to the buffer, we're not passing a potentially dangerous buffer around.
2018-09-14 22:42:58 -07:00
Adam Ierymenko af61ee6f3a Merge pull request #836 from skunkwerks/feature/add-freebsd-debugs
add support for debug flags in FreeBSD
2018-09-14 08:08:59 -07:00
Adam Ierymenko 04d7a1df96 Merge pull request #837 from skunkwerks/feature/update-ext-json
update external JSON dependency to address libc++ compatibility
2018-09-14 08:08:21 -07:00
Adam Ierymenko b9fd50e348 Merge pull request #845 from asbjornenge/docker-updates
Using multi-stage build for Dockerfile
2018-09-14 08:07:36 -07:00
Adam Ierymenko ef48d11266 Merge pull request #848 from darkain/master
Fix compile on FreeBSD targeting ARMv6 (Raspberry Pi)
2018-09-14 08:05:39 -07:00
Adam Ierymenko a47559d9e3 dev should have odd minor version 2018-09-14 08:05:07 -07:00
Vincent Milum Jr cffb992ae8 Adding ARM/NEON detection for non-Linux targets 2018-09-12 19:51:28 -07:00
Vincent Milum Jr 39e720e811 Adding proper EABI target for ARM32/Salsa 2018-09-12 19:49:14 -07:00
Joseph Henry 7b87e9c0cb Added ability for OneService to monitor local.conf for changes and automatically reload 2018-09-11 16:55:46 -07:00
Joseph Henry 3dd9b1aa9b Added ability to specify zt home directory via ZEROTIER_HOME - Addresses ticket #829 2018-09-10 16:25:39 -07:00
Joseph Henry 0fddebc791 Added ability to manually set secondary and tertiary ports in local.conf 2018-09-10 13:06:05 -07:00
Asbjørn Enge 701d64936d Using builder pattern to build in container while keeping final image small 2018-09-07 14:11:25 +02:00
Grant Limberg 0ec6215493 Send member/network change notifications via Postgres 2018-09-06 15:14:16 -07:00
Grant Limberg de45bdb448 quieting things down a little bit 2018-09-05 17:03:49 -07:00
Grant Limberg 7b608c6ca3 Fix testing for true/false. Dont attempt to update member status on networks that we know dont exist 2018-09-05 16:54:23 -07:00
Grant Limberg 6ff78c9c26 fix crashes 2018-09-05 16:08:06 -07:00
Grant Limberg d701f4e331 Added some exception hadling. Dont want to live *too* dangerously here 2018-09-05 11:49:07 -07:00
Grant Limberg 92abc92463 Theoretically we have PostgreSQL support now 2018-09-05 11:30:17 -07:00
Grant Limberg a4be9ceb5a dont insert/update creation time. Let the database handle it with the default value 2018-09-04 16:08:26 -07:00
Grant Limberg e21b6e1daf commit thread WIP 2018-09-04 16:05:34 -07:00
Grant Limberg 2e3b03fff9 members initialized 2018-09-04 14:51:35 -07:00
Grant Limberg cd657da431 Online Update/Notify thread 2018-09-04 14:00:02 -07:00
Grant Limberg 17af09a5cc Postgres Integration has begun 2018-08-31 14:58:15 -07:00
Travis LaDuke ceff48b07c Update bug_report.md 2018-08-29 10:15:10 -07:00
Travis LaDuke 199566965e Update issue templates 2018-08-29 09:39:18 -07:00
Travis LaDuke 46e46e9b7b Update issue templates 2018-08-29 09:37:39 -07:00
Dave Cottlehuber 8b292d2dc7 ext: update nlohmann/json to v3.2.0
- include libc++7 compatibility for FreeBSD
- see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230629
2018-08-24 08:19:38 +00:00
Dave Cottlehuber 88abd6ffc6 add support for debug flags in FreeBSD 2018-08-24 08:18:25 +00:00
Joseph Henry 76b4ec12a0 Vault-related amendments 2018-08-09 14:32:26 -07:00
Joseph Henry 0e4cfd897b Multipath-related amendments from merge into edge 2018-08-09 13:40:49 -07:00
Adam Ierymenko 515d7962b0 Build fixes. 2018-08-09 11:39:42 -07:00
Adam Ierymenko 553101e8b5 merge dev 2018-08-09 11:31:37 -07:00
Joseph Henry 3cd0ab1b3b Remove direct include of bits/sockaddr.h 2018-08-03 16:20:08 -07:00
Diego Schulz fc6dba0797 Add functionality to erase members from networks using file backend in controller microservice
Signed-off-by: Diego Schulz <dschulz@gmail.com>
2018-08-02 17:13:55 -04:00
Joseph Henry e01c0adff2 Added ifdef checks to omit some ManagedRoute code in SDK builds 2018-08-01 17:17:04 -07:00
Adam Ierymenko e75a093a8c 2018-07-27 -- Version 1.2.12
* Fixed a bug that caused exits to take a long time on Mac due to huge numbers of redundant attempts to delete managed routes.
 * Fixed a socket limit problem on Windows that caused the ZeroTier service to run out of sockets, causing the UI and CLI to be unable to access the API.
 * Fixed a threading bug in the ZeroTier Core, albeit one that never manifested on the regular ZeroTier One service/client.
 * Fixed a bug that could cause the service to crash if an authorized local client accessed an invalid URL via the control API. (Not exploitable since you needed admin access anyway.)
2018-07-27 14:14:09 -07:00
Adam Ierymenko dcffb042ff Windows Advanced Installer to 1.2.12 2018-07-27 13:35:20 -07:00
Adam Ierymenko d724af6a99 Replace Sao Paolo root with Buenos Aires in default planet def (will push to network too) 2018-07-25 15:03:01 -07:00
Adam Ierymenko b30f423fc9 . 2018-07-25 12:11:59 -07:00
Adam Ierymenko 1fc14292fe Version bumps. 2018-07-25 12:09:31 -07:00
Adam Ierymenko fa7e7fc6f9 Revert fix for GitHub issue #600 because it causes route objects to build up forever (at least on Mac). Bleh. #600 is a rare issue and will need some other fix after reliable duplication. 2018-07-20 15:53:19 -07:00
Adam Ierymenko 5b114791e5 Fix a bug that caused a crash on empty HTTP requests (localhost only) and add a lightweight lock to the RX queue to prevent possible threads stepping on each other in parallel receive paths. 2018-07-20 14:01:58 -07:00
Adam Ierymenko 9bc11a369c Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-07-20 07:41:52 -07:00
Adam Ierymenko ac40f2191c . 2018-07-20 07:41:47 -07:00
Joseph Henry 62a93c58fd Added ifdefs surrounding usage of getifaddrs() on Android 2018-07-19 17:50:10 -07:00
Joseph Henry 65b0030342 Added basic QoS rule handling 2018-07-11 16:55:13 -07:00
Joseph Henry f302fac423 Minor tweak to linux makefile 2018-07-11 16:32:49 -07:00
Adam Ierymenko f94aea8119 Return error 503 if RethinkDB is down when built as RethinkDB-based controller. 2018-07-11 10:42:31 -07:00
Joseph Henry 28cb40529d Rough draft of fq-codel implementation 2018-07-10 16:50:12 -07:00
Adam Ierymenko 37ae3b2b80 Remote debug printf. 2018-07-03 12:52:35 -07:00
Adam Ierymenko 73e4286fbf Fix two controller bugs: filesystem bug and another possible infinite recursion bug. 2018-07-03 12:51:41 -07:00
Grant Limberg 4e6151ebd9 Added "Create and Join Network" menu item to windows system tray UI 2018-06-28 15:24:45 -07:00
Grant Limberg fc225401a5 use easy mode for network creation 2018-06-28 15:05:24 -07:00
Joseph Henry d74817f79f Added blurb about allowTcpFallbackRelay to README 2018-06-22 16:46:50 -07:00
Joseph Henry bdcdccfcc3 Improved path selection, more efficient traffic allocation, lower QoS/ACK overhead 2018-06-22 16:30:20 -07:00
Grant Limberg 352ec3430f Add a define to set FD_SETSIZE=1024 on Windows
Default on Windows is extremely low at 64 and is the likely culprit behind the UI and CLI not being able to talk to the background service
2018-06-21 12:11:10 -07:00
Grant Limberg 978d2fcb56 Optimize C25519 and Poly1305 on Windows even in debug. 2018-06-21 12:08:15 -07:00
Joseph Henry 52264d5e28 Fixed aggregateLinkLatency(). Also changed unit for throughput from byte to bit 2018-06-14 16:48:35 -07:00
Joseph Henry 17fbb020e7 Added multipath field to zerotier-cli status output. Adjusted how path estimates are computed and cached 2018-06-14 16:34:45 -07:00
Joseph Henry f8005b88ad Minor cleanup. More efficient push() operation for RingBuffer 2018-06-13 14:50:37 -07:00
Joseph Henry 0faa655b83 Reduced how often relative path qualities and aggregate link allocations are computed 2018-06-12 16:30:46 -07:00
Joseph Henry 6fddf31db3 Improved rate limit logic for QoS/ACK packets. Also reduced how often processBackgroundPathMeasurements() is called 2018-06-12 15:24:12 -07:00
Adam Ierymenko 01257a461e Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2018-06-12 09:39:15 -07:00
Adam Ierymenko 817b9d012e Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-06-12 09:38:52 -07:00
Adam Ierymenko 04b3525e0f Merge pull request #755 from skunkwerks/fix/c++-17-deprecation
fix clang C++17 deprecation when building with ZT_DEBUG=1
2018-06-12 09:38:26 -07:00
Adam Ierymenko d55c732e19 Merge pull request #764 from Elfe/master
fix MAC address rule parsing as even/uneven switches at every colon
2018-06-12 09:37:28 -07:00
Adam Ierymenko d223427e22 Merge pull request #773 from alexforencich/master
Add UFW firewall application preset
2018-06-12 09:37:01 -07:00
Adam Ierymenko 64856adc3c Merge pull request #776 from Wykks/patch-1
Improve debian service requirements
2018-06-12 09:36:46 -07:00
Grant Limberg 7c53adbcfe quieting things down unless ZT_TRACE is defined 2018-06-11 10:47:58 -07:00
Grant Limberg dce9cb27c1 helps to have an ==0 on a strcmp 2018-06-11 09:53:11 -07:00
Grant Limberg 4199c56e99 cant compare character arrays with == 2018-06-11 09:53:00 -07:00
Joseph Henry 9681fedbb4 Spellcheck sweep across codebase 2018-06-07 17:25:27 -07:00
Joseph Henry b6d97af451 Added rate gates for QOS and ACK packets 2018-06-07 15:26:18 -07:00
Joseph Henry a9ca26c698 Added TX queue cap for issue #769 2018-06-07 12:58:07 -07:00
Grant Limberg 9463d4abe4 Fix for issue #778
Double quote before member name in `/controller/network/network_id/member` API
2018-06-05 12:55:39 -07:00
Grant Limberg b9975845ff Merge branch 'rtnetlink' into edge 2018-06-04 12:24:58 -07:00
Grant Limberg b22405b64b rtnetlink integrated. no more callouts to iproute2 2018-06-04 12:24:12 -07:00
Grant Limberg 62210e57f1 helps to have an ==0 on a strcmp 2018-06-04 11:24:24 -07:00
Grant Limberg 4dd093efc9 cant compare character arrays with == 2018-06-04 11:07:12 -07:00
Joseph Henry 91a22a686a Added auto-escalation to multipath if both peers support it. Improved QoS/ACK tracking. Related bug fixes 2018-06-01 18:03:59 -07:00
Guillaume de Jabrun a307dff3b7 Improve debian service requirements 2018-05-31 23:55:36 +02:00
Alex Forencich 20f0bed2f6 Add UFW firewall application preset 2018-05-30 19:10:51 -07:00
Joseph Henry 46a7a2be2e Added VERB_ACK and VERB_QOS_MEASUREMENT, refined notion of path quality 2018-05-30 17:45:29 -07:00
Adam Ierymenko 8199dbd0dc Merge branch 'dev' into edge 2018-05-30 11:19:12 -07:00
Karsten Elfenbein dfe426e4e0 fix MAC address rule parsing as even/uneven switches at every colon 2018-05-26 21:00:09 +02:00
Grant Limberg 3ace61ef85 comment out addInterface/removeInterface code for now
We already have ioctl based code to do this
2018-05-25 15:37:00 -07:00
Grant Limberg 442595d6fc also store binary representation of mac address in the interface lookup table for later use 2018-05-25 14:25:44 -07:00
Grant Limberg be469f4dd0 add/remove routes via rtnetlink 2018-05-25 14:18:06 -07:00
Grant Limberg 7da4b0af15 better data localization in LinuxNetLink now that I know what Im doing 2018-05-24 16:15:03 -07:00
Grant Limberg 2fff651378 whoops. committed a binary 2018-05-24 16:14:32 -07:00
Grant Limberg c24d16e62e ManagedRoute uses ioctl to add/remove routes on Linux
Added LinuxNetLink to talk to the rtnetlink socket for adding interfaces, addresses routes.  Not yet complete.  Can currently monitor changes on the system.
2018-05-24 15:22:11 -07:00
Dave Cottlehuber c36c92e077 node: remove deprecated register hint for C++17 compatibility
when building with `ZT_DEBUG=1` this hint produces a warning:

> node/Packet.cpp:335:43: error: 'register' storage class specifier is deprecated and incompatible with C++17 [-Werror,-Wdeprecated-register]
See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4340
2018-05-18 09:09:27 +00:00
Adam Ierymenko c0efba79c7 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-05-11 13:40:22 -07:00
Adam Ierymenko 5809941ae9 Windows 1.2.10 2018-05-11 13:40:03 -07:00
Joseph Henry 535ba8a207 Consolidated powerpc64le machine types, added 32-bit powerpc machine type and a flag to disable use of Linux capabilities 2018-05-09 13:51:32 -07:00
Joseph Henry 43331d3fe8 Merge branch 'master' into dev 2018-05-09 10:31:19 -07:00
Adam Ierymenko 9765ba334a 1.2.10 2018-05-08 13:07:20 -07:00
Adam Ierymenko 0cd01b6ff8 Fix silly bug where moons and networks were being loaded by the address of an array rather than the proper value. 2018-05-07 12:51:39 -07:00
Adam Ierymenko 5f85e33510 GitHub issue #734 (warning removal) 2018-05-07 12:15:55 -07:00
Joseph Henry 22301a4599 Added override directive to CFLAGS for Synology builds in make-linux.mk 2018-05-04 14:31:34 -07:00
Joseph Henry c8a907fd71 Added override directive to CXXFLAGS for Synology builds in make-linux.mk 2018-05-04 13:03:52 -07:00
Joseph Henry d01b1ffde5 Added -fPIC for Synology builds 2018-05-04 12:09:04 -07:00
Adam Ierymenko f4e993c814 Debian clean fix and CentOS 6 upgrade fix. 2018-05-03 12:51:49 -07:00
Joseph Henry 91c8e82c42 Adjusted locking order of _paths_m for path pruning. Other minor multipath changes 2018-05-02 15:24:14 -07:00
Adam Ierymenko 776ff46db7 User useradd not adduser on Debian. 2018-05-02 14:12:10 -07:00
Adam Ierymenko 9001ab5858 Do not add zerotier-one user if it does not exist (Debian) 2018-05-02 14:08:42 -07:00
Joseph Henry 1debe2292d Cleanup. Misc type conversion and signedness fixes 2018-05-02 11:22:07 -07:00
Joseph Henry 6a2ba4baca Introduced basic multipath support 2018-05-01 16:32:15 -07:00
Joseph Henry 836d897aec Re-ordered local.conf and node init logic, also split software update config into separate method to fix bad node pointer reference 2018-05-01 13:39:06 -07:00
Adam Ierymenko 740b0fbbf6 Merge branch 'dev' into edge 2018-04-30 13:08:24 -07:00
Adam Ierymenko 92e716d93d Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-04-30 13:08:16 -07:00
Adam Ierymenko c7115a0671 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2018-04-30 13:07:52 -07:00
Adam Ierymenko 020bbed935 ARM32 fix. 2018-04-30 13:07:32 -07:00
Grant Limberg 0c60963a94 app icon with no alpha channel 2018-04-30 12:08:09 -07:00
Travis LaDuke d704f5f2d2 Remove alpha channel from app store icon 2018-04-30 12:06:41 -07:00
Adam Ierymenko 381bbb0e5e Merge branch 'dev' into edge 2018-04-30 08:47:51 -07:00
Adam Ierymenko 0ebd19c14a Merge branch 'dev' of /media/psf/Code/ZeroTier/ZeroTierOne into dev 2018-04-27 20:49:46 -07:00
Adam Ierymenko d4160afac8 Another squeeze fix to see if we can make this work. 2018-04-27 19:51:27 -07:00
Adam Ierymenko fffb037873 Fix for packaging on old Debian squeeze. 2018-04-27 18:53:55 -07:00
Adam Ierymenko 1df5d0453d Remove separate dh-systemd dependency since this is obsolete on newer Debian anyway. 2018-04-27 18:50:40 -07:00
Travis LaDuke 19d453cb90 Add some more icon sizes
20x20, 60x60, 1024x1024 pngs
getting ready for an iOS release
2018-04-27 16:48:34 -07:00
Travis LaDuke 6e7437a0d0 Add some more icon sizes
20x20, 60x60, 1024x1024 pngs
getting ready for an iOS release
2018-04-27 16:40:36 -07:00
Adam Ierymenko caf849fcba Typo. 2018-04-27 16:22:36 -07:00
Adam Ierymenko 7533d244a9 Debian build fix. 2018-04-27 16:21:22 -07:00
Adam Ierymenko 0a52840fa3 1.2.8 Windows Advanced Installer update. 2018-04-27 13:52:33 -07:00
Adam Ierymenko a7d0905b74 1.2.8 bump for all but Windows install files. 2018-04-27 13:06:00 -07:00
Adam Ierymenko 05bfafbce8 Merge branch 'master' into edge 2018-04-25 06:41:44 -07:00
Adam Ierymenko d32a26f780 Merge pull request #428 from danielskowronski/netbsd-support
NetBSD support (we still consider this unsupported, but it might work -- thanks!)
2018-04-25 06:39:37 -07:00
Adam Ierymenko 42ec780a6f Merge branch 'dev' into netbsd-support 2018-04-25 06:39:02 -07:00
Adam Ierymenko 4608880fb0 Re-enable faster ed25519 signatures on x64 thanks to PR from @jonathonf 2018-04-25 06:34:34 -07:00
Adam Ierymenko 7492e2789f Merge pull request #722 from jonathonf/dev
Fix ed25519-amd64-asm PIC compatibility
2018-04-25 06:08:12 -07:00
Adam Ierymenko 9564a8eaf6 Delete junk. 2018-04-23 14:56:22 -07:00
Adam Ierymenko f12c0e79c9 GitHub issue #723 2018-04-23 14:11:26 -07:00
Jonathon Fernyhough e4e0be979e Fix ed25519-amd64-asm PIC compatibility
The Hyperledger implementation (https://github.com/hyperledger/iroha-ed25519)
contains changes to the assembly code to allow PIC. This in turn fixes
compilation/linking of ZeroTier One when "full hardening" flags are used.
2018-04-21 16:18:00 +01:00
Adam Ierymenko 86637cda9f Disable ASM ed25519 by default (it only helps significantly on controllers) so fPIE will work -- GitHub issue #717 2018-04-20 11:35:50 -07:00
Adam Ierymenko 94f41e2332 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2018-04-18 08:08:06 -07:00
Adam Ierymenko 3d2a50f811 Merge pull request #654 from atopuzov/armv7l
Add support for armv7l
2018-04-18 08:06:53 -07:00
Adam Ierymenko c2ffbb8627 Merge pull request #673 from neutronscott/dev
check physical blacklist for interface binding as well
2018-04-18 08:05:51 -07:00
Adam Ierymenko 54218f6c3c Merge pull request #690 from Pablohn26/master
Warn about invalid network id instead of help
2018-04-18 08:05:28 -07:00
Adam Ierymenko 6fdbdf9272 Merge pull request #712 from elmar/master
fix typo in documentation
2018-04-18 08:04:19 -07:00
Adam Ierymenko 3de7691af3 Merge branch 'master' of github.com:zerotier/ZeroTierOne
* Features and Core Improvements
    * Path selection has been overhauled to improve path stability, simplify code, and prepare for multi-path and trunking in the next major release.
    * This version introduces remote tracing for remote diagnostics. Network controllers can set a node (usually the controller itself) to receive remote tracing events from all members of the network or from select members. Events are only sent if they pertain to a given network for security reasons.
    * Multicast replication can now be done by designated multicast replicators on a network (flagged as such at the controller) rather than by the sender. Most users won't want this, but it's useful for specialized use cases on hub-and-spoke networks and for low-power devices.
    * Cryptographic performance improvements on several platforms.
    * Multithreaded performance improvements throughout the code base, including the use of an inline lightweight spinlock for low-contention resources.
 * Bugs fixed
    * Disappearing routes on Mac (GitHub issue #600)
    * Route flapping and path instability in some dual-stack V4/V6 networks
    * Blacklist (in local.conf) doesn't work reliably (GitHub issue #656)
    * Connection instabilities due to unsigned integer overflows in timing comparisons (use int64_t instead of uint64_t)
    * Binaries don't run on some older or lower-end 32-bit ARM chips (build problem)
    * ARM NEON crypto code crashes (build problem)
    * Fixed some lock ordering issues revealed by "valgrind" tool
    * The "zerotier-idtool" command could not be accessed from "zerotier-one" via command line switch
    * Leaking sockets on some platforms when uPnP/NAT-PMP is enabled
    * Fixed two very rare multithreading issues that were only observed on certain systems
 * Platform-Specific Changes
    * MacOS
        * Installer now loads the kernel extension right away so that High Sierra users will see the prompt to authorize it. This is done in the "Security & Privacy" preference pane and must be done driectly on the console (not via remote desktop). On High Sierra and newer kexts must be authorized at the console via security settings system preferences pane.
    * Windows
        * The Windows installer should now install the driver without requiring a special prompt in most cases. This should make it easier for our packages to be accepted into and updated in the Chocolatey repository and should make it easier to perform remote installs across groups of machines using IT management and provisioning tools.
        * The Windows official packages are now signed with an EV certificate (with hardware key).
        * The Windows UI can now log into ZeroTier Central and join networks via the Central API.
        * The `zerotier-idtool` command should now work on Windows without ugly hacks.
        * Upgraded the installer version.
        * Made a few changes to hopefully fix sporadic "will not uninstall" problems, though we cannot duplicate these issues ourselves.
    * Linux
        * Device names are now generated deterministically based on network IDs for all newly joined networks.
    * Android
        * Multicast now works on Android in most cases! Android apps can send and receive multicast and subscribe to multicast group IPs. Note that in some cases the app must bind to the specific correct interface for this to work.
        * IPv6 can be disabled in UI for cases where it causes problems.
2018-04-17 13:32:39 -07:00
Adam Ierymenko bbed93bcf4 * Features and Core Improvements
* Path selection has been overhauled to improve path stability, simplify code, and prepare for multi-path and trunking in the next major release.
    * This version introduces remote tracing for remote diagnostics. Network controllers can set a node (usually the controller itself) to receive remote tracing events from all members of the network or from select members. Events are only sent if they pertain to a given network for security reasons.
    * Multicast replication can now be done by designated multicast replicators on a network (flagged as such at the controller) rather than by the sender. Most users won't want this, but it's useful for specialized use cases on hub-and-spoke networks and for low-power devices.
    * Cryptographic performance improvements on several platforms.
    * Multithreaded performance improvements throughout the code base, including the use of an inline lightweight spinlock for low-contention resources.
 * Bugs fixed
    * Disappearing routes on Mac (GitHub issue #600)
    * Route flapping and path instability in some dual-stack V4/V6 networks
    * Blacklist (in local.conf) doesn't work reliably (GitHub issue #656)
    * Connection instabilities due to unsigned integer overflows in timing comparisons (use int64_t instead of uint64_t)
    * Binaries don't run on some older or lower-end 32-bit ARM chips (build problem)
    * ARM NEON crypto code crashes (build problem)
    * Fixed some lock ordering issues revealed by "valgrind" tool
    * The "zerotier-idtool" command could not be accessed from "zerotier-one" via command line switch
    * Leaking sockets on some platforms when uPnP/NAT-PMP is enabled
    * Fixed two very rare multithreading issues that were only observed on certain systems
 * Platform-Specific Changes
    * MacOS
        * Installer now loads the kernel extension right away so that High Sierra users will see the prompt to authorize it. This is done in the "Security & Privacy" preference pane and must be done driectly on the console (not via remote desktop). On High Sierra and newer kexts must be authorized at the console via security settings system preferences pane.
    * Windows
        * The Windows installer should now install the driver without requiring a special prompt in most cases. This should make it easier for our packages to be accepted into and updated in the Chocolatey repository and should make it easier to perform remote installs across groups of machines using IT management and provisioning tools.
        * The Windows official packages are now signed with an EV certificate (with hardware key).
        * The Windows UI can now log into ZeroTier Central and join networks via the Central API.
        * The `zerotier-idtool` command should now work on Windows without ugly hacks.
        * Upgraded the installer version.
        * Made a few changes to hopefully fix sporadic "will not uninstall" problems, though we cannot duplicate these issues ourselves.
    * Linux
        * Device names are now generated deterministically based on network IDs for all newly joined networks.
    * Android
        * Multicast now works on Android in most cases! Android apps can send and receive multicast and subscribe to multicast group IPs. Note that in some cases the app must bind to the specific correct interface for this to work.
        * IPv6 can be disabled in UI for cases where it causes problems.
2018-04-17 13:30:37 -07:00
Adam Ierymenko 8900b30b6e Windows installer tweaks and version bumps. 2018-04-17 12:47:33 -07:00
Adam Ierymenko ae4fb799e4 More versioning 2018-04-17 12:14:59 -07:00
Adam Ierymenko 3f1d1fb3c3 'versioning' 2018-04-17 12:12:49 -07:00
Adam Ierymenko f0a23ae0ea docs 2018-04-17 10:48:00 -07:00
Elmar S. Heeb c14f9cc247 fix typo in documentation 2018-04-14 10:52:30 +02:00
Adam Ierymenko e276b6463e Release notes, and shorten Linux canonical network ID derived device names a bit. 2018-04-12 10:33:06 -04:00
Adam Ierymenko 9da7967197 Merge branch 'dev' into edge 2018-04-12 09:08:48 -04:00
Adam Ierymenko 74f2b78c04 Refactor some potentially unsafe SharedPtr<> code. 2018-04-06 08:10:34 -07:00
Adam Ierymenko 2021f8cb5f Merge branch 'dev' into edge 2018-03-29 13:34:54 -07:00
Adam Ierymenko 40a9ebd078 GitHub issue #675 2018-03-29 10:44:57 -07:00
Adam Ierymenko 8c1b73b29c GitHub issue #701 2018-03-29 10:25:29 -07:00
Adam Ierymenko 6679a55693 certutil needs -f in case TrustedProvider store is not yet created 2018-03-27 19:15:14 -07:00
Adam Ierymenko 1101c1d919 Works on 32-bit too now. 2018-03-27 18:46:06 -07:00
Adam Ierymenko fcb529b348 Take two on unattended driver installs. I think it works now.' 2018-03-27 17:53:28 -07:00
Adam Ierymenko 680b1ca208 Upgrade installer AIP versions and redo how we bundle the driver sub-installer to allow unattended driver installs (hopefully). 2018-03-27 14:19:45 -07:00
Adam Ierymenko af74fe1711 Merge branch 'dev' into edge 2018-03-21 15:32:04 -07:00
Adam Ierymenko 494cf4049e Add specification of anchor and multicast hub address (optional) to new multicast and IPv4 enabled ad-hoc network ID format. 2018-03-21 15:31:48 -07:00
Adam Ierymenko c908b9f67a Add anchor and multicast hub address field to new multicast enabled ad-hoc address format. 2018-03-21 15:27:26 -07:00
Adam Ierymenko 209f6d9d2d Merge branch 'dev' into edge 2018-03-19 11:18:54 -07:00
Adam Ierymenko 916077012e Make sure fopen is in binary mode on Windows. 2018-03-16 11:27:11 -07:00
Adam Ierymenko beb170e4fb Use X64 ASM ed25519 signatures on Linux/x64, which are about 10X faster. Will matter a lot for network controllers, not so much for other things. 2018-03-13 06:51:17 -07:00
Adam Ierymenko a59912f3af SHA512 using libcrypto (not enabled by default) 2018-03-12 16:56:47 -07:00
Adam Ierymenko 610e594a50 Speed tweaks for signatures, etc. 2018-03-12 16:16:20 -07:00
Joseph Henry b4e2547052 Minor tweak to QNAP path getter 2018-03-12 11:23:10 -07:00
Pablo Hinojosa a9778549f2 Warn about invalid network id instead of help 2018-03-11 03:39:13 +01:00
Adam Ierymenko b601041b5b Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2018-03-09 07:51:43 -08:00
Adam Ierymenko 0945d6ec0d Merge branch 'dev' into edge 2018-03-09 07:50:38 -08:00
Adam Ierymenko 78d9cee416 Other fixes to IPv4 ad-hoc networks. 2018-03-09 00:10:01 -08:00
Adam Ierymenko bbdb2aa672 Some work on IPv4 enabled ad-hoc networks. 2018-03-08 23:53:57 -08:00
Adam Ierymenko 574b24c082 docs 2018-03-08 22:41:42 -08:00
Adam Ierymenko 874a187c7f cleanup 2018-03-08 22:39:51 -08:00
Adam Ierymenko e8fb443313 Forgot one other use in RethinkDb driver. 2018-03-08 22:34:51 -08:00
Adam Ierymenko 57b96af2c4 Fix for FileDB _networkChanged / _memberChanged problem. 2018-03-08 22:33:08 -08:00
Grant Limberg e61d4ab67a Merge branch 'dev' into edge 2018-02-23 13:58:24 -08:00
Grant Limberg 2ee358dbfc TAP driver requires input and output buffers for calls passed into DeviceIoControl
Otherwise the driver returns STATUS_INVALID_PARAMETER and the call fails.  This should fix some Multicast issues on Windows
2018-02-23 13:42:02 -08:00
Joseph Henry e3bb67d188 Added debug output convenience macros 2018-02-16 16:55:31 -08:00
Grant Limberg 2d289a3308 Just a little cleanup 2018-02-16 15:20:07 -08:00
Grant Limberg bdb2cc7c85 Linux: link system libcurl when compiling with ZT_VAULT_SUPPORT=1
Requires libcurl and development headers to be installed
2018-02-16 15:08:04 -08:00
Grant Limberg 7793060723 Add HashiCorp Vault storage of ZeroTier's public & secret identity
Adds a "vault" section to local.conf.  Example local.conf:

{
  "config": {
    "vault": {
      "vaultURL": "https://some.vault.host:8200",
      "vaultToken": "my-super-secret-vault-token",
      "vaultPath": "secure/place/to/put/identity"
    }
}

Additionally, the following environment variables can be set.  Environment variables override local.conf:

VAULT_ADDR
VAULT_TOKEN
VAULT_PATH

Identities will be placed in the keys "public" and "secret" under the user specified path.  If no path is specified, they will be placed in the token specific cubbyhole.

If identity.public and identity.secret exist on disk and vault is configured, they will be automatically added to Vault and removed from disk.

TODO:
 *  Decide behavior for if Vault cannot be reached.
 *  Add libcurl as a dependency in Linux & Mac builds
 *  Add libcurl as a requirement for linux packages
2018-02-16 14:30:27 -08:00
Grant Limberg 84302ae9c7 Add CURL libs to VC project 2018-02-16 14:21:38 -08:00
Grant Limberg cd801b96fa libcurl binaries for Windows 2018-02-16 10:31:37 -08:00
Grant Limberg 5ff0653f9e Hooks into StateGet and StatePut for grabbing identity.secret from Vault 2018-02-16 10:18:10 -08:00
Grant Limberg 9574d635c1 Add Vault configuration option parsing to local.conf
{
   "settings": {
       ...
      "valut": {
         "vaultURL": "...",
         "vaultKey": "...",
         "vaultPath": "..."
      }
   }
}
2018-02-16 10:18:10 -08:00
Grant Limberg 1bec8ddce4 Better error messages when the ZeroTier service can't be contacted
Fixes #681
2018-02-13 16:41:21 -08:00
Grant Limberg f9b07c63db Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-02-12 09:30:12 -08:00
Grant Limberg 8828fc7520 some JNI error checking 2018-02-12 09:29:44 -08:00
Adam Ierymenko 978d8fcd4a Merge branch 'dev' of http://10.187.63.16/zerotier/ZeroTierOne into dev 2018-02-09 06:35:09 +00:00
Adam Ierymenko 51aadcf901 A few fixes dicatated by valgrind. 2018-02-09 06:35:01 +00:00
Joseph Henry db952a050a Added platform checks for Windows in OneService 2018-02-08 14:15:32 -08:00
Grant Limberg f049740ae5 silence LOGV and LOGD in release builds for android 2018-02-07 15:53:23 -08:00
neutronscott 73ca9b6373 check physical blacklist for interface binding as well 2018-02-03 14:53:46 -05:00
Adam Ierymenko c6949aad2d Linux build fix on some versions. 2018-02-02 17:11:23 -08:00
Travis LaDuke e57d0fdccc Update README.md
this ip changes sometimes
2018-02-02 10:30:49 -08:00
Adam Ierymenko 82f383be43 A few other make changes. 2018-02-01 15:58:58 -08:00
Adam Ierymenko 26aaf253ac Allow us to build a semi-dynamic official binary that works back to CentOS 6, at least on x64, and is very fast since we can build it with newer clang or icc. 2018-02-01 15:52:41 -08:00
Adam Ierymenko 51715376bf Use Intel icc if available on Linux. 2018-02-01 13:05:17 -08:00
Adam Ierymenko ff95b0278c Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-02-01 12:46:40 -08:00
Adam Ierymenko fe1fa20c6c Fix build on Intel C/C++ Compiler for Linux. 2018-02-01 12:46:35 -08:00
Joseph Henry a867fe404b Omit pragma comment for ZT_SDK builds on Windows 2018-01-31 17:08:42 -08:00
Adam Ierymenko d6e8a5f3ca Fix Windows compile error. 2018-01-30 16:07:41 -08:00
Grant Limberg 4878d8ec15 Add CAP_NET_BIND_SERVICE to capabilities 2018-01-30 10:47:31 -08:00
Adam Ierymenko f7019d9e80 Tie up the rest of hub and spoke designated replicator multicast mode. 2018-01-26 22:14:10 -05:00
Adam Ierymenko 6d8e1e8783 More cleanup of old stuff. 2018-01-26 21:34:56 -05:00
Adam Ierymenko 939ab43ceb Do not send to origin in second buffered multicast path. 2018-01-26 21:22:51 -05:00
Adam Ierymenko d3d58ba8a7 Add support for designated multicast replicators to Multicaster::send(). 2018-01-26 21:19:51 -05:00
Adam Ierymenko f03fd57997 Clean up some multicast code. 2018-01-26 20:38:44 -05:00
Adam Ierymenko e74cd4b4ef A little more cleanup. 2018-01-26 20:06:11 -05:00
Adam Ierymenko f3dfd63634 Clean up some old stuff. 2018-01-26 20:00:37 -05:00
Adam Ierymenko 5f5302e595 More useful to allow arrays of IPs to bind to. 2018-01-25 17:27:08 -05:00
Adam Ierymenko 125ec622ca Add bindToWildcard local.conf option. 2018-01-25 14:59:11 -05:00
Adam Ierymenko 384e5b66de More work on GitHub issue #666 2018-01-25 14:16:07 -05:00
Adam Ierymenko 7e7723e98f A small memory use reduction. 2018-01-25 09:57:02 -05:00
Adam Ierymenko 4419734a7d Implement continuous contacting of designated anchors and multicast replicators - GitHub issue #666 2018-01-25 07:11:59 -05:00
Adam Ierymenko f821db29f3 . 2018-01-24 17:12:53 -05:00
Adam Ierymenko 6c64f1816d cleanup 2018-01-24 16:16:00 -05:00
Adam Ierymenko 34e2ad0dfc Stub out NetworkConfig for GitHub issue #666 2018-01-24 14:43:04 -05:00
Adam Ierymenko 055b99c3cb cleanup 2018-01-12 15:44:27 -08:00
Adam Ierymenko 531842dc6b Update miniupnpc to latest version (included library) 2018-01-12 15:30:40 -08:00
Adam Ierymenko d7f3c33d72 Add zerotier-idtool to Windows. 2018-01-12 15:03:45 -08:00
Adam Ierymenko 4e689998f9 Sanity checks on array sizes and fix a bug in IPv4 auto-assign. 2018-01-12 10:38:19 -08:00
Adam Ierymenko cd2a4b709c Reduce maximum batcn size for status updates but increase the number of whole record commit threads. 2018-01-12 09:18:27 -08:00
Adam Ierymenko d96aeac335 docs 2018-01-11 16:44:24 -08:00
Adam Ierymenko c594351bcc Remove old code. 2018-01-11 14:32:55 -08:00
Adam Ierymenko 5f976d7430 Reenable faster lock. 2018-01-11 14:31:19 -08:00
Adam Ierymenko f87326fc21 Fixes for lock ordering -- GitHub issue #573 2018-01-11 14:29:57 -08:00
Adam Ierymenko 0574a70fac docs 2018-01-11 09:49:13 -08:00
Adam Ierymenko 4e79804cd3 cleanup 2018-01-10 16:56:39 -08:00
Adam Ierymenko 86d5264167 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-01-10 16:55:15 -08:00
Adam Ierymenko 5bc4399a58 cleanup 2018-01-10 16:55:07 -08:00
Grant Limberg 406bcf7d3f Fix compilation on Windows
DEBUG macro from miniupnpc interferring with enum Trace::DEBUG;
2018-01-10 15:24:54 -08:00
Adam Ierymenko f17cc1c6d8 cleanup 2018-01-10 15:03:39 -08:00
Joseph Henry 57077e4607 Added (get) command blurb in cli help 2018-01-10 14:40:31 -08:00
Adam Ierymenko 6304c85d3f Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-01-10 14:31:31 -08:00
Adam Ierymenko a1992d76f2 Doc updates and other fixes. 2018-01-10 14:31:28 -08:00
Joseph Henry 98b07f7f3c Added (get) command to cli to single out JSON fields 2018-01-10 14:05:28 -08:00
Joseph Henry 6e1823ac81 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-01-10 12:43:18 -08:00
Joseph Henry 640cc22749 Added allowTcpFallbackRelay to local.conf, fixed logic in Binder's route enumeration 2018-01-10 12:41:52 -08:00
Adam Ierymenko 9bab49d2f9 Move DB stuff into Db. 2018-01-09 12:39:25 -08:00
Adam Ierymenko 2751a6d56d cleanup 2018-01-09 12:31:00 -08:00
Adam Ierymenko 07cb62a503 cleanup 2018-01-09 11:41:26 -08:00
Adam Ierymenko 8a3b698407 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-01-09 11:23:44 -08:00
Adam Ierymenko 0c71d658fb cleanup 2018-01-09 11:23:39 -08:00
Joseph Henry 7e2d614975 Attempted fix for ticket #656 (failes to acknowledge physical blacklists) 2018-01-09 10:16:49 -08:00
Joseph Henry 09e4ab9aa1 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-01-09 10:00:01 -08:00
Joseph Henry 2e1bc6e500 Cleaned up old code for attempted fix for ticket #600 2018-01-09 09:59:55 -08:00
Adam Ierymenko 1aea096b63 GitHub issue #492 2018-01-09 09:05:22 -08:00
Adam Ierymenko 30694f0b20 Allow trusted paths over global IPs for legacy config format too. 2018-01-09 08:59:26 -08:00
Adam Ierymenko 01b4cb64ee cleanup 2018-01-09 08:35:02 -08:00
Adam Ierymenko 6fbd15f8b2 cleanup 2018-01-08 15:56:53 -08:00
Adam Ierymenko 65c07afe05 Copyright updates for 2018. 2018-01-08 14:33:28 -08:00
Adam Ierymenko e338c5f91d cleanup 2018-01-08 14:27:55 -08:00
Adam Ierymenko 0b0b5da240 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-01-08 13:06:30 -08:00
Adam Ierymenko 9c7ee5a21e Tear out old "link quality" stuff since it is not currently used and will be done differently. 2018-01-08 13:06:24 -08:00
Joseph Henry f7b3ffe8a0 Commented out block which ignores added routes if there already exists an IP in the route's range. Attempted fix for #600 2018-01-05 17:10:59 -08:00
Grant Limberg 381857ea49 macOS: add libcurl to libraries when ZT_VAULT_SUPPORT=1 is specified on the make command line 2018-01-03 11:56:20 -08:00
Aleksandar Topuzovic 50aef368f6 Add support for armv7l
* GCC running on Raspberry Pi 3 on Arch linux ARM reports arch as
  armv7l-unknown-linux-gnueabihf
2018-01-02 11:32:17 +01:00
Joseph Henry a9c4ce38f0 eh 2017-12-18 15:07:58 -08:00
Joseph Henry bbc39d7648 Restore managed ZT routes that are deleted or otherwise mangled locally (Attempted fix for ticket #600) 2017-12-18 15:05:19 -08:00
Adam Ierymenko d3e8e9629b More optimization work. 2017-12-15 14:24:17 -08:00
Adam Ierymenko 1f0b3a32d5 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-12-15 11:03:27 -08:00
Adam Ierymenko 0608704626 Some micro-optimizations, including a memcpy that is faster than Linux for most distro/compiler versions. 2017-12-15 11:03:20 -08:00
Adam Ierymenko cb8e7b4d5e Make UDP read loop eventually move on. 2017-12-15 10:15:13 -08:00
Joseph Henry 346fa4d7f4 Added ZT_SANITIZE option to makefiles. This your new memory debugging best friend 2017-12-14 13:27:49 -08:00
Adam Ierymenko 7a22f01dd8 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-12-14 08:53:32 -08:00
Adam Ierymenko 4704d115c4 Some controller fixes. 2017-12-14 08:53:24 -08:00
Joseph Henry 12c621c230 Removed build flag in CMake script 2017-12-13 14:57:20 -08:00
Joseph Henry cba65d897a Added CMake build script for libzerotiercore.a 2017-12-13 14:55:17 -08:00
Adam Ierymenko e4a10cc510 Member commit bug fix. 2017-12-08 19:00:38 -05:00
Adam Ierymenko 249c27afd5 Fix old bug invoking idtool personality with -i 2017-12-08 11:17:07 -08:00
Adam Ierymenko 38cc89b2ca Add time to rethinkdb message output in controller. 2017-12-08 12:39:20 -05:00
Adam Ierymenko aeb1794be1 Comment out storage of secret ID in RethinkDb. 2017-12-07 16:04:41 -08:00
Adam Ierymenko dae728124e Fix to network path in conventional filesystem controller DB. 2017-12-07 14:42:33 -08:00
Adam Ierymenko cf30b1fcdf GitHub issue #589 2017-12-07 17:13:24 -05:00
Adam Ierymenko 19bfef36f1 Build fix. 2017-12-07 16:45:43 -05:00
Adam Ierymenko 8d9464c414 docs, and make RethinkDB controller DB driver upsert into the Controller DB and also update the hostname field. 2017-12-07 13:39:25 -08:00
Adam Ierymenko ada611d597 Go ahead and load kext so MacOS High Sierra users will see kext auth dialog right away. 2017-12-07 08:56:15 -08:00
Adam Ierymenko f13886d343 Warning removal. 2017-12-05 17:53:28 -05:00
Adam Ierymenko 520b0601db Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-12-05 14:51:06 -08:00
Adam Ierymenko 926ecf9640 docs 2017-12-05 14:50:59 -08:00
Adam Ierymenko c57198decd Add remoteTraceLevel to controller. 2017-12-05 17:49:20 -05:00
Adam Ierymenko 431716e249 Disable trace by default, stderr message improvements in RethinkDB driver. 2017-12-05 17:16:45 -05:00
Adam Ierymenko 694709f392 Add timestamp to network status. 2017-12-04 19:21:56 -05:00
Adam Ierymenko 16613ab5fb Clean up remote tracing code, add per-network remote trace settings, add remote trace level, and make local trace output readable again. 2017-12-04 14:40:10 -08:00
Adam Ierymenko c26bf45e28 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-11-29 04:47:16 -08:00
Adam Ierymenko 23e5c7b38d Fix self-test compile. 2017-11-29 04:47:10 -08:00
Joseph Henry 382dd82eb6 Fix for local.conf virtual path blacklist (ticket #594) 2017-11-27 15:31:25 -08:00
Joseph Henry f18d5b2efe Attempted fix for github issue #597, leaking sockets. Added call to closenatpmp() after failure to init 2017-11-27 14:23:55 -08:00
Adam Ierymenko 0fb22df633 Get ephemeral status fields out of the configs. They do not belong there and it just complicates things. 2017-11-09 17:01:16 -05:00
Adam Ierymenko 750e36993f GitHub issue #617 2017-11-09 11:35:46 -05:00
Adam Ierymenko f7f658605d Move more ephemeral stuff to a tiny MemberLastRequest table instead of the main Member table. 2017-11-08 20:19:46 -05:00
Adam Ierymenko 192e5dbff8 Another fix for uptime logging. 2017-11-08 20:02:10 -05:00
Adam Ierymenko ef224c3547 RethinkDB build fix. 2017-11-08 19:52:36 -05:00
Adam Ierymenko c12b68a6b2 More Central work. 2017-11-08 11:32:01 -08:00
Adam Ierymenko 4166d8ca35 Fix a deadlock and some more work on RethinkDB (for central) integration. 2017-11-08 11:06:14 -08:00
Adam Ierymenko 53e7e950f1 Windows build fixes. 2017-11-07 16:39:12 -08:00
Adam Ierymenko 0612879dec Fix const. 2017-11-07 16:23:56 -08:00
Adam Ierymenko 3b21f946e4 Remove manual define of include rethinkdb driver symbol. 2017-11-07 16:18:48 -08:00
Adam Ierymenko 9f85371073 cleanup 2017-11-07 15:23:16 -08:00
Adam Ierymenko cb550ab4fe Merge branch 'dev' into edge 2017-11-07 14:59:18 -08:00
Adam Ierymenko b8cbf08617 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-11-07 14:59:03 -08:00
Adam Ierymenko 1613f42d00 Re-integrate in-filesystem DB into new controller DB structure. 2017-11-07 14:44:46 -08:00
Joseph Henry e5d1243dd2 Minor changes to SDK-related portions of OneService 2017-11-06 13:43:56 -08:00
Adam Ierymenko 7fc9094d8e More fixes to RethinkDB. 2017-11-03 22:40:26 -04:00
Adam Ierymenko 92c7070aa8 RethinkDB fixes. 2017-11-03 20:55:16 -04:00
Adam Ierymenko b68bca35db Linux build fixes, linux build rule for RethinkDB mode controller, also force disable shitty allocators in libstdc++. 2017-11-03 16:59:36 -04:00
Adam Ierymenko d97adc8789 Preparing for test. 2017-11-03 12:32:56 -07:00
Adam Ierymenko f5014d7d71 RethinkDB direct connectivity integration. 2017-11-03 11:39:27 -07:00
Adam Ierymenko 4e88c80a22 RethinkDB native connector work, minor fixes. 2017-11-02 07:05:11 -07:00
Adam Ierymenko a6203ed038 icon 2017-10-29 12:01:15 -07:00
Adam Ierymenko 1db547d607 Windows build fixes, AIP file update. 2017-10-25 16:25:57 -07:00
Adam Ierymenko 2cc4dc5a6f Clean peers.d periodically and delete peers older than 30 days. 2017-10-25 16:08:14 -07:00
Adam Ierymenko fac7dc9c91 Stop duplciate IPv6 addresses due to privacy mode IPs. 2017-10-25 16:01:36 -07:00
Adam Ierymenko 508fa6a7fe A few fixes for cluster mode. 2017-10-25 15:44:10 -07:00
Adam Ierymenko 71bdaa9508 Now with more worky. 2017-10-25 13:27:28 -07:00
Adam Ierymenko 459f1e7bfb Refactor path stability stuff and add basic multipath support. 2017-10-25 12:42:14 -07:00
Adam Ierymenko 0d8b8d8426 Remove some unused constants. 2017-10-24 15:04:19 -07:00
Adam Ierymenko 2d0dc62a53 docs 2017-10-24 14:57:02 -07:00
Adam Ierymenko 0d8e134f9f Warning removal. 2017-10-24 14:54:15 -07:00
Adam Ierymenko c7d370c17f Delete something that turns out not to be useful. This will be handled differently. 2017-10-24 14:49:38 -07:00
Adam Ierymenko 395d8b3139 Full and clearer implementation of GitHub issue #588 2017-10-24 13:33:53 -07:00
Adam Ierymenko b92ef67e56 Merge pull request #550 from surgicalcoder/patch-2
Peer's role misses a PLANET role
2017-10-24 12:22:38 -07:00
Adam Ierymenko 5a8aa66641 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-10-24 12:22:02 -07:00
Adam Ierymenko e87ef18826 cleanup 2017-10-24 12:21:56 -07:00
Adam Ierymenko 7b78d4f11f Merge pull request #605 from oneguynick/patch-1
Update make-linux.mk to include support for Armv7l
2017-10-24 12:21:32 -07:00
Nicholas Schmidt 65ac61b2ea Update make-linux.mk to include support for Armv7l
When running ArchlinuxARM with 64bit support on Raspberry Pi3, the default build fails due to the architecture look-up at the beginning of the build process. A simple addition of the Armv7l section above allows the build to continue and successfully run.
2017-10-19 09:21:24 -04:00
Grant Limberg 629a3a2a24 call setFriendlyName() after tap adapter is initialized 2017-10-16 12:16:05 -07:00
Joseph Henry ee4783e3fb ifdef omit of deletePersistentTapDevice() in OneService for libzt builds on Windows 2017-10-10 15:01:15 -07:00
Joseph Henry f2c69ede96 Conditionally omit reference to CancelSynchronousIo in Thread.hp when MINGW32/64 is detected for libzt build - Symbol not supported 2017-10-10 12:21:52 -07:00
Grant Limberg ceeb35eaac If lastSend/lastReceive is < 0, just put 0. 2017-10-05 13:19:25 -07:00
Grant Limberg 099bedd2e9 A few more uint64_t -> int64_t changes for timestamps 2017-10-04 12:01:17 -07:00
Grant Limberg 4177a11522 remove some leftover debug code 2017-10-04 09:18:13 -07:00
Grant Limberg 3d4a1b575e Update Android NDK with uint64_t -> int64_t changes 2017-10-03 11:25:26 -07:00
Grant Limberg b1d60df44c timestamps changed from uint64_t to int64_t
There were cases in the code where time calculations and comparisons were overflowing and causing connection instability.  This will keep time calculations within expected ranges.
2017-10-02 15:52:57 -07:00
Grant Limberg 7cf70d111a Return an explicit NULL shared pointer at the end of Topology::getPeer() 2017-09-28 10:40:27 -07:00
Grant Limberg e564c56dce Set size of buffer after setting data with unsafeData() call 2017-09-28 10:39:43 -07:00
Grant Limberg 239c2540d6 Mutex::lock and ::unlock just called themselves 2017-09-27 15:05:13 -07:00
Grant Limberg c53d140145 Replace '_' with '__' in network names on toolbar menu in Windows
Otherwise WPF gobbles up the underscores
2017-09-27 13:24:29 -07:00
Grant Limberg 12a6a2f2d2 remove reference to invalid file 2017-09-27 13:07:24 -07:00
Grant Limberg 9c903567bb Hashtable needs to include Constants.hpp for ZT_EXCEPTION_OUT_OF_MEMORY 2017-09-25 13:42:19 -07:00
Grant Limberg 6782dee64a Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2017-09-25 10:10:17 -07:00
Adam Ierymenko 302c15140e Fix API problem with path configuration.. 2017-09-25 08:53:55 -07:00
Grant Limberg c666f92e35 new startup process UI for Windows 2017-09-22 15:33:09 -07:00
Grant Limberg eb42ef68ee Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2017-09-22 10:22:22 -07:00
Adam Ierymenko 52916eebcf Keep attemting to upgrade direct path if path is not private to facilitate better use of LANs and backplane networks. 2017-09-14 20:56:50 -07:00
Adam Ierymenko f8014413a3 Add UDP MTU configurability. 2017-09-01 16:25:34 -07:00
Adam Ierymenko 2d858b05ac Another fix for ye old tyme clients. 2017-09-01 12:03:31 -07:00
Adam Ierymenko b1fb020aea Raise chunk size to max packet size for network configs. Chunking breaks really ancient clients, so this helps them live a little longer. No real downside for new clients. 2017-09-01 10:43:44 -07:00
Adam Ierymenko 02ed84774c Non-x86 build fix. 2017-08-31 20:47:44 -04:00
Adam Ierymenko 283e8d5bc0 Start threads in Central harnessed mode. 2017-08-31 18:01:21 -04:00
Joseph Henry f39e2e2a53 Fixed typo of mysterious origin 2017-08-31 11:37:29 -07:00
Adam Ierymenko 5bf5d5e9cb Minor controller stuff. 2017-08-30 17:22:25 -07:00
Adam Ierymenko e51e212b95 Add some defines of use to low level developers. 2017-08-25 16:04:04 -07:00
Adam Ierymenko 6418d02572 Fix HTTP DELETE stupid bug. 2017-08-24 15:33:24 -07:00
Adam Ierymenko 49fa30d495 Ticket lock for x64/gcc/clang platforms. 2017-08-23 18:52:32 -07:00
Adam Ierymenko dd8b03a5c5 Threading issue fix? 2017-08-23 18:28:40 -07:00
Adam Ierymenko 4d5983114c Fix another deadlock. 2017-08-23 17:14:06 -07:00
Adam Ierymenko 0a9c3b5571 Fix possible deadlock. 2017-08-23 16:59:31 -07:00
Adam Ierymenko 180049a277 Fix pointer bug. 2017-08-23 16:55:22 -07:00
Adam Ierymenko 6ee201865b Clean up WHOIS code. 2017-08-23 16:42:17 -07:00
Adam Ierymenko b1d94c9f93 Performance improvement to RX queue ring buffer. 2017-08-23 15:19:26 -07:00
Adam Ierymenko a156a4dbe2 Symmetric NAT cleanup. 2017-08-23 15:12:00 -07:00
Adam Ierymenko 2cebe7a5e0 Fix name difference. 2017-08-23 14:09:29 -07:00
Adam Ierymenko 9cfc109527 Tighten a few timings. 2017-08-23 14:00:08 -07:00
Adam Ierymenko 64758c46b6 Implement peer serialization and deserialization. 2017-08-23 13:40:51 -07:00
Adam Ierymenko 4352202349 Reduce TCP relay latency -- see GitHub issue #564 2017-08-18 14:54:10 -07:00
Adam Ierymenko ba07a60c44 Fix PPC PR. 2017-08-18 14:40:10 -07:00
Adam Ierymenko 72bfe0953a Merge pull request #560 from andyfangdz/patch-1
Add `ppc64le` arch
2017-08-18 14:38:41 -07:00
Adam Ierymenko bab5647522 Add make rule for official-static. 2017-08-18 14:00:35 -07:00
Adam Ierymenko fcaf1d89c2 Get rid of some noisy remote traces that should not be needed. 2017-08-18 13:59:22 -07:00
Adam Ierymenko 106dff0d53 Make remote trace target null by default, which is probably what we want. 2017-08-18 13:52:10 -07:00
Adam Ierymenko 174ba8884e Delete support in harnessed mode. 2017-08-17 13:10:10 -07:00
Adam Ierymenko 1ce0dcf0ea Another Central harnessed mode fix. 2017-08-16 14:41:42 -07:00
Adam Ierymenko 1387e15c1b Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-08-16 14:14:56 -07:00
Adam Ierymenko 50e7ea088b More work on controller for new Central harnessed mode, remove old http mode. 2017-08-16 14:14:49 -07:00
Joseph Henry 59b7cbb591 Rename SocketTap to VirtualTap to prevent confusion on role 2017-08-15 16:22:28 -07:00
Adam Ierymenko 23fe8975e7 . 2017-08-14 11:44:07 -07:00
Adam Ierymenko a4bc40542b GCC/G++ build fixes, GitHub issue #563 2017-08-14 11:43:39 -07:00
Joseph Henry ee1dc16e8f Added getRoutes() for libzt 2017-08-10 00:59:15 -07:00
Adam Ierymenko 1c04cc0485 . 2017-08-09 17:42:35 -07:00
Adam Ierymenko 2c682b4d1c Small controller revisions, first run of controller API model JavaScript. 2017-08-09 14:37:19 -07:00
Grant Limberg 6842490c1f Add menu option to open ZeroTier Central in the system default browser 2017-08-09 14:19:37 -07:00
Adam Ierymenko ff5e22031a Small fix: should expire packets to prevent repeated WHOISes. 2017-08-08 13:24:37 -07:00
Adam Ierymenko e3cf756785 Make rxQueue lock-free using an atomic counter ring buffer. 2017-08-08 13:21:10 -07:00
Adam Ierymenko 7e6598e9ca Possible deadlock fix. 2017-08-07 14:13:08 -07:00
Dezhi “Andy” Fang 48d2017629 Add ppc64le arch
I've only tested locally, on a power8 box running Ubuntu 16.10, but everything (and earth) checks out.

Let me know if more testing infrastructure is needed.
2017-08-06 02:06:00 -07:00
Adam Ierymenko e4823381c6 . 2017-07-19 15:16:15 -07:00
Adam Ierymenko 66feaeb519 . 2017-07-19 15:06:23 -07:00
Adam Ierymenko 8c6b833fb3 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-07-19 14:13:23 -07:00
Adam Ierymenko b62296a40b Bug fixes in new harness mode. 2017-07-19 14:13:17 -07:00
Grant Limberg fc7728212f Fix ifndef on Windows 2017-07-18 15:59:11 -07:00
Adam Ierymenko 31785f7f6e Automatic periodic status dump from controller. 2017-07-18 15:36:33 -07:00
Adam Ierymenko ae65eb5105 Cleanup and replace trace field names with sane ones because usability > a few bytes. 2017-07-18 14:28:38 -07:00
Adam Ierymenko 727ccb1125 Cleanup and stdin/stdout harness mode for controller. 2017-07-18 13:57:37 -07:00
Adam Ierymenko 77ce238457 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-07-17 17:02:57 -07:00
Adam Ierymenko 1685659e37 Remote tracing works. 2017-07-17 17:02:50 -07:00
Grant Limberg 0f03d4ef51 Update Jenkinsfile for new NDK in Jenkins 2017-07-17 16:55:00 -07:00
Grant Limberg bcf697cc2b Wire up PortMapper in Android
Enables UPnP port mapping for Android client on networks with UPnP routers
2017-07-17 16:16:25 -07:00
Adam Ierymenko 5e2ea4a81a Cleanup. 2017-07-17 14:24:57 -07:00
Adam Ierymenko b9e1d53d7a Minor cleanup. 2017-07-17 14:21:09 -07:00
Adam Ierymenko ab0806a036 Cleanup. 2017-07-17 13:48:39 -07:00
Adam Ierymenko 3a1ec07db0 Remove some exception copypasta. 2017-07-17 10:43:28 -07:00
Adam Ierymenko d939d8d21d A bit more remote tracing stuff. 2017-07-14 14:57:40 -07:00
Adam Ierymenko d9552fb120 Add remoteTraceTarget to network and member configs in controller. 2017-07-14 14:33:36 -07:00
Adam Ierymenko 4ecc0c59ca Plumbing through of remote trace into controller code. 2017-07-14 13:03:16 -07:00
Adam Ierymenko 0655a1fcbe Move old cluster code into attic. 2017-07-13 16:42:43 -07:00
Adam Ierymenko c8d0cf2c40 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2017-07-13 16:31:30 -07:00
Adam Ierymenko c692f2e740 Fix for new identity generation bug. 2017-07-13 16:31:16 -07:00
Alex a83c7c0d07 remove debugging flag 2017-07-13 15:13:20 -07:00
Adam Ierymenko ba6fd16823 More tracing stuff. 2017-07-13 15:08:57 -07:00
Adam Ierymenko 54893c35c1 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-07-13 10:51:19 -07:00
Adam Ierymenko 495c5ce81d Bunch of remote tracing work. 2017-07-13 10:51:05 -07:00
Grant Limberg 4cc773ec1b fix Windows build 2017-07-12 13:52:45 -07:00
Grant Limberg 69ae35494e put the correct file extensions on data written to disk in JNI 2017-07-12 13:36:22 -07:00
Grant Limberg 512c3af4ea fix packet sending functions 2017-07-12 13:12:45 -07:00
Grant Limberg d8f1c3dff7 Update JNI code to reflect new ZeroTier API 2017-07-12 11:34:53 -07:00
Grant Limberg 0a11dd2d24 Fix NeighborDiscovery code now that ZT_SOCKADDR_NULL doesn’t exist 2017-07-11 15:45:36 -07:00
Monty A 78ee7f6573 Peer's role misses a PLANET role
Peer's role misses a PLANET role in documentation vs what's returned from API.
2017-07-09 15:39:49 +01:00
Adam Ierymenko dab0fb9e05 Remote trace: plumbing, replace old TRACE with calls to Trace object. 2017-07-07 16:58:05 -07:00
Adam Ierymenko e14d5d49a1 Merge branch 'master' into dev 2017-07-07 09:36:54 -07:00
Adam Ierymenko 782b2b1514 Merge pull request #537 from laduke/patch-1
Update README.md
2017-07-07 09:32:37 -07:00
Adam Ierymenko a9582417e2 Merge pull request #547 from surgicalcoder/patch-1
Clarification on how to use JSON API with secret
2017-07-07 09:32:23 -07:00
Adam Ierymenko 69922b6c39 BSD build fix. 2017-07-07 09:29:24 -07:00
Adam Ierymenko 6fc70f7c16 More cleanup, Linux build fixes. 2017-07-07 06:50:40 -07:00
Monty A a274e774ee Clarification on how to use JSON API with secret
Makes it clear on how to use the authtoken.secret file when making requests.
2017-07-07 10:11:21 +01:00
Adam Ierymenko f23a43fb81 More cleanup. 2017-07-06 17:32:41 -07:00
Adam Ierymenko 88997a0314 Windows build fixes. 2017-07-06 16:29:11 -07:00
Adam Ierymenko d2415dee00 Cleanup. 2017-07-06 16:11:11 -07:00
Adam Ierymenko 53728b79b4 . 2017-07-06 12:35:23 -07:00
Adam Ierymenko dff8c02cfe Pull out and deprecate old cluster code. New cluster code will not be merged yet. 2017-07-06 12:33:00 -07:00
Adam Ierymenko 640ad577d1 . 2017-07-06 11:56:46 -07:00
Adam Ierymenko cd63ecd3f3 . 2017-07-06 11:45:48 -07:00
Adam Ierymenko f18158a52d . 2017-07-06 11:45:22 -07:00
Adam Ierymenko 84748aab51 Merge branch 'dev' into edge 2017-07-06 10:26:04 -07:00
Adam Ierymenko 3fadc64ee0 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-07-06 10:25:58 -07:00
Adam Ierymenko 47594f7c99 Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2017-07-06 10:25:44 -07:00
Adam Ierymenko 2f20258807 . 2017-07-06 10:25:36 -07:00
Grant Limberg 47122a3804 Merge branch 'dev' into edge 2017-07-03 13:29:54 -07:00
Grant Limberg 1730f8f5b7 also cluster.hpp 2017-07-03 13:04:11 -07:00
Grant Limberg d258a75cd3 remove Cluster.cpp from build list as it's been removed 2017-07-03 13:03:43 -07:00
Adam Ierymenko baa10c2995 . 2017-06-30 17:32:07 -07:00
Grant Limberg 207d6572e0 fix for changelist posting to mattermost 2017-06-30 14:24:40 -07:00
Grant Limberg 10264cec2f slackSend -> mattermostSend 2017-06-30 13:43:39 -07:00
Adam Ierymenko 0ea1749c59 Merge pull request #540 from skunkwerks/master
build: all BSDs expect gmake here
2017-06-30 09:55:43 -07:00
Dave Cottlehuber dd83c680e5 build: all BSDs expect gmake here 2017-06-30 13:11:05 +00:00
Adam Ierymenko 1a40f35fd4 Merge branch 'dev' into edge 2017-06-27 11:32:14 -07:00
Adam Ierymenko 8a99113c88 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-06-27 11:32:07 -07:00
Adam Ierymenko ada2ea3a6b Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2017-06-27 11:31:39 -07:00
Adam Ierymenko 355cce3938 Rename Utils::snprintf due to it being a #define on one platform. 2017-06-27 11:31:29 -07:00
Travis LaDuke 9b2e08dd09 Update README.md
We've had multiple questions in the community chat regarding posting new
network and getting the curl syntax correct.
2017-06-26 11:53:35 -07:00
Joseph Henry 04cee3b8d3 Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2017-06-26 02:13:40 -07:00
Joseph Henry c61440efea Detect platformDefaultHomePath on QNAP systems 2017-06-25 20:20:30 -07:00
Adam Ierymenko 02d18af57d Remove Cluster.hpp 2017-06-23 16:10:26 -07:00
Adam Ierymenko 2225bb093a Merge branch 'edge' into dev 2017-06-23 16:06:38 -07:00
Adam Ierymenko 75a6a7baca Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-06-23 16:05:58 -07:00
Alex 6b130e8311 fix for windows compilation (related to SDK implementation) 2017-06-21 14:58:39 -07:00
Alex 1b18923824 except wondows/lib 2017-06-13 14:25:53 -07:00
Alex fc2ce439e2 remove unneeded files 2017-06-13 14:23:11 -07:00
Alex 5b3d9f9184 added Windows SDK in form of dlls 2017-06-13 13:28:23 -07:00
Adam Ierymenko dd68c207f4 Stuff old Cluster code in attic. 2017-06-08 08:51:49 -07:00
Adam Ierymenko 9a3c34b5b3 Build fix, use -Os on Linux too. 2017-06-07 17:19:33 -07:00
Adam Ierymenko 951d911531 Last bit of new cluster code, ready to test. 2017-06-06 16:11:19 -07:00
Adam Ierymenko 4f2179b0df . 2017-06-05 13:42:43 -07:00
Adam Ierymenko 9b287392a4 . 2017-06-05 12:15:28 -07:00
Adam Ierymenko aa06470cb6 More cleanup for cluster refactor. 2017-06-01 20:32:43 -07:00
Adam Ierymenko d7b4f24a7a . 2017-06-01 17:21:57 -07:00
Adam Ierymenko e8d11eb5c5 . 2017-06-01 17:21:04 -07:00
Adam Ierymenko 7f4da08ff7 . 2017-06-01 12:57:44 -07:00
Adam Ierymenko 1f9414a30f . 2017-06-01 12:38:04 -07:00
Adam Ierymenko 6015b529a0 More clustering work. 2017-06-01 12:33:05 -07:00
Adam Ierymenko 76452b4e28 Data structure fixup. 2017-06-01 07:39:31 -07:00
Adam Ierymenko 64b7d9ef82 New clustering work. 2017-06-01 07:15:46 -07:00
Joseph Henry 7bc9666aac fix for SDK's route/tap association in getTap() 2017-05-31 13:07:03 -07:00
Adam Ierymenko 2a4a50b1da Add some also-ZeroTier-written ext/ code for use in new clustering, delete some old code, and change Mac to use -Os which is just as fast as -Ofast and may be faster due to cache effects. 2017-05-31 08:36:09 -07:00
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
Joseph Henry 36049a940c added campaign tags to README.md 2017-05-25 17:09:21 -07:00
Grant Limberg 952834f7f3 Let Android Studio determine debug/release build 2017-05-23 14:56:29 -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 fb71a6e2b4 skipRootCheck should also prevent dropping of privs on Linux 2017-05-19 16:16:10 -07:00
Adam Ierymenko 5e6a2a17b0 Cluster build fix. 2017-05-19 15:32:52 -07:00
Adam Ierymenko 92289c1981 Move to canonical device naming on Linux. 2017-05-19 15:18:47 -07:00
Adam Ierymenko 99e2098a48 Add a way to specify a different interface prefix (for internal use mostly). 2017-05-19 14:00:08 -07:00
Adam Ierymenko 5fc1c1de28 . 2017-05-19 13:24:40 -07:00
Grant Limberg 2fac693243 I guess there's a bug in Clipboard.SetText(). Clipboard.SetDataObject() works, though. 2017-05-12 16:42:54 -07:00
Grant Limberg e9b956ed71 Swallow a possible ArgumentNullException when copying text to the system clipboard 2017-05-12 16:05:29 -07:00
Adam Ierymenko 236a952458 typo 2017-05-11 14:26:46 -07:00
Adam Ierymenko 426b7c2c76 Stupid bug is stupid. 2017-05-11 14:13:38 -07:00
Adam Ierymenko 22780a8504 Merge branch 'dev' of http://10.187.63.16/zerotier/ZeroTierOne into dev 2017-05-10 13:48:55 -07:00
Adam Ierymenko a437fd420c version 2017-05-10 13:48:47 -07:00
Adam Ierymenko 2d74c60d47 Add branch hints to bounds checking in Buffer. 2017-05-09 21:54:23 -07:00
Adam Ierymenko ceee56af51 Fix for small stacks. 2017-05-09 21:36:25 -07:00
Adam Ierymenko d297d8fe2e Musl fix 2017-05-09 21:21:56 -07:00
Adam Ierymenko f479b76772 define likely/unlikely 2017-05-09 20:22:08 -07:00
Grant Limberg 73f7088b45 Run Join/Leave commands asynchronously so the UI doesn't lock up on thoise commands 2017-05-08 16:17:33 -07:00
Adam Ierymenko b3dd5c0e3a Build fix. 2017-05-08 14:51:12 -07:00
Adam Ierymenko ee7ee22555 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-05-08 14:46:54 -07:00
Adam Ierymenko cf49e511a5 More makefile changes. 2017-05-08 14:46:45 -07:00
Adam Ierymenko 505b9c7f56 Makefile reorg to allow core to be built as a library. 2017-05-08 14:36:55 -07:00
Grant Limberg 8c30b2b9f5 Fixed falling out of the network monitor thread if the ZeroTier service isn't running on Windows 2017-05-08 13:27:54 -07:00
Adam Ierymenko b9c1407013 Adjust PUSH_DIRECT_PATH circuit breaker, and comment out traces to reduce noise. 2017-05-08 09:36:37 -07:00
Adam Ierymenko d905607353 Small optimizations. 2017-05-08 08:35:55 -07:00
Adam Ierymenko e5e90b1f71 Wire MTU through to service. 2017-05-04 20:10:49 -07:00
Adam Ierymenko d5ed025871 Support MTU reconfigure for Windows. 2017-05-04 19:50:02 -07:00
Adam Ierymenko b55422a528 MTU integration in taps. 2017-05-04 19:31:50 -07:00
Adam Ierymenko 909a14fb48 MTU support in controller. 2017-05-04 17:22:24 -07:00
Adam Ierymenko 107e3e4106 First pass of configurable MTU and max MTU increase. 2017-05-04 17:12:02 -07:00
Adam Ierymenko 6ef247fb93 More ARM stuff. 2017-05-04 16:00:53 -07:00
Adam Ierymenko b8e46b835b Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-05-04 15:54:15 -07:00
Adam Ierymenko 0900fee5d9 Linux build stuff for ARM. 2017-05-04 15:54:08 -07:00
Joseph Henry 1f26cb98de updated OneService convenience functions for SDK 2017-05-04 15:26:44 -07:00
Joseph Henry ceeb8ee0bc added isEqualPrefix to InetAddress 2017-05-04 15:25:48 -07:00
Adam Ierymenko 54c47a1e03 Add some historic code just for the heck of it. 2017-05-04 10:42:22 -07:00
Adam Ierymenko 6bb855873d GitHub issue #494 -- shut down and restart UI on Mac pkg install/upgrade. 2017-05-03 15:03:26 -07:00
Adam Ierymenko 39db45e144 Fix crash on exit (sometimes) in controller. 2017-05-03 09:48:08 -07:00
Adam Ierymenko 41c187ba12 Another very small crypto optimization. 2017-05-03 07:43:23 -07:00
Adam Ierymenko d7c99728bc Echo back ping payload. 2017-05-02 17:28:18 -07:00
Adam Ierymenko 8e19188f49 Do the sometimes rather big "pong" in a background worker thread. 2017-05-02 16:58:51 -07:00
Adam Ierymenko 625e3e8e25 Tiny optimization to prealloc string space. 2017-05-02 13:53:47 -07:00
Adam Ierymenko fde99e2fcf Fix for post size limit in Http library. 2017-05-02 12:08:53 -07:00
Adam Ierymenko 132643cd4a Fix small issue preventing pongs if there are never seen members. 2017-05-02 10:34:33 -07:00
Adam Ierymenko faf7b81c01 Send last requets time in status, and do not set physicalAddr unless we know one. 2017-05-01 15:48:52 -07:00
Adam Ierymenko bcc6799902 Send member uptime in pong posts. 2017-05-01 15:23:21 -07:00
Adam Ierymenko 718e1d6c08 Finish removing constantly changing stuff from controller. 2017-05-01 13:21:26 -07:00
Adam Ierymenko a9ce773584 Remove lastModified field in config which literally nothing uses anywhere, and prevent some unnecessary writes. 2017-04-28 19:58:21 -07:00
Adam Ierymenko d69bc4fb5e Main license file. 2017-04-27 20:54:42 -07:00
Adam Ierymenko 1b68d6dbdc License header update. 2017-04-27 20:47:25 -07:00
Adam Ierymenko 62578a2162 Reduce memory use and a bit of cleanup. 2017-04-27 19:36:03 -07:00
Adam Ierymenko 9e80db0fd1 Cleanup, fix a valgrind error, stack use reduction. 2017-04-27 00:59:36 -07:00
Adam Ierymenko e8ab6adf89 Deadlock fix. 2017-04-26 12:17:43 -07:00
Adam Ierymenko 7c184cf991 Another performance improvement to controller. 2017-04-26 10:35:59 -07:00
Adam Ierymenko 72def658d0 Add a dummy Ethernet tap and a build option to enable it. 2017-04-26 08:42:49 -07:00
Adam Ierymenko e7cd888c7d dev is now 1.2.5 2017-04-26 06:50:12 -07:00
Adam Ierymenko 1205578935 Big cleanup of controller code, should help performance. 2017-04-26 06:48:08 -07:00
Adam Ierymenko 4e77365e8d Remove a little cruft. 2017-04-25 16:17:54 -07:00
Adam Ierymenko 4f2a779769 JSONDB performance improvements, threading fix. 2017-04-24 20:51:02 -07:00
Adam Ierymenko cafbe44dde Controller optimizations -- make locking more fine-grained, use true hardware concurrency, etc. 2017-04-24 19:16:36 -07:00
Adam Ierymenko 6234bfd8bf 4-core Debian build. 2017-04-24 18:40:34 -07:00
Adam Ierymenko 77796caba6 Static ARM32 build fixes. 2017-04-24 18:12:58 -07:00
Adam Ierymenko 97f1d7ae2e . 2017-04-24 16:56:18 -07:00
Adam Ierymenko 487e89d4d0 Add i486 and i586 to Linux makefile for detection of ia32. 2017-04-24 15:19:03 -07:00
Adam Ierymenko fe5257df81 VERSION 1.2.4: Bug fixes and performance improvements
* Managed routes are now only bifurcated for the default route. This is a change in behavior, though few people will probably notice. Bifurcating all managed routes was causing more trouble than it was worth for most users.
 * Up to 2X crypto speedup on x86-64 (except Windows, which will take some porting) and 32-bit ARM platforms due to integration of fast assembly language implementations of Salsa20/12 from the [supercop](http://bench.cr.yp.to/supercop.html) code base. These were written by Daniel J. Bernstein and are in the public domain. My Macbook Pro (Core i5 2.8ghz) now does almost 1.5GiB/sec Salsa20/12 per core and a Raspberry Pi got a 2X boost. 64-bit ARM support and Windows support will take some work but should not be too hard.
 * Refactored code that manages credentials to greatly reduce memory use in most cases. This may also result in a small performance improvement.
 * Reworked and simplified path selection and priority logic to fix path instability and dead path persistence edge cases. There have been some sporadic reports of persistent path instabilities and dead paths hanging around that take minutes to resolve. These have proven difficult to reproduce in house, but hopefully this will fix them. In any case it seems to speed up path establishment in our tests and it makes the code simpler and more readable.
 * Eliminated some unused cruft from the code around path management and in the peer class.
 * Fixed an issue causing build problems on some MIPS architecture systems.
 * Fixed Windows forgetting routes on sleep/wake or in some other circumstances. (GitHub issue #465)
2017-04-24 11:41:23 -07:00
Adam Ierymenko 9161424c97 Version bumps. 2017-04-24 11:41:01 -07:00
Adam Ierymenko cdda0dd043 Windows version bump. 2017-04-24 11:37:54 -07:00
Adam Ierymenko f4feccc626 Do not serve controller requests until init is done. 2017-04-24 09:09:04 -07:00
Adam Ierymenko 44cb2f4efd ++version 2017-04-21 15:32:00 -07:00
Adam Ierymenko cacb8fae0d GitHub issue #463 -- fix MacOS uninstall script. 2017-04-21 13:55:44 -07:00
Adam Ierymenko fa99a5cf12 docs 2017-04-21 13:27:34 -07:00
Adam Ierymenko e700165eba GitHub issue #465 - Windows route amnesia 2017-04-21 13:26:02 -07:00
Adam Ierymenko 8542ee59db Windows crash fix. 2017-04-21 12:42:51 -07:00
Adam Ierymenko 76108671f6 BSD makefile fix for OpenBSD. 2017-04-21 08:42:45 -07:00
Adam Ierymenko 8b0ce1cc00 More BSD make fixes. 2017-04-21 08:09:18 -07:00
Adam Ierymenko 0e88c73f68 Mirror over some arch rules from Linux to BSD make, and enable fast crypto there. 2017-04-21 08:04:33 -07:00
Adam Ierymenko ba0d73d102 Windows build fixes. 2017-04-20 10:21:40 -07:00
Adam Ierymenko d3ecd1d670 docs 2017-04-20 10:21:08 -07:00
Adam Ierymenko f9ae5938d0 Makefile fix, only bifurcate routes for default, and release notes. 2017-04-20 10:08:46 -07:00
Adam Ierymenko a8ced184dc Some code cleanup and make sure any type punning is guarded with ZT_NO_TYPE_PUNNING. 2017-04-20 09:33:35 -07:00
Adam Ierymenko e7a2c6ecef Integrate ARM/NEON crypto. 2017-04-19 17:11:56 -07:00
Adam Ierymenko a376bcc654 ARM NEON Salsa20/12 in build and selftest. Almost 2X speedup on a Raspberry Pi. 2017-04-19 23:49:26 +00:00
Adam Ierymenko 8e1ac9fb0c ARM NEON Salsa20/12. 2017-04-19 15:58:20 -07:00
Adam Ierymenko bc61357a44 HTTP backend support for JSONDB 2017-04-18 17:37:44 -07:00
Adam Ierymenko f6d92eb737 JSONDB fix. 2017-04-18 13:48:19 -07:00
Adam Ierymenko 48cadcd2fc More build fixes. 2017-04-18 12:48:56 -07:00
Adam Ierymenko bd63a840c7 Mac build fix. 2017-04-18 12:44:27 -07:00
Adam Ierymenko aaf597f020 Cleanup, Windows fixes, Self test fix 2017-04-18 12:22:44 -07:00
Adam Ierymenko 72bd3064a2 Windows build fixes, self test cleanup. 2017-04-18 11:00:29 -07:00
Adam Ierymenko a1c316b940 Makefile cruft. 2017-04-18 09:19:39 -07:00
Adam Ierymenko 02f84b225c Add MIPS architectures to Linux Makefile and add an error if architecture cannot be determined. 2017-04-18 09:14:33 -07:00
Adam Ierymenko 6551c20005 Enable x64 ASM Salsa20/12 on Linux. 2017-04-18 08:57:32 -07:00
Adam Ierymenko a1e94154be Just incorporate the X64 ASM version of Salsa20/12 for X64 platforms. This gives us (for example) 1.5gb/sec encryption on a Core i5 2.8ghz. 2017-04-18 08:45:37 -07:00
Adam Ierymenko 4938e82795 Delete junk. 2017-04-17 18:01:51 -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 db0edf154c Use right deployment target in OSX bin. 2017-04-17 16:54:41 -07:00
Adam Ierymenko a1cd94a61d Actually include .a 2017-04-17 16:43:36 -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 d8f5cfdee4 Windows profile build target (CPU profiling), and a little bit of optimization revealed by such. 2017-04-17 15:45:49 -07:00
Adam Ierymenko 95e5345cc3 Cluster build fix. 2017-04-17 10:12:13 -07:00
Adam Ierymenko ba5d0cc2f9 Silence some TRACE noise. 2017-04-17 09:31:07 -07:00
Adam Ierymenko 1d8ded3293 Tiny largely non-consequential credential fix. 2017-04-17 09:30:28 -07:00
Adam Ierymenko 2487a8bede Fix for 100% cpu issue. 2017-04-17 09:14:21 -07:00
Adam Ierymenko f1c0563c40 Fix for cluster handoff. 2017-04-14 18:02:04 -07:00
Adam Ierymenko 139c4b5633 Significant simplification to path logic. 2017-04-14 17:53:32 -07:00
Adam Ierymenko 645bf4a764 Resurrect zerotier-containerized. 2017-04-14 13:30:12 -07:00
Adam Ierymenko 88a4a3b1ba Pass tptr on leave. 2017-04-11 08:47:02 -07:00
Adam Ierymenko 6fabaae736 Add simple root server watcher (for our own new dashboard, but also for user use). 2017-04-04 16:47:14 -07:00
Adam Ierymenko 1b2cfd63e5 add libstdc++ dependency 2017-04-04 14:10:38 -07:00
Adam Ierymenko ff2b219abd root-watcher code 2017-04-04 12:39:14 -07:00
Adam Ierymenko 33c3af752b Need to just have a make option for soft float ARM. 2017-04-04 11:26:50 -07:00
Adam Ierymenko f73a1d2d56 Linux ARM flags. 2017-04-04 09:41:34 -07:00
Adam Ierymenko 470ad39d0d More Linux ARM stuff. 2017-04-04 09:15:38 -07:00
Adam Ierymenko 5ad120208f Small fix, should filter by temporal validity. 2017-04-04 08:46:12 -07:00
Adam Ierymenko b48a70db2e Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-04-04 08:39:22 -07:00
Adam Ierymenko cd050b3423 Performance improvement in controller. 2017-04-04 08:39:19 -07:00
Adam Ierymenko eddbc7e757 Logic simplification, cleanup, and memory use improvements in Membership. Also fix an issue that may cause network instability in some cases. 2017-04-04 08:07:38 -07:00
Adam Ierymenko 8a62ba07e5 Membership cleanup work in progress. 2017-04-04 06:47:01 -07:00
Adam Ierymenko b3298a8f57 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-03-30 09:54:10 -07:00
Adam Ierymenko e5284771e4 Add ping/pong to API so controller supervisor in Central can do a full-path check of controller uptime, etc. 2017-03-30 09:54:04 -07:00
Grant Limberg 5f611dad51 added orbit/deorbit methods to java Node implementation 2017-03-29 13:29:02 -07:00
Grant Limberg 1c5fdb8a0a fix path checker initialization 2017-03-29 13:28:06 -07:00
Grant Limberg de4b9e9a16 Added path checking interface for Java 2017-03-29 12:52:52 -07:00
Adam Ierymenko 57b5a33fbb Fix bug preventing default from being set to null if already set to an integer. 2017-03-29 12:32:59 -07:00
Adam Ierymenko 3f4f7145a3 Another rule compiler fix. 2017-03-28 22:25:24 -07:00
Adam Ierymenko b959148447 Small rule compiler fix with tag defaults. 2017-03-28 21:50:44 -07:00
Grant Limberg 855361b5b8 fix native end of JNI code for new thread data ptr 2017-03-28 17:49:00 -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 592cac5815 Remove from a few other places. 2017-03-27 12:09:37 -07:00
Adam Ierymenko 4244cca48c Delete comically named SSL gateway code, which is going elsewhere. 2017-03-27 12:08:38 -07:00
Grant Limberg 179ab5220a Set macOS deployment target to 10.10 for UI applet
Must use CLI for older versions of macOS
2017-03-27 11:36:11 -07:00
Grant Limberg d6bb1b72c3 Fix some text colors to work on old OS X versions 2017-03-27 11:15:36 -07:00
Grant Limberg 3d9a5a4f91 Popovers now appear to work 2017-03-27 10:55:47 -07:00
Joseph Henry 683ba79ff0 Added ButtFlare stub code 2017-03-24 17:00:14 -07:00
Grant Limberg 0c69fc719f Windows UI will attempt to re-copy the auth token if a 401 error is received 2017-03-22 10:48:42 -07:00
Grant Limberg 03b48a4ad4 add lock around [ServiceCom key] and remove some debug code 2017-03-22 10:22:15 -07:00
Grant Limberg aa71292265 A couple more places we should check HTTP status 2017-03-22 10:18:12 -07:00
Grant Limberg d72eee6cf7 If we get a 401 error from the ZeroTier service in the macOS UI, try re-copying the auth token 2017-03-22 09:58:13 -07:00
Adam Ierymenko 6bb19e7947 build fix 2017-03-21 09:08:32 -07:00
Adam Ierymenko 3d2518f799 crazy formatting fix 2017-03-21 08:21:11 -07:00
Adam Ierymenko 5268909075 Add a facility for full flow-through uptime test of controller by Central. 2017-03-21 06:31:15 -07:00
Adam Ierymenko c62141fd98 Make controller do a simple write-through cache without revalidating. Means you must restart if files change on disk, but will decrease I/O considerably. 2017-03-21 06:15:49 -07:00
Adam Ierymenko ae303ee902 dev is now 1.2.3 2017-03-20 16:17:11 -07:00
Adam Ierymenko cfe0d0971f VERSION 1.2.2
Version 1.2.2 fixes a few bugs discovered after the 1.2.0 release. These are:

 * A bug causing unreliable multicast propagation (GitHub issue #461).
 * A crash in ARM binaries due to a build chain and flags problem.
 * A bug in the network controller preventing members from being listed (GitHub issue #460).
2017-03-17 21:13:41 -07:00
Adam Ierymenko c5c8facc2d Windows installer version bump and a build fix. 2017-03-17 20:20:47 -07:00
Adam Ierymenko f78d6a8a93 docs 2017-03-17 20:04:25 -07:00
Adam Ierymenko 78ef2c5f16 Windows build fixes, app about text revisions. 2017-03-17 20:01:58 -07:00
Adam Ierymenko ec8e1178e5 Version bumps, and fix Debian so default is to build normally and .static files are used in our builds. 2017-03-17 19:16:34 -07:00
Adam Ierymenko 4f3f471b4c GitHub issue #460 2017-03-17 18:19:51 -07:00
Adam Ierymenko e10325e133 GitHub issue #461 -- plus a bit of cleanup and optimization 2017-03-17 17:15:23 -07:00
Adam Ierymenko ef46d3c97d LZ4 cleanup 2017-03-17 23:09:18 +00:00
Adam Ierymenko a9c08c5975 . 2017-03-17 22:35:56 +00:00
Adam Ierymenko c467c3b7e4 ARM tweaks 2017-03-17 22:26:08 +00:00
Adam Ierymenko cdc0eaec3a Fix attempt to WHOIS self. 2017-03-17 22:13:34 +00:00
Adam Ierymenko a7cb738175 . 2017-03-17 14:25:54 -07:00
Adam Ierymenko d1bb22a583 . 2017-03-17 14:09:30 -07:00
Adam Ierymenko 553d972de5 bump that version. bump it good. 2017-03-17 13:56:45 -07:00
Adam Ierymenko cc883cc3d8 Merge branch 'master' of http://10.6.6.2/zerotier/ZeroTierOne 2017-03-17 13:56:01 -07:00
Adam Ierymenko c6a39ed927 Fixes for possible ARM issues, cleanup, fix for spurious meaningless exceptions on NETWORK_CONFIG_REQUEST 2017-03-17 13:55:26 -07:00
Adam Ierymenko df30255542 Merge branch 'master' into dev 2017-03-17 12:37:23 -07:00
Adam Ierymenko d5102539dd Merge pull request #457 from skunkwerks/master
build: use clang on FreeBSD
2017-03-17 12:18:54 -07:00
Adam Ierymenko e3feaf3f5d Warning removal, and dev is now 1.2.1 2017-03-16 16:45:11 -07:00
Dave Cottlehuber 25dc596397 build: use clang on FreeBSD
this avoids a whopping 500+Mb dependency on gcc and friends at runtime
2017-03-16 12:58:04 +01:00
Adam Ierymenko 0daff26fba Version 1.2.0 is a major milestone release representing almost nine months of work. It includes our rules engine for distributed network packet filtering and security monitoring, federated roots, and many other architectural and UI improvements and bug fixes.
The largest new feature in 1.2.0, and the product of many months of work, is our advanced network rules engine. With this release we achieve traffic control, security monitoring, and micro-segmentation capability on par with many enterprise SDN solutions designed for use in advanced data centers and corporate networks.

Rules allow you to filter packets on your network and vector traffic to security observers. Security observation can be performed in-band using REDIRECT or out of band using TEE.

Tags and capabilites provide advanced methods for implementing fine grained permission structures and micro-segmentation schemes without bloating the size and complexity of your rules table.

See the [rules engine announcement blog post](https://www.zerotier.com/blog/?p=927) for an in-depth discussion of theory and implementation. The [manual](https://www.zerotier.com/manual.shtml) contains detailed information on rule, tag, and capability use, and the `rule-compiler/` subfolder of the ZeroTier source tree contains a JavaScript function to compile rules in our human-readable rule definition language into rules suitable for import into a network controller. (ZeroTier Central uses this same script to compile rules on [my.zerotier.com](https://my.zerotier.com/).)

It's now possible to create your own root servers and add them to the root server pool on your nodes. This is done by creating what's called a "moon," which is a signed enumeration of root servers and their stable points on the network. Refer to the [manual](https://www.zerotier.com/manual.shtml) for instructions.

Federated roots achieve a number of things:

 * You can deploy your own infrastructure to reduce dependency on ours.
 * You can deploy roots *inside your LAN* to ensure that network connectivity inside your facility still works if the Internet goes down. This is the first step toward making ZeroTier viable as an in-house SDN solution.
 * Roots can be deployed inside national boundaries for countries with data residency laws or "great firewalls." (As of 1.2.0 there is still no way to force all traffic to use these roots, but that will be easy to do in a later version.)
 * Last but not least this makes ZeroTier somewhat less centralized by eliminating any hard dependency on ZeroTier, Inc.'s infrastructure.

Our roots will of course remain and continue to provide zero-configuration instant-on deployment, a secure global authority for identities, and free traffic relaying for those who can't establish peer to peer connections.

An element of our design philosophy is "features are bugs." This isn't an absolute dogma but more of a guiding principle. We try as hard as we can to avoid adding features, especially "knobs" that must be tweaked by a user.

As of 1.2.0 we've decided that certain knobs are unavoidable, and so there is now a `local.conf` file that can be used to configure them. See the ZeroTier One documentation for these. They include:

 * Blacklisting interfaces you want to make sure ZeroTier doesn't use for network traffic, such as VPNs, slow links, or backplanes designated for only certain kinds of traffic.
 * Turning uPnP/NAT-PMP on or off.
 * Configuring software updates on Windows and Mac platforms.
 * Defining trusted paths (the old trusted paths file is now deprecated)
 * Setting the ZeroTier main port so it doesn't have to be changed on the command line, which is very inconvenient in many cases.

A good software update system for Windows and Mac clients has been a missing feature in previous versions. It does exist but we've been shy about using it so far due to its fragility in some environments.

We've greatly improved this mechanism in 1.2.0. Not only does it now do a better job of actually invoking the update, but it also transfers updates in-band using the ZeroTier protocol. This means it can work in environments that do not allows http/https traffic or that force it through proxies. There's also now an update channel setting: `beta` or `release` (the default).

Software updates are authenticated three ways:

 1. ZeroTier's own signing key is used to sign all updates and this signature is checked prior to installation. ZeroTier, Inc.'s signatures are performed on an air-gapped machine.

 2. Updates for Mac and Windows are signed using Apple and Microsoft (DigiCert EV) keys and will not install unless these signatures are also valid.

 3. The new in-band update mechanism also authenticates the source of the update via ZeroTier's built-in security features. This provides transport security, while 1 and 2 provide security of the update at rest.

Updates are now configurable via `local.conf`. There are three options: `disable`, `download`, and `apply`. The third (apply) is the default for official builds on Windows and Mac, making updates happen silently and automatically as they do for popular browsers like Chrome and Firefox. Updates are disabled by default on Linux and other Unix-type systems as these are typically updated through package managers.

Version 1.2.0 is now aware of the link quality of direct paths with other 1.2.0 nodes. This information isn't used yet but is visible through the JSON API. (Quality always shows as 100% with pre-1.2.0 nodes.) Quality is measured passively with no additional overhead using a counter based packet loss detection algorithm.

This information is visible from the command line via `listpeers`:

    200 listpeers XXXXXXXXXX 199.XXX.XXX.XXX/9993;10574;15250;1.00 48 1.2.0 LEAF
    200 listpeers XXXXXXXXXX 195.XXX.XXX.XXX/45584;467;7608;0.44 290 1.2.0 LEAF

The first peer's path is at 100% (1.00), while the second peer's path is suffering quite a bit of packet loss (0.44).

Link quality awareness is a precursor to intelligent multi-path and QoS support, which will in future versions bring us to feature parity with SD-WAN products like Cisco iWAN.

Version 1.2.0 adds anti-DOS (denial of service) rate limits and other hardening for improved resiliency against a number of denial of service attack scenarios.

It also adds a mechanism for instantaneous credential revocation. This can be used to revoke certificates of membership instantly to kick a node off a network (for private networks) and also to revoke capabilities and tags. The new controller sends revocations by default when a peer is de-authorized.

Revocations propagate using a "rumor mill" peer to peer algorithm. This means that a controller need only successfully send a revocation to at least one member of a network with connections to other active members. At this point the revocation will flood through the network peer to peer very quickly. This helps make revocations more robust in the face of poor connectivity with the controller or attempts to incapacitate the controller with denial of service attacks, as well as making revocations faster on huge networks.

The Mac has a whole new UI built natively in Objective-C. It provides a pulldown similar in appearance and operation to the Mac WiFi task bar menu.

The Windows UI has also been improved and now provides a task bar icon that can be right-clicked to manage networks. Both now expose managed route and IP permissions, allowing nodes to easily opt in to full tunnel operation if you have a router configured on your network.

A special kind of public network called an ad-hoc network may be accessed by joining a network ID with the format:

    ffSSSSEEEE000000
    | |   |   |
    | |   |   Reserved for future use, must be 0
    | |   End of port range (hex)
    | Start of port range (hex)
    Reserved ZeroTier address prefix indicating a controller-less network

Ad-hoc networks are public (no access control) networks that have no network controller. Instead their configuration and other credentials are generated locally. Ad-hoc networks permit only IPv6 UDP and TCP unicast traffic (no multicast or broadcast) using 6plane format NDP-emulated IPv6 addresses. In addition an ad-hoc network ID encodes an IP port range. UDP packets and TCP SYN (connection open) packets are only allowed to desintation ports within the encoded range.

For example `ff00160016000000` is an ad-hoc network allowing only SSH, while `ff0000ffff000000` is an ad-hoc network allowing any UDP or TCP port.

Keep in mind that these networks are public and anyone in the entire world can join them. Care must be taken to avoid exposing vulnerable services or sharing unwanted files or other resources.

The network controller has been largely rewritten to use a simple in-filesystem JSON data store in place of SQLite, and it is now included by default in all Windows, Mac, Linux, and BSD builds. This means any desktop or server node running ZeroTier One can now be a controller with no recompilation needed.

If you have data in an old SQLite3 controller we've included a NodeJS script in `controller/migrate-sqlite` to migrate data to the new format. If you don't migrate, members will start getting `NOT_FOUND` when they attempt to query for updates.

 * **The Windows HyperV 100% CPU bug is FINALLY DEAD**: This long-running problem turns out to have been an issue with Windows itself, but one we were triggering by placing invalid data into the Windows registry. Microsoft is aware of the issue but we've also fixed the triggering problem on our side. ZeroTier should now co-exist quite well with HyperV and should now be able to be bridged with a HyperV virtual switch.
 * **Segmenation faults on musl-libc based Linux systems**: Alpine Linux and some embedded Linux systems that use musl libc (a minimal libc) experienced segmentation faults. These were due to a smaller default stack size. A work-around that sets the stack size for new threads has been added.
 * **Windows firewall blocks local JSON API**: On some Windows systems the firewall likes to block 127.0.0.1:9993 for mysterious reasons. This is now fixed in the installer via the addition of another firewall exemption rule.
 * **UI crash on embedded Windows due to missing fonts**: The MSI installer now ships fonts and will install them if they are not present, so this should be fixed.

 * **Improved dead path detection**: ZeroTier is now more aggressive about expiring paths that do not seem to be active. If a path seems marginal it is re-confirmed before re-use.
 * **Minor performance improvements**: We've reduced unnecessary memcpy's and made a few other performance improvements in the core.
 * **Linux static binaries**: For our official packages (the ones in the download.zerotier.com apt and yum repositories) we now build Linux binaries with static linking. Hopefully this will stop all the bug reports relating to library inconsistencies, as well as allowing our deb packages to run on a wider variety of Debian-based distributions. (There are far too many of these to support officially!) The overhead for this is very small, especially since we built our static versions against musl-libc. Distribution maintainers are of course free to build dynamically linked versions for inclusion into distributions; this only affects our official binaries.

Merge branch 'master' of github.com:zerotier/ZeroTierOne
2017-03-14 22:08:48 -07:00
Adam Ierymenko 94ba5b3fbe Version 1.2.0 is a major milestone release representing almost nine months of work. It includes our rules engine for distributed network packet filtering and security monitoring, federated roots, and many other architectural and UI improvements and bug fixes.
The largest new feature in 1.2.0, and the product of many months of work, is our advanced network rules engine. With this release we achieve traffic control, security monitoring, and micro-segmentation capability on par with many enterprise SDN solutions designed for use in advanced data centers and corporate networks.

Rules allow you to filter packets on your network and vector traffic to security observers. Security observation can be performed in-band using REDIRECT or out of band using TEE.

Tags and capabilites provide advanced methods for implementing fine grained permission structures and micro-segmentation schemes without bloating the size and complexity of your rules table.

See the [rules engine announcement blog post](https://www.zerotier.com/blog/?p=927) for an in-depth discussion of theory and implementation. The [manual](https://www.zerotier.com/manual.shtml) contains detailed information on rule, tag, and capability use, and the `rule-compiler/` subfolder of the ZeroTier source tree contains a JavaScript function to compile rules in our human-readable rule definition language into rules suitable for import into a network controller. (ZeroTier Central uses this same script to compile rules on [my.zerotier.com](https://my.zerotier.com/).)

It's now possible to create your own root servers and add them to the root server pool on your nodes. This is done by creating what's called a "moon," which is a signed enumeration of root servers and their stable points on the network. Refer to the [manual](https://www.zerotier.com/manual.shtml) for instructions.

Federated roots achieve a number of things:

 * You can deploy your own infrastructure to reduce dependency on ours.
 * You can deploy roots *inside your LAN* to ensure that network connectivity inside your facility still works if the Internet goes down. This is the first step toward making ZeroTier viable as an in-house SDN solution.
 * Roots can be deployed inside national boundaries for countries with data residency laws or "great firewalls." (As of 1.2.0 there is still no way to force all traffic to use these roots, but that will be easy to do in a later version.)
 * Last but not least this makes ZeroTier somewhat less centralized by eliminating any hard dependency on ZeroTier, Inc.'s infrastructure.

Our roots will of course remain and continue to provide zero-configuration instant-on deployment, a secure global authority for identities, and free traffic relaying for those who can't establish peer to peer connections.

An element of our design philosophy is "features are bugs." This isn't an absolute dogma but more of a guiding principle. We try as hard as we can to avoid adding features, especially "knobs" that must be tweaked by a user.

As of 1.2.0 we've decided that certain knobs are unavoidable, and so there is now a `local.conf` file that can be used to configure them. See the ZeroTier One documentation for these. They include:

 * Blacklisting interfaces you want to make sure ZeroTier doesn't use for network traffic, such as VPNs, slow links, or backplanes designated for only certain kinds of traffic.
 * Turning uPnP/NAT-PMP on or off.
 * Configuring software updates on Windows and Mac platforms.
 * Defining trusted paths (the old trusted paths file is now deprecated)
 * Setting the ZeroTier main port so it doesn't have to be changed on the command line, which is very inconvenient in many cases.

A good software update system for Windows and Mac clients has been a missing feature in previous versions. It does exist but we've been shy about using it so far due to its fragility in some environments.

We've greatly improved this mechanism in 1.2.0. Not only does it now do a better job of actually invoking the update, but it also transfers updates in-band using the ZeroTier protocol. This means it can work in environments that do not allows http/https traffic or that force it through proxies. There's also now an update channel setting: `beta` or `release` (the default).

Software updates are authenticated three ways:

 1. ZeroTier's own signing key is used to sign all updates and this signature is checked prior to installation. ZeroTier, Inc.'s signatures are performed on an air-gapped machine.

 2. Updates for Mac and Windows are signed using Apple and Microsoft (DigiCert EV) keys and will not install unless these signatures are also valid.

 3. The new in-band update mechanism also authenticates the source of the update via ZeroTier's built-in security features. This provides transport security, while 1 and 2 provide security of the update at rest.

Updates are now configurable via `local.conf`. There are three options: `disable`, `download`, and `apply`. The third (apply) is the default for official builds on Windows and Mac, making updates happen silently and automatically as they do for popular browsers like Chrome and Firefox. Updates are disabled by default on Linux and other Unix-type systems as these are typically updated through package managers.

Version 1.2.0 is now aware of the link quality of direct paths with other 1.2.0 nodes. This information isn't used yet but is visible through the JSON API. (Quality always shows as 100% with pre-1.2.0 nodes.) Quality is measured passively with no additional overhead using a counter based packet loss detection algorithm.

This information is visible from the command line via `listpeers`:

    200 listpeers XXXXXXXXXX 199.XXX.XXX.XXX/9993;10574;15250;1.00 48 1.2.0 LEAF
    200 listpeers XXXXXXXXXX 195.XXX.XXX.XXX/45584;467;7608;0.44 290 1.2.0 LEAF

The first peer's path is at 100% (1.00), while the second peer's path is suffering quite a bit of packet loss (0.44).

Link quality awareness is a precursor to intelligent multi-path and QoS support, which will in future versions bring us to feature parity with SD-WAN products like Cisco iWAN.

Version 1.2.0 adds anti-DOS (denial of service) rate limits and other hardening for improved resiliency against a number of denial of service attack scenarios.

It also adds a mechanism for instantaneous credential revocation. This can be used to revoke certificates of membership instantly to kick a node off a network (for private networks) and also to revoke capabilities and tags. The new controller sends revocations by default when a peer is de-authorized.

Revocations propagate using a "rumor mill" peer to peer algorithm. This means that a controller need only successfully send a revocation to at least one member of a network with connections to other active members. At this point the revocation will flood through the network peer to peer very quickly. This helps make revocations more robust in the face of poor connectivity with the controller or attempts to incapacitate the controller with denial of service attacks, as well as making revocations faster on huge networks.

The Mac has a whole new UI built natively in Objective-C. It provides a pulldown similar in appearance and operation to the Mac WiFi task bar menu.

The Windows UI has also been improved and now provides a task bar icon that can be right-clicked to manage networks. Both now expose managed route and IP permissions, allowing nodes to easily opt in to full tunnel operation if you have a router configured on your network.

A special kind of public network called an ad-hoc network may be accessed by joining a network ID with the format:

    ffSSSSEEEE000000
    | |   |   |
    | |   |   Reserved for future use, must be 0
    | |   End of port range (hex)
    | Start of port range (hex)
    Reserved ZeroTier address prefix indicating a controller-less network

Ad-hoc networks are public (no access control) networks that have no network controller. Instead their configuration and other credentials are generated locally. Ad-hoc networks permit only IPv6 UDP and TCP unicast traffic (no multicast or broadcast) using 6plane format NDP-emulated IPv6 addresses. In addition an ad-hoc network ID encodes an IP port range. UDP packets and TCP SYN (connection open) packets are only allowed to desintation ports within the encoded range.

For example `ff00160016000000` is an ad-hoc network allowing only SSH, while `ff0000ffff000000` is an ad-hoc network allowing any UDP or TCP port.

Keep in mind that these networks are public and anyone in the entire world can join them. Care must be taken to avoid exposing vulnerable services or sharing unwanted files or other resources.

The network controller has been largely rewritten to use a simple in-filesystem JSON data store in place of SQLite, and it is now included by default in all Windows, Mac, Linux, and BSD builds. This means any desktop or server node running ZeroTier One can now be a controller with no recompilation needed.

If you have data in an old SQLite3 controller we've included a NodeJS script in `controller/migrate-sqlite` to migrate data to the new format. If you don't migrate, members will start getting `NOT_FOUND` when they attempt to query for updates.

 * **The Windows HyperV 100% CPU bug is FINALLY DEAD**: This long-running problem turns out to have been an issue with Windows itself, but one we were triggering by placing invalid data into the Windows registry. Microsoft is aware of the issue but we've also fixed the triggering problem on our side. ZeroTier should now co-exist quite well with HyperV and should now be able to be bridged with a HyperV virtual switch.
 * **Segmenation faults on musl-libc based Linux systems**: Alpine Linux and some embedded Linux systems that use musl libc (a minimal libc) experienced segmentation faults. These were due to a smaller default stack size. A work-around that sets the stack size for new threads has been added.
 * **Windows firewall blocks local JSON API**: On some Windows systems the firewall likes to block 127.0.0.1:9993 for mysterious reasons. This is now fixed in the installer via the addition of another firewall exemption rule.
 * **UI crash on embedded Windows due to missing fonts**: The MSI installer now ships fonts and will install them if they are not present, so this should be fixed.

 * **Improved dead path detection**: ZeroTier is now more aggressive about expiring paths that do not seem to be active. If a path seems marginal it is re-confirmed before re-use.
 * **Minor performance improvements**: We've reduced unnecessary memcpy's and made a few other performance improvements in the core.
 * **Linux static binaries**: For our official packages (the ones in the download.zerotier.com apt and yum repositories) we now build Linux binaries with static linking. Hopefully this will stop all the bug reports relating to library inconsistencies, as well as allowing our deb packages to run on a wider variety of Debian-based distributions. (There are far too many of these to support officially!) The overhead for this is very small, especially since we built our static versions against musl-libc. Distribution maintainers are of course free to build dynamically linked versions for inclusion into distributions; this only affects our official binaries.
2017-03-14 22:07:26 -07:00
Adam Ierymenko 002f9bb105 . 2017-03-14 22:05:39 -07:00
Adam Ierymenko e86b1146a6 Windows version bump. 2017-03-14 21:35:41 -07:00
Adam Ierymenko d44fb3a2f6 bump bump bump that version 2017-03-14 21:23:47 -07:00
Adam Ierymenko 1ef3069a7e 1.2.0 release notes and a few final tweaks and cleanup. 2017-03-14 21:21:12 -07:00
Adam Ierymenko f99b62c48d fix stupid thing. 2017-03-14 15:38:24 -07:00
Adam Ierymenko 0fd45a640b Allow multiple architectures in software update dist .json file arch fields. 2017-03-14 15:19:16 -07:00
Adam Ierymenko 0b0d03dbe2 Merge branch 'dev' of http://10.187.63.16/zerotier/ZeroTierOne into dev 2017-03-14 14:40:27 -07:00
Adam Ierymenko 533baf921f Software update cleanup, and a fix for updates on Windows. 2017-03-14 14:40:17 -07:00
Adam Ierymenko 8e9767f3c6 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-03-14 13:17:16 -07:00
Adam Ierymenko 27d4bedd73 Wait a minute (literally) before doing software update check on startup. 2017-03-14 13:17:10 -07:00
Adam Ierymenko c1c26ec73a Version 1.2.0 bump 2017-03-13 15:41:42 -07:00
Adam Ierymenko 8f592ff6e8 Controller performance tweaks. 2017-03-13 13:58:29 -07:00
Adam Ierymenko 37629aaf87 Use cache on requests to decrease DB load. 2017-03-13 12:22:06 -07:00
Adam Ierymenko d09d193715 release notes, and delete MANUAL from this repo for now since it isn't quite done and will take shape on the web site 2017-03-13 09:37:24 -07:00
Adam Ierymenko 010d0a7d56 Docs and a bit of cleanup. In particular ALL makes no sense for revocations because they have IDs. In that case you would just revoke the COM. 2017-03-13 06:53:23 -07:00
Adam Ierymenko 902807ea50 Software update check every 10min. 2017-03-10 22:03:07 -08:00
Adam Ierymenko d0224b3623 Software update fix. 2017-03-10 22:02:08 -08:00
Adam Ierymenko 0f3148bda2 Roots need to respond to lots of WHOISes 2017-03-10 20:08:07 -08:00
Adam Ierymenko e3b1fc2ac0 Tweak WHOIS path for federation. 2017-03-10 19:52:08 -08:00
Adam Ierymenko 6194d2af3d Return 200 from JSON API when moon is POSTed. 2017-03-10 19:37:03 -08:00
Adam Ierymenko db87d95c1d getUpstreamPeer issue with interim federated roots 2017-03-10 19:31:51 -08:00
Adam Ierymenko 47166c9614 Sigh. Another thinko. 2017-03-10 17:54:14 -08:00
Adam Ierymenko ecacdf27a9 Build fix (typo) 2017-03-10 17:45:05 -08:00
Adam Ierymenko aad6f79efa Also must mask off counter bits in IV in cryptField. 2017-03-10 17:44:25 -08:00
Adam Ierymenko 0c00b83702 cryptField() used to obscure extended fields in HELLO cannot use mangleKey() 2017-03-10 17:34:41 -08:00
Adam Ierymenko 7320e26730 Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2017-03-10 11:34:00 -08:00
Grant Limberg 1520534660 fix some rediculousness in NDK-14
Apparently having -fPIC on the command line multiple times turns it back off
2017-03-09 17:48:40 -08:00
Adam Ierymenko 6d6719da27 Clarify key semantics. 2017-03-08 17:03:32 -08:00
Adam Ierymenko 20085cd15b No need to put time in .moon filename. 2017-03-08 16:51:12 -08:00
Adam Ierymenko 9b001823f6 Add ifdef for synology around synology-only code in Linux Ethernet tap. 2017-03-08 16:12:54 -08:00
Grant Limberg ed4f84cc57 Fix exception thrown in NetworkMonitor thread that can cause the UI to stop polling service for updates 2017-03-08 14:54:58 -08:00
Grant Limberg c8e66a2b45 Don't crash when attempting to join a network while the zerotier service isn't running 2017-03-08 14:50:37 -08:00
Adam Ierymenko 6eb2e3ffa9 forgot to add prereq for adduser getent on fedora 2017-03-08 13:13:12 -08:00
Adam Ierymenko 748ad8a978 create zerotier-one user via rpm 2017-03-08 12:26:16 -08:00
Adam Ierymenko d2f897f8de add dependency on adduser 2017-03-08 12:26:16 -08:00
Adam Ierymenko 4b511d80a1 Windows directory cleanup and a Windows build fix. 2017-03-08 10:38:43 -08:00
Adam Ierymenko a74e9e1dd3 remove debug line 2017-03-08 10:27:13 -08:00
Adam Ierymenko 9c1a9f984b Clean iddb.d periodically. 2017-03-08 10:18:12 -08:00
Adam Ierymenko 04c7adea07 cleanup 2017-03-08 08:58:07 -08:00
Adam Ierymenko 5249ce8fb4 Small amount of cleanup. 2017-03-08 08:45:04 -08:00
Adam Ierymenko ebd865dbda Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-03-07 18:25:44 -08:00
Adam Ierymenko d377ef01af Windows build process updates, and repackage everything using new EV certificate and SHA256. 2017-03-07 18:25:06 -08:00
Adam Ierymenko 393aa3c527 fix debuild comand 2017-03-07 14:20:06 -08:00
Adam Ierymenko d7b6de57c5 update debian build files 2017-03-07 14:20:06 -08:00
Adam Ierymenko 05d4b0cd94 Update RPM spec file 2017-03-07 14:20:06 -08:00
Adam Ierymenko 5dbafc2eeb Add config to status in JSON API. 2017-03-07 14:17:51 -08:00
Adam Ierymenko a97918f812 Windows build fixes. 2017-03-07 13:57:31 -08:00
Adam Ierymenko 22f86df606 Merge ControlPlane into OneService to make variable access simpler. 2017-03-07 13:53:11 -08:00
Adam Ierymenko 712e8e828b use .exe naming convention 2017-03-07 11:58:17 -08:00
Adam Ierymenko 7d3846bc49 Bump version to 1.1.19 in prep for release and software update testing. 2017-03-07 10:26:36 -08:00
Adam Ierymenko 9980526aaf Consistent field names. 2017-03-07 10:12:05 -08:00
Adam Ierymenko 1d2cb867b2 Close all open FDs before exec in Unix software update code. 2017-03-07 09:26:27 -08:00
Adam Ierymenko 3859533e73 Minor software updater cleanup. 2017-03-07 09:18:00 -08:00
Adam Ierymenko 7ea7e1898a Fix a bug that could cause duplicate IP address assignment on networks if many new members join the controller at once. 2017-03-06 16:21:49 -08: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 66dfc33de9 Fix circuit test post in controller. 2017-03-06 11:23:46 -08:00
Adam Ierymenko d56f740dc6 Now with less bugs. 2017-03-03 13:49:21 -08:00
Adam Ierymenko a109d341ef Send timestamp with new circuit test response. 2017-03-02 14:35:38 -08:00
Adam Ierymenko 87b53d67c5 Fix selftest build. 2017-03-02 10:02:29 -08:00
Adam Ierymenko a577b8d381 Update how controller handles circuit tests -- save results to filesystem. 2017-03-01 16:33:34 -08:00
Adam Ierymenko 136fddc7f1 Fix FILTER_TRACE breakage. 2017-03-01 15:14:57 -08:00
Adam Ierymenko ce0c87f8ff Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-03-01 15:12:26 -08:00
Adam Ierymenko d79585d44d Circuit tests now report link quality. Also fixed a little thing in revocation propagation. 2017-03-01 15:12:17 -08:00
Grant Limberg 592b628523 comment broken TRACE message 2017-03-01 14:50:28 -08:00
Adam Ierymenko 39f886ad88 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-03-01 14:37:01 -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 127bcb02ff Save space in expecting-reply-to tracking. 2017-03-01 09:41:37 -08:00
Joseph Henry 4430fc47c6 Added HTTP authorization block for synology builds 2017-02-28 16:30:20 -08:00
Adam Ierymenko 2b10a982e9 Match on tag sender equals or tag recipient equals. 2017-02-28 09:22:10 -08:00
Adam Ierymenko 31bece7fa0 Add ipauth handling of IPv6 NDP neighbor solicitations and advertisements. IPv6 works well now with ipauth. 2017-02-28 07:43:40 -08:00
Adam Ierymenko 4436824faf ipauth characteristic now works with ARP 2017-02-27 17:51:58 -08:00
Adam Ierymenko dd92f1d03d . 2017-02-23 17:56:36 -08:00
Adam Ierymenko b6f87565a9 Add wake on LAN (wol) to rules language ethertype shorthand. 2017-02-23 16:03:43 -08:00
Adam Ierymenko 0b909997b8 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-02-23 14:27:48 -08:00
Adam Ierymenko 9d7ff26f25 Helps if you actually add the ipauth mask to the characteristics mask. 2017-02-23 14:27:31 -08:00
Grant Limberg 06c866ceb4 Android JNI fix 2017-02-23 12:47:07 -08:00
Adam Ierymenko fe19ad328c Windows build fix. 2017-02-23 12:40:21 -08:00
Adam Ierymenko 010dbc8b2b Merge. 2017-02-23 12:35:20 -08:00
Adam Ierymenko 72653e54f9 Finish wiring up ipauth and macauth to Network filter. 2017-02-23 12:34:17 -08:00
Grant Limberg 93ec86a26e iOS fixes 2017-02-23 12:26:11 -08:00
Adam Ierymenko 10185e92fa Certificate of ownership -- used to secure against IP address spoofing, especially for IPv4 and regular IPv6. 2017-02-23 11:47:36 -08:00
Grant Limberg 33b94e8478 fixed double firing of the leave network API call causing an error popup on windows 2017-02-22 16:54:57 -08:00
Adam Ierymenko 2ee53b0e75 Fix bug in default capability flag in rule parser. 2017-02-22 15:52:55 -08:00
Adam Ierymenko fb00f0f94c Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-02-22 15:34:49 -08:00
Adam Ierymenko b679ebde3b Ad-hoc networks, a cool and easy to implement little feature that allows controllerless networks. These only allow IPv6 6plane, no multicast, and the network ID encodes the allowed port range. 2017-02-22 15:32:55 -08:00
Joseph Henry f3ca08b0f1 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2017-02-21 17:55:07 -08:00
Joseph Henry 946e413997 properly fill out ifcfg files. also removed route re-add code for synology 2017-02-21 17:55:00 -08:00
Adam Ierymenko b475bf4a21 . 2017-02-21 15:28:01 -08:00
Adam Ierymenko 54fa73844c Fix crash. 2017-02-21 13:48:29 -08:00
Adam Ierymenko 32f5a0ab18 Add default tag values and default set capabilities for new members. 2017-02-21 13:27:20 -08:00
Joseph Henry e4135ffb35 Decreased ZT_BINDER_REFRESH_PERIOD for Synology build 2017-02-16 16:56:23 -08:00
Joseph Henry b5b335a6f8 Route re-add patch for linux build on Synology devices 2017-02-16 16:41:26 -08:00
Joseph Henry 57ef31d51c Route re-add patch for linux build on Synology devices 2017-02-16 16:06:04 -08:00
Adam Ierymenko 61b413b57f Found it in a few other places. 2017-02-16 09:54:52 -08:00
Adam Ierymenko d2c0203dc9 Fix stupid inverted sense bug. 2017-02-16 09:53:39 -08:00
Adam Ierymenko afba19e01c When deciding whether to send PUSH_DIRECT_PATHS we should check global trust flag, not the one passed into receive(). 2017-02-16 09:44:04 -08:00
Adam Ierymenko b989c03416 Fix build on Linux if PR_CAP_AMBIENT is not defined, which is the case for some libc-dev installs. 2017-02-16 00:57:33 +00:00
Adam Ierymenko 3361b4030b Integrate and test linux privilege drop code (from contributor PR). It works now if a "zerotier-one" user is present on a Linux system. Does everything automagically. 2017-02-15 16:25:49 -08:00
Adam Ierymenko bdadd50251 . 2017-02-14 16:49:10 -08:00
Adam Ierymenko d01f31197a Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-02-14 16:43:29 -08:00
Adam Ierymenko 8b82f1c609 Add rules compiler script. 2017-02-14 16:43:22 -08:00
Grant Limberg de7e8a1ca4 fix About view on Mac so that it opens links in the system web browser 2017-02-14 16:39:15 -08:00
Grant Limberg aa2ee3f7be Right and left click both will now open the context menu on Windows 2017-02-14 16:31:11 -08:00
Adam Ierymenko af4e79735c Fix "orbit" semantics. Federation works. 2017-02-13 16:38:21 -08:00
Adam Ierymenko 969e09210d Fix loading of existing moons. 2017-02-13 16:14:48 -08:00
Adam Ierymenko cd7b571da0 Add a local.conf option to set the port. 2017-02-13 15:55:38 -08:00
Adam Ierymenko 0052877d2f Add CLI shortcuts for adding federated roots. 2017-02-13 15:41:53 -08:00
Adam Ierymenko 23bb44f2d6 Fix small typo. 2017-02-13 14:28:17 -08:00
Adam Ierymenko 16f11e91d1 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-02-13 14:27:14 -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
Grant Limberg 9ae49b5b85 Update JNI with new root terminology 2017-02-13 10:51:36 -08:00
Adam Ierymenko c95bae2d73 Small fixes to moon-management code in CLI. 2017-02-13 10:05:00 -08:00
Adam Ierymenko e4b6611201 Only accept world updates from upstreams. 2017-02-13 09:46:34 -08:00
Adam Ierymenko e6840a1863 Can't erase from vector using const_iterator on some C++ compilers.' 2017-02-13 09:26:05 -08:00
Adam Ierymenko 78d5f1a803 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-02-13 09:03:54 -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
Grant Limberg 9a6c3e05ad Fix for deleted networks not being removed from the network details list on macOS 2017-02-10 16:10:23 -08:00
Adam Ierymenko cdc289fa9c Tags work. 2017-02-07 14:06:40 -08:00
Adam Ierymenko 672f17c6e9 Add a mask and value range to the IP tos rule field. This allows TOS to be matched more usefully. This will break anyone using tos in the beta, but nobody seems to be and its pre-release so now is the time. 2017-02-07 09:33:39 -08:00
Adam Ierymenko 723a9a6e9a Small additional efficiency improvement. 2017-02-06 17:20:22 -08:00
Adam Ierymenko 59ba7c8bf5 Improve efficiency of pushCredentials() method since it gets called a lot. 2017-02-06 17:10:20 -08:00
Adam Ierymenko 78d548458b Capabilities basically work but need to refactor a bit for performance reasons. 2017-02-06 16:38:48 -08:00
Adam Ierymenko ac3e883c05 One more place to add "break". 2017-02-06 14:07:30 -08:00
Adam Ierymenko 9ddc2a4331 Add a break action to rules engine to make capabilities easier to use. 2017-02-06 14:00:49 -08:00
Adam Ierymenko 435e4c4695 Fix HELLO parse bug. 2017-02-06 12:06:10 -08:00
Adam Ierymenko 21f4a97c35 CSPRNG performance improvement, self test build fix. 2017-02-06 11:49:41 -08:00
Adam Ierymenko e0d63c50db One more tweak after thinking about related keys and key stream reuse. Just a precaution. 2017-02-06 07:45:57 -08:00
Adam Ierymenko 803f74634a Tweak how we do crypto of the masked portions of HELLO just to be more "boring" in the DJB sense. 2017-02-06 07:39:38 -08:00
Adam Ierymenko f85a630a64 Docs and a small build fix in debug mode. 2017-02-06 07:17:45 -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 594cb1fad8 Small fix for duplicates in world definitions. 2017-02-04 19:29:39 -08:00
Adam Ierymenko 5eab6c2e5d More docs. 2017-02-04 19:19:30 -08:00
Adam Ierymenko 3587aa1ea7 Add and send certificates of representation to tell people what our valid upstreams are. These are not used yet but will be needed for future privacy modes, etc. Also some cleanup. 2017-02-04 13:17:00 -08:00
Adam Ierymenko beb642faa5 Stub out CAN_REACH. 2017-02-04 10:21:31 -08:00
Adam Ierymenko 31db768e4d A bit of code cleanup. 2017-02-04 00:23:31 -08:00
Adam Ierymenko d9e4ba1280 Eliminate a little copypasta. 2017-02-04 00:04:44 -08:00
Adam Ierymenko dcb1233b0d Slight refactor to RENEDEZVOUS sending code for federation. 2017-02-03 23:54:02 -08:00
Adam Ierymenko 8a2ff0b31e Actual documentation. 2017-02-03 19:47:00 -08:00
Adam Ierymenko be2881ae8d . 2017-02-02 16:53:27 -08:00
Adam Ierymenko 88cba48f45 Eliminate warning. 2017-02-01 15:24:41 -08:00
Adam Ierymenko 9284e4edfe agree() must be called on our identity, the one with the secret 2017-02-01 15:22:14 -08:00
Adam Ierymenko 62a705af1c Eliminate another check in cluster frontplane mode. 2017-02-01 14:35:07 -08:00
Adam Ierymenko 29ec7bf3a2 Add more specific check in source==self case instead of dumping it. 2017-02-01 14:18:56 -08:00
Adam Ierymenko fc3f4fb988 Yeah that could never have worked (normal packets in cluster mode). 2017-02-01 14:05:13 -08:00
Adam Ierymenko 60ff280dcb Another tweak to cluster I/O rules. 2017-02-01 13:52:53 -08:00
Adam Ierymenko b378f5dcd7 Take 3 2017-02-01 13:20:51 -08:00
Adam Ierymenko e778d45128 Still want to send WANT_PEER under two failure modes. 2017-02-01 12:51:52 -08:00
Adam Ierymenko 5e11cf6378 Can't armor() a packet until all flags are set. 2017-02-01 12:32:06 -08:00
Adam Ierymenko 5dbebc513a Minor send path refactor to make packet I/O work on clusters if they are members of networks. Also fix a crash if compiled in cluster mode but no cluster is enabled. 2017-02-01 12:00:25 -08:00
Adam Ierymenko 6d5a3cd2e2 Remove debug code. Cluster network config sharing seems to work. 2017-01-30 16:23:38 -08:00
Adam Ierymenko f9ad80aa13 . 2017-01-30 16:15:47 -08:00
Adam Ierymenko ed31cb76d6 Fix to cluster network configs. 2017-01-30 16:04:05 -08:00
Adam Ierymenko eebd271bb1 Implement cross cluster sharing of network configs to make clusters able to actually join networks. 2017-01-30 15:40:22 -08:00
Adam Ierymenko ff74ec2482 Cluster build fix. 2017-01-30 21:39:44 +00:00
Grant Limberg 49e31ca647 InetAddress.hpp needs to be included in OneService.hpp 2017-01-30 09:16:16 -08:00
Adam Ierymenko 471108f2e4 Slightly increase thread stack size for safety (primary Alpine related) possibly GitHub #443 2017-01-30 08:01:36 -08:00
Adam Ierymenko 2ceb162df0 Merge pull request #442 from zielmicha/allow-managed
allow user to specify arbitrary allowed IP networks in allowManaged
2017-01-30 06:54:49 -08:00
Adam Ierymenko 915206405c docs 2017-01-27 17:41:07 -08:00
Adam Ierymenko 5fa1d9796c zerotier-idtool commands to init and generate moons 2017-01-27 17:34:39 -08:00
Adam Ierymenko 77a1dd4737 Dead code removal, fix minor issue in upstream endpoint check. 2017-01-27 16:25:53 -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 bc218f9414 little fix 2017-01-27 13:52:29 -08:00
Adam Ierymenko f102fd7f92 Extend in-band world updates to handle moons too. 2017-01-27 13:50:56 -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 b88f573733 tap-windows-ndis5 is definitely dead 2017-01-27 07:29:42 -08:00
Adam Ierymenko b211e61671 debian rules 2017-01-26 16:12:50 -08:00
Adam Ierymenko 871cacf040 Remove junk. 2017-01-26 15:02:52 -08:00
Adam Ierymenko 7c3984413e Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-01-26 15:02:20 -08:00
Adam Ierymenko 967ce78a57 Add static build option so we can build a static Linux binary for ancient distros (wheezy, etc.) 2017-01-26 15:02:03 -08:00
Grant Limberg 923d3f1fe8 remove references to deleted source files in Android NDK build files 2017-01-26 15:01:45 -08:00
Grant Limberg e11f42a089 remove reference to BackgroundResolver.cpp/.hpp on Windows 2017-01-26 14:29:39 -08:00
Grant Limberg 9b8d9b7042 fix copy stage for paths with spaces 2017-01-26 14:27:39 -08:00
Adam Ierymenko 902e03bccc build fix 2017-01-26 14:23:22 -08:00
Adam Ierymenko ec0e8a9a43 Rip out resolver and use anycast address instead. In the long term existing TCP proxy dies anyway. Fixes static build problem for old Linux versions. 2017-01-26 13:59:20 -08:00
Adam Ierymenko 9e488ce322 delete binary 2017-01-26 21:55:35 +00:00
Adam Ierymenko c111bf3080 Fix tcp-proxy build. 2017-01-26 21:54:55 +00:00
Michał Zieliński 8f2a42d1ad allow user to specify arbitrary allowed IP networks in allowManaged 2017-01-23 12:16:40 +01:00
Adam Ierymenko 9a475eeff9 Windows build fix, warning removal. 2017-01-20 12:00:18 -08:00
Adam Ierymenko 91a37ec639 docs 2017-01-20 11:02:54 -08:00
Adam Ierymenko db1e2aae41 docs 2017-01-20 11:00:18 -08:00
Adam Ierymenko 4a7c76a11b docs, cleanup, temporarily put cli in attic since it is not done. 2017-01-20 10:51:55 -08:00
Adam Ierymenko f1ed57c62d Update nlohmann/json (header only lib). 2017-01-20 10:09:47 -08:00
Adam Ierymenko 3b0969e3a5 Fix build on G++ 4.9 on FreeBSD-11. 2017-01-20 10:07:25 -08:00
Adam Ierymenko 35174a8766 Basic BSD gmake install/uninstall. 2017-01-19 15:15:31 -08:00
Adam Ierymenko d79f792e6f OpenBSD fixes, workaround for apparent libstdc++ bug. 2017-01-19 15:05:26 -08:00
Adam Ierymenko 7b231b38b0 Now builds on OpenBSD, but segfaults. So not yet but close. GitHub issue #439 2017-01-19 10:39:42 -08:00
Adam Ierymenko 13263b8401 docs 2017-01-19 16:23:25 -08:00
Adam Ierymenko a604294b1b local.conf docs 2017-01-19 16:10:36 -08:00
Adam Ierymenko 89d74cd293 Add a portMappingEnabled flag to local.conf to allow uPnP/NAT-PMP to be disabled. 2017-01-19 15:57:50 -08:00
Adam Ierymenko 56e5b34934 Bump bundled miniupnpc to 20161216 2017-01-19 15:52:39 -08:00
Adam Ierymenko f43365e4ba Take LZ4 out of Debian depends. 2017-01-19 15:44:16 -08:00
Adam Ierymenko 4d071081bb docs 2017-01-19 15:22:43 -08:00
Adam Ierymenko b67b370dba docs 2017-01-19 15:20:55 -08:00
Adam Ierymenko 0995c1dcaa Encapsulate LZ4 in Packet.cpp to eliminate dependency. 2017-01-19 15:16:04 -08:00
Adam Ierymenko 7612bf3302 Fix LZ4 warning. 2017-01-19 14:54:39 -08:00
Adam Ierymenko ba158d8dc6 Include LZ4 README and LICENSE. 2017-01-19 14:48:40 -08:00
Adam Ierymenko a90f2249e8 Upgrade LZ4. 2017-01-19 14:48:01 -08:00
Adam Ierymenko d8f36db5dd Fix FreeBSD build in dev. 2017-01-19 12:11:49 -08:00
Adam Ierymenko fd460d93c4 docs 2017-01-19 10:53:44 -08:00
Adam Ierymenko 989cbb4d8d Merge pull request #434 from zielmicha/fix-ip
Binder.hpp: gather all IPv4 interface addresses
2017-01-19 10:47:47 -08:00
Adam Ierymenko e9007b1f56 NodeJS migration script for old Sqlite controller.db to new controller data format. 2017-01-19 10:44:26 -08:00
Adam Ierymenko 0fb3d1d582 Add a build version for software update use so we can do very minor updates within a version. 2017-01-18 09:16:23 -08:00
Adam Ierymenko 81910c1d92 Replace update signing key with real key generated on air-gapped system. 2017-01-13 16:07:57 -08:00
Adam Ierymenko d150f9b2bd Windows update build in Advanced Installer, and warning removal. 2017-01-13 15:19:59 -08:00
Adam Ierymenko 1346e31a8e Windows build fixes, Software update fix, warning removal. 2017-01-13 14:22:36 -08:00
Adam Ierymenko 54f25b14ee Software updater log for distributors (does not affect real users much). 2017-01-13 14:03:06 -08:00
Adam Ierymenko 0e4d3244b2 "make official" for Mac now builds update image as well as pkg (update image is just PKG + SFX script) 2017-01-13 13:09:42 -08:00
Adam Ierymenko 87e3b5f076 Mac updater SFX code. 2017-01-13 12:42:49 -08:00
Adam Ierymenko f8e18f2098 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-01-13 12:13:20 -08:00
Adam Ierymenko f81c67c0f0 Make sure to respond to GET_LATEST with the actual latest. 2017-01-13 12:13:14 -08:00
Grant Limberg 4f4dd3446c Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2017-01-13 11:36:53 -08:00
Grant Limberg f149dd9401 fix Android NDK build 2017-01-13 11:36:48 -08:00
Adam Ierymenko 3a730c4a5c Remove debug printfs in software updater. It works! At least for unix. Now to test Windows. 2017-01-13 11:24:00 -08:00
Adam Ierymenko b03247ec3c SoftwareUpdate::apply() 2017-01-13 10:46:16 -08:00
Adam Ierymenko 8ebb49e972 Cache downloaded updates to disk. 2017-01-12 15:21:14 -08:00
Adam Ierymenko 84bfec8329 . 2017-01-12 14:35:52 -08:00
Adam Ierymenko e1727d6297 Fix to software update repeat downloads. 2017-01-12 14:34:52 -08:00
Adam Ierymenko e7bab66d29 Auto-apply updates if enabled. 2017-01-12 13:54:08 -08:00
Adam Ierymenko ab25c96821 Build fixes. 2017-01-12 13:51:06 -08:00
Adam Ierymenko c6b0b07605 More software update work, and settings in local.conf. 2017-01-12 13:18:11 -08:00
Adam Ierymenko b5b583c397 . 2017-01-11 18:10:42 -08:00
Adam Ierymenko 56d969c709 . 2017-01-11 17:59:51 -08:00
Adam Ierymenko 3fedf16f35 . 2017-01-11 17:57:12 -08:00
Adam Ierymenko 5da56776d6 . 2017-01-11 17:54:43 -08:00
Adam Ierymenko d58870a92d . 2017-01-11 17:53:19 -08:00
Adam Ierymenko 15ed7423ac . 2017-01-11 17:50:02 -08:00
Adam Ierymenko d7e7ad4f88 Can't send a user message to self. 2017-01-11 17:46:52 -08:00
Adam Ierymenko 823a1963f6 init fix. 2017-01-11 17:45:09 -08:00
Adam Ierymenko 6513b21426 debug code. 2017-01-11 17:42:57 -08:00
Adam Ierymenko d4321cdd41 Wire up user message handling in OneService event handler. 2017-01-11 17:20:43 -08:00
Adam Ierymenko d301540d92 Software update stuff for test. 2017-01-11 16:58:37 -08:00
Adam Ierymenko af5a3376f3 Should fix Windows build. 2017-01-11 16:56:16 -08:00
Adam Ierymenko 4aa52ffc77 Software update stuff. 2017-01-11 16:47:42 -08:00
Adam Ierymenko 47b62ece18 Software update integration. 2017-01-11 16:34:33 -08:00
Adam Ierymenko 2aab26a08e Software update work. 2017-01-11 15:22:16 -08:00
Adam Ierymenko 565842b5ec Software updater work. 2017-01-11 14:37:31 -08:00
Adam Ierymenko a064e19b8a Refactor some JSON stuff for performance, and fix a build error. 2017-01-10 13:51:10 -08:00
Adam Ierymenko 6fb49f68fc Comment out and disable old auto-update code. 2017-01-10 12:20:29 -08:00
Adam Ierymenko ef7faa7291 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-01-09 15:55:13 -08:00
Adam Ierymenko d5528e4e9a Wire up VERB_USER_MESSAGE in core. 2017-01-09 15:55:07 -08:00
Grant Limberg f730f65aaf bring window to front if already open 2017-01-09 14:23:37 -08:00
Grant Limberg dbd577c6b0 Merge branch 'winroute' into dev 2017-01-09 12:41:45 -08:00
Grant Limberg 7ebb207005 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2017-01-05 13:56:15 -08:00
Grant Limberg e41d71cd19 add implementations of compareTo() and equals() for VirtualNetworkRoute().
Android app was relying on these, but since they didn't exist, they didn't function properly
2017-01-05 13:56:07 -08:00
Grant Limberg 0f6c53589e remove commented out function declaration 2017-01-05 11:46:33 -08:00
Grant Limberg e2b1a7157e Potential fix for routing issue on Windows
Move setting _initialized = true until after WindowsEthernetTap::threadMain() has actually created and brought up the adapter.  Also in OneService::nodeVirtualNetworkConfigFunction(), wait up to 5 seconds for WindowsEthernatTap::isInitialized() to return true before attempting to configure the interface and managed routes.  Without this, the adapter doesnt actually exist yet when trying to add routes
2017-01-05 11:43:26 -08:00
Grant Limberg aaf69d1aff properly quote string arguments to copyutil in case there are spaces in the path 2017-01-03 14:03:50 -08:00
Michał Zieliński 203b7e17de Binder.hpp: gather all IPv4 interface addresses 2017-01-01 23:57:15 +01:00
Daniel Skowroński 18c9dc8a06 fix RTF_MULTICAST and g++ -w 2016-12-27 13:07:05 +01:00
Daniel Skowroński ba07d1f91d cleanup 2016-12-27 11:57:05 +01:00
Daniel Skowroński 9a2310395d mimic BSDEthernetTap but with creating/destroying char tap device 2016-12-27 11:42:43 +01:00
Daniel Skowroński 218ace51a7 use /dev/tap{0..3}; it is fully working now 2016-12-26 02:52:07 +01:00
Daniel Skowroński f09eedbd7a make it compilable 2016-12-25 22:54:27 +01:00
Daniel Skowroński 546e8a3b44 initial netbsd support in makefile/flags 2016-12-25 20:59:12 +01:00
Adam Ierymenko 9a2b766aad Windows installer updates. 2016-12-23 15:57:21 -08:00
Adam Ierymenko 24017659df Update installer, etc., for Mac. 2016-12-23 15:25:04 -08:00
Adam Ierymenko c175a5fcd7 Change org names, add makefile rule for Mac to build new UI. 2016-12-23 15:11:44 -08:00
Adam Ierymenko 5ec8465374 Remove dead Mac stuff. 2016-12-23 14:38:36 -08:00
Adam Ierymenko 6b5d6efe6c Retire old build farm (something new is coming) and update makefile for linux to not auto-build doc. 2016-12-23 14:33:04 -08:00
Adam Ierymenko 5bff70194b Ship pre-build man pages. We stopped doing this for a bit due to nit-picky Debian craziness but since we are not targeting core Debian at the moment bring it back. 2016-12-23 14:30:27 -08:00
Adam Ierymenko d94d04d7d5 Bump to 1.1.17 for pre-1.2.0 beta. 2016-12-23 13:52:41 -08:00
Adam Ierymenko bf2b9e3692 Auto-authorize new members on public networks properly. 2016-12-22 18:52:34 -08:00
Adam Ierymenko c8554504f3 . 2016-12-22 18:37:46 -08:00
Adam Ierymenko 0d066e3b08 Fix JSON parse bug in REDIRECT target. 2016-12-22 18:26:43 -08:00
Adam Ierymenko 6b12d86209 Add a workaround for an edge case in TEE/REDIRECT if we are the inbound destination and teeing is only being done on the outbound side. 2016-12-22 18:06:35 -08:00
Adam Ierymenko fe530548bb Fix MATCH_RANDOM in controller. 2016-12-22 16:57:45 -08:00
Adam Ierymenko 2eaff6d484 Fix to characteristcs in rules engine. 2016-12-22 16:36:38 -08:00
Adam Ierymenko a54c2b438c Basic support for streaming of changes via stdout from controller. 2016-12-15 15:08:47 -08:00
Adam Ierymenko 890f6f0d35 Make allow management from a local.conf parameters. 2016-12-12 16:25:41 -08:00
Adam Ierymenko bad4b72f82 Remove debug printf. 2016-12-12 14:44:21 -08:00
Adam Ierymenko 4702c5b4ee Add local.conf option to blacklist interfaces by name. 2016-12-12 14:43:09 -08:00
Adam Ierymenko 4459d5ad54 Remove debug printf 2016-12-12 12:58:39 -08:00
Adam Ierymenko 39fb4b1b42 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-12-12 12:55:14 -08:00
Adam Ierymenko 3864a2e111 Use an alternative method for enumerating interface addresses on Linux to avoid poor performance of getifaddrs() when there are many network namespaces. 2016-12-12 12:53:51 -08:00
Grant Limberg 697520f1f5 Dont write IPv6 addresses to IPv4 sections of registry TCPIP settings.
Also, dont add the prefix length to the IP addresses in there.

Appears to fix Github Issue #357.  Still waiting on some info from Microsoft for confirmation of a few things.
2016-12-09 11:36:01 -08:00
Adam Ierymenko 244f37179c Minor security: lock roots to only be reachable via World IPs. 2016-12-05 16:09:42 -08:00
Grant Limberg 4b3a47849d Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2016-11-30 15:21:33 -08:00
Grant Limberg 56faf774ff Store MTU as String instead of DWORD
WindowsEthernetTap was storing the MTU for the ZeroTier Adapter as a
DWORD.  When changing the value from the network adapter settings UI, it
was stored as a string.  Updated the call when creating the adapter to
store it as a string as windows expects.
2016-11-30 15:18:38 -08:00
Adam Ierymenko fa2bb91ae5 Kill some old debug code. 2016-11-30 10:48:09 -08:00
Grant Limberg 32478845b2 Merge branch 'dev' into systemtray 2016-11-30 10:21:19 -08:00
Adam Ierymenko 44f0e3097e docs 2016-11-29 10:56:16 -08:00
Grant Limberg 289917e2b3 use msbuild instead of devenv 2016-11-28 15:30:52 -08:00
Grant Limberg 14fcb5867f rethrow windows build error 2016-11-28 14:57:37 -08:00
Grant Limberg cf59362c4a add windows build to Jenkinsfile 2016-11-28 13:06:28 -08:00
Grant Limberg 8472918559 Change 'localhost' to 127.0.0.1
@makerspherehq reported it not working as 'localhost' via Twitter
2016-11-28 09:40:34 -08:00
Adam Ierymenko ae8f51d608 . 2016-11-23 16:27:15 -08:00
Adam Ierymenko 4a7ee5472d Small fixes. 2016-11-23 16:23:44 -08:00
Adam Ierymenko 8718b33a66 docs 2016-11-23 15:57:06 -08:00
Adam Ierymenko 27f1155f1b docs and API stuff 2016-11-23 15:53:53 -08:00
Adam Ierymenko 84732fcb12 Wire through external path lookup. Static paths should now work. 2016-11-22 14:23:13 -08:00
Grant Limberg c6c578ce1d Fixes to allow usage of ZeroTierOne.h with a C compiler 2016-11-22 13:18:52 -08:00
Grant Limberg 3c5e28a27d use new ZT_Node_Callbacks struct in JNI 2016-11-22 13:03:36 -08:00
Grant Limberg a39f6e9b4c clear cached window positions when display settings change 2016-11-22 12:02:49 -08:00
Grant Limberg adb7a88836 cache window positions so we only have to move after open once. 2016-11-22 11:53:06 -08:00
Adam Ierymenko 9892f7bb47 Upgrade nlohmann::json 2016-11-22 11:06:58 -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
Grant Limberg 3a3a23db34 hacky way to set window position but it works 2016-11-21 15:31:32 -08:00
Adam Ierymenko d159e5ca44 Allow relay policy setting in local.conf 2016-11-21 15:21:24 -08:00
Grant Limberg d3bd10952e hyperlinks in the about page are clickable 2016-11-21 14:32:25 -08:00
Adam Ierymenko 40078a99de Make parse failure of local.conf non-fatal in case people have ancient files sitting around. 2016-11-21 14:14:43 -08:00
Grant Limberg 0142c0d339 fill out the about view 2016-11-21 13:25:10 -08:00
Adam Ierymenko 2e5de46584 local.conf and support for virtual role definition 2016-11-21 13:20:56 -08:00
Grant Limberg 1be55d6182 Merge branch 'dev' into systemtray 2016-11-21 12:59:43 -08:00
Grant Limberg 8ebcd44405 dont close the network list. just hide it so its reusable 2016-11-21 12:54:27 -08:00
Adam Ierymenko ccdd4ffda7 Move split() to OSUtils since it is not used in core. 2016-11-18 15:49:28 -08:00
Grant Limberg a6ed711492 wired up the startup registry key to the registry 2016-11-18 15:44:41 -08:00
Grant Limberg 3fb224cb22 add a checkbox for startup option in preferences 2016-11-18 15:23:07 -08:00
Grant Limberg 5ca5af619d Merge branch 'systemtray' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into systemtray 2016-11-18 14:58:01 -08:00
Grant Limberg f61c5836b2 copy node ID by clicking on node ID menu item 2016-11-18 14:57:14 -08:00
Grant Limberg 535b33b46e copy node ID by clicking on node ID menu item 2016-11-18 14:52:04 -08:00
Grant Limberg a8847de910 proper shutdown 2016-11-18 14:23:22 -08:00
Grant Limberg 2231e878d5 Merge branch 'dev' into systemtray 2016-11-18 14:00:25 -08:00
Grant Limberg 299a7cab20 fixed an issue where sometimes network data wouldnt be updated 2016-11-18 13:59:31 -08:00
Grant Limberg e48d6880c9 Wired up connected checkbox and delete button. just something not working with refresh. 2016-11-18 13:52:48 -08:00
Adam Ierymenko 673c0c811e Wire through upstream stuff and add setRole(). 2016-11-18 13:48:49 -08:00
Adam Ierymenko 6e1da35c12 Remove debug. 2016-11-18 13:15:58 -08:00
Adam Ierymenko 25f9c294dc Small bug fix and warning removal. 2016-11-18 13:01:45 -08:00
Adam Ierymenko 2ea9f516e1 Rate gate expensive validation of new identities in HELLO. 2016-11-18 12:59:04 -08:00
Grant Limberg dbe1461886 wire up the quit button 2016-11-18 12:17:57 -08:00
Grant Limberg 7bea709747 wire up the rest of the views to the menu. views not implemented yet tho. 2016-11-18 12:03:21 -08:00
Grant Limberg 6536474b94 moved stuff around again. WPF didnt like things once they were moved. Also wired up Join dialog. 2016-11-18 11:33:46 -08:00
Adam Ierymenko ab4021dd0e Do packet MAC check before locallyValidate(), and add timing measurement in selftest. 2016-11-18 11:09:19 -08:00
Adam Ierymenko 1fcbb1fbed Proactively auto-load designated upstreams. 2016-11-18 10:39:26 -08:00
Adam Ierymenko 39333c9e8e Modify unite() to deal with a second layer of upstreams. 2016-11-17 16:59:04 -08:00
Adam Ierymenko 1615ef1114 Rename getBestRoot() etc. 2016-11-17 16:31:58 -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
Grant Limberg a4c2740852 added skeletons for join and about windows. moving things around a little bit too 2016-11-17 14:25:55 -08:00
Grant Limberg afa1b8cb2d add timeouts to requests to the json api 2016-11-17 14:23:04 -08:00
Grant Limberg 5447c01e1f can finally join/leave networks by clicking on them in the context menu 2016-11-17 14:13:05 -08:00
Grant Limberg b4bacd50a1 Merge branch 'dev' into systemtray 2016-11-16 16:23:56 -08:00
Grant Limberg 3c248ec61a handle removing of networks we are no longer connected to from the UI 2016-11-16 15:50:56 -08:00
Grant Limberg 78a8ceda0e IP addresses now selectable in Windows UI 2016-11-16 15:11:28 -08:00
Grant Limberg 14bf326de2 make device ID selectable 2016-11-16 14:50:25 -08:00
Grant Limberg dc549b7f3c add JSONDB.cpp 2016-11-16 14:50:03 -08:00
Grant Limberg 456c7ca661 only changed items in the full network list are updated now 2016-11-15 16:55:24 -08:00
Grant Limberg bab75186f5 make some fields in the network list selectable 2016-11-15 15:51:25 -08:00
Adam Ierymenko 07b2a3818c Fix TTL scaling in cert. 2016-11-15 14:26:05 -08:00
Adam Ierymenko 15c6e2ec70 Fix member deauthorization time threshold bug. 2016-11-15 14:06:25 -08:00
Adam Ierymenko 5bd8968eb8 Add rules engine debugging switch to make-linux.mk 2016-11-15 11:50:53 -08:00
Adam Ierymenko 4ad942522b Kill unnecessary check in another spot. 2016-11-14 15:57:46 -08:00
Adam Ierymenko b6c99ba3ef Add (currently undocumented) option to allow management from certain networks. 2016-11-14 15:47:06 -08:00
Adam Ierymenko ee5bd57d40 We don't bind to non-local IP for TCP yet, but eliminate double check. 2016-11-14 15:29:36 -08:00
Grant Limberg 6445337a32 looks like a garbage file got committed. deleting 2016-11-14 15:02:40 -08:00
Grant Limberg f20c7303e8 remove timer thats no longer needed 2016-11-14 14:58:57 -08:00
Grant Limberg c4c8ea62e2 Added network monitor pub/sub class 2016-11-14 14:56:36 -08:00
Grant Limberg 71aadcbecb fix serialization issue.
Apparently the JSON parser uses this same serialization method under the hood to create objects from JSON.
2016-11-10 15:21:54 -08:00
Grant Limberg fd71ceeab5 menu now dynamically populates the network list 2016-11-10 14:17:57 -08:00
Adam Ierymenko e26bee45fb Multithreading in network controller. Threads are only started if controller is used. 2016-11-10 13:57:01 -08:00
Adam Ierymenko 1b10d3413a Use circuit breaker only for requests. 2016-11-10 13:08:43 -08:00
Adam Ierymenko f0fcd222a1 Actually push updates when things change. 2016-11-10 12:54:43 -08:00
Adam Ierymenko 298e4a9f14 Also avoid sending tags and caps to old members since there is no point. 2016-11-10 12:33:09 -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 5ebf5077f5 Log last meta-data in controller, and ease up just a bit on keepalives. 2016-11-09 17:11:10 -08:00
Grant Limberg e1c930f1b7 update JNI wrapper to reflect removal of lastMulticastFrame and lastUnicastFrame from ZT_Peer struct 2016-11-09 16:33:01 -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 eea712a1ae Field in wrong place fixed. 2016-11-09 13:26:14 -08:00
Adam Ierymenko 1ebfca666d Memo-ize some computed stuff to control CPU utilization. 2016-11-09 12:34:20 -08:00
Grant Limberg 005b5aacaf rename 2016-11-09 10:32:18 -08:00
Grant Limberg 7cf3d2caa1 Network list window opens with click on the menu item 2016-11-08 16:31:07 -08:00
Grant Limberg e1f9f7b6dc turn APIHandler into a singleton 2016-11-08 15:50:08 -08:00
Grant Limberg 6b0543ba27 starts up to a toolbar icon with context menu. still much more to do 2016-11-08 14:54:55 -08:00
Adam Ierymenko 3d948a930e Send a blanket rule to old versions. New versions will still bidirecitonally enforce on the inbound side. 2016-11-08 14:24:30 -08:00
Adam Ierymenko 6f3595bfd2 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-11-08 12:41:32 -08:00
Adam Ierymenko 4524899e4d Update LM time on members on request. 2016-11-08 12:41:27 -08:00
Grant Limberg 54206fd44d add NotifyIcon NuGet package for tray icon support 2016-11-08 11:24:12 -08:00
Grant Limberg 6d8c8f9fd1 update JSON library to latest 2016-11-08 11:23:15 -08:00
Grant Limberg 00e1b0ed10 added docs for allowManaged, allowGlobal, allowDefault 2016-11-08 11:00:48 -08:00
Grant Limberg 4f8feaa530 update JSON API docs for OneService 2016-11-08 10:23:25 -08:00
Adam Ierymenko 0324e6ca3d Merge pull request #402 from bobberb/patch-1
Typo fix line 77
2016-11-08 08:32:47 -08:00
Adam Ierymenko d773ab2806 Merge pull request #407 from misuzu/chownfix
Chown fix
2016-11-08 08:32:31 -08:00
Tsukasa Hiiragi 8e76363ccf Fix chown on /var/lib/zerotier-one 2016-11-08 16:50:32 +02:00
Adam Ierymenko 360c84e035 Minor fixes. 2016-11-08 00:05:18 +00:00
Adam Ierymenko 4868d21526 Bug fixes in controller refactor. 2016-11-07 23:49:03 +00:00
Grant Limberg c802811ad2 Added a file copy util for Windows UI
Copies the authtoken.secret file into a private local folder for the user so that the UI doesnt have to be run with Admin privileges.
2016-11-07 14:09:01 -08:00
Adam Ierymenko 5f63d5039b Bug fixes, self test of JSONDB disabled by default. 2016-11-07 14:01:23 -08:00
Adam Ierymenko a454a37a6e Self test JSONDB. 2016-11-07 13:27:17 -08:00
Adam Ierymenko a78d7311a6 Fix network list API call. 2016-11-04 16:23:41 -07:00
Adam Ierymenko 08ff666e99 . 2016-11-04 16:14:58 -07:00
Adam Ierymenko 0d108d37f6 . 2016-11-04 16:12:44 -07:00
Adam Ierymenko cae9041c2a . 2016-11-04 15:52:01 -07:00
Adam Ierymenko 330a07a554 cleanup 2016-11-04 15:48:23 -07:00
Adam Ierymenko 7729cbe313 Fix ambiguous error on some compilers. 2016-11-04 15:34:49 -07:00
Adam Ierymenko 3e865067be Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-11-04 15:18:35 -07:00
Adam Ierymenko b03c7b2f30 Refactor controller to use split-out DB for better performance and less ugly. 2016-11-04 15:18:31 -07:00
Grant Limberg 1ab9c43135 wire up allowDefault, allowManaged, allowGlobal, allowDefault options 2016-11-04 14:50:07 -07:00
Grant Limberg efcc24a76b increase window width so IPv6 addreses don't wrap 2016-11-04 14:49:15 -07:00
Grant Limberg 4762311977 work in progress windows UI update 2016-11-04 12:39:57 -07:00
Adam Ierymenko ab2ccb094a Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-11-03 14:44:49 -07:00
Adam Ierymenko 3c00cd0f88 Separate out JSON store from controller code. 2016-11-03 14:17:46 -07:00
Grant Limberg a7718bae39 link in notelemetry.obj even though Microsoft said CRT telemetry would be disabled in VS2015 Update 3. Just in case. 2016-11-03 12:25:09 -07:00
Grant Limberg 8ffae313fd add new files & remove old ones from VS project. Now builds & runs on Windows again 2016-11-03 12:10:50 -07:00
Grant Limberg 8cced06a2d upgraded vcxprojs to VS2015. got the tap driver building. 2016-11-03 10:04:50 -07:00
Grant Limberg 965399ba0c fix a few warnings 2016-10-31 15:16:42 -07:00
Grant Limberg 231cc11a62 Update path to nkd-build 2016-10-27 14:28:42 -07:00
Grant Limberg 1afa9e992c add color to success output in slack 2016-10-27 14:01:00 -07:00
Grant Limberg be543c4039 use internal changelog library 2016-10-25 15:51:30 -07:00
Grant Limberg 7e7462b39e attempting #2 2016-10-25 15:01:59 -07:00
Grant Limberg d2ee37a3e0 attempting to add the changelog to the starting build slack message 2016-10-25 14:58:27 -07:00
Grant Limberg 1fcedb8d16 fix duplicate branch name in slack 2016-10-25 14:38:57 -07:00
Grant Limberg 5c476391da fixed build number in slack messages 2016-10-25 14:37:19 -07:00
Grant Limberg 6cb23e7069 added slack notifications 2016-10-25 14:35:31 -07:00
Grant Limberg c976b87ac7 -scheme -> -target 2016-10-25 13:33:50 -07:00
Grant Limberg af2bdfc421 dir directive appears to create a tmpdir rather than just cd 2016-10-25 13:14:28 -07:00
Grant Limberg b01c551197 fix directory directive in jenkinsfile 2016-10-25 13:04:24 -07:00
Grant Limberg df6d3ca66b add stage for building the new macOS UI in Jenkins 2016-10-25 12:58:54 -07:00
Grant Limberg 5be7374f56 added macOS build for jenkins 2016-10-25 12:40:03 -07:00
Grant Limberg 7300005398 fixed one more stage syntax for jenkins build 2016-10-25 11:21:39 -07:00
Grant Limberg 6cd36edf45 Update stages 2016-10-25 11:18:26 -07:00
Grant Limberg 604a0b1fe6 added Jenkinsfile for jenkins build config 2016-10-25 11:10:21 -07:00
bobberb 046d5bb9ff Typo fix line 77 2016-10-23 15:45:45 -04:00
Adam Ierymenko 0e8442064e Merge pull request #376 from siigna/debian
Move debian/format to debian/source/format
2016-10-21 13:39:55 -07:00
Adam Ierymenko ea1f2762cf Merge pull request #401 from zielmicha/dev
Run as nonroot user on Linux (with CAP_NET_ADMIN and CAP_NET_RAW added).
2016-10-21 13:37:27 -07:00
Grant Limberg 0f3095f130 Merge remote-tracking branch 'macui/master' into macui-merge
# Conflicts:
#	.gitignore
2016-10-17 14:50:18 -07:00
Grant Limberg 7b7ec13349 Prepare for merging into main ZeroTier repo 2016-10-17 14:44:32 -07:00
Grant Limberg 7025c7090b set proper copyright/license in code files 2016-10-17 14:43:24 -07:00
Grant Limberg 7c12991f57 wasn't setting the Connected checkbox to off if the network wasn't connected 2016-10-17 13:48:25 -07:00
Grant Limberg f444da80bc Add a 2 second delay before the About window shows up on the first run 2016-10-17 13:43:44 -07:00
Grant Limberg ed58467d12 Clicking "Join" to join a new network now properly closes the popover 2016-10-17 13:43:27 -07:00
Grant Limberg c44c3b0530 cleanup 2016-10-17 12:31:59 -07:00
Grant Limberg 46e9c1195c more removal of NSMenuDelegate 2016-10-17 12:29:28 -07:00
Grant Limberg 4730111492 updated project settings for Xcode 8.0 2016-10-17 12:27:07 -07:00
Grant Limberg a813e29491 Don't need AppDelegate to be a NSMenuDelegate 2016-10-17 12:26:48 -07:00
Michał Zieliński 344a25c133 Run as nonroot user on Linux (with CAP_NET_ADMIN and CAP_NET_RAW added).
- ZT will only drop root privileges if zerotier-one user exists. It is created by
Debian postinst script - in other cases the user has to be created by administrator.
- Linux >=4.3 with ambient capabilities is required, otherwise ZT will silently
- "-U" option now also disables privileges dropping
2016-10-16 13:53:44 +02:00
Grant Limberg 772599a6fc Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2016-10-13 15:18:12 -07:00
Grant Limberg 3a3fe272bb add Revocation.cpp to android build 2016-10-13 15:18:07 -07:00
Adam Ierymenko 88e3fe699c Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-10-13 15:17:27 -07:00
Adam Ierymenko 27d997a2e5 . 2016-10-13 15:17:17 -07:00
Grant Limberg 8809c6d122 link atomic library. seems to be required in the latest Android NDK 2016-10-13 14:34:54 -07:00
Adam Ierymenko 6469aa9df9 typo 2016-10-13 14:28:39 -07:00
Adam Ierymenko ce6b5bc6f5 . 2016-10-13 14:21:24 -07:00
Adam Ierymenko 4f3775bb86 Fix ICMP match. 2016-10-13 14:21:00 -07:00
Adam Ierymenko 2cb760e0ac Fix ICMP json. 2016-10-13 14:14:46 -07:00
Adam Ierymenko 8850a8610a Fix filter trace. 2016-10-13 13:59:17 -07:00
Adam Ierymenko 2d6a4e5974 cleanup 2016-10-13 13:52:45 -07:00
Adam Ierymenko 93b4ac5cb2 Remove unused POW code, will revisit later. 2016-10-13 13:17:30 -07:00
Adam Ierymenko e2509af163 Fix bug in default rules init in new networks. 2016-10-12 12:30:32 -07:00
Adam Ierymenko 3f4c166861 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-10-11 12:00:38 -07:00
Adam Ierymenko e53f63ca87 Broke down and added an OR to the rules engine. It is now possible to have a series of MATCHes that are ORed. 2016-10-11 12:00:16 -07:00
Grant Limberg 6a50291aa2 Fix the case for InetAddress::containsAddress for IPv6 route of :: 2016-10-07 14:29:06 -07:00
Grant Limberg e59ed3e68f Fix size of neighbor solicitation struct 2016-10-07 10:03:07 -07:00
Adam Ierymenko 45c4ccb153 Add a tags both equal match. 2016-10-05 16:38:42 -07:00
Adam Ierymenko adeb7e7da0 Make capability flags match more user-friendly and appropriate since "match any flag" is generally what we want. 2016-10-05 12:54:46 -07:00
Adam Ierymenko f1c8706485 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-10-05 10:12:16 -07:00
Adam Ierymenko d5f4d381d0 Go ahead and loop back packets whose destination is self. Some OSes require this since they aactually follow the full network path even for local IPs. 2016-10-05 10:12:06 -07:00
Grant Limberg 69c5976775 fix typo in assert size 2016-10-04 17:35:52 -07:00
Adam Ierymenko 988049f39b Add new rule to rules engine: random match. 2016-09-30 14:07:00 -07:00
Adam Ierymenko 6651b8310e Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-09-30 13:47:40 -07:00
Adam Ierymenko 0843ed62fa Network delete fix. 2016-09-30 13:47:30 -07:00
Grant Limberg d817039f79 Add IPv6 Neighbor Discovery code. Not yet tested. 2016-09-30 13:18:17 -07:00
Adam Ierymenko f0794e09b7 Controller cleanup. 2016-09-30 13:04:26 -07:00
Adam Ierymenko 9eaa3756f8 Fix deadlock-causing regression in Network. 2016-09-30 12:22:54 -07:00
Adam Ierymenko 1eeebba2f7 Drop old /active path from network. 2016-09-29 17:59:27 -07:00
Adam Ierymenko 2fc3d12fb6 Minor tweaks to member code in controller, and fix Linux build. 2016-09-29 14:48:39 -07:00
Adam Ierymenko 4fe9a4fe83 Fix memory leak. 2016-09-28 16:13:59 -07:00
Adam Ierymenko 01129d02b3 hashCode() for InetAddress 2016-09-28 13:45:25 -07:00
Adam Ierymenko e1fbf7b34c Check multicast limit on send after NDP emulation code. 2016-09-28 12:21:08 -07:00
Adam Ierymenko 7e90ab3534 TRACE verbosity increase on exceptions in NETWORK_CREDENTIALS. 2016-09-28 11:06:44 -07:00
Adam Ierymenko 5ee1ccd659 Send need credential error on more cases. 2016-09-27 16:41:08 -07:00
Adam Ierymenko 0b44919ba2 Clusters can send multiple OKs so we must allow this. 2016-09-27 16:33:37 -07:00
Adam Ierymenko 9f550292fe Simply network auth logic and always sent error on auth failure even for unknown networks to prevent forensics. 2016-09-27 13:49:43 -07:00
Adam Ierymenko 5ba7ca91c0 TRACE build fix. 2016-09-27 12:44:44 -07:00
Adam Ierymenko cc4bacc199 Cleanup, and implement compression disable flag for networks. 2016-09-27 12:22:25 -07:00
Adam Ierymenko 15c07c58b6 Refactored network config chunking to sign every chunk to prevent stupid DOS attack potential, and implement network config fast propagate (though we probably will not use this for a bit). 2016-09-27 11:33:48 -07:00
Adam Ierymenko 236fdb450c cleanup attic 2016-09-27 07:02:16 -07:00
Adam Ierymenko 7e4b6b594b It now builds. 2016-09-26 17:05:39 -07:00
Adam Ierymenko eac3667ec1 Bunch more refactoring and work on revocations, etc. 2016-09-26 16:17:02 -07:00
siigna e35bca2c3c Move debian/format to debian/source/format
Fixes the following error during package building:
dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)

Reference:
https://www.debian.org/doc/manuals/maint-guide/dother.en.html#sourcef
2016-09-23 20:13:37 -07:00
Adam Ierymenko 46049a1ef6 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-09-23 16:08:44 -07:00
Adam Ierymenko 1f74dd4589 Revocation work in progress, add WATCH which is TEE with implicit rate sync (thanks JG@DCVC!), and clean up some cruft in Network. 2016-09-23 16:08:38 -07:00
Grant Limberg 40d3993ceb java code still needed to reflect PEER_ROLE_RELAY rename to PEER_ROLE_UPSTREAM 2016-09-21 14:12:20 -07:00
Grant Limberg 0564bb3b35 added missing copyright/license info from ZT_jniutils 2016-09-21 14:09:46 -07:00
Adam Ierymenko 29711e123f Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-09-20 21:21:43 -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
Grant Limberg d87f0293e3 Don't print a few error messages when they don't matter. 2016-09-19 13:40:53 -07:00
Grant Limberg 5fadd8bdd2 ZT_PEER_ROLE_RELAY -> ZT_PEER_ROLE_UPSTREAM in JNI glue 2016-09-19 12:54:19 -07:00
Grant Limberg 3366b53247 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2016-09-18 18:10:03 -07:00
Adam Ierymenko 68e549233d Revise bearer token code in controller, and add relay policy as a meta-data item presented to controller by nodes (to facilitate future meshiness). 2016-09-15 13:17:37 -07:00
Adam Ierymenko 24fce0be86 No, definitely have to back out GitHub issue #385 (non-bisected routes) since this breaks IPv6 on OSX and probably IPv4 too if you were to encounter a 6-only situation. 2016-09-14 22:23:56 -07:00
Adam Ierymenko 740b34124f Naming... 2016-09-14 17:35:50 -07:00
Adam Ierymenko 15402933bc Add physical MTU recommendation hint to network config via API. 2016-09-14 16:55:25 -07:00
Adam Ierymenko 8d0b2b781e Route management bug fixes. 2016-09-13 16:25:48 -07:00
Adam Ierymenko 83abc00aae docs 2016-09-13 14:58:59 -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 ced8dfc639 Try a version of GitHub issue #385 (non-bifurcated default if not present) on Mac. This version adds the bifurcated routes always but also adds a device-specific non-bifurcated route. Will have to see if this still interferes with OSX route settings, since by definition device specific routes should not conflict with general routes. 2016-09-13 11:07:59 -07:00
Adam Ierymenko 8ef0e4bbaf Get rid of HELLO rate gate on path since its basically worthless. There are 65535 ports per IP. 2016-09-13 10:46:36 -07:00
Adam Ierymenko 0da9a9a3e0 Set trustEstablished in a few more places. 2016-09-13 10:33:03 -07:00
Adam Ierymenko cba37c6107 Add a few more rate limit gates for anti-DOS hardening. 2016-09-13 10:13:23 -07:00
Adam Ierymenko ea1da3321a Rate gate requests for COM. 2016-09-12 15:19:21 -07:00
Adam Ierymenko 34b146f28b Back out of GitHub issue #385 for now and maybe for this release. Would be nice but it is non-critical and rules are the priority. Current implementation bangs heads with OSX route assignment on WiFi join, etc. 2016-09-12 14:56:18 -07:00
Adam Ierymenko fb46a546db Just always do route bifurcation on Linux for now... basically the old behavior. 2016-09-09 12:53:44 -07:00
Adam Ierymenko debc4c45ee Set trust established flag in MULTICAST_GATHER. 2016-09-09 11:45:34 -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 ef87069957 Fix gating of multicast GATHER replies since these can come from upstream, etc., and fix an issue with sending ECHO to recheck marginal paths. 2016-09-09 09:32:00 -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
Grant Limberg 5ed5b22525 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2016-09-08 17:45:46 -07:00
Grant Limberg dccca7df1a another couple of missing semicolons 2016-09-08 17:45:40 -07:00
Adam Ierymenko 1f6b13b7fd Fix bug causing null addresses to get in memberships[] hash. 2016-09-08 16:09:56 -07:00
Adam Ierymenko d23ade879b Do not bifurcate if not replacing an existing route. (Still need to tie up Linux and Windows.) 2016-09-08 15:42:46 -07:00
Adam Ierymenko 8afdb0aa65 GitHub issue #346 2016-09-07 17:07:06 -07:00
Adam Ierymenko daf8a66ced More correct and efficient to initialize member relationship push stuff lazily when member is learned. 2016-09-07 15:47:20 -07:00
Adam Ierymenko 20278bb9e4 Also send MULTICAST_LIKEs to controllers. 2016-09-07 15:34:34 -07:00
Adam Ierymenko c7a4da3dd3 Turns out we do not need to pass network to receive(). 2016-09-07 15:24:53 -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 1c08f5e857 Tweak some expire times. 2016-09-07 12:25:19 -07:00
Adam Ierymenko c9ee8612e4 Credential TTL (tags/capabilities) should be credential time max delta, since we could get pushed one that is newer. 2016-09-07 12:12:52 -07:00
Adam Ierymenko a7d988745b Use ECHO instead of HELLO where possible. 2016-09-07 12:01:03 -07:00
Adam Ierymenko a9f404aac3 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-09-07 11:20:47 -07:00
Adam Ierymenko ff9f8b1c2b Typo fix. 2016-09-07 11:15:36 -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
Grant Limberg 407ad659ea Reflect changes to strut ZT_PeerPhysicalPath 2016-09-06 17:59:01 -07:00
Adam Ierymenko f2d2df2b11 Cluster build fix. 2016-09-06 15:06:07 -07:00
Adam Ierymenko 48a374c82c (1) fix crazy bug introduced in doRENDEZVOUS(), (2) reclaim Paths after paths[] condense, (3) fix an edge case around symmetric NAT and external IP change detection. 2016-09-06 14:05:58 -07:00
Adam Ierymenko deee39343e Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-09-06 12:45:37 -07:00
Adam Ierymenko 8a2e8bd585 Rework how paths are set as remote cluster preferred. The code is now clearer and cluster preference indications are now very sticky as they should be. 2016-09-06 12:45:28 -07:00
Adam Ierymenko 43780742b0 comments, docs 2016-09-06 11:10:04 -07:00
Grant Limberg 68a966fa55 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2016-09-05 16:19:10 -07:00
Grant Limberg 43b3ec4b1a forgot a semicolon in a JNI java type specifier. 2016-09-05 16:19:04 -07:00
Grant Limberg dcf1f70868 re-adding file 2016-09-05 16:12:29 -07:00
Grant Limberg 598ca48ed6 Attempting to fix VirtualNetworkRoute having 2 entries in git. Yay non case sensitive filesystems 2016-09-05 16:12:06 -07:00
Adam Ierymenko 3790ebe77a Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-09-05 15:49:07 -07:00
Adam Ierymenko d7f2287ce9 More tweaks to path behavior. 2016-09-05 15:47:22 -07:00
Grant Limberg 9f717e79ea Fixing filename again.... 2016-09-05 14:42:36 -07:00
Grant Limberg 26d43c9b06 fix capitalization on file 2016-09-05 14:27:44 -07:00
Grant Limberg 8682c90c7d ensure routes are also equal when checking for equality on VirtualNetworkConfig objects 2016-09-05 14:10:07 -07:00
Grant Limberg d063f583ee Added VirtualNetworkRoute class and added it to VirtualNetworkConfig 2016-09-05 13:52:29 -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 01aa469591 Remove debug line. 2016-09-02 14:26:04 -07:00
Adam Ierymenko 4992ac2d9f Cluster sub-optimal is in fact necessary... 2016-09-02 14:20:55 -07:00
Adam Ierymenko 412979ba8f Attempt to reactivate dead paths. 2016-09-02 13:55:33 -07:00
Adam Ierymenko 4f8253dcdb Tweaks to path handling... 2016-09-02 13:33:56 -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 d1101441b3 Tweak some timings. 2016-09-02 11:54:59 -07:00
Adam Ierymenko e8f6b4b5d3 Rest of big Path canonicalization refactor. 2016-09-02 11:51:33 -07:00
Grant Limberg 94263ffcc1 Added error handling messages 2016-09-01 19:02:27 -07:00
Adam Ierymenko a3bdae9735 Work in progress: Path canonicalization refactor. 2016-09-01 15:43:07 -07:00
Adam Ierymenko d5e6f59004 . 2016-09-01 13:45:32 -07:00
Adam Ierymenko 22271f2a49 Cleanup. 2016-09-01 13:36:41 -07:00
Adam Ierymenko 8b6d23b9f6 Optimize filter code a bit, and add a network-level setting for what should happen if an unsupported or unknown MATCH is encountered in a rules table. 2016-09-01 12:07:17 -07:00
Adam Ierymenko 25056de5d3 Also need to send credentials when TEEing and REDIRECTing. 2016-08-31 17:56:59 -07:00
Adam Ierymenko 994b25af4e Simplify some logic. 2016-08-31 17:45:55 -07:00
Adam Ierymenko 74afef8eb1 Think through and refine a few things in rules, especially edge case TEE and REDIRECT behavior and semantics. 2016-08-31 16:50:22 -07:00
Adam Ierymenko 54489a7f61 rename SAMENESS to DIFFERENCE which is less confusing 2016-08-31 14:14:58 -07:00
Adam Ierymenko 8e3004591b Add overlooked MATCH_ICMP to rule set. 2016-08-31 14:01:15 -07:00
Adam Ierymenko 2ff2a8fd9a Cluster build fixes and warning elimination. 2016-08-31 09:38:21 -07:00
Grant Limberg c2a01f6db4 Added a path for error handling when fetching data from the ZeroTier daemon
Still need to wire up error messages to the user.
2016-08-30 20:28:52 -07:00
Adam Ierymenko 7a00036954 Tweak log length to fit JSON for members within two 4096-kb blocks. 2016-08-29 18:10:02 -07:00
Adam Ierymenko 914c42537c Type fixes. 2016-08-29 17:48:36 -07:00
Adam Ierymenko cb63babac4 Debug output fixes. 2016-08-29 16:38:10 -07:00
Adam Ierymenko ac1c127b68 Debug output fixes. 2016-08-29 16:24:08 -07:00
Adam Ierymenko cb82193333 Debug output fixes. 2016-08-29 16:19:26 -07:00
Adam Ierymenko f0636ffd4a EXT_FRAME messages should always be accepted if we are the destination for a matching TEE or REDIRECT rule. 2016-08-29 15:54:06 -07:00
Adam Ierymenko 51a420671f Make rules engine debug a bit more verbose. 2016-08-29 15:17:34 -07:00
Adam Ierymenko 77c2bf3ad9 Kill dead field from network JSON. 2016-08-29 14:47:19 -07:00
Adam Ierymenko 7223685b96 . 2016-08-26 15:30:20 -07:00
Adam Ierymenko e7dff1c785 Change logic a little for self-as-destination in TEE and REDIRECT. 2016-08-26 15:28:31 -07:00
Adam Ierymenko a5383d83d8 Do not TEE or REDIRECT to self. 2016-08-26 15:25:00 -07:00
Adam Ierymenko a3c7627acf Push more than one packet for credentials if we happen to have a whole lot. Should not happen often but might if a member has tons of tags. 2016-08-26 14:43:16 -07:00
Adam Ierymenko 297b1b4258 Another tiny API bug fix. 2016-08-26 14:16:55 -07:00
Adam Ierymenko 35ac995d05 Fix setting of v6AssignMode in controller. 2016-08-26 14:04:27 -07:00
Adam Ierymenko 6bd5aba4fa fix frame size range bug 2016-08-26 13:26:26 -07:00
Adam Ierymenko fb5217761b Add missing names in filter debug code. 2016-08-26 13:20:55 -07:00
Adam Ierymenko 90f3e94565 Always output trace info when debugging rules. 2016-08-26 12:21:44 -07:00
Adam Ierymenko ded5a53a6c Documentation updates, add rules engine revision to network config request meta-data. 2016-08-26 10:38:43 -07:00
Adam Ierymenko d637988ccf Fix chicken or egg problem in tags, and better filter debug instrumentation. 2016-08-25 18:21:20 -07:00
Adam Ierymenko 858e8c5217 one more... 2016-08-25 16:28:54 -07:00
Adam Ierymenko df1ce856c9 A little bit more controller code cleanup. 2016-08-25 16:25:28 -07:00
Adam Ierymenko b5e0d014ab Controller bug fixes 2016-08-25 16:08:40 -07:00
Adam Ierymenko 5eaf397a94 Add a debug log feature in the filter, which only works if enabled in Network.cpp. 2016-08-25 13:31:23 -07:00
Adam Ierymenko 1814016eb7 Add daemon thread to controller and move network member cache refreshes there. 2016-08-25 11:26:45 -07:00
Adam Ierymenko 6ecb42b031 docs and null check in controller code 2016-08-25 10:46:03 -07:00
Adam Ierymenko 584228b2b5 Dead code removal, and get rid of reliable() because we will no longer make that distinction. 2016-08-24 17:56:35 -07:00
Adam Ierymenko cd3683f2ba Fix a missing receive(). 2016-08-24 17:50:51 -07:00
Adam Ierymenko 347ebcd899 Set trust flag in network controllers if remote query is accepted to allow NATed network controllers to better traverse. 2016-08-24 17:48:13 -07:00
Adam Ierymenko e52c2c41ec Add a circuit breaker to prevent too many credentials from being stored per member. 2016-08-24 17:24:35 -07:00
Adam Ierymenko 95ff057e04 Increase rule limits a little since chunking in netconf can accomodate this. 2016-08-24 17:16:26 -07:00
Adam Ierymenko 60bc291414 Add noAutoAssignIps for member of networks. 2016-08-24 17:05:43 -07:00
Adam Ierymenko c476285bd6 Harden PUSH_DIRECT_PATHS and simplify things by only doing it on receive when hops>0 and trust has been established. 2016-08-24 16:16:39 -07:00
Adam Ierymenko 63e8ad4cc3 TRACE stuff. 2016-08-24 15:45:37 -07:00
Adam Ierymenko 2cdda38dc4 It basically works... at least on current controllers. 2016-08-24 15:26:18 -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 90bd3e07a0 Remove http-parser from RPM spec. 2016-08-24 13:53:24 -07:00
Adam Ierymenko 8e3463d47a Add length limit to TEE and REDIRECT, and completely factor out old C json-parser to eliminate a dependency. 2016-08-24 13:37:57 -07:00
Adam Ierymenko 8d594f8b53 cleanup 2016-08-23 16:05:10 -07:00
Adam Ierymenko 5f4df0c6a9 Controller cleanup and perf improvements. 2016-08-23 15:30:36 -07:00
Adam Ierymenko 0ee4d3554a Stub out USER_MESSAGE. 2016-08-23 14:38:20 -07:00
Adam Ierymenko 0a7a33ef8f Instantaneous blacklisting and credential revocation. 2016-08-23 13:46:36 -07:00
Adam Ierymenko 32fa061700 Compute credential TTL et al. 2016-08-23 13:02:59 -07:00
Adam Ierymenko 7036831203 Sign Dictionary in doNETWORK_CONFIG_REQUEST. 2016-08-23 11:57:56 -07:00
Adam Ierymenko 68b4ca9b31 Cleanup. 2016-08-23 11:52:10 -07:00
Adam Ierymenko 0dfc08b317 Tidy up a few minor protocol things, improve documentation in Packet.hpp. 2016-08-23 11:29:02 -07:00
Adam Ierymenko 77f7dcf40a Obsolete "test network" removal. 2016-08-23 09:39:38 -07:00
Adam Ierymenko 9a3c652a51 Get rid of expiration in Capability and Tag and move this to NetworkConfig so it can be set network-wide and reset if needed. Also add NetworkConfig field for this and centralize checking of credential time validity. 2016-08-22 18:06:46 -07:00
Adam Ierymenko 6db47de25e Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2016-08-22 14:26:17 -07:00
Adam Ierymenko b0d888d235 Signing of Capability and Tag objects. 2016-08-22 14:25:59 -07:00
Joseph Henry af53e63ae2 Kube tut update 2016-08-22 11:33:10 -07:00
Grant Limberg 35d5ed9c2b version bump i forgot to commit 2016-08-19 18:13:00 -07:00
Adam Ierymenko 9827b8991d Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2016-08-18 18:18:56 -07:00
Adam Ierymenko 4dce71879f . 2016-08-18 18:18:50 -07:00
Joseph Henry 727fb197d8 kube tutorial update 2016-08-18 15:32:26 -07:00
Joseph Henry c2f10a52de zt-kubernetes tutorial update 2016-08-18 15:16:24 -07:00
Joseph Henry cf2ec0797e zt-kubernetes tutorial update 2016-08-18 15:15:38 -07:00
Joseph Henry 6443049f86 Merge branch 'edge' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into edge 2016-08-18 15:13:49 -07:00
Joseph Henry 44bee4e3ff zt-kubernetes tutorial update 2016-08-18 15:13:43 -07:00
Adam Ierymenko 212a5af9a5 Capabilities and tags in POST JSON. 2016-08-18 14:37:56 -07:00
Adam Ierymenko 1cadbfb4d1 Little fixes. 2016-08-18 13:47:02 -07:00
Adam Ierymenko 4729fec2eb Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2016-08-18 13:00:00 -07:00
Adam Ierymenko f119c4a456 Cache network members for performance, add network non-persisted fields. 2016-08-18 12:59:48 -07:00
Joseph Henry 3e261fb999 updated entrypoint 2016-08-17 18:33:49 -07:00
Joseph Henry 0fd3afe2c8 examples files for kube int 2016-08-17 18:03:34 -07:00
Joseph Henry 9dc507c9ae examples files for kube int 2016-08-17 17:52:19 -07:00
Joseph Henry 5d37eabb59 Merge branch 'edge' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into edge 2016-08-17 17:43:44 -07:00
Joseph Henry 169664ffc2 examples files for kube int 2016-08-17 17:43:34 -07:00
Adam Ierymenko 4c0a7c0fb2 Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2016-08-17 17:37:48 -07:00
Adam Ierymenko faa9a06bf5 Controller fixes... 2016-08-17 17:37:37 -07:00
Joseph Henry 183434d30e examples files for kube int 2016-08-17 17:29:14 -07:00
Joseph Henry c84ce76c59 examples files for kube int 2016-08-17 17:22:05 -07:00
Joseph Henry 1833c61556 kubernetes tutorial update 2016-08-17 15:35:00 -07:00
Joseph Henry ba78676ace kubernetes tutorial update 2016-08-17 15:28:48 -07:00
Joseph Henry 0d37b7b665 zt-kubernetes tutorial outline 2016-08-17 15:12:48 -07:00
Adam Ierymenko 1254dece5b Linux build fixes, and build controller. 2016-08-17 14:19:29 -07:00
Adam Ierymenko b7ebf6edbf Cleanup and log how member was authorized. 2016-08-17 13:54:32 -07:00
Adam Ierymenko b72847d504 Finally implement network join auth tokens, at least at the protocol level. 2016-08-17 13:41:45 -07:00
Adam Ierymenko 168b86fdcd Controller docs and API fix. 2016-08-17 12:27:07 -07:00
Adam Ierymenko a13f4d8353 We now always build the controller in ZeroTier One, at least for desktop and server targets. Also means that ZeroTier One now requires C++11. (Still keeping C++11 out of the core in node/ though.) 2016-08-17 10:42:32 -07:00
Adam Ierymenko cc808cc2dd Rules parsing stuff. 2016-08-17 10:25:25 -07:00
Adam Ierymenko ce001198d8 . 2016-08-16 16:57:45 -07:00
Adam Ierymenko c0639ccd37 Just about ready to test. 2016-08-16 16:46:08 -07:00
Adam Ierymenko 58701c1ca8 . 2016-08-16 14:08:08 -07:00
Adam Ierymenko 402d99ea8d C++11 mode build fix. 2016-08-16 14:07:11 -07:00
Adam Ierymenko b08ca49580 More controller work -- it builds! 2016-08-16 14:05:17 -07:00
Adam Ierymenko bd15262e54 Bunch of rule JSON stuff. 2016-08-15 18:49:50 -07:00
Adam Ierymenko 3cb2e1197f . 2016-08-12 15:32:45 -07:00
Adam Ierymenko 7762cd680b fix json include path in cli 2016-08-12 11:30:50 -07:00
Adam Ierymenko c30f74987f Starting refactor of controller... 2016-08-12 11:30:27 -07:00
Grant Limberg 628ef14d80 added more spacing at the bottom of each network info cell 2016-08-11 17:50:15 -07:00
Grant Limberg bc48a097f8 add @2x versions of menu bar icon 2016-08-11 17:41:54 -07:00
Adam Ierymenko dd21c8a577 Rev nlohmann/json 2016-08-10 17:27:46 -07:00
Adam Ierymenko 7d906df805 Better instrumentation for filter, and filter bug fixes. 2016-08-10 14:27:52 -07:00
Adam Ierymenko d166b494ee Rule parse fix. 2016-08-10 13:41:22 -07:00
Adam Ierymenko 81959f14af Refactor and redesign symmetric NAT predictor. This is cleaner. 2016-08-10 10:28:54 -07:00
Grant Limberg 2300f3c92b bump build number 2016-08-09 20:04:33 -07:00
Grant Limberg 73fd934fec * Fixed menu icon size
* Added icon for dark mode
* Added detection for interface mode changing from light to dark and adjusting the icon accordingly
2016-08-09 20:02:12 -07:00
Grant Limberg a7b635a980 add border around About web view. added padding to text div in the about page 2016-08-09 19:03:09 -07:00
Grant Limberg 91b8d6f34f [pasteboard declareTypes] needs to be called before every time you set a string to the pasteboard. 2016-08-09 18:03:48 -07:00
Adam Ierymenko c9d7845fea Minor bug fix and some instrumentation stuff for testing. 2016-08-09 17:00:01 -07:00
Adam Ierymenko 0b0cda2be4 ZT_TRACE fix. 2016-08-09 15:55:41 -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 dbf3e6c3c9 Dead code removal. 2016-08-09 15:01:46 -07:00
Adam Ierymenko dee7f75f7e Minor cleanup. 2016-08-09 14:46:11 -07:00
Adam Ierymenko 774c7e0ea5 Put CONFIG_REFRESH back. 2016-08-09 13:52:08 -07:00
Adam Ierymenko 4d498b3765 Handling of multi-part chunked network configs on the inbound side. 2016-08-09 13:14:38 -07:00
Adam Ierymenko bcd05fbdfa Chunking of network config replies. 2016-08-09 09:34:13 -07:00
Adam Ierymenko 2ba9343607 Encode and decode of tags and capabilities in NetworkConfig. 2016-08-09 08:32:42 -07:00
Grant Limberg 8ae07fb9c9 build number bump 2016-08-08 19:04:50 -07:00
Grant Limberg 13682bd919 Change Deployment Target to 10.7. Apparently going below 10.10 was only an issue with Swift 2016-08-08 19:02:09 -07:00
Grant Limberg b5cab8afaa update build number 2016-08-08 17:46:01 -07:00
Grant Limberg c15c9775bd explicitly link to WebKit framework 2016-08-08 17:45:52 -07:00
Adam Ierymenko 51cf49a24f cleanup 2016-08-08 17:40:22 -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 8007ca56aa Refactor and tie-up of capabilities and tags and packet evaluation points. Some optimization is possible here but it is minor and we will make it work first. 2016-08-08 16:50:00 -07:00
Grant Limberg 8d7f851b4e Now translated. One minor crash to figure out. 2016-08-07 20:19:36 -07:00
Grant Limberg 5b13b282ed Replace JoinNetworkViewController with obj-c 2016-08-07 19:13:12 -07:00
Grant Limberg d965768004 Replaced the network list with Obj-C 2016-08-07 18:19:47 -07:00
Grant Limberg a91187e60e Convert NetworkMonitor to obj-c 2016-08-07 17:25:34 -07:00
Grant Limberg 179324e44a Replace Preferences view. Removed LaunchAtLoginController and replaced with simpler code 2016-08-07 16:34:54 -07:00
Grant Limberg c6dba50e35 replace AboutViewController 2016-08-07 15:18:32 -07:00
Grant Limberg b51d68a419 replace ServiceCom with objc class 2016-08-06 19:45:58 -07:00
Grant Limberg a0db48571d Convert Network to OBJC 2016-08-06 18:50:50 -07:00
Adam Ierymenko 4d7f625aa1 . 2016-08-05 15:55:38 -07:00
Adam Ierymenko e2f783ebbd . 2016-08-05 15:02:01 -07:00
Grant Limberg 7a12d8193b Replace NodeStatus object with Obj-C Class 2016-08-04 17:55:57 -07:00
Adam Ierymenko 4d9b74b171 . 2016-08-04 15:27:20 -07:00
Adam Ierymenko 37d139177d Integrate Filter into OutboundMulticast properly. 2016-08-04 13:01:14 -07:00
Adam Ierymenko 8a7753cfe3 Filter cleanup, prep for filter integration in a few places. 2016-08-04 12:35:25 -07:00
Adam Ierymenko 331382cf2f More cleanup and a tiny federation prep item. 2016-08-04 12:14:13 -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 56febbf2ba . 2016-08-04 10:39:28 -07:00
Adam Ierymenko 5cf410490e . 2016-08-04 10:18:33 -07:00
Adam Ierymenko 404a0bbddd ... 2016-08-04 09:51:15 -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 67cb03742e Add tag rules and split out rule serialize/deserialize so the code can be reused. 2016-08-03 14:12:38 -07:00
Grant Limberg a08246ce5d update build number 2016-08-02 20:30:49 -07:00
Grant Limberg f54d5e9e8f the quest for leaks is over.
Why a singleton doesn't leak, vs calling static methods on a class is beyond me
2016-08-02 20:30:09 -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
Joseph Henry 77bd8aacd1 merge cli from edge 2016-08-02 13:50:09 -07:00
Adam Ierymenko ecc1324bb0 Rules engine work: capability based security model with tags and capabilities, and some cleanup across other places. 2016-08-02 13:36:17 -07:00
Adam Ierymenko d3b0081447 Cleanup... 2016-07-28 12:09:58 -07:00
Adam Ierymenko 22e44c762b More rules engine work: key/value pair matching for microsegmentation. 2016-07-28 10:58:10 -07:00
Grant Limberg 78e5a00a68 Only poll the ZeroTier service when the menu or Network List are visible. Reduces CPU idle prevention by a a LOT 2016-07-26 20:31:06 -07:00
Grant Limberg b9a4d138fc only update the network list view if it's visible 2016-07-26 20:05:33 -07:00
Grant Limberg 36a9aff283 Show "About" view on first run.
Still needs some work to show up in the right place
2016-07-26 20:04:59 -07:00
Grant Limberg e1755e569e build number bump 2016-07-26 19:16:33 -07:00
Grant Limberg ae374a78fc add some non Lorem Ipsum content to the about page 2016-07-26 19:15:12 -07:00
Grant Limberg 62befe006d Route clicked links in the web view to the default web browser 2016-07-26 18:21:39 -07:00
Adam Ierymenko 1e6e112806 Dockerfile for building zerotier/zerotier-containerized for CoreOS et al. 2016-07-26 17:08:09 -07:00
Adam Ierymenko 830250759c Fix for running under MUSL libc (e.g. Alpine Linux) 2016-07-26 16:39:02 -07:00
Adam Ierymenko 13100b245c Fix for running under MUSL libc (e.g. Alpine Linux) 2016-07-26 16:36:20 -07:00
Adam Ierymenko 4929be08f7 Cleanup and stub out new object transfer messages. 2016-07-26 12:33:51 -07:00
Adam Ierymenko 088bbd1c08 Filter fixes. 2016-07-25 17:03:26 -07:00
Adam Ierymenko 7404eb46c4 Integration of Filter into inbound and outbound packet path. 2016-07-25 16:51:10 -07:00
Adam Ierymenko eaf6d6c938 Basic L2/L3 filter for rules engine (not integrated yet) and some cleanup. 2016-07-25 15:52:16 -07:00
Adam Ierymenko 02d288e9d4 Merge branch 'dev' of Y:/ZeroTier/ZeroTierOne into dev 2016-07-21 20:45:17 -07:00
Adam Ierymenko 6f15c4a561 1.1.14 Windows version stuff 2016-07-21 20:45:05 -07:00
Adam Ierymenko ae491c277e VERSION 1.1.14: bug fixes!
This version fixes two bugs: a possible infinite loop when using network-specific relays,
and a bug causing a crash on Android.
2016-07-21 20:29:15 -07:00
Adam Ierymenko ebe7e15475 sys/sysctl.h is required on OSX and probably other BSD 2016-07-21 19:21:51 -07:00
Adam Ierymenko dced40361b Bump version in most places to 1.1.14 2016-07-21 19:15:03 -07:00
Adam Ierymenko faf864b8a2 Merge branch 'master' into dev 2016-07-21 19:07:50 -07:00
Adam Ierymenko 8a23d764de Merge branch 'master' of http://10.6.6.2/zerotier/ZeroTierOne 2016-07-21 19:06:31 -07:00
Adam Ierymenko f21af60a13 Init trusted path count to zero. Meh. 2016-07-21 19:06:18 -07:00
Adam Ierymenko 10564d8e14 Init trusted path count to zero. Meh. 2016-07-21 19:05:14 -07:00
Adam Ierymenko 095aef5f30 Merge pull request #348 from the-maldridge/remove-sysctl
Remove explicit sys/sysctl.h includes
2016-07-21 15:16:22 -07:00
Adam Ierymenko 145ac31c8a Merge pull request #362 from mwarning/space-between-literal-and-string-macro
C++11 requires a space between literal and string macro
2016-07-21 15:16:05 -07:00
Adam Ierymenko b7a5f783ba Merge pull request #364 from mwarning/fortify-source-needs-optimization-flag
fix _FORTIFY_SOURCE warning
2016-07-21 15:15:42 -07:00
Adam Ierymenko 3d25a2ea02 Merge pull request #363 from mwarning/move-declaration-out-of-scope
move sourceAddress out of scope
2016-07-21 15:15:27 -07:00
Moritz Warning 76b785c90f fix _FORTIFY_SOURCE warning
warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
2016-07-21 23:08:58 +02:00
Moritz Warning b3073f44a2 move sourceAddress out of scope
sourceAddress is used in the catch block
2016-07-21 23:03:04 +02:00
Moritz Warning bcdd158ad8 C++11 requires a space between literal and string macro 2016-07-21 22:41:02 +02:00
Grant Limberg 693ac4e86c add web view and placeholder about page with ZT logo and lorem ipsum 2016-07-19 19:12:41 -07:00
Adam Ierymenko 6320879fe1 Fix for GitHub issue #358 and bump version to 1.1.13 (dev) 2016-07-18 10:56:33 -07:00
Grant Limberg 2afe3d89d0 Merge branch 'master' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne 2016-07-14 19:29:10 -07:00
Grant Limberg 8a15b42dab switch to GCC for Android 2016-07-14 19:29:00 -07:00
Adam Ierymenko 4b9e84f42f docs 2016-07-14 17:47:32 -07:00
Adam Ierymenko ba87640e4c Release howto for internal use. 2016-07-14 17:46:22 -07:00
Adam Ierymenko a5400e0162 Windows installer now installs a batch file and Path variable settings to make zerotier-cli work in the Windows CLI (1.1.12 MSI updated on web for this too) and a Chocolatey packaging job for ZeroTier One. 2016-07-14 17:09:40 -07:00
Adam Ierymenko bdc3b0834b VERSION 1.1.12: yet another minor fix to managed routes
This version just contains another minor fix to managed routes for
GitHub issue #352.
2016-07-12 15:09:44 -07:00
Adam Ierymenko 1a285e5342 Version bump again. Slack has updated their client twice in one day so its okay. 2016-07-12 15:03:06 -07:00
Adam Ierymenko 8912515011 Fix to fix to GitHub issue #352 2016-07-12 15:00:30 -07:00
Adam Ierymenko 6ec3464ee9 JSON fix for trusted paths (does not affect normal op) 2016-07-12 13:58:15 -07:00
Adam Ierymenko 4b5e43ab0d VERSION 1.1.10: minor managed route fixes
Version 1.1.10 is a minor bug fix release. It fixes the following two issues:

 * Routes are no longer added 'via' IP addresses of the current node's ZT interface.
 * IPv6 default route is now fixed on Mac.
 * IP addresses are now deleted before new ones are added to allow changes to netmask
   on Mac and some other platforms.

This version also quietly introduces a feature called trusted paths. We'll be
documenting this in our community section soon. This is an experimental feature
for in-LAN SDN use.
2016-07-12 13:37:38 -07:00
Adam Ierymenko a6d9ae3a36 Man page fix on fedora-22 2016-07-12 13:30:15 -07:00
Adam Ierymenko 34e7c8652a Version bumps. 2016-07-12 12:30:35 -07:00
Adam Ierymenko 1861f67fa7 Version bump to 1.1.10 2016-07-12 12:21:36 -07:00
Adam Ierymenko b5e9d3f6f4 Rename file to be intuitive. 2016-07-12 11:41:19 -07:00
Adam Ierymenko 9785fde32a Trusted paths work! 2016-07-12 11:40:45 -07:00
Adam Ierymenko 9657675755 Plumbing through trusted path stuff to OneService. 2016-07-12 11:30:22 -07:00
Adam Ierymenko 5d7174b162 Go back to bundling libhttp-parser on Debian, at least for our own internally-created packages, since this library has a massively unstable ABI and causes nothing but problems if referenced from the distro. 2016-07-12 10:11:00 -07:00
Adam Ierymenko cdb5ceac7b Should remove old IPs before trying to add new ones. 2016-07-12 09:43:12 -07:00
Adam Ierymenko 23391ff9da More OSX IPv6 fixes. 2016-07-12 09:22:04 -07:00
Adam Ierymenko 3f2b21ce71 Do not shadow our own route twice on Mac if there is no default route. (Fix for issue found during IPv6 default route override testing.) 2016-07-12 08:55:57 -07:00
Adam Ierymenko 6535730255 GitHub issue #352 2016-07-12 08:42:36 -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 aff62e9e10 Version bump in Mac pkg. 2016-07-08 14:28:34 -07:00
Adam Ierymenko 2d598dd433 Automatically add symlinks to redhat distro. 2016-07-08 14:25:25 -07:00
Adam Ierymenko f86e9b7df2 Bump version in RPM spec and DEB. 2016-07-08 13:57:16 -07:00
Adam Ierymenko 898d889537 VERSION 1.1.8: minor Linux bug fix, controller fixes, controller doc improvements
1.1.8 is a very minor update. It contains a small fix to IP address management
on Linux but other than that there are no changes to the regular ZeroTier One
code.

The 1.1.8 controller contains several fixes and improvements:

 * Network authorizedMemberCount works again
 * Managed IP addresses are pushed as long as they fall within a LAN-local managed
   route. The v4AssignMode and v6AssignMode settings only control automatic IP
   assignment from pools. In previous versions v4AssignMode had to be on for IPs
   to be pushed at all, making it impossible to just manually assign IPs.
 * IPv6 now has an auto-assign mode ('zt' to match V4) that can work alongside the
   special RFC4193 and 6PLANE modes (though it is not NDP emulated). If this is
   enabled IPv6 addresses will be auto-assigned from IPv6 ranges in the assignment
   pool list.
 * Controller documentation is MUCH better! See controller/README.md for actual
   useful information!

Finally 1.1.8 has several improvements to linux-build-farm including Debian wheezy
support.
2016-07-08 13:53:37 -07:00
Adam Ierymenko 0e2964261f docs 2016-07-08 13:42:04 -07:00
Adam Ierymenko ffe7d8d024 docs 2016-07-08 13:40:21 -07:00
Adam Ierymenko c01ebbcbde docs 2016-07-08 13:38:47 -07:00
Adam Ierymenko a6e5914aa7 docs 2016-07-08 13:37:51 -07:00
Adam Ierymenko 6d8de214eb Docs and controller API version 2016-07-08 13:10:02 -07:00
Adam Ierymenko 5bf3c54cd3 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-07-08 10:08:06 -07:00
Adam Ierymenko 959b64777f 1.1.8 bump 2016-07-08 10:08:01 -07:00
Grant Limberg be0af135bc update JNI code for 1.1.6 2016-07-07 20:07:07 -07:00
Adam Ierymenko 2d7c58540f v6AssignMode bug fix 2016-07-07 17:05:12 -07:00
Adam Ierymenko 951038a304 Ignore /bits in IP assignments and just copy it from the corresponding LAN-local route. Having each managed IP assignment have its own bits field was just a source of user error and poor UX and was completely worthless. 2016-07-07 16:28:43 -07:00
Adam Ierymenko 912ee199ed Tiny fixes to LinuxEthernetTap 2016-07-07 16:10:36 -07:00
Adam Ierymenko b9329dc49a Fix to IPv6 picking for small ranges. 2016-07-07 15:55:40 -07:00
Adam Ierymenko 6e08e1ae97 A few controller changes: (1) assign managed IPs that are assigned regardless of "assign mode" which now only controls auto-assignment or special addressing, (2) support proper issuing of managed IPv6 IPs, (3) support IPv6 auto-assign ranges 2016-07-07 15:42:10 -07:00
Adam Ierymenko dd1d2b4d00 GitHub issue #343 -- fix authorizedMemberCount 2016-07-07 14:49:54 -07:00
Adam Ierymenko f6d53cc568 . 2016-07-06 18:12:31 -07:00
Adam Ierymenko b6cc815447 . 2016-07-06 18:07:42 -07:00
Adam Ierymenko ddbbb8afec Wheezy stuff 2016-07-06 18:04:13 -07:00
Adam Ierymenko a8a497c621 Debian wheezy work. 2016-07-06 17:59:08 -07:00
Michael Aldridge 1a89694980 Remove explicit sys/sysctl.h includes
Explicitly including sys/sysctl.h breaks the ability to build
against muslc.
2016-07-06 02:38:23 -05:00
Adam Ierymenko 5c03416e84 Actually remove http-parser-devel 2016-07-05 14:28:58 -07:00
Adam Ierymenko b732c445b8 Xenial fix (clang broken) and bundle http-parser even in Fedora because it is so version sensitive. 2016-07-05 14:09:33 -07:00
Adam Ierymenko 97ec88e346 . 2016-07-05 12:30:58 -07:00
Adam Ierymenko 192bc4fcf0 More repo work. 2016-07-05 10:54:07 -07:00
Grant Limberg 0e6065e3d5 another build number bump 2016-06-30 21:25:14 -07:00
Grant Limberg a156fec25a put node ID into the main menu.
Clicking on the menu item copies the node ID into the clipboard.
2016-06-30 21:24:45 -07:00
Grant Limberg fe725f9995 fix a case where the "Allow Default" checkbox would be enabled when a network wasn't connected. 2016-06-30 20:35:32 -07:00
Grant Limberg 58207b30d1 now that the network details list uses the default background color of the pane its embedded in, we don't have to force to the "Light" theme, even if the user has selected the "dark" theme for the top menu bar. 2016-06-30 20:28:04 -07:00
Grant Limberg f4192d7b9e added separator between items in the network detail list 2016-06-30 20:17:33 -07:00
Grant Limberg e747692727 remove background from network details view 2016-06-30 20:07:22 -07:00
Grant Limberg d786c5265f bump version number 2016-06-30 19:46:59 -07:00
Grant Limberg ba0a45365c Work around for several strange corner cases in Automatic Reference Counting in Apple's runtime 2016-06-30 19:42:23 -07:00
Adam Ierymenko fc4ea57a9c debian-stretch 2016-06-30 18:03:06 -07:00
Adam Ierymenko 751497a748 aptly script 2016-06-30 16:44:22 -07:00
Adam Ierymenko c714e8baa6 Get rid of broken test code for controller so selftest build works with controller enabled. 2016-06-30 08:30:45 -07:00
Adam Ierymenko 2331a00555 Fedora-22 32-bit fix. 2016-06-29 18:53:31 -07:00
Adam Ierymenko 4218cd13d5 VERSION 1.1.6: route management, default route override, new IPv6 mode for Docker, and more!
(Retagged due to silly one-line bug and left over debug line... doh!)

Version 1.1.6 contains several significant improvements for use in complex network
environments along with some minor bug fixes and improvements to path stability and
dead path detection.

ROUTE MANAGEMENT AND FULL TUNNEL SUPPORT

1.1.6 is the first version of ZeroTier One to permit "full tunnel" (default route
override) operation on Linux, Mac, and Windows. This allows all Internet traffic
to be tunneled through ZeroTier while allowing ZeroTier peer-to-peer traffic to
continue to use the physical interface. 1.1.6 also brings route management support
and permissions settings for local networks to control whether networks are allowed
to modify the routing table or override default routing.

This is currently considered a beta/experimental feature and must be enabled via
the command line interface.

Route management and default route override requires support at the network controller.
When my.zerotier.com is updated and ready, we will post more information and testing
instructions at: https://www.zerotier.com/community

HIGHLY SCALABLE CONTAINER NETWORKING

1.1.6 also brings a new multicast-free (NDP emulated) IPv6 private addressing scheme
called "6plane." 6plane provides each host with a private IPv6 /80 and routes *all*
IPv6 traffic for this subnet to the host via transparent NDP emulation. This /80 can
then be assigned to Docker or other container/VM managers to assign a network-wide
IPv6 /128 to every container. Since NDP is emulated and multicast isn't needed, this
system can scale to millions of containers or more on a single backplane network with
a high degree of efficiency and reliability.

6plane also requires controller support. Look for it at my.zerotier.com once we have
upgraded our core infrastructure and web UIs.

(All hosts must be running 1.1.6 for 6plane to work properly. Other IPv6 addresses
or addressing modes are not affected and normal IPv6 NDP will continue to work
alongside 6plane in the same network.)

OTHER CHANGES

 * Upgraded bundled miniupnpc, libnatpmp, and http-parser.
 * New Debian and RPM packaging that is closer to compliance with distribution
   guidelines, and a new Dockerized Linux package build system in linux-build-farm/
   that can build every package on actual images of the correct distribution.
 * Improvements to dead path detection.
 * IPv6 now uses keepalive because a significant number of stateful IPv6 edge
   routers have very short timeouts (30 seconds or less!).
 * Significant performance improvements to network controllers under high load.
 * Enable -fstack-protector-strong for better stack canary (security) support
   in binaries. Note that this may require newer gcc/g++ or clang.

COMING SOON

The next version of ZeroTier One should have a new Mac UI. It's a system tray app
that looks and behaves a lot like the Mac WiFi pulldown menu. We'll also be adding
GUI support for default route and route management options and other new features.

Shortly after that we plan on adding full OpenFlow-like SDN rules engine support
to the ZeroTier core, making our planetary Ethernet switch a fully manageable smart
switch and enabling sophisticated security and flow rule management.
2016-06-29 18:16:58 -07:00
Adam Ierymenko 030dfde38e Unused printf removal while we are at it. 2016-06-29 18:14:49 -07:00
Adam Ierymenko 901e2fd692 Fix silly one-liner bug... retag time. 2016-06-29 18:12:35 -07:00
Adam Ierymenko c03ca3c278 VERSION 1.1.6: route management, default route override, new IPv6 mode for Docker, and more!
Version 1.1.6 contains several significant improvements for use in complex network
environments along with some minor bug fixes and improvements to path stability and
dead path detection.

ROUTE MANAGEMENT AND FULL TUNNEL SUPPORT

1.1.6 is the first version of ZeroTier One to permit "full tunnel" (default route
override) operation on Linux, Mac, and Windows. This allows all Internet traffic
to be tunneled through ZeroTier while allowing ZeroTier peer-to-peer traffic to
continue to use the physical interface. 1.1.6 also brings route management support
and permissions settings for local networks to control whether networks are allowed
to modify the routing table or override default routing.

This is currently considered a beta/experimental feature and must be enabled via
the command line interface.

Route management and default route override requires support at the network controller.
When my.zerotier.com is updated and ready, we will post more information and testing
instructions at: https://www.zerotier.com/community

HIGHLY SCALABLE CONTAINER NETWORKING

1.1.6 also brings a new multicast-free (NDP emulated) IPv6 private addressing scheme
called "6plane." 6plane provides each host with a private IPv6 /80 and routes *all*
IPv6 traffic for this subnet to the host via transparent NDP emulation. This /80 can
then be assigned to Docker or other container/VM managers to assign a network-wide
IPv6 /128 to every container. Since NDP is emulated and multicast isn't needed, this
system can scale to millions of containers or more on a single backplane network with
a high degree of efficiency and reliability.

6plane also requires controller support. Look for it at my.zerotier.com once we have
upgraded our core infrastructure and web UIs.

(All hosts must be running 1.1.6 for 6plane to work properly. Other IPv6 addresses
or addressing modes are not affected and normal IPv6 NDP will continue to work
alongside 6plane in the same network.)

OTHER CHANGES

 * Upgraded bundled miniupnpc, libnatpmp, and http-parser.
 * New Debian and RPM packaging that is closer to compliance with distribution
   guidelines, and a new Dockerized Linux package build system in linux-build-farm/
   that can build every package on actual images of the correct distribution.
 * Improvements to dead path detection.
 * IPv6 now uses keepalive because a significant number of stateful IPv6 edge
   routers have very short timeouts (30 seconds or less!).
 * Significant performance improvements to network controllers under high load.
 * Enable -fstack-protector-strong for better stack canary (security) support
   in binaries. Note that this may require newer gcc/g++ or clang.

COMING SOON

The next version of ZeroTier One should have a new Mac UI. It's a system tray app
that looks and behaves a lot like the Mac WiFi pulldown menu. We'll also be adding
GUI support for default route and route management options and other new features.

Shortly after that we plan on adding full OpenFlow-like SDN rules engine support
to the ZeroTier core, making our planetary Ethernet switch a fully manageable smart
switch and enabling sophisticated security and flow rule management.
2016-06-29 15:53:46 -07:00
Adam Ierymenko af2268ebd7 docs 2016-06-29 15:33:18 -07:00
Adam Ierymenko b9876d1809 docs 2016-06-29 15:30:49 -07:00
Adam Ierymenko e64909cdcd docs 2016-06-29 15:24:45 -07:00
Adam Ierymenko ce2ad69e5f Get rid of aptly script. 2016-06-29 14:44:29 -07:00
Adam Ierymenko 56fb08621e amazon-2016.03 docker image 2016-06-29 14:35:53 -07:00
Adam Ierymenko 4457c8218d Auto-detect miniupnpc 2.0 and use it on Linux if present. 2016-06-29 13:27:10 -07:00
Adam Ierymenko c862f199e3 Windows: ship it! 2016-06-29 13:22:04 -07:00
Adam Ierymenko 7918b26f65 Hack settings into old CLI. 2016-06-29 12:22:37 -07:00
Adam Ierymenko df00d3b046 Going to have to continue to use the old MAC web-container-based UI on Macs prior to 10.10 even when the new UI comes out, and the new UI is not ready yet anyway, so resurrect this. 2016-06-29 12:00:16 -07:00
Adam Ierymenko 19735e7050 Revert backgrounding of controller requests hack. Controller code is not really parallel anyway and we fixed the perf problem. 2016-06-29 11:43:22 -07:00
Adam Ierymenko bb63646682 Fix broken SQL in controller. 2016-06-29 11:37:28 -07:00
Adam Ierymenko b4fcf2ee60 Fix a valgrind warning. 2016-06-29 11:11:16 -07:00
Adam Ierymenko d9eacd1616 Controller fixes... 2016-06-29 17:02:03 +00:00
Adam Ierymenko 5309c7e082 Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2016-06-29 16:47:57 +00:00
Adam Ierymenko dbe57742e6 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-06-29 09:45:05 -07:00
Adam Ierymenko 928c625e2c docs 2016-06-29 09:45:02 -07:00
Adam Ierymenko 1e00603241 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-06-28 16:09:41 -07:00
Adam Ierymenko f6442f2752 fedora-22 2016-06-28 16:09:36 -07:00
Adam Ierymenko 7b7ab823b0 Fix getPeer(self) bug if I am the controller. 2016-06-28 22:49:01 +00:00
Adam Ierymenko 0410fd4824 Refactor recent member request history to fix performance problem in controller. 2016-06-28 12:44:47 -07:00
Adam Ierymenko 02fa32422a Dockerfile ordering 2016-06-27 20:07:35 -07:00
Grant Limberg decb4261d4 wire up control to launch at startup in preferences 2016-06-27 19:14:15 -07:00
Grant Limberg b0971e3a01 setup launch at login on first start 2016-06-27 19:04:55 -07:00
Adam Ierymenko 12037961ff small perf improvement in sqlite db. 2016-06-27 18:48:02 -07:00
Adam Ierymenko 8c572dead1 Query optimization. 2016-06-27 18:28:18 -07:00
Grant Limberg 583cd25506 slightly resize icons 2016-06-27 18:05:17 -07:00
Grant Limberg 1beacc8c32 wire up network delete again 2016-06-27 17:54:54 -07:00
Adam Ierymenko 3ddfebe742 dead code removal 2016-06-27 17:15:39 -07:00
Adam Ierymenko 972bbb7e06 Allow further concurrency on network controller. 2016-06-27 17:14:47 -07:00
Adam Ierymenko 45f315e603 Defer NETWORK_CONFIG_REQUEST packets and allow multithreaded processing. 2016-06-27 17:09:04 -07:00
Adam Ierymenko b9e86103cf Docker build farm seems to work! 2016-06-27 16:38:08 -07:00
Adam Ierymenko 0588589d57 . 2016-06-27 16:21:55 -07:00
Adam Ierymenko 4d30f60bbe . 2016-06-27 16:12:17 -07:00
Adam Ierymenko d58dcf29cc For now go back to bundling http-parser etc. in our official RPM builds since this introduces an EPEL dependency for CentOS which would only make sense if we are actually in EPEL. Probably will eventually have two spec files: one for official and one for our own. 2016-06-27 15:46:54 -07:00
Adam Ierymenko 809457599a CentOS7 fixes. 2016-06-27 15:21:24 -07:00
Adam Ierymenko 2d19fb7f8c More RPM fixes. 2016-06-27 15:08:51 -07:00
Adam Ierymenko 2c9401ed74 CentOS6 fix. 2016-06-27 14:56:40 -07:00
Adam Ierymenko af23596c34 Put everything in /usr/sbin on Linux. 2016-06-27 14:45:38 -07:00
Adam Ierymenko 233945e60f More Dockerfile fixes, and do not use "ln -r" since it is not supported on older Linux distributions. 2016-06-27 14:36:58 -07:00
Adam Ierymenko 147f735333 More build fixes. 2016-06-27 14:21:54 -07:00
Adam Ierymenko 8de5b2beda RPM build fixes -- use RPM cflags, spec fixes, etc. 2016-06-27 09:25:34 -07:00
Adam Ierymenko b02c3dfe8d Debian dependency for iproute2 2016-06-27 08:48:09 -07:00
Adam Ierymenko c5d3895313 ZeroTier One requires /sbin/ip (RPM-based distros) 2016-06-27 08:47:09 -07:00
Grant Limberg 9f880d07ab build number change 2016-06-26 18:21:26 -07:00
Grant Limberg 3fc11e2278 misc bug fixes related to default routes 2016-06-26 18:18:59 -07:00
Grant Limberg 1756e8b0f2 Wire up checkboxes for allowGlobal, allowDefault, allowManaged to set the proper state in zerotier daemon
checkboxes are disabled if the network is not currently connected.
2016-06-26 17:33:46 -07:00
Grant Limberg d57e343245 add UI elements in network details for allowDefault, allowGlobal, allowManaged 2016-06-26 17:21:45 -07:00
Grant Limberg 7e17a2072c add allowManaged, allowGlobal, allowDefault to Network object 2016-06-26 16:41:52 -07:00
Grant Limberg 9c94d6527a add allowGlobal, allowDefault, allowManaged options to joining a network 2016-06-26 16:11:30 -07:00
Adam Ierymenko d20bcdae12 CentOS 6 Docker build. 2016-06-25 16:27:28 -07:00
Adam Ierymenko 81cd68b60d . 2016-06-25 14:07:02 -07:00
Adam Ierymenko 0582b3daba . 2016-06-25 14:06:40 -07:00
Adam Ierymenko af0a205594 Build and spec file updates for CentOS6 2016-06-25 14:04:08 -07:00
Adam Ierymenko 06e2e8119e Script to create Debian repos (requires aptly) 2016-06-24 16:23:10 -07:00
Grant Limberg 5da4fd2aef Added "..." to menu items to signify it pops up in a window 2016-06-24 15:24:29 -07:00
Grant Limberg e621058cfd build number 5 2016-06-24 15:24:03 -07:00
Adam Ierymenko 8b78f19335 More build targets. 2016-06-24 14:57:20 -07:00
Adam Ierymenko 9784393b15 More Linux Docker build farm targets. 2016-06-24 14:45:09 -07:00
Adam Ierymenko 65da797112 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2016-06-24 14:19:01 -07:00
Adam Ierymenko 75fe981b9d Bump version. 2016-06-24 14:18:28 -07:00
Adam Ierymenko caaf33e4cf Bump version. 2016-06-24 10:20:35 -07:00
Adam Ierymenko d642db6f66 Changes for Debian packaging to prep for 1.1.6 interim. 2016-06-24 10:19:41 -07:00
Adam Ierymenko 3740b83f63 Don't back up sqlite db if it hasn't changed to prevent constant thrashing on inactive controllers. 2016-06-24 06:53:23 -07:00
Adam Ierymenko 90cdef8400 Forgot NDP emulation flag. 2016-06-24 06:43:23 -07:00
Adam Ierymenko ee649ae69a Add 6plane assignment support to network controller, and cleanup. 2016-06-24 06:40:50 -07:00
Adam Ierymenko 20d155e630 . 2016-06-24 05:21:25 -07:00
Adam Ierymenko be5996daca Cleanup of 6plane stuff. 2016-06-24 04:54:05 -07:00
Adam Ierymenko 38dfebad8c IPv6 NDP emulation flag in NetworkConfig, and implement Docker-friendly
(and other host friendly) IPv6 /80 magic subnetting to allow massive
multicast-free NDP emulated IPv6 networks where each host can have a
/48 worth of IPv6 IPs for internal containers, VMs, etc.

Alan Kay, thou art avenged.

https://ivanovivan.wordpress.com/2010/09/13/alan-kay-quotes/
2016-06-23 22:41:14 -07:00
Grant Limberg f2e2632ae7 Added About view
also not yet populated
2016-06-23 20:22:03 -07:00
Grant Limberg 35d1736c97 add preferences view
not populated yet
2016-06-23 20:04:57 -07:00
Grant Limberg 3c534abc99 "Show Networks" -> "Network Details" 2016-06-23 19:48:48 -07:00
Grant Limberg c3deedd6fd Fix menu bar icon. Add app icon. 2016-06-23 19:44:00 -07:00
Adam Ierymenko a5a05e454e cli work... 2016-06-23 17:00:33 -07:00
Adam Ierymenko 32d9850263 More new CLI work. 2016-06-23 12:37:15 -07:00
Adam Ierymenko a5ea8cc5cb . 2016-06-22 17:56:36 -07:00
Adam Ierymenko 0ad6b4105a Outline of new CLI with ability to control controllers/central as well as service. 2016-06-22 17:54:07 -07:00
Grant Limberg b256111a17 misc cleanup 2016-06-21 20:02:18 -07:00
Grant Limberg b5a90a437b update build number 2016-06-21 19:45:08 -07:00
Grant Limberg 6d114b7480 dynamically generate the menu so that networks are listed
can join/leave networks directly from the menu
2016-06-21 19:44:59 -07:00
Adam Ierymenko f765597526 Add network local.conf stuff to save network permission settings and wire it all through via the JSON API. Default route and route management stuff just about done. 2016-06-21 16:52:49 -07:00
Adam Ierymenko 8ca4f22f1d cleanup 2016-06-21 15:53:38 -07:00
Adam Ierymenko 674b84d908 Plumbing for network setting control, and GitHub issue #330 2016-06-21 14:58:30 -07:00
Adam Ierymenko e2ca239be0 Comment cleanup. 2016-06-21 14:38:15 -07:00
Adam Ierymenko 4f237687ce Route management now works on Windows, including default route override! 1.1.6 very close! 2016-06-21 13:54:03 -07:00
Adam Ierymenko 5b2d2efb45 Windows builds again. And there was much rejoicing. 2016-06-21 12:55:43 -07:00
Adam Ierymenko 82473c85e0 Default route override and route management in general now works in Linux. 2016-06-21 12:32:58 -07:00
Adam Ierymenko 51ced0cf41 GitHub issue #338 2016-06-21 09:41:55 -07:00
Adam Ierymenko 6c4a444f29 GitHub issue #339 2016-06-21 09:40:53 -07:00
Adam Ierymenko 330c80f3f5 Add rule type to match a COM field of the peer by ID and value because this will be powerful. 2016-06-21 08:09:20 -07:00
Adam Ierymenko eee59ec9ce Fix Buffer<> version of Dictionary.get(). 2016-06-21 08:00:40 -07:00
Adam Ierymenko 0959d33ba0 Add a few technically unnecessary but feel-good paranoia bounds checks in Dictionary.get(). 2016-06-21 07:59:42 -07:00
Adam Ierymenko ca82715bfa Another fuzzing code fix. 2016-06-21 07:52:32 -07:00
Adam Ierymenko 0c05b2cb50 Comment cleanup and fuzzing improvements. 2016-06-21 07:49:46 -07:00
Adam Ierymenko b2d048aa0e Make Dictionary templatable so it can be used where we want a higher capacity. 2016-06-21 07:32:58 -07:00
Adam Ierymenko 3ee15e65aa Tying up default route and route mgmt loose ends. It now periodically updates shadow routes so hopefully your link will stay up as you move around. 2016-06-17 13:14:48 -07:00
Grant Limberg c8f85ffec9 Factored network updates into its own class. Delivered via notification 2016-06-16 20:53:55 -07:00
Adam Ierymenko 1bf1c38b30 Default route population works on Mac! 2016-06-16 18:23:33 -07:00
Adam Ierymenko eb4a78bcc3 Report routes in locally joined network JSON. 2016-06-16 17:40:32 -07:00
Adam Ierymenko 37afa876a7 Linux bug fixes, small controller fix. 2016-06-17 00:21:58 +00:00
Adam Ierymenko 601c51b351 Bug fix. 2016-06-16 23:18:20 +00:00
Adam Ierymenko 20d4dada40 Refactor controller for new merged format. 2016-06-16 16:05:57 -07:00
Adam Ierymenko 901b75e756 New format now integrated, and it works. 2016-06-16 15:48:58 -07:00
Adam Ierymenko bc3d7d11fe Remove netcon from dev branch. This is moving to its own new ZeroTierSDK repo for future release under the SDK name. 2016-06-16 14:50:08 -07:00
Adam Ierymenko 490d20e8fb Self test for dictionary, and fixes. 2016-06-16 14:45:36 -07:00
Adam Ierymenko 2113c21fdc devicemap now works again in OSXEthernetTap 2016-06-16 14:09:09 -07:00
Adam Ierymenko e09c1a1c11 Big refactor mostly builds. We now have a uniform backward compatible netconf. 2016-06-16 12:28:43 -07:00
Adam Ierymenko b104bb4762 New super-packed dictionary -- we are going back to a backward compatibile format with the old netconf but in an embedded-friendly way. This is simpler. 2016-06-15 18:47:35 -07:00
Adam Ierymenko f41ea24e97 Build fixes. 2016-06-16 00:11:46 +00:00
Adam Ierymenko 3c655a4b84 Default route ready to test on Mac. 2016-06-15 15:46:57 -07:00
Adam Ierymenko b90e66f7c7 ManagedRoute, which applies C++ RAII to injected routes. Move RoutingTable to attic. 2016-06-15 15:02:40 -07:00
Grant Limberg bae0060552 add a timer to retrieve the network list every second. 2016-06-14 19:59:45 -07:00
Grant Limberg c8750e5812 more error checking when parsing JSON for network list
remove "multicastSubscriptions" field as it isn't used anyway
2016-06-14 18:09:30 -07:00
Adam Ierymenko 4446dbde5e Big refactor in service code to prep for plumbing through route management. 2016-06-14 10:09:26 -07:00
Grant Limberg 89cb0e260a Set deployment target to 10.10 for the minimum OS X version for this app
I'm currently using features only available in 10.10 or above.  We'll have to discuss this and see what can be done for OS X 10.7 through 10.9.
2016-06-13 19:58:21 -07:00
Grant Limberg 2c1a8524f0 remove unused variables 2016-06-13 19:56:43 -07:00
Grant Limberg b085329bca Base functionality complete. Can join/leave/list networks. Can disconnect from networks without removing them from the network list. 2016-06-13 19:46:54 -07:00
Adam Ierymenko 769351b30f Fix to routes config in controller API. 2016-06-13 15:58:00 -07:00
Adam Ierymenko 734cbb2f1e Controller modifications for default route are ready to test. Will require slight changes in ZeroTier Central when it goes live. 2016-06-10 15:58:35 -07:00
Adam Ierymenko acbe8ad398 More controller work, and some RedHat fixes. 2016-06-10 08:26:27 -07:00
Grant Limberg 188f8021f8 Joining/Deleting networks now implemented.
Still need to implement known networks cache so we can join/leave networks without deleting them from the UI
2016-06-09 19:59:05 -07:00
Adam Ierymenko 9898066b47 Remove some deprecated stuff in controller -- not done yet. 2016-06-09 11:02:42 -07:00
Adam Ierymenko 82635ce606 Add flags and metric to ZT-managed routes. 2016-06-09 09:43:09 -07:00
Adam Ierymenko 8c7433a525 . 2016-06-08 17:45:25 -07:00
Adam Ierymenko 56ef9e0643 Add rpm target. 2016-06-08 16:29:30 -07:00
Adam Ierymenko e6328dfe82 Add RPM spec conditionals to include json-parser or bundle it depending on whether we are fedora or rhel/centos/epel. 2016-06-08 16:19:38 -07:00
Adam Ierymenko 3a48e3781b bundle miniupnpc for now... might change later. 2016-06-08 15:37:37 -07:00
Adam Ierymenko f9056da6be rpmbuild -ba zerotier-one.spec basically works 2016-06-08 15:33:59 -07:00
Adam Ierymenko 536feb632c Support yet another old version of http-parser for CentOS/EPEL. 2016-06-08 15:09:09 -07:00
Adam Ierymenko cafa41ba4d RedHat stuff and cleanup. 2016-06-08 14:46:42 -07:00
Adam Ierymenko 196d96cfa7 Fix ronn convert problem in man page. 2016-06-08 14:08:56 -07:00
Adam Ierymenko 4e6f95e152 Build man pages with ruby-ronn on Debian. 2016-06-08 14:06:19 -07:00
Adam Ierymenko de9fa6a334 All three init systems now covered in debian. 2016-06-08 13:30:29 -07:00
Adam Ierymenko abd7071eaa systemd stuff for debian 2016-06-08 13:19:08 -07:00
Adam Ierymenko 7e68791bee Fix include for system json-parser. 2016-06-08 12:57:22 -07:00
Adam Ierymenko 6c6b18d003 Fix include for system lz4. 2016-06-08 12:50:56 -07:00
Adam Ierymenko 4da9d4e53a Fix build against Debian version of libhttp-parser -- its old but it will work. 2016-06-08 12:49:07 -07:00
Adam Ierymenko 0ca764968a Remove warnings, more Debian stuff, remove obsolete ui/ stuff. 2016-06-08 11:21:01 -07:00
Adam Ierymenko 62b64d39ab Minimal debian is working. 2016-06-08 10:30:54 -07:00
Adam Ierymenko ae87fbf8e3 make install installs man pages 2016-06-08 10:19:46 -07:00
Adam Ierymenko 2e890580fc Stop shipping pre-build man pages since it violates Debian arcane rule #134931e+26 and add manpages build target. 2016-06-08 10:13:31 -07:00
Adam Ierymenko afda5e684b Make install/uninstall for Linux 2016-06-07 17:11:09 -07:00
Adam Ierymenko 9161eebc68 Carry virtual network routes through to API. 2016-06-07 12:15:19 -07:00
Adam Ierymenko 683254a0db Don't bother signing if we are not using the legacy netconf. 2016-06-07 11:17:38 -07:00
Adam Ierymenko 2885aea65c Only send new format netconf for PV>=6 2016-06-07 11:13:18 -07:00
Adam Ierymenko 523ea68ae2 Increment protocol version to indicate support for binary network config and config request meta-data. 2016-06-07 11:08:36 -07:00
Adam Ierymenko ca88e1f1cf fix size 2016-06-07 10:47:22 -07:00
Adam Ierymenko be37d025b8 Make flags 64-bit in both network request and config. 2016-06-07 10:46:29 -07:00
Adam Ierymenko 4342b71d7a Upgrade miniupnpc to 2.0 2016-06-02 17:04:15 -07:00
Adam Ierymenko f20602a7b1 docs 2016-06-02 15:57:18 -07:00
Adam Ierymenko f311b4111b docs 2016-06-02 15:56:58 -07:00
Adam Ierymenko 61d6ada88d . 2016-06-02 15:26:00 -07:00
Adam Ierymenko 506c74270c Stash old Linux binary installer stuff in attic. This is going away. 2016-06-02 15:20:43 -07:00
Adam Ierymenko 4d13ddd48c GPG public key for signing GitHub releases, etc. 2016-06-02 15:04:56 -07:00
Adam Ierymenko cc89290eb6 last man page! 2016-06-02 14:50:38 -07:00
Adam Ierymenko 5bce3e37ee clean doc node_modules on clean 2016-06-02 13:58:34 -07:00
Adam Ierymenko 6671d5553b More man pages. 2016-06-02 13:56:24 -07:00
Adam Ierymenko 41b3b54bf8 man stuff 2016-06-02 13:04:46 -07:00
Adam Ierymenko 096db53822 Switch manual pages to "ronn," a program that converts MarkDown to roff man pages, and pre-build them. Also have the zerotier-cli(1) man page ready to go! 2016-06-02 12:33:28 -07:00
Adam Ierymenko f9148bf9cb Finally json-parser. Skip miniupnpc since some Linux distros (even newer ones) ship with an old unsafe crummy version. 2016-06-01 22:26:58 -07:00
Adam Ierymenko a880f93166 also libnatpmp 2016-06-01 22:06:43 -07:00
Adam Ierymenko fd81a7fe63 On Linux auto-detect presence of http-parser and lz4 and link against system libs instead of ext/ builtins (for RPM and DEB packaging effort) 2016-06-01 21:55:48 -07:00
Adam Ierymenko 65b7893a8a add full docs to ext/json-parser (no upgrade available) 2016-06-01 18:51:22 -07:00
Adam Ierymenko 597dee40fd upgrade ext/http-parser 2016-06-01 18:49:36 -07:00
Grant Limberg 975bcb8aff some OS X Authentication Services wizardry to get /Library/Application Support/ZeroTier/One/authtoken.secret and copy it to ~/Library/Application Support/ZeroTier/One/authtoken.secret 2016-05-31 17:23:11 -07:00
Grant Limberg 51e74f8d4f remove some extra logging 2016-05-31 15:01:42 -07:00
Grant Limberg b4f3dfc347 look up authtoken in user's app support directory 2016-05-31 13:50:43 -07:00
Adam Ierymenko 2c995f1f91 IPv6 links are unfortunately not "reliable." Many IPv6 gateways, while not
implementing NAT, do implement stateful firewalling with absurdly short
timeouts (<60s). Keepalives are still required in IPv6.

Network engineers continue to mindlessly carry forward cruft and baggage
from IPv4 to IPv6.
2016-05-31 10:30:00 -07:00
Grant Limberg 41328eef94 . 2016-05-27 15:25:32 -07:00
Grant Limberg 59cf2ea341 add proper border around the network list 2016-05-27 15:21:23 -07:00
Grant Limberg 67d472424d make the view show up light instead of dark 2016-05-27 15:07:20 -07:00
Grant Limberg 1d27adb102 Finished wiring up the view 2016-05-27 13:48:22 -07:00
Grant Limberg 940c0f2b93 WIP. Mac UI 2016-05-27 13:28:32 -07:00
Adam Ierymenko 68d950c344 Hack in zerotier-idtool to allow generation of vanity addresses. 2016-05-26 09:26:03 -07:00
Grant Limberg d5620288d5 Parse JSON network list into Network objects for the view 2016-05-17 19:41:54 -07:00
Grant Limberg da30d2898e beginning of communicating with the zero tier service 2016-05-16 19:58:24 -07:00
Grant Limberg 40198d6c13 call super functions on a few overrides 2016-05-16 19:25:20 -07:00
Grant Limberg 4653ebc97f add table view to show networks view 2016-05-16 19:08:00 -07:00
Adam Ierymenko 0bcc7d46a3 Disable debug code. 2016-05-16 18:39:34 -07:00
Adam Ierymenko 93b673043c Fix new binary meta-data deserialization and add some debug code (will disable later). 2016-05-16 18:37:37 -07:00
Grant Limberg acd6978a30 set the combo box to use a data source and remember the last 20 networks input 2016-05-16 18:26:33 -07:00
Grant Limberg ccbd6f97cd remove some mistakenly committed files and add .gitignore for Xcode projects 2016-05-16 18:02:26 -07:00
Grant Limberg b4a8057994 limit the join network combobox to hex characters.
Join only clickable when a valid network is entered
2016-05-16 17:51:14 -07:00
Grant Limberg 225c2b095b Initial start of the menu bar app.
Has menu items to join/leave networks which currently displays an empty popover from the icon (icon needs to be made still)
2016-05-14 15:42:45 -07:00
Grant Limberg 0582338015 Initial Commit 2016-05-14 13:54:49 -07:00
Grant Limberg de1b745988 comment out a few TRACE messages that don't compile 2016-05-14 13:29:31 -07:00
Grant Limberg efdbd6326f compiling with C++11 requires a space between string literals 2016-05-14 13:25:40 -07:00
Adam Ierymenko 25c3d3a452 cleanup 2016-05-11 13:24:55 -07:00
Adam Ierymenko 548730660b Ready to test whole new netconf refactor. 2016-05-11 10:19:14 -07:00
Adam Ierymenko 7ee3743c3d Refactor controller to send both old and new format netconf. 2016-05-11 08:49:15 -07:00
Adam Ierymenko 37b89b3944 Add TCP relative sequence number criterion for documentation/posterity. 2016-05-09 17:00:17 -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 529515d1d1 Changes to how new-style binary network configs are detected, and a new-style binary serialized meta-data representation. 2016-05-06 13:29:10 -07:00
Adam Ierymenko 69d0562e2c docs 2016-05-06 11:41:11 -07:00
Adam Ierymenko 7913fa7bbd Dead code removal. 2016-05-06 11:13:34 -07:00
Adam Ierymenko b543868351 Missing deserialize stuff. 2016-05-06 11:00:19 -07:00
Adam Ierymenko 0f17077b3d Merge gateways and routes in netconf since they are the same thing. 2016-05-06 10:57:53 -07:00
Adam Ierymenko 9da8bf37d7 docs 2016-04-28 21:31:10 +02:00
Adam Ierymenko e5cc487b95 Beginning of security doc and kill some obsolete defines in main include file. 2016-04-28 14:58:16 +02:00
Adam Ierymenko 726136beda Ifdef fix. 2016-04-27 09:30:34 +02:00
Adam Ierymenko 59eb09d063 Deserialize new style netconf. 2016-04-26 17:20:31 -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 25a5275921 . 2016-04-26 08:53:49 -07:00
Adam Ierymenko e731fc1a3a Replace two bools in NetworkConfig with a flags field. 2016-04-26 08:40:26 -07:00
Adam Ierymenko 90e1262a8b More refactoring to remove old Dictionary dependencies. 2016-04-26 08:20:03 -07:00
Adam Ierymenko 246f86dad3 Define an "anchor" as a statically defined device that serves as a network lookup point. 2016-04-26 07:56:41 -07:00
Adam Ierymenko d736074301 Refactor rules table in-memory structure in new NetworkConfig to permit far more rules with better space efficiency. 2016-04-22 15:40:53 -07:00
Adam Ierymenko 368efaa2ba Kill some old debug code. 2016-04-19 12:55:48 -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 affbca74b4 Clean up Linux makefile and remove doc target from default since it requires rst2man. Add doc target to official instead. 2016-04-19 09:35:32 -07:00
Adam Ierymenko 4c455876f9 Revise peer path weighting to always prioritize cluster-optimal paths. 2016-04-19 09:22:51 -07:00
Adam Ierymenko cecfa99b7b (1) cluster members send a flag indicating that a PUSH_DIRECT_PATHS is a cluster redirect, (2) 1.1.5 uses this to avoid a bug (this bug does not exist in 1.1.4) 2016-04-18 16:44:23 -07:00
Adam Ierymenko b3cac538cc Store lat/lon too for testing and future display use. 2016-04-18 15:48:33 -07:00
Adam Ierymenko 587b1e05d1 Replace cluster-geo subprocess with in-memory loaded CSV of GeoIP data. This is faster, cheaper, more reliable. We use https://db-ip.com/ but others would work too. 2016-04-18 11:33:54 -07:00
Adam Ierymenko 02c3727ccd . 2016-04-18 10:21:38 -07:00
Adam Ierymenko af471af8ef Shrink NetworkConfig slightly. 2016-04-12 13:32:41 -07:00
Adam Ierymenko e28838805f Brace fix... 2016-04-12 13:17:16 -07:00
Adam Ierymenko 8a9762331f Fix one more old NetworkConfig bit of code. 2016-04-12 12:54:14 -07:00
Adam Ierymenko 31db6f8f36 NetworkConfig refactor almost done. 2016-04-12 12:49:46 -07:00
Adam Ierymenko ad1e83d8b9 Refactor IncomingPacket for new NetworkConfig 2016-04-12 12:32:33 -07:00
Adam Ierymenko bbd9915056 Refactor Node for new NetworkConfig 2016-04-12 12:26:10 -07:00
Adam Ierymenko 51fecc0be9 Refactor Network for new NetworkConfig. 2016-04-12 12:16:29 -07:00
Adam Ierymenko 6f854c8391 NetworkConfig refactor part 1 2016-04-12 12:11:34 -07:00
Adam Ierymenko 9b8444fff1 Merge of bignose/manual-pages (Linux man pages) 2016-04-07 12:28:43 -07:00
Adam Ierymenko 43e317f0b7 Authorship stuff. 2016-04-07 12:24:15 -07:00
Adam Ierymenko 0e40181d8f Merge branch 'license-clarification' into dev 2016-04-07 12:18:46 -07:00
Adam Ierymenko 63b62ebf4c Boost local interface check interval a bit to speed direct link provisioning on startup. 2016-04-07 12:13:18 -07:00
Adam Ierymenko 569de22481 Make port mapper names even more unique, and trial bind before binding TCP now which should work on Linux and others. 2016-04-07 09:51:14 -07:00
Adam Ierymenko 9085a04b16 Merge branch 'dev' of http://git.int.zerotier.com:/zerotier/ZeroTierOne into dev 2016-04-07 16:41:28 +00:00
Adam Ierymenko c7df61a3c3 dev branch now works again on Linux 2016-04-07 16:41:07 +00:00
Adam Ierymenko c278f05181 RoutingTable build fixes. 2016-04-06 17:29:38 -07:00
Adam Ierymenko 61a9c27af0 Consolidate routing table code. 2016-04-06 17:14:05 -07:00
Adam Ierymenko e9b2613d5f Put routing table code back in osdep/ 2016-04-06 16:57:37 -07:00
Adam Ierymenko 24469a7f43 . 2016-04-06 16:47:11 -07:00
Adam Ierymenko 56096be8b6 Tweak new RX queue algorithm to "expire" old entries to prevent always needing to traverse the whole queue array. 2016-04-06 16:28:40 -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 504738b183 Binder for Windows, and use Binder to get local interface addresses to advertise. 2016-04-05 15:53:19 -07:00
Adam Ierymenko 32cd2a02c9 OneService now binds all ports to specific local interfaces instead of wildcard and rebinds on changes. (default route) 2016-04-05 15:44:08 -07:00
Adam Ierymenko 4a109658ab More refactoring and prep for explicit interface bindings (for default route support). 2016-04-05 11:59:46 -07:00
Adam Ierymenko 52d9612301 Reduce symmetric prediction fuzz just a bit. 2016-04-05 10:49:14 -07:00
Adam Ierymenko d8b89b0c86 Fix Cluster to send from a designated endpoint address instead of wildcard. 2016-04-05 10:47:13 -07:00
Adam Ierymenko e0ad854d19 Beginning of local binding manager for default gateway support. 2016-04-04 18:46:41 -07:00
Adam Ierymenko 0e26917c72 Tweak metric and clean out attic a bit. 2016-04-01 11:07:44 -07:00
Adam Ierymenko 3df60995e1 nit pick... might this matter? 2016-03-30 16:49:21 -07:00
Adam Ierymenko 1a5e7cb0cb More tweaks to OS determination stuff. 2016-03-28 12:26:49 -07:00
Adam Ierymenko 8035afae87 Try to define ZT_NO_TYPE_PUNNING on iOS in case it wasn't. 2016-03-28 12:22:05 -07:00
Adam Ierymenko 284e5d83b5 Fix some broken TRACEs and a tiny reorder in a few ifs. 2016-03-28 12:15:24 -07:00
Adam Ierymenko 2b3e1d5c10 Ignore IP assignment pool ranges that begin with 0.0.0.0 or that contain no IPs. 2016-03-24 13:34:01 -07:00
Adam Ierymenko 2c328d61ad Do not auto-assign IP addresses on bridges. IPs can still be assigned manually. 2016-03-24 13:32:01 -07:00
Adam Ierymenko 76f9b4c582 A few other little formatting things. 2016-03-18 15:06:45 -07:00
Adam Ierymenko c589bc4c57 Indentation 2016-03-18 14:32:48 -07:00
Adam Ierymenko d6a1868d0a Refactor incoming packet (rxQueue/fragmentQueue) to eliminate variable length queues and merge queues. This is both faster and saves memory. 2016-03-18 14:16:07 -07:00
Adam Ierymenko 9f31cbd8b8 Make /network/???/active return more info. 2016-03-17 13:05:51 -07:00
Ben Finney c0262d8f76 Add “doc” to the dependencies for the “all” build target. 2016-03-04 17:01:31 +11:00
Ben Finney 92702615a7 Add an overall “doc” build target. 2016-03-04 17:01:14 +11:00
Ben Finney c9d3f3ab96 Correct license grant to match “GPL v3 or later” grant in source. 2016-03-04 16:45:15 +11:00
Ben Finney 72797c25d5 Update copyright notice. 2016-03-04 16:44:23 +11:00
Ben Finney ea6ce47345 Refactor the program name to a pre-processor directive. 2016-03-04 16:42:30 +11:00
Ben Finney 10855b451d Refactor the copyright notice text to a pre-processor directive. 2016-03-04 16:40:09 +11:00
Ben Finney 3265b3594b Refactor the license grant text to a pre-processor directive. 2016-03-04 16:37:36 +11:00
Ben Finney cafc46a8e9 Add Makefile module for building documentation. 2016-03-04 16:06:17 +11:00
Ben Finney 5993b178c5 Ignore generated man page files. 2016-03-04 16:05:55 +11:00
Ben Finney 24e286b5ec Add a stub for an encoding declaration on a man page. 2016-03-04 16:04:57 +11:00
Ben Finney c63de27633 Add references to other tools for ‘zerotier-one’. 2016-03-04 15:41:06 +11:00
Ben Finney a84a256df4 Add incomplete man pages for ‘zerotier-idtool’ and ‘zerotier-cli’. 2016-03-04 15:40:08 +11:00
Ben Finney 88dfa860f4 Document how the home directory is used, and its default value. 2016-03-04 15:08:17 +11:00
Ben Finney 83bc5d95aa Document remaining options explicitly. 2016-03-04 14:57:10 +11:00
Ben Finney 09c61d5cb1 More explicit specification of how to use ‘-i’ and ‘-q’. 2016-03-04 14:53:50 +11:00
Ben Finney 71c84aee60 Add “see also” section referring to ZeroTier documentation online. 2016-03-04 11:36:19 +11:00
Ben Finney cee09b0d2e Refine description of ZeroTier One. 2016-03-04 11:36:04 +11:00
Ben Finney fdb8ea93ef Add a reStructuredText document for a ‘zerotier-one(8)’ man page. 2016-03-04 11:35:16 +11:00
Adam Ierymenko 60ab565185 Fix cluster-geo code to cache IPv6 by first 64 bits to prevent cache fillup due to IPv6 privacy extensions. 2016-03-03 15:33:38 -08:00
Adam Ierymenko 1fe251d0a0 stupid bug is stupid 2016-03-03 14:50:47 -08:00
Adam Ierymenko ff931e53b5 more makefile stuff 2016-03-03 14:31:43 -08:00
Adam Ierymenko ef376a7919 Linux make clean fix. 2016-03-03 14:24:52 -08:00
Adam Ierymenko 09fc9e4d0c indent fix 2016-03-03 14:21:13 -08:00
Adam Ierymenko fe3a84a422 Fix problems with previous commit. 2016-03-03 14:15:09 -08:00
Adam Ierymenko ba56a5b9d1 Another NAT-t improvement:
Many NATs revert to symmetric behavior from friendlier modes if they cannot
preserve ports. This can occur if there is, for example, more than one ZT
device behind the NAT using port 9993.

Others (Airport Extreme?) seem to have bugs in which they completely freak
out if more than one device tries to do a lot of mappings using the same
internal local port.

Mostly to fix the latter case and somewhat to fix the former, we introduce
a secondary port. ZeroTier now binds 9993 (or whatever port you specify)
plus another port computed deterministically from your ZeroTier address.
This port is used for new links 1/4 of the time.

This mostly addresses the second problem above and partly helps to address
the first.

If uPnP/NAT-PMP is enabled we also still open a tertiary port because some
routers freak out if NAT-t is attempted using the same port as uPnP.

All of this is IPv4 only of course. IPv6 is sane.
2016-03-03 13:52:27 -08:00
Adam Ierymenko a27d8b2910 Windows cleanup. 2016-03-02 19:20:04 -08:00
Adam Ierymenko b6f6ed35fc More Windows tweaks and a compile fix. 2016-03-02 19:06:29 -08:00
Adam Ierymenko d3cb063d13 Tweaks to WindowsEthernetTap to attempt to address GitHub issue #308 and/or GitHub issue #277 -- we can't reproduce yet but I found one area where a spin was possible under certain failure conditions. Maybe. 2016-03-02 18:37:24 -08:00
Ben Finney b9125e4256 Document myself as a contributor. 2016-03-02 10:38:30 +11:00
Adam Ierymenko 0aae86be2e Merge branch 'dev' of https://github.com/krisek/ZeroTierOne into dev 2016-03-01 12:29:29 -08:00
Adam Ierymenko d9fa07399e Fix GitHub issue #311 2016-03-01 09:49:33 -08:00
Ben Finney d570adf021 State grant of license in each third-party component. 2016-02-29 18:11:54 +11:00
Ben Finney dcb91c043f State which exact files constitute third-party works. 2016-02-29 18:04:20 +11:00
Ben Finney f613930dee Explicitly mark home page URLs of third-party code. 2016-02-29 18:03:16 +11:00
Ben Finney 667048310d Remove text that paraphrases GPLv3 conditions. 2016-02-29 17:44:47 +11:00
Ben Finney 642aa3313d Explicitly grant GPLv3-or-later terms to the overall code base. 2016-02-29 17:44:47 +11:00
Ben Finney f6e98df8da Refer directly to the accompanying GPL-3 license document. 2016-02-29 17:44:47 +11:00
Ben Finney d37e44225f Add explicit copyright statement in same file as license grant. 2016-02-29 17:44:47 +11:00
Ben Finney 5c172d1a15 Rename file that is not a license text. 2016-02-29 17:44:10 +11:00
Ben Finney 0bf2060a7d Add verbatim text of GNU General Public License version 2. 2016-02-29 15:16:19 +11:00
Ben Finney 22883b3eeb Add verbatim text of GNU General Public License version 3. 2016-02-29 15:13:37 +11:00
Kristof Imre Szabo 6d1dc47368 Typo fix. 2016-02-28 17:06:46 +01:00
Kristof Imre Szabo f8d05eb625 Spec description rephrased. 2016-02-28 17:05:43 +01:00
Kristof Imre Szabo 45c233c0e7 Formatting change 2016-02-28 00:04:18 +01:00
Kristof Imre Szabo b836228465 Formatting change 2016-02-28 00:02:48 +01:00
Kristof Imre Szabo 8118630861 Formatting change 2016-02-28 00:00:55 +01:00
Kristof Imre Szabo bf3e31ece7 Initial commit of the standard zerotier RPM specification 2016-02-27 23:55:14 +01:00
Adam Ierymenko f217ce7ff7 Upgrade http-parser. 2016-02-25 18:13:42 -08:00
Adam Ierymenko 039790cf26 Upgrade LZ4 to hopefully fix wacky sporadic crash when built with g++ 5.3.1 on Debian/testing. 2016-02-25 15:39:15 -08:00
Adam Ierymenko e5f82f5457 cleanup 2016-02-25 10:08:30 -08:00
Adam Ierymenko a5e4e3fcac Remove ui/ on Linux uninstall. 2016-02-24 17:24:36 -08:00
Adam Ierymenko 3fe60615df Make installers silent when run inside packages. 2016-02-24 15:23:49 -08:00
Adam Ierymenko 7b5c1696eb Fix a CIRCUIT_TEST bug in forwarding of tests along hop paths on private networks. Unfortunately this means full circuit testing for private nets will need an upgrade. :( 2016-02-23 14:56:51 -08:00
Adam Ierymenko c7c61b4ac0 Fix checking of path address validity. 2016-02-22 16:01:35 -08:00
Adam Ierymenko 92f24d1988 Make maximum size of a circuit test structure sane. 2016-02-22 15:54:18 -08:00
Adam Ierymenko 9b59bcd995 Clean controller circuit test memory. 2016-02-22 15:48:27 -08:00
Adam Ierymenko 43fff1a87e Deprecate reporting of local clock in circuit tests since a small number of users might have security problems with this. 2016-02-22 12:59:26 -08:00
Adam Ierymenko 2aa7138373 Reduce direct ping delay back to 1m and make SelfAwareness aware of local received-on address to eliminate false symmetric classification. 2016-02-22 09:47:50 -08:00
Adam Ierymenko 69a438d64d Small tweak to active threshold. 2016-02-19 09:10:31 -08:00
Adam Ierymenko 772551c45d Try +1 and +2 existing surfaces for symmetric NATs. 2016-02-11 10:39:39 -08:00
Adam Ierymenko 0c951b6e56 More tweaks to new symmetric NAT buster, and stop using old iterative method since this supersedes it. 2016-02-10 18:41:39 -08:00
Adam Ierymenko eadafd8de7 Little fix to NAT-t alg 2016-02-10 17:51:42 -08:00
Adam Ierymenko f9230eb970 Widen max delta for TS/revision just a bit more for now. 2016-02-10 16:18:45 -08:00
Adam Ierymenko 82348e1537 Temporarily blacklist he.net IPv6 tunnel addresses for paths: these usually have a very low MTU which causes packet loss and other issues. 2016-02-10 11:06:26 -08:00
Adam Ierymenko 10bb9919f1 Tweak certificate of membership revision/time tolerance to eliminate boundary packet loss issues occasionally seen in the wild. 2016-02-10 09:32:42 -08:00
Adam Ierymenko 4769dacf61 Tweak needsOurMembershipCertificate timing to resolve a possible source of occasional dropped packets. 2016-02-09 16:54:47 -08:00
Adam Ierymenko 63ec7e58d4 Make activity no longer a function of ping frequency, since this causes compatibility bugs when the latter was modified due to timer interactions with other versions. 2016-02-08 10:03:01 -08:00
Adam Ierymenko a963810e02 Tweak a few cluster params for higher perf / lower initial setup latency. 2016-02-08 09:57:46 -08:00
Adam Ierymenko 69b1da2e1d return 200 instead of 404 when test is fetched 2016-02-04 16:27:25 -08:00
Adam Ierymenko dc3d899e70 Return test ID when we post a test. 2016-02-04 16:09:26 -08:00
Adam Ierymenko 78c1d9006a flood protection fix 2016-02-04 14:39:43 -08:00
Adam Ierymenko 5dad73647d Lengthen backup period again 2016-02-04 14:22:54 -08:00
Adam Ierymenko 13b39a0c3e SQLite perf tuning 2016-02-04 14:03:37 -08:00
Adam Ierymenko 90801a94d3 Track client version and tell whether active nodes support circuit test. 2016-02-04 13:38:42 -08:00
Adam Ierymenko fab6f4450d /active subpath off networks 2016-02-04 12:17:55 -08:00
Adam Ierymenko 2e04dc03f2 Logging to NodeHistory, SQL queries. 2016-02-03 18:10:56 -08:00
Adam Ierymenko f8eb6b0067 Add NodeHistory table on sqlite controller. 2016-02-03 13:56:35 -08:00
Adam Ierymenko 7a63fdc447 Fix for GitHub issue #298 and hopefully #297 2016-02-01 14:41:54 -08:00
Adam Ierymenko 4655a59912 typo 2016-01-28 17:59:31 -08:00
Adam Ierymenko c0668dcdf2 Merge branch 'edge' into dev 2016-01-26 14:20:25 -08:00
Adam Ierymenko 9cb4bbe2b8 Save test results for circuit tests in memory and then cancel the test and send the results when the test is queried later. This way you can POST a test and then come GET the result at the appointed time. 2016-01-26 12:42:44 -08:00
Joseph Henry 95d28494f6 Mac OSX Port - Lightly tested 2016-01-25 12:55:29 -08:00
Grant Limberg 67f678d60a Merge branch 'master' into dev 2016-01-22 18:07:20 -08:00
Grant Limberg 3993dfa2a5 Fix JNI for API changes in 1.1.4 2016-01-22 18:06:58 -08:00
Adam Ierymenko 935f00ad4c Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2016-01-21 16:03:14 -08:00
Adam Ierymenko bafdb54752 New dev version: 1.1.5 2016-01-21 16:02:16 -08:00
Adam Ierymenko 7526ed705c Check for /dev/tun as well as /dev/net/tun since some Linux devices put it there. 2016-01-21 16:01:24 -08:00
Joseph Henry bccd60125b Added python, python3, darkhttpd unit tests 2016-01-21 15:52:54 -08:00
Joseph Henry 7127d2b811 Updated unit tests + README 2016-01-21 15:10:26 -08:00
Adam Ierymenko 9cc2733ed8 VERSION 1.1.4: Improved path detection, improved anti-recursion code, and Network Containers BETA
ZeroTier One version 1.1.4 has several improvements to path stability and
path learning logic. It also contains the BETA version of Network Containers!

See netcon/README.md and https://www.zerotier.com/product-netcon.shtml for more
information.

Improvements in 1.1.4:

 - Paths are now confirmed more aggressively on inactivity. This version can
   usually detect a dead direct path in under 10 seconds vs 1-2 minutes in
   previous versions.
 - Logic to prevent recursion has been overhauled. The old versions had code
   that explicitly checked packet contents (AntiRecursion.hpp). This is now
   gone in favor of a function that checks IP addresses of ZeroTier devices
   when paths are learned or probed. This is both more efficient and less
   prone to edge case failures. Testing in several complex environments has
   shown that this eliminates a few edge cases where inappropriate paths would
   be used.
2016-01-20 18:10:40 -08:00
Adam Ierymenko 3b10fd7557 Windows build fixes. 2016-01-20 18:06:20 -08:00
Adam Ierymenko f782797dc7 readme 2016-01-20 17:44:17 -08:00
Adam Ierymenko 227b8bfbf6 Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2016-01-20 16:59:59 -08:00
Adam Ierymenko 385770dcc8 1.1.4 bump 2016-01-20 16:59:54 -08:00
Janjaap Bos 4f6ca14d4f typo 2016-01-20 16:52:46 -08:00
Janjaap Bos c3fc5340b6 Added check for identiy
Needed if you just copy & paste the whole block.
2016-01-20 16:43:37 -08:00
Adam Ierymenko 4f30b06930 Merge branch 'dev' into edge 2016-01-20 16:28:14 -08:00
Joseph Henry 398e0b7c63 Removed debug line 2016-01-20 15:04:02 -08:00
Joseph Henry b7b014298b Bad connection reference fix + RX lock fix 2016-01-20 14:43:49 -08:00
Joseph Henry bcaf42e075 Transfer speed increate + stability fixes 2016-01-20 13:38:14 -08:00
Joseph Henry 357cb92f2e Stability fix + introduction of connection probation 2016-01-18 23:41:28 -08:00
Joseph Henry 31ed86740c Added some safety + unregister callbacks on close 2016-01-18 16:04:29 -08:00
Joseph Henry f2cc144811 Fixed nc_sent possible bad ptr on close issue 2016-01-18 12:26:40 -08:00
Joseph Henry 1783867f96 Print path for user. Removed unused stub Phy methods 2016-01-17 15:13:32 -08:00
Joseph Henry a73638b214 Fixed memory leak 2016-01-17 14:32:34 -08:00
Grant Limberg bd1884e48f yay more icons 2016-01-15 18:39:16 -08:00
Grant Limberg 5cd20c0009 Adding app icons for iOS 2016-01-15 18:22:53 -08:00
Joseph Henry 58ebfdffcb Debugs off by default 2016-01-15 13:03:37 -08:00
Joseph Henry 1e2c434ae8 nc_recved() connection closure change 2016-01-15 13:02:48 -08:00
Joseph Henry 7107297c25 Merge branch 'edge' of http://10.6.6.2/zerotier/zerotierone into edge 2016-01-15 11:19:25 -08:00
Joseph Henry 35fb602dff Fixed pcb->state == CLOSE_WAIT bug 2016-01-15 11:18:26 -08:00
Adam Ierymenko 8af3d35234 Merge branch 'dev' into edge 2016-01-15 11:18:23 -08:00
Joseph Henry 323d40a560 Small formatting changes 2016-01-15 10:27:27 -08:00
Joseph Henry 321bca4bf7 Adjusted formatting/conventions to conform to rest of ZT codebase 2016-01-15 10:09:31 -08:00
Joseph Henry 7cb08630d0 Fixed RX race condition 2016-01-14 18:59:08 -08:00
Joseph Henry 45f0737a00 Naming convention update 2016-01-14 14:15:50 -08:00
Joseph Henry 6cf478c1b2 RX buffer update 2016-01-14 14:03:03 -08:00
Joseph Henry f52a82d9f2 Updated RX buffer code 2016-01-14 13:23:01 -08:00
Grant Limberg 6dac0c8c4f C doesn't support default arguments 2016-01-13 17:47:34 -08:00
Joseph Henry 5e30eabd30 Updated getsockopt/setsockopt, removed unused code 2016-01-13 15:52:15 -08:00
Joseph Henry 7bba867ce8 Fixed double-close bug 2016-01-13 13:55:11 -08:00
Adam Ierymenko e8e6a4702b Merge branch 'dev' into edge 2016-01-13 13:15:47 -08:00
Joseph Henry c3e2cb9b8e Modified PCB/state management logic 2016-01-13 12:19:48 -08: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
Joseph Henry bdabe40c65 Updated error reporting for sock_fd_read() 2016-01-12 14:25:30 -08:00
Adam Ierymenko 7991a7c50a Merge branch 'dev' into edge 2016-01-12 14:05:40 -08:00
Adam Ierymenko 4e4fd51117 boring doc stuff 2016-01-12 14:04:55 -08:00
Joseph Henry e91322bd10 README update and example server port change 2016-01-12 14:04:55 -08:00
Joseph Henry 23cdb3aed5 Removed ztnc network config file 2016-01-12 13:58:15 -08:00
Joseph Henry bd3d9ee356 Removed terminology changes 2016-01-12 13:55:46 -08:00
Adam Ierymenko 76f1ab33f0 Make clean rm .depend 2016-01-12 13:44:59 -08:00
Adam Ierymenko 61fd8463f8 Merge branch 'dev' into edge 2016-01-12 13:19:53 -08:00
Adam Ierymenko 3883ac08c7 Docs and cleanup. 2016-01-12 13:17:30 -08:00
Joseph Henry dd233fdb8d Updated terminology. No functional change 2016-01-12 13:00:31 -08:00
Joseph Henry 18aea2d3d3 Removed unused code 2016-01-12 12:56:51 -08:00
Joseph Henry 74e22368b5 Fixed sketchy memcpy logic, also added checks for service RPC ACK 2016-01-12 12:42:46 -08:00
Adam Ierymenko d03a63e055 Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2016-01-12 12:25:19 -08:00
Adam Ierymenko 93ab8d46b9 Merge branch 'dev' into edge 2016-01-12 12:25:15 -08:00
Adam Ierymenko 740eb6ebc4 Simplify Peer locking to eliminate deadlock with new path recursion check code (and also probably improve performance). 2016-01-12 12:12:25 -08:00
Adam Ierymenko d6f0f1a82a Use network user ptr in lookup for Ethernet frame handling to eliminate map lookup. 2016-01-12 11:34:22 -08:00
Adam Ierymenko 83ef98a9dc Add a network-associated user ptr in API. 2016-01-12 11:04:35 -08:00
Adam Ierymenko 3edfbfec93 Merge branch 'master' into dev 2016-01-12 09:50:19 -08:00
Adam Ierymenko 68c004ef68 Merge pull request #291 from JackyRen/patch-1
Update controller README.md
2016-01-12 09:49:54 -08:00
Joseph Henry e2ae9165c6 RPC update 2016-01-12 09:46:49 -08:00
Adam Ierymenko 704205c5f7 Dead code removal. 2016-01-12 09:33:14 -08:00
Ren Jie 21656ba015 Update controller README.md
Sync make parameter with code.
2016-01-12 22:51:08 +08:00
Adam Ierymenko bbcc3304a0 Check shouldUsePathForZeroTierTraffic in legacy beacon responder. 2016-01-11 15:57:58 -08:00
Adam Ierymenko c6571073fe Get rid of constructor/destructor in libzerotierintercept, and simplify a few things. 2016-01-11 15:27:22 -08:00
Adam Ierymenko ba9fcb31d0 Merge branch 'dev' into edge 2016-01-11 14:30:24 -08:00
Joseph Henry 78c0f0a443 RPC detection fix 2016-01-11 13:23:43 -08:00
Joseph Henry 7656e6b9f8 Transfer tune-up 2016-01-11 11:37:04 -08:00
Joseph Henry 39d79f34ab Added RPC ACK 2016-01-11 10:35:02 -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
Joseph Henry 3e65ecb93d Stateless RPC rework 2016-01-11 10:12:59 -08:00
Adam Ierymenko ba2a89c760 docs 2016-01-11 09:13:41 -08:00
Adam Ierymenko eea634a432 Refactor to eliminate copypasta. 2016-01-11 09:11:35 -08:00
Adam Ierymenko ab19e19f00 Fix a bug that we visually found in Windows code -- it was not advertising uPnP addresses?!? 2016-01-11 09:09:24 -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 a56fbc1929 Close another potential anti-recursion loophole. 2016-01-06 15:35:27 -08:00
Adam Ierymenko 47ce52228b Roots should probably not do this since it would likely be a waste of packets. 2016-01-06 12:54:51 -08:00
Adam Ierymenko ff9317365a Merge branch 'dev' into edge 2016-01-06 11:38:11 -08:00
Adam Ierymenko 0a3ef38cad Put old test code in attic. 2016-01-06 11:06:47 -08:00
Adam Ierymenko 9aee72099e AntiRecursion cleanup and some other minor things. 2016-01-06 10:59:39 -08:00
Adam Ierymenko 05b2c0743f Tighten up dead path detection. Should now auto-detect dead paths in less than 10 seconds at a very small cost in ECHO requests (or HELLOs for older peers). GitHib issue #272 2016-01-06 10:00:03 -08:00
Adam Ierymenko 4d94ae77b4 simplify if 2016-01-05 16:48:35 -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 cba739fd6b more dead code 2016-01-05 14:46:26 -08:00
Adam Ierymenko fb5237d5b6 Outline dead path detection mechanism. 2016-01-05 14:42:56 -08:00
Adam Ierymenko 258f95b2cd dead code removal 2016-01-05 14:19:16 -08:00
Janjaap Bos b8059d5c87 typo 2015-12-23 22:54:36 +01:00
Adam Ierymenko 66894eb473 Merge branch 'dev' into edge 2015-12-21 16:56:13 -08:00
Adam Ierymenko 61becbb7e5 . 2015-12-21 16:56:11 -08:00
Adam Ierymenko 42e453872c VERSION 1.1.2: bug fixes and NAT-PMP support
ZeroTier One version 1.1.2 is mostly a bug fix release, but also includes support
for NAT-PMP as a method of mapping external ports from behind supported routers.

Bugs fixed include:

 - Refactored path selection code to eliminate a change that might have introduced
   a reliability regression from earlier versions.
 - Reworked UPnP code for improved reliability and also added NAT-PMP support.
 - Fixed a crash on network preferred relays. (Not exploitable or security critical
   since only network controllers can send that config option and there was no
   buffer overflow or other exploitable issue.)
 - Fix GUI problem on OSX where window could be larger than screen on some Macbooks.
 - Fix a potential rate limit problem on PUSH_DIRECT_PATHS that could negatively
   impact same-network connectivity.
 - Update zerotier-cli to show preferred vs. active paths and hide inactive ones.
 - Fix an issue on shutdown with thread delete order and thread synchronization.
2015-12-21 16:48:33 -08:00
Adam Ierymenko 2f42a7c010 Windows 1.1.2 build. 2015-12-21 16:36:56 -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 16bc9533ed Fix a problem that made valgrind complain on shutdown (not otherwise an issue). 2015-12-21 15:23:14 -08:00
Adam Ierymenko 63a51e2890 Fix a small potential uninitialized variable issue. 2015-12-21 14:55:11 -08:00
Adam Ierymenko 23eaafc4eb Remove stray file that is instead found in netcon. 2015-12-21 14:01:48 -08:00
Adam Ierymenko 536b7000bc Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2015-12-21 13:15:09 -08:00
Adam Ierymenko 24cc0904fa 1.1.2 Windows build fixes, tweaks, etc. 2015-12-21 13:14:48 -08:00
Janjaap Bos 5a65463b92 typo 2015-12-21 22:11:39 +01:00
Janjaap Bos c8056452b8 fix / workaround for ubuntu
Otherwise, if started with -d as daemon, the netcon service dies after
intercept listen registers.
2015-12-21 21:20:22 +01:00
Janjaap Bos 64e273e9c0 updated netcon readme 2015-12-21 19:49:22 +01:00
Joseph Henry 6f62d6bb34 Removed straggler debug prints 2015-12-21 07:36:44 -08:00
Joseph Henry d430457f1e Updated readme, removed test network keys 2015-12-21 07:26:45 -08:00
Joseph Henry 4267cc138e Readme changes, turned off debug 2015-12-21 07:17:37 -08:00
Joseph Henry de2ba8d0f7 Fixed typo 2015-12-21 05:36:27 -08:00
Joseph Henry c488fa8461 Tightening of RPC code 2015-12-21 05:03:26 -08:00
Joseph Henry 608e059b18 single updated test file 2015-12-18 15:19:34 -08:00
Joseph Henry 81203b20b8 Merge branch 'edge' of http://10.6.6.2/zerotier/zerotierone into edge 2015-12-18 15:09:18 -08:00
Joseph Henry 91bc32fe51 Re-added keys for testing 2015-12-18 15:09:08 -08:00
Adam Ierymenko d3dacf5c2a Tiny bit of dead code cleanup. 2015-12-18 14:51:24 -08:00
Adam Ierymenko 13036a1085 . 2015-12-18 14:30:47 -08:00
Adam Ierymenko 942ab6fd95 . 2015-12-18 14:29:23 -08:00
Adam Ierymenko fd9b2e931f Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2015-12-18 14:26:37 -08:00
Adam Ierymenko 6de67e828d Fix accept4() semantics. 2015-12-18 14:26:31 -08:00
Joseph Henry 2d9f1f7857 Added install script for debugging with strace 2015-12-18 13:13:47 -08:00
Joseph Henry fde8af9483 getsockopt() tweak 2015-12-18 11:37:11 -08:00
Joseph Henry c22c0a20f6 Merge branch 'edge' of http://10.6.6.2/zerotier/zerotierone into edge 2015-12-18 10:31:24 -08:00
Joseph Henry 9063209124 getsockname() fix 2015-12-18 10:31:11 -08:00
Adam Ierymenko 61dc13a6e1 Cache query in progress to reduce redundant GeoIP2 queries. 2015-12-18 09:38:34 -08:00
Joseph Henry e3eea6fcbd RPC Reliability improvements and partial getsockname() fix 2015-12-16 18:05:47 -08:00
Adam Ierymenko 7d001458cb Update World to drop an old legacy root. 2015-12-17 11:52:05 -08:00
Adam Ierymenko 823c9979c0 Erase more debug junk. 2015-12-17 11:45:55 -08:00
Adam Ierymenko 9ebcbc94e4 Remove some stray debug stuff. 2015-12-17 11:44:48 -08:00
Adam Ierymenko aa39b0dc24 Show paths as active or preferred in listpeers. 2015-12-17 11:03:39 -08:00
Adam Ierymenko 2160164e8c (1) Get rid of path sorting and just scan them, since sorting may have been a premature optimization that introduced a regression and path instability in a few edge cases, and (2) do not attempt to contact remote paths received via PUSH_DIRECT_PATH if we already have that path and it is already active (dumb, should have done this originally) 2015-12-17 10:53:07 -08:00
Adam Ierymenko 3137f43da9 Fix for getsockname() crash and other address size issues. 2015-12-16 10:30:02 -08:00
Adam Ierymenko efc2a74df1 Some final README revs. 2015-12-16 10:07:04 -08:00
Joseph Henry 9638889614 Removed docker-test keys/config for netcon network 2015-12-16 08:33:39 -08:00
Joseph Henry 0df639f8f5 readme update 2015-12-15 16:20:31 -08:00
Joseph Henry 011ce35ede Merge branch 'edge' of http://10.6.6.2/zerotier/zerotierone into edge 2015-12-15 15:57:02 -08:00
Joseph Henry a9802eff02 readme update 2015-12-15 15:56:47 -08:00
Adam Ierymenko f9837163d3 docs 2015-12-15 15:43:07 -08:00
Adam Ierymenko 6bc93d2050 Docs, and change ZT_NC_NWID to ZT_NC_NETWORK and use full path in local ZT home dir to enable multiple instances. 2015-12-15 15:35:21 -08:00
Adam Ierymenko 37a7e9e275 Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2015-12-15 15:00:05 -08:00
Adam Ierymenko 531e5f9923 . 2015-12-15 15:00:03 -08:00
Joseph Henry 617845a7da readme and makefile updates 2015-12-15 14:59:17 -08:00
Joseph Henry 9dc59eff76 Cleaned up, tests updated, readme updated 2015-12-15 14:50:54 -08:00
Adam Ierymenko a6c5596782 Patch controller to not send relays to 1.1.0 to avoid triggering 1.1.0 network preferred relays bug. 2015-12-15 10:53:15 -08:00
Adam Ierymenko 022d3857cc Fix should use ECHO check. 2015-12-15 10:37:32 -08:00
Adam Ierymenko 82aa3f59d6 Fix bug in ECHO handling (OK was invalid!), and use ECHO on newer peers for path confirmation. Also get rid of path confirmation circuit breaker since this causes issues with some peers and should be done more intelligently anyway. 2015-12-15 10:30:40 -08:00
Adam Ierymenko 04d6b03733 Make auto backups slightly less frequent. 2015-12-15 09:22:10 -08:00
Adam Ierymenko 3b22ecc80c Make hex device address in UPnP name the right length. 2015-12-14 17:35:45 -08:00
Adam Ierymenko 53fe576028 Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2015-12-14 17:04:36 -08:00
Adam Ierymenko f6dc99f345 Old NYC is dead. 2015-12-14 17:04:27 -08:00
Adam Ierymenko c0df1169ee Remove unimplemented SET_EPHEMERAL_KEY for now. 2015-12-14 14:53:43 -08:00
Joseph Henry b92884a0ad Merge branch 'edge' of http://10.6.6.2/zerotier/zerotierone into edge 2015-12-14 14:45:40 -08:00
Joseph Henry a421e31dd5 send_cmd() retrun value bugfix + minor debug changes 2015-12-14 14:45:25 -08:00
Adam Ierymenko 7b1c0c4013 Cache null results from Maxmind. 2015-12-14 14:40:00 -08:00
Joseph Henry f558b088e6 Library functions are now static, RPC return value tuning, and cleanup 2015-12-14 09:06:58 -08:00
Joseph Henry 99afc74021 FDs transferred over listen socket + other fixes 2015-12-12 01:28:59 -08:00
Joseph Henry 761bb4fdd0 Stability fix 2015-12-11 12:19:54 -08:00
Joseph Henry 663a336b83 RPC cleanup + Temporary timing fix 2015-12-10 09:24:56 -08:00
Adam Ierymenko e506fda3e4 Only set SO_NO_CHECK on IPv4 UDP sockets for now due to broken V6 stacks that drop zero checksum UDP packets. 2015-12-09 15:02:42 -08:00
Joseph Henry 42da36ba81 Fixed addrlen assignment in getsockname() 2015-12-09 12:22:08 -08:00
Joseph Henry a730c86907 getsockname() implemented 2015-12-09 12:20:38 -08:00
Adam Ierymenko b8cba90d85 . 2015-12-09 09:01:09 -08:00
Adam Ierymenko 9090edebb0 . 2015-12-08 18:17:03 -08:00
Adam Ierymenko 49d76c6311 Stub out getsockname() 2015-12-08 18:07:46 -08:00
Adam Ierymenko 5717dfe3b9 . 2015-12-08 17:45:51 -08:00
Adam Ierymenko c576cd68cb . 2015-12-08 17:44:13 -08:00
Adam Ierymenko f2078bf986 (WIP) more netcon work 2015-12-08 17:35:37 -08:00
Adam Ierymenko c2c37f3a63 Merge with fixes of netcon to edge. 2015-12-08 15:15:44 -08:00
Joseph Henry b1eb16d5fb Updated README, tests, and Intercept 2015-12-08 07:47:20 -08:00
Joseph Henry f2db82940b Nginx patch. Verified to work in fc23 and ub14 2015-12-08 05:09:12 -08:00
Joseph Henry a2837ccaa7 Fixed typo 2015-12-07 08:36:13 -08:00
Joseph Henry 284b37ccc0 Updated compatibility section 2015-12-07 08:35:26 -08:00
Joseph Henry 48d9708abe Combined make-linux.mk and make-intercept.mk's installer section 2015-12-07 06:54:13 -08:00
Joseph Henry b141026fc7 Replaced darkhttpd with httpd since darkhttpd is not currently supported and does not work 2015-12-07 06:41:20 -08:00
Joseph Henry c9bd0b3bf1 More concise unit test section 2015-12-07 06:30:54 -08:00
Joseph Henry 21b158cc48 Added unit test info to README.md 2015-12-07 06:21:40 -08:00
Joseph Henry dab13f59e5 Test updates 2015-12-07 05:37:14 -08:00
root 036bbfaff9 Modified test scripts to match new naming conventions 2015-12-07 03:21:46 -08:00
Joseph Henry afafde2571 Modified Nginx test scripts 2015-12-06 22:37:23 -08:00
Joseph Henry 1dec034f77 Added application-specific test arguments to test script 2015-12-06 17:55:48 -08:00
Adam Ierymenko 0df33485ca Merge remote-tracking branch 'origin/netcon' into edge 2015-12-04 15:41:56 -08:00
Joseph Henry 7ea53dd21b (WIP) Additional test script changes 2015-12-04 15:39:35 -08:00
Adam Ierymenko 3869d6257b Always Salsa20 encrypt the result of the system CSPRNG as a mitigation against various low-entropy bugs such as the recent Raspberry Pi one. 2015-12-04 14:50:24 -08:00
Adam Ierymenko 4e12899a8e docs 2015-12-04 14:17:33 -08:00
Adam Ierymenko cebced259e docs 2015-12-04 13:48:53 -08:00
Adam Ierymenko 425d311ce8 Merge of netcon with edge and unification of make processes. 2015-12-04 13:19:31 -08:00
Adam Ierymenko ac8918992b Merge dev. 2015-12-04 12:45:21 -08:00
Adam Ierymenko cbf8d9c45b . 2015-12-04 12:43:48 -08:00
Adam Ierymenko 905253b4f5 First draft (unfinished) of new README for netcon (original in README.orig.md). 2015-12-04 12:43:21 -08:00
Joseph Henry d9b12be697 ZT_NC_NWID patch + (WIP) test script modifications 2015-12-04 12:39:54 -08:00
Joseph Henry 2196d982c3 (fixed) nwid detection in test script 2015-12-03 18:50:20 -08:00
Joseph Henry 5c5943a00c (fixed) test script liblwip.so placement, also streamlined test logic 2015-12-03 07:11:33 -08:00
Adam Ierymenko a4cfe4cd16 Fix Linux init script to properly specify runlevels. 2015-12-01 10:19:10 -08:00
Adam Ierymenko ceaef19fb7 Fix for GitHub issue #260 -- fix for (non-exploitable) crash in network preferred relay code 2015-11-30 17:20:12 -08:00
Adam Ierymenko 944fdfb65e Low-impact sanity check against GitHub issue #247 -- will likely prevent other weird recursions too. 2015-11-30 16:44:32 -08:00
Adam Ierymenko be44b15eac Fix for GitHub issue #252 2015-11-30 16:15:23 -08:00
Adam Ierymenko d73edfea56 GitHub issue #257 2015-11-30 16:12:03 -08:00
Adam Ierymenko c21882da9c Put selftest back and turn off tracing in PortMapper. 2015-11-30 16:07:02 -08:00
Adam Ierymenko f260250580 Simplify IP assignment logic in OSXEthernetTap, also fix for GitHub issue #249 2015-11-30 15:39:34 -08:00
Adam Ierymenko 40a4ba6e39 indentation 2015-11-30 15:15:43 -08:00
Adam Ierymenko d862d2868c ... and here. 2015-11-30 14:57:28 -08:00
Adam Ierymenko 1e213b4d4c Need to close on premature abort too or resources are leaked. 2015-11-30 14:56:36 -08:00
Adam Ierymenko 3d66492828 Also add a timeout for the actual NAT-PMP port mapping step. 2015-11-30 14:17:58 -08:00
Adam Ierymenko 838fdf4d11 ifdef naming fix. 2015-11-30 13:32:30 -08:00
Adam Ierymenko 685c5e9ad1 Fix for uPnP 2015-11-30 13:25:34 -08:00
Adam Ierymenko 66a29a00ee Merge miniupnpc/libnatpmp build into main build by just adding flags, defs, and objs. 2015-11-30 13:17:43 -08:00
Adam Ierymenko 6768521330 Ton of uPnP work and adding NAT-PMP support, still testing... 2015-11-30 13:10:22 -08:00
Adam Ierymenko 6c0de526e8 Merge pull request #261 from janjaapbos/synology
Fix for cross compiling
2015-11-30 11:07:20 -08:00
Adam Ierymenko 4c812e3796 Merge pull request #259 from janjaapbos/jb-dev
Increase maximum number of paths per IP scope to 4
2015-11-30 10:53:22 -08:00
Janjaap Bos e6808c69f8 Increase maximum number of paths per IP scope to 4
Otherwise, local discovered routes are ignored.
Don't know what the best value would be. Taking 4 for now.
2015-11-30 19:48:38 +01:00
Adam Ierymenko 75637f68b3 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2015-11-24 14:11:31 -08:00
Adam Ierymenko 56cb2f43fa Merge pull request #254 from bonki/fix_iproute2_ip_handling
Fix for GitHub issue #253.
2015-11-24 14:11:14 -08:00
Adrian Frühwirth 038476c412 Fix for GitHub issue #253.
Make 'ip' detection more robust (some distros don't ship the binary in /sbin or /usr/sbin).
Add error handling for cases where an ip add/remove fails.
2015-11-24 22:56:02 +01:00
Joseph Henry 201109a7a0 (fixed) make-linux.mk conflicts, updated clean logic 2015-11-23 16:02:39 -08:00
Adam Ierymenko 7e28161638 Merge dev 2015-11-30 15:17:31 -08:00
Adam Ierymenko ef4472e185 Intercept now checks ZT_NC_NWID environment variable for 16-digit network ID and does not initialize if not present. 2015-11-23 13:59:38 -08:00
Adam Ierymenko 4acb3d81f3 Rename Common to common.inc.c to indicate that this is an included C file not a primary build C file. 2015-11-23 13:25:46 -08:00
Adam Ierymenko bee44ae731 Merge Sendfd into Common.c 2015-11-23 13:24:28 -08:00
Adam Ierymenko 95106e2e30 Mare make-self-contained code cleanup. 2015-11-23 13:18:46 -08:00
Adam Ierymenko 2a6ea38718 More code cleanup, just moving some stuff into NetconEthernetTap that is not used elsewhere. 2015-11-23 13:02:50 -08:00
Adam Ierymenko d8d4cfbf01 Eliminate a few warnings and some small code reorg. 2015-11-23 12:43:42 -08:00
Adam Ierymenko 34404eb300 Ignore more DLL patterns. 2015-11-23 12:34:46 -08:00
Adam Ierymenko 7a84805824 Uncommit binary... :P 2015-11-23 12:34:23 -08:00
Adam Ierymenko 1d4563ac31 A few very tiny bits of dead code removal, etc. 2015-11-23 12:32:20 -08:00
Adam Ierymenko a18336fa18 MERGE current "dev" into "netcon" -- should not affect netcon itself but will retest -- brings ZeroTier core up to 1.1.0 2015-11-23 10:46:52 -08:00
Adam Ierymenko 1e4a40e772 Reformat table. 2015-11-23 10:11:46 -08:00
Joseph Henry 6e5feaba3a Updated test files 2015-11-23 07:08:07 -08:00
Joseph Henry 71b38a48ac Replaced README 2015-11-23 06:22:09 -08:00
Joseph Henry 6a3f230555 Unit test info added to README 2015-11-23 06:20:01 -08:00
Joseph Henry a952ff2c61 Removed odd file 2015-11-23 06:11:19 -08:00
Joseph Henry 05e51f40b4 README formatting update. Removed odd files 2015-11-23 06:07:48 -08:00
Joseph Henry b83aefcf8f Updated README, fixed node.js test bug 2015-11-23 05:59:05 -08:00
Joseph Henry 8b9b593256 Removed old READMEs and OS files 2015-11-23 05:21:20 -08:00
Joseph Henry 275a76ff5c Test update 2015-11-23 05:15:19 -08:00
Joseph Henry 3d163f7044 Patch for Node.js -- accept() bug 2015-11-23 01:14:17 -08:00
Grant Limberg 764dd1c3d9 ARP packets do need the source IP address in them, as well as the MAC address.
Packets wouldn't even show up in WireShark without the source IP in it.
2015-11-21 19:14:59 -08:00
Grant Limberg ac09c3569a ARP packet lengths are 28 bytes. This condition required the packet to be 29 or more bytes. 2015-11-21 19:14:06 -08:00
Adam Ierymenko ce5b7f0305 The World as of 2015-11-20 2015-11-20 12:49:23 -08:00
Adam Ierymenko 1fde17bacb Update World to reflect Alice and Bob in their final glory. Will hot-push this soon. 2015-11-20 11:46:10 -08:00
Joseph Henry d472c59b8d Additional test files 2015-11-20 02:41:27 -08:00
Joseph Henry 126fc46dc4 Updated makefile, removed old results directory 2015-11-20 01:22:15 -08:00
Joseph Henry d2e624f301 Updated makefile, removed old results directory 2015-11-20 01:19:16 -08:00
Joseph Henry 7173b0124b Removed old test directory 2015-11-20 01:13:04 -08:00
Joseph Henry 1f27022fa7 Test/Code Refactor in preparation for merge 2015-11-20 01:08:38 -08:00
Joseph Henry 9a25a627bb WIP: Unit tests -- more generalization 2015-11-19 17:34:56 -08:00
Adam Ierymenko 375aae44e4 . 2015-11-19 16:36:15 -08:00
Joseph Henry 31bc5e1559 WIP: Unit tests 2015-11-19 16:21:59 -08:00
Joseph Henry b1100b3d13 WIP: Automated tests 2015-11-19 16:14:27 -08:00
Grant Limberg 399b2e9e26 forgot to submit this. Add DeferredPackets.cpp to the android makefile 2015-11-17 19:16:10 -08:00
Joseph Henry a660ec490e Started work on automated unit test scripts 2015-11-17 02:28:23 -08:00
Joseph Henry f5c2600ca4 Added symbol checks in intercept. This seems wise after all 2015-11-16 23:57:19 -08:00
Joseph Henry b0f6dc43b4 Revised fd RX logic 2015-11-16 19:53:59 -08:00
Joseph Henry f2289544b7 Check for fork/clone and re-initialize in close() -- for nginx 2015-11-16 17:44:11 -08:00
Joseph Henry a6cffefa6d Updated compatibility 2015-11-12 17:15:44 -08:00
Joseph Henry a818c622d9 Updated throughput_httpd docker test files 2015-11-12 16:57:45 -08:00
Joseph Henry 7d8084262a Fixed rpc_st command alignment bug for RPC_SOCKET 2015-11-12 16:48:08 -08:00
Joseph Henry 6af54c5943 Minor debug updates 2015-11-12 14:49:20 -08:00
Joseph Henry fa7220ec0e Removed old Common.h 2015-11-12 14:35:58 -08:00
Joseph Henry d1a22a0878 Streamlined debug output code 2015-11-12 14:32:27 -08:00
Joseph Henry e5fad005a9 Updated RPC handling 2015-11-12 08:21:05 -08:00
Joseph Henry 82a60b1e28 Fixed throughput build script 2015-11-09 20:16:27 -08:00
Joseph Henry 19f09e46fa Moved/Renamed Docker test dirs 2015-11-09 19:37:19 -08:00
root 134ad8ac21 Changed httpd version in throughput-test Dockerfile 2015-11-09 19:13:53 -08:00
Joseph Henry 3e84e8b8c3 Performance tweaks to lwipopts.h (TX=12MB/s) 2015-11-04 14:45:26 -08:00
Joseph Henry 4b07987210 Added throughput-test Docker files 2015-11-03 18:10:39 -08:00
Joseph Henry df391c8413 Added debug statements for transfer test 2015-11-03 10:30:18 -08:00
Joseph Henry 4c20fa4874 Added debug statements for transfer test 2015-11-03 10:26:10 -08:00
Joseph Henry ccbdb1a3a1 RPC command index fix 2015-11-02 16:09:28 -08:00
Joseph Henry 8d7b2cd486 Removed serv. conn. checks. 2015-11-02 15:52:12 -08:00
Joseph Henry fd33e0812c Added checks for bad service connection. 2015-11-02 15:31:57 -08:00
Joseph Henry 24ffb22fa6 Changed default debug level 2015-11-02 13:26:59 -08:00
Joseph Henry da462bbd55 Removed curses dependency 2015-11-02 13:21:40 -08:00
Joseph Henry bb912cff30 More appropriate phyOnUnixClose handling 2015-11-02 12:50:32 -08:00
Joseph Henry 6338a4933b Fixed another closure bug. Updated debug levels 2015-11-02 12:30:18 -08:00
Joseph Henry 4dbb84cea1 Fixed connection closure bug (ERR_ABRT from nc_recved) 2015-11-02 10:59:46 -08:00
Joseph Henry db473beb48 Fixed accept return value / errno bug, also fdret_sock return bug 2015-10-30 17:00:30 -07:00
Joseph Henry 96eb0ce492 Added state dump, fixed numerous RPC related bugs 2015-10-29 17:57:59 -07:00
Joseph Henry f6e0bdb2f2 Fixed PCB state issue when closing connection 2015-10-28 16:18:08 -07:00
Joseph Henry c8f27da294 Added support for MongoDB (server side) 2015-10-28 14:37:46 -07:00
Joseph Henry 21889305e0 Updated README.md 2015-10-27 17:41:51 -07:00
Joseph Henry 18db95d0e9 Updated README.md 2015-10-27 17:38:56 -07:00
Joseph Henry 721d58b464 Added support for Redis 2015-10-27 17:12:32 -07:00
Joseph Henry 8cfee8a38c Changed to more appropriate APP_POLL_FREQ 2015-10-23 14:31:06 -07:00
Joseph Henry 80a73cb14b Minor cleanup 2015-10-23 14:23:04 -07:00
Joseph Henry b48ed824e6 Improved RPC connection closure logic 2015-10-23 13:37:41 -07:00
Joseph Henry 236e474553 Unload lwipstack->_libref upon exit 2015-10-22 16:26:29 -07:00
Joseph Henry 2f4628520b Improved RPC connection cleanup logic 2015-10-22 13:20:50 -07:00
Joseph Henry b203d25656 PhySocket NULL check added to handle_write. Fixed after-close handle_write segfault 2015-10-22 12:40:01 -07:00
Joseph Henry 8e7e409fce Updated netcon README 2015-10-21 16:56:39 -07:00
Joseph Henry 1458dc8347 set O_NONBLOCK default in accept() 2015-10-21 16:32:27 -07:00
Joseph Henry 303579cb42 Added Node.js support 2015-10-21 16:27:17 -07:00
Joseph Henry 8b03965912 Added status debugs 2015-10-16 19:30:01 -04:00
Janjaap Bos 82e0abc4be Fix for cross compiling 2015-10-17 00:15:10 +02:00
Joseph Henry 0405ba1ccf Misc changes 2015-10-16 18:02:07 -04:00
Joseph Henry b96c08f35c Fixed nginx listen() bug 2015-10-16 14:43:38 -04:00
Joseph Henry 3e8e025704 Minor cleanup items 2015-10-14 19:55:21 -04:00
Joseph Henry 499d1628c7 Improved error coverage 2015-10-14 17:59:11 -04:00
Joseph Henry e722eab892 Disabled TCP listen backlog, must be enabled in lwipopts.h 2015-10-14 17:03:32 -04:00
Joseph Henry 9ca699c86d Added support for listen backlogs 2015-10-14 16:04:26 -04:00
Joseph Henry d45db0f5af Fixed premature connection close bug 2015-10-14 15:46:22 -04:00
Joseph Henry 0b5a2a7594 Removed character from NEtconEthernetTap.cpp 2015-10-14 13:49:13 -04:00
Joseph Henry 831a513b2d Normalized cases 2015-10-14 13:47:35 -04:00
Joseph Henry a35b6589d2 Removed lowercase intercept.h conflicting file 2015-10-14 13:43:12 -04:00
Joseph Henry 3c8e74023f Inconsequential. Updated commends, added debug statements 2015-10-13 20:20:45 -04:00
Joseph Henry 71c6ec71e5 connect() now checks socket family 2015-10-13 19:27:19 -04:00
Joseph Henry 1fd04557c7 Refactored connect(), added checks to socket(), updated checklists 2015-10-13 19:12:12 -04:00
Joseph Henry aa6ff039c4 Improved bind() logic, added more error handling to accept() 2015-10-13 18:33:56 -04:00
Joseph Henry 8a05efa365 EBADF, EOPNOTSUPP, EMFILE error repoarting for accept() 2015-10-13 17:57:17 -04:00
Joseph Henry da536cc311 Improved error reporting 2015-10-13 17:37:54 -04:00
Joseph Henry 0912d4be59 Fixed socket protocol check logic in socket() 2015-10-13 17:05:11 -04:00
Joseph Henry 73145de618 Added some parameter checks from linux kernel syscall source 2015-10-13 14:27:30 -04:00
Joseph Henry 82052459a2 Odds and ends 2015-10-12 21:50:41 -04:00
Joseph Henry 4e1e857949 Minor bug fixes 2015-10-12 21:26:32 -04:00
Joseph Henry 8d1b01cb5b Bug fix: Connection fd lookup in service 2015-10-12 20:46:59 -04:00
Joseph Henry 5dffa43201 Additional retval+errno handling 2015-10-12 19:29:27 -04:00
Joseph Henry 6b1a38f14c Better retval+errno handling 2015-10-12 16:38:08 -04:00
Joseph Henry fe8e7ded8c retval+errno return test 2015-10-09 20:27:38 -04:00
Joseph Henry 07536216c2 Removed netcon/.depend 2015-10-09 17:36:27 -04:00
Joseph Henry 3bcb6bf321 Minor cleanup 2015-10-09 17:31:22 -04:00
Joseph Henry 7f56678d84 Added liblwip.so and libintercept build files 2015-10-09 17:06:09 -04:00
Joseph Henry e3ec000e93 Added intercept build file and sources 2015-10-09 15:41:16 -04:00
Joseph Henry 769bad3320 Test: Added handle_write call to nc_poll 2015-10-09 15:05:45 -04:00
Joseph Henry 6600b005b6 No Whack! 2015-10-08 21:24:51 -04:00
Joseph Henry b5b57aca02 Whack! 2015-10-08 21:04:47 -04:00
Joseph Henry d868a234da Refactored write logic 2015-10-08 19:38:29 -04:00
Joseph Henry 41dfbe544f Removed exit(0) for debugging 2015-10-08 18:10:10 -04:00
Joseph Henry bbfc9359e9 Minor timer changes (~21 Mb/s local) 2015-10-08 17:55:58 -04:00
Joseph Henry 1bc33ae8d7 Minor debug output changes 2015-10-06 21:22:08 -04:00
Adam Ierymenko 876aa0883d Merge branch 'adamierymenko-dev' into netcon 2015-10-06 17:56:47 -07:00
Joseph Henry 36db5865e7 Refactored tcp_write code - Reduced CPU usage to respectable levels 2015-10-06 20:32:48 -04:00
Joseph Henry 4983fd3776 Recompiled ZTO binary with fix + moves index.html to var/www 2015-09-29 14:32:07 -04:00
Adam Ierymenko cc10d4f310 Speed up multicast group checking/registration. 2015-09-29 10:31:41 -07:00
Adam Ierymenko 167a5039d0 . 2015-09-28 23:40:20 -07:00
Adam Ierymenko 4b82171a95 . 2015-09-28 22:16:58 -07:00
Adam Ierymenko b4624237af . 2015-09-28 22:14:32 -07:00
Adam Ierymenko 49f93a57bf . 2015-09-28 17:07:46 -07:00
Adam Ierymenko ea71738c72 Entry point stuff... 2015-09-28 16:36:20 -07:00
Joseph Henry 49956ed63d Updated intercept library for Earth 2015-09-28 19:31:32 -04:00
Adam Ierymenko 280fcc3771 add cr after identity in demo script. 2015-09-28 16:15:17 -07:00
Adam Ierymenko 3a6346f560 More entry point work, and change network to 8056c2e21c000001 for demo. 2015-09-28 16:14:32 -07:00
Adam Ierymenko 980d145f48 Entry point changes to wait for ZT startup, print banners, log output debug messages and trace to files. 2015-09-28 15:31:47 -07:00
Joseph Henry 1773dca9dc Optimized Dockerfile arrangement 2015-09-28 17:59:54 -04:00
Joseph Henry 8e3e830e89 Working intercepted Apache 2015-09-28 17:47:38 -04:00
Joseph Henry 77b385fb12 Re-added Apache to Dockerfile 2015-09-28 17:30:18 -04:00
Joseph Henry 0b34d8e75e New Dockerfile 2015-09-28 16:56:14 -04:00
Joseph Henry 0c3dd2be96 Fixed apache script 2015-09-27 21:48:38 -04:00
Joseph Henry 444481f6d9 Modified Dockerfile 2015-09-27 21:26:57 -04:00
Joseph Henry 299ec12b39 Added docker-test folder 2015-09-27 21:16:02 -04:00
Joseph Henry b21c5d8e51 Added dockerfile 2015-09-27 20:51:32 -04:00
Joseph Henry 3bc9530db7 Object-Model refactor: Removed notion of Client 2015-09-27 06:08:39 -04:00
Joseph Henry fe78eb77d4 Fixed another closure bug 2015-09-24 19:22:56 -04:00
Joseph Henry 8a8264bc39 Fixed their_fd closure bug 2015-09-24 17:33:25 -04:00
Joseph Henry 1119f64a77 Fixed connection closure issue 2015-09-24 17:10:30 -04:00
Joseph Henry c25ceaf06b Fixed recursive lock problem in closeConnection 2015-09-24 16:15:14 -04:00
Adam Ierymenko b263926ea6 thread fixes. 2015-09-24 13:02:10 -07:00
Adam Ierymenko 84747b1a14 thread fixes... 2015-09-24 13:01:19 -07:00
Joseph Henry 9396b8d53c Minor debug changes 2015-09-24 15:56:48 -04:00
Joseph Henry 37497ec2a8 Minor changes 2015-09-24 15:31:11 -04:00
Joseph Henry 851e4c667f Minor changes 2015-09-24 15:30:07 -04:00
Adam Ierymenko 9feeafd757 Make LWIPStack thread safe. 2015-09-24 12:29:10 -07:00
Joseph Henry 0027a1e152 Merge branch 'netcon' of http://10.6.6.2/zerotier/zerotierone into netcon 2015-09-24 14:33:49 -04:00
Joseph Henry 65af5af138 Added debug statements 2015-09-24 14:33:15 -04:00
Adam Ierymenko 557d2b3b0d Make LWIPStack clean up properly. 2015-09-24 11:11:16 -07:00
Adam Ierymenko fbde40d1fc Merge branch 'adamierymenko-dev' into netcon 2015-09-24 11:00:22 -07:00
Joseph Henry 557c0c29b0 minor changes 2015-09-23 19:45:44 -04:00
Joseph Henry c85dd262ed moved lib files to ext 2015-09-23 18:03:21 -04:00
Joseph Henry 02d5a31822 added lwip unix port lib files 2015-09-23 17:55:15 -04:00
Joseph Henry bbdb8eb0de more commenting and cleaning 2015-09-23 15:23:26 -04:00
Joseph Henry b6a6346405 commenting and cleanup 2015-09-23 14:23:36 -04:00
Joseph Henry 07cef1bdb8 misc cleanup 2015-09-22 19:53:36 -04:00
Adam Ierymenko 69f006f641 . 2015-09-22 16:02:02 -07:00
Joseph Henry 3cb8070980 it's alive! -- hooked up new fd-handling code 2015-09-22 18:44:54 -04:00
Adam Ierymenko ff7ac0487b . 2015-09-22 15:16:38 -07:00
Adam Ierymenko 19c0923a86 Merge branch 'adamierymenko-dev' into netcon 2015-09-22 15:11:51 -07:00
Adam Ierymenko 6ce64c2557 Phy<> loses socketpair, gains raw FD monitoring. 2015-09-22 15:11:32 -07:00
Joseph Henry 3ed5edb295 fixed fd-transfer logic bug, needs new write-queue logic 2015-09-22 17:43:20 -04:00
Joseph Henry c3dbae8d5e more debugs 2015-09-22 13:35:37 -04:00
Joseph Henry b2494b53e6 adjusted output size for packets 2015-09-22 13:27:27 -04:00
Joseph Henry f091a074d4 output lengths 2015-09-22 13:25:24 -04:00
Joseph Henry f80d65286c more debug statements 2015-09-22 13:21:33 -04:00
Adam Ierymenko 0271e3d3ac . 2015-09-22 10:00:00 -07:00
Joseph Henry 00cb8dbda8 timer change 2015-09-22 12:48:53 -04:00
Joseph Henry 025069de7e timer change 2015-09-21 20:51:35 -04:00
Joseph Henry 86673bd6d6 fixed minor bugs and added debug outputs 2015-09-21 19:39:26 -04:00
Joseph Henry cb6864f04a updated nc_accept and lwip.so 2015-09-15 20:32:00 -04:00
Joseph Henry 701e1654a1 moved IP/netif allocation code 2015-09-15 19:06:16 -04:00
Joseph Henry 732de5bf7f some cleanup 2015-09-15 18:47:40 -04:00
Joseph Henry 11731af45a it's alive! 2015-09-15 18:27:52 -04:00
Joseph Henry 735ae9b369 debug changes 2015-09-15 15:41:57 -04:00
Joseph Henry cb277f52e8 Merge branch 'netcon' of http://10.6.6.2/zerotier/zerotierone into netcon 2015-09-15 14:16:28 -04:00
Joseph Henry 8ea83c9548 netif code hooked up 2015-09-15 14:15:59 -04:00
Adam Ierymenko d06499a50c Merge branch 'adamierymenko-dev' of http://git.int.zerotier.com/zerotier/zerotierone into netcon 2015-09-14 12:00:03 -07:00
Adam Ierymenko 0617b17534 Merge branch 'netcon' of http://git.int.zerotier.com/zerotier/zerotierone into netcon 2015-09-14 11:36:01 -07:00
Joseph Henry 8189b2ba91 retval fix 2015-09-11 19:29:35 -04:00
Joseph Henry e73868bc5a various segfault fixes 2015-09-11 19:02:44 -04:00
Joseph Henry 6f0bc1f676 added debugs, fixed linux makefile 2015-09-11 18:22:41 -04:00
Adam Ierymenko 88898c68d7 Merge branch 'adamierymenko-dev' of http://git.int.zerotier.com/zerotier/zerotierone into netcon 2015-09-11 15:02:38 -07:00
Joseph Henry bc666d0ab7 added pbuf alloc block 2015-09-11 15:26:39 -04:00
Adam Ierymenko 933b47389d Add Arp to netcon build. 2015-09-11 12:19:48 -07:00
Adam Ierymenko a8d7a31327 Integrate arp into NetconEthernetTap. 2015-09-11 12:12:45 -07:00
Joseph Henry c2226cf0df added TRACEs 2015-09-11 14:47:16 -04:00
Adam Ierymenko 5f6eb2ce98 Merge branch 'adamierymenko-dev' into netcon 2015-09-11 11:46:44 -07:00
Joseph Henry 776f93e7be closeConnection / closeClient changes 2015-09-11 14:12:27 -04:00
Joseph Henry 5a5a513b18 small method changes 2015-09-11 14:00:42 -04:00
Joseph Henry cc4a2bb0c3 filled out hendlers 2015-09-10 20:34:48 -04:00
Joseph Henry e4dc46741f compiles, technically 2015-09-10 20:22:35 -04:00
Joseph Henry 20beafedc5 refactor almost complete 2015-09-10 20:02:13 -04:00
Adam Ierymenko 8d82ac5cc8 Merge branch 'adamierymenko-dev' into netcon 2015-09-10 15:56:15 -07:00
Joseph Henry b11d429bc0 refactor in progress 2015-09-10 18:48:45 -04:00
Joseph Henry e391bc004b refactor in progress 2015-09-10 18:19:43 -04:00
Joseph Henry c1f1530d54 refactor in progress 2015-09-10 17:44:01 -04:00
Joseph Henry f4d3c995bc refactor in progress 2015-09-10 16:52:18 -04:00
Adam Ierymenko 637da383f5 Remove unnecessary accessors. 2015-09-10 13:22:44 -07:00
Adam Ierymenko 389ea272a0 Merge adamierymenko-dev 2015-09-10 13:20:00 -07:00
Joseph Henry 3802d37d29 started refactor 2015-09-10 15:46:37 -04:00
Joseph Henry 750352836f initial commit 2015-09-10 13:56:01 -04:00
Adam Ierymenko a43c3fbf2e Merge branch 'adamierymenko-dev' into netcon 2015-09-09 09:54:39 -07:00
Adam Ierymenko ca6ec120a9 Merge branch 'netcon' of http://git.int.zerotier.com/zerotier/zerotierone into netcon 2015-09-03 18:45:07 -07:00
Adam Ierymenko 88ba39b162 Merge branch 'adamierymenko-dev' into netcon 2015-09-03 18:44:57 -07:00
Adam Ierymenko 10707c3673 build fix 2015-09-03 16:44:04 -07:00
Adam Ierymenko b9d4b42f93 A few more fixes, ready to integrate main payload. 2015-09-03 16:05:18 -07:00
Adam Ierymenko bf4cab5f2f Netcon build fixes. 2015-09-02 16:31:13 -07:00
Adam Ierymenko 1f4c667646 Netcon mode for Linux (in this branch, will make conditional later) 2015-09-02 16:15:22 -07:00
Adam Ierymenko dfb08ec753 More netcon stuff, and Phy build fix. 2015-09-02 15:51:28 -07:00
Adam Ierymenko 4626175d11 Stub of NetconEthernetTap 2015-09-02 15:17:38 -07:00
759 changed files with 141481 additions and 45590 deletions

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
---
name: Bug report
about: Create a report to help us improve
---
**Alternative, faster ways to get help**
If you have just started using ZeroTier, here are some places to get help:
- my.zerotier.com has a _Community_ tab. It's a live chat with other users and the developers.
- [ZeroTier Knowledge Base](https://zerotier.atlassian.net/wiki/spaces/SD/overview)
- www.zerotier.com has a Contact Us button
- email contact@zerotier.com
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Create a Network '...'
2. Install zerotier-one '....'
3. '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots or console output to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. Mac, Linux, Windows, BSD]
- OS/Distribution Version
- ZeroTier Version [e.g. 1.2.4]
- Hardware [e.g. raspberry pi 3]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Version [e.g. 1.2.4]
**Additional context**
Add any other context about the problem here.
- ZeroTier Network Configuration
- Router Config
- Firewall Config (try turning the firewall off)
- General Network Environment: [ e.g Home, University Campus, Corporate LAN ]
+17
View File
@@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
+55 -11
View File
@@ -1,10 +1,17 @@
# Main binaries created in *nix builds
/zerotier-*
/zerotier-one
/zerotier-idtool
/zerotier-cli
/zerotier-selftest
/zerotier
/nltest
# OS-created garbage files from various platforms
.DS_Store
.Apple*
Thumbs.db
@eaDir
._*
# Windows build droppings
/windows/ZeroTierOne.sdf
@@ -21,10 +28,20 @@ Thumbs.db
/windows/Release
/windows/WebUIWrapper/bin
/windows/WebUIWrapper/obj
/windows/lib
/ext/installfiles/windows/ZeroTier One-SetupFiles
/ext/installfiles/windows/Prerequisites
/ext/installfiles/windows/*-cache
/ZeroTier One.msi
/windows/.vs
*.vcxproj.backup
/windows/TapDriver6/Win7Debug
/windows/TapDriver6/win7Release
/windows/*.db
/windows/*.opendb
enc_temp_folder
/windows/copyutil/bin
/windows/copyutil/obj
# *nix/Mac build droppings
/build-*
@@ -33,6 +50,8 @@ Thumbs.db
/examples/docker/test-*.env
/world/mkworld
/world/*.c25519
zt1-src.tar.gz
/MacEthernetTapAgent
# Miscellaneous temporaries, build files, etc.
*.log
@@ -44,25 +63,25 @@ Thumbs.db
*.pid
*.pkg
*.o
*.a
/*.a
*.dylib
*.so
*.so.*
*.o-*
*.core
*.deb
*.rpm
*.autosave
*.tmp
.depend
node_modules
cluster-geo/cluster-geo/config.js
cluster-geo/cluster-geo/cache.*
tests/http/zerotier-one
tests/http/big-test-hosts
# MacGap wrapper build files
/ext/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/project.xcworkspace/xcuserdata/*
/ext/mac-ui-macgap1-wrapper/src/MacGap.xcodeproj/xcuserdata/*
/ext/mac-ui-macgap1-wrapper/src/build
zt1_update_*
debian/files
debian/zerotier-one
debian/zerotier-one*.debhelper
debian/*.log
debian/zerotier-one.substvars
root-watcher/config.json
# Java/Android/JNI build droppings
java/obj/
@@ -76,3 +95,28 @@ java/build_win32/
windows/WinUI/obj/
windows/WinUI/bin/
windows/ZeroTierOne/Debug/
/ext/installfiles/windows/chocolatey/zerotier-one/*.nupkg
# Miscellaneous mac/Xcode droppings
.DS_Store
.Trashes
*.swp
*~.nib
DerivedData/
build/
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3
*.xccheckout
xcuserdata/
ext/librethinkdbxx/build
.vscode
__pycache__
*~
attic/world/*.c25519
attic/world/mkworld
+54 -23
View File
@@ -1,44 +1,75 @@
## Authors
# Authors and Third Party Code Licensing Information
* ZeroTier protocol design and core network virtualization engine, ZeroTier One service, React web UI, packaging for most platforms, kitchen sink...<br>
## Primary Authors
* ZeroTier Core and ZeroTier One virtual networking service<br>
Adam Ierymenko / adam.ierymenko@zerotier.com
Joseph Henry / joseph.henry@zerotier.com (QoS and multipath)
* Java JNI Interface to enable Android application development, and Android app itself (code for that is elsewhere)<br>
Grant Limberg / glimberg@gmail.com
## Contributors
* ZeroTier SDK (formerly known as Network Containers)<br>
Joseph Henry / joseph.henry@zerotier.com
## Third Party Contributors
* A number of fixes and improvements to the new controller, other stuff.<br>
Kees Bos / https://github.com/keesbos
Kees Bos / https://github.com/keesbos/
* Debugging and testing, OpenWRT support fixes.<br>
Moritz Warning / moritzwarning@web.de
* Debian GNU/Linux packaging, manual pages, and license compliance edits.<br>
Ben Finney <ben+zerotier@benfinney.id.au>
* Several others made smaller contributions, which GitHub tracks here:<br>
https://github.com/zerotier/ZeroTierOne/graphs/contributors
https://github.com/zerotier/ZeroTierOne/graphs/contributors/
## Third Party Code
## Third-Party Code
* LZ4 compression algorithm by Yann Collet (BSD license)<br>
http://code.google.com/p/lz4/
ZeroTier includes the following third party code, either in ext/ or incorporated into the ZeroTier core. This third party code remains licensed under its original license and is not subject to ZeroTier's BSL license.
* http-parser by many authors (MIT license)<br>
https://github.com/joyent/http-parser
* LZ4 compression algorithm by Yann Collet
* json-parser by James McLaughlin (BSD license)<br>
https://github.com/udp/json-parser
* Files: node/Packet.cpp (bundled within anonymous namespace)
* Home page: http://code.google.com/p/lz4/
* License grant: BSD 2-clause
* TunTapOSX by Mattias Nissler (BSD license)<br>
http://tuntaposx.sourceforge.net
* http-parser by Joyent, Inc. (many authors)
* tap-windows and tap-windows6 by the OpenVPN project (GPL)<br>
https://github.com/OpenVPN/tap-windows<br>
https://github.com/OpenVPN/tap-windows6
* Files: ext/http-parser/*
* Home page: https://github.com/joyent/http-parser/
* License grant: MIT/Expat
* Salsa20 stream cipher, Curve25519 elliptic curve cipher, Ed25519
digital signature algorithm, and Poly1305 MAC algorithm, all by
Daniel J. Bernstein (public domain)<br>
http://cr.yp.to/
* C++11 json (nlohmann/json) by Niels Lohmann
* MiniUPNPC by Thomas Bernard [BSD]
http://miniupnp.free.fr
* Files: ext/json/*
* Home page: https://github.com/nlohmann/json
* License grant: MIT
* tap-windows6 by the OpenVPN project
* Files: windows/TapDriver6/*
* Home page: https://github.com/OpenVPN/tap-windows6/
* License grant: GNU GPL v2
* ZeroTier Modifications: change name of driver to ZeroTier, add ioctl() to get L2 multicast memberships (source is in ext/ and modifications inherit GPL)
* Salsa20 stream cipher, Curve25519 elliptic curve cipher, Ed25519 digital signature algorithm, and Poly1305 MAC algorithm, all by Daniel J. Bernstein
* Files: node/Salsa20.* node/C25519.* node/Poly1305.*
* Home page: http://cr.yp.to/
* License grant: public domain
* ZeroTier Modifications: slight cryptographically-irrelevant modifications for inclusion into ZeroTier core
* MiniUPNPC and libnatpmp by Thomas Bernard
* Files: ext/libnatpmp/* ext/miniupnpc/*
* Home page: http://miniupnp.free.fr/
* License grant: BSD attribution no-endorsement
* cpp-httplib by yhirose
* Files: ext/cpp-httplib/*
* Home page: https://github.com/yhirose/cpp-httplib
* License grant: MIT
+12
View File
@@ -0,0 +1,12 @@
# CMake build script for libzerotiercore.a
cmake_minimum_required (VERSION 2.8)
project (zerotiercore)
set (PROJ_DIR ${PROJECT_SOURCE_DIR})
set (ZT_DEFS -std=c++11)
file(GLOB core_src_glob ${PROJ_DIR}/node/*.cpp)
add_library(zerotiercore STATIC ${core_src_glob})
target_compile_options(zerotiercore PRIVATE ${ZT_DEFS})
+12
View File
@@ -0,0 +1,12 @@
ZeroTier One, an endpoint server for the ZeroTier virtual network layer.
Copyright © 2011–2019 ZeroTier, Inc.
ZeroTier is released under the terms of the BSL version 1.1. See the
file LICENSE.txt for details.
..
Local variables:
coding: utf-8
mode: text
End:
vim: fileencoding=utf-8 filetype=text :
Vendored
+84
View File
@@ -0,0 +1,84 @@
#!/usr/bin/env groovy
node('master') {
checkout scm
def changelog = getChangeLog currentBuild
mattermostSend "Building ${env.JOB_NAME} #${env.BUILD_NUMBER} \n Change Log: \n ${changelog}"
}
parallel 'centos7': {
node('centos7') {
try {
checkout scm
stage('Build Centos 7') {
sh 'make -f make-linux.mk'
}
}
catch (err) {
currentBuild.result = "FAILURE"
mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on Centos 7 (<${env.BUILD_URL}|Open>)"
throw err
}
}
// }, 'android-ndk': {
// node('android-ndk') {
// try {
// checkout scm
// stage('Build Android NDK') {
// sh "/android/android-ndk-r15b/ndk-build -C $WORKSPACE/java ZT1=${WORKSPACE}"
// }
// }
// catch (err) {
// currentBuild.result = "FAILURE"
// mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on Android NDK (<${env.BUILD_URL}|Open>)"
// throw err
// }
// }
// }, 'macOS': {
// node('macOS') {
// try {
// checkout scm
// stage('Build macOS') {
// sh 'make -f make-mac.mk'
// }
// stage('Build macOS UI') {
// sh 'cd macui && xcodebuild -target "ZeroTier One" -configuration Debug'
// }
// }
// catch (err) {
// currentBuild.result = "FAILURE"
// mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
// throw err
// }
// }
// }, 'windows': {
// node('windows') {
// try {
// checkout scm
// stage('Build Windows') {
// bat '''CALL "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat" amd64
// git clean -dfx
// msbuild windows\\ZeroTierOne.sln
// '''
// }
// }
// catch (err) {
// currentBuild.result = "FAILURE"
// mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on Windows (<${env.BUILD_URL}|Open>)"
// throw err
// }
// }
}
mattermostSend color: "#00ff00", message: "${env.JOB_NAME} #${env.BUILD_NUMBER} Complete (<${env.BUILD_URL}|Show More...>)"
+144 -10
View File
@@ -1,13 +1,147 @@
ZeroTier One is licensed under the terms of the GNU General Public License
version 3, which are available here:
-----------------------------------------------------------------------------
http://gplv3.fsf.org/
Business Source License 1.1
Modification and redistribution of ZeroTier One is permitted in source form.
Binary distribution is permitted provided all copyright notices remain
intact and any modifications to the source code are also distributed.
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
"Business Source License" is a trademark of MariaDB Corporation Ab.
ZeroTier One may not be embedded into any closed-source application (e.g. via
linking), nor may closed-source derivatives be created, without a separately
negotiated license from ZeroTier Networks LLC. See the terms of the GPLv3 for
details.
-----------------------------------------------------------------------------
Parameters
Licensor: ZeroTier, Inc.
Licensed Work: ZeroTier Network Virtualization Engine 1.4.4
The Licensed Work is (c)2019 ZeroTier, Inc.
Additional Use Grant: You may make use of the Licensed Work, provided you
do not use it in any of the following ways:
* Sell hosted ZeroTier services as a "SaaS" Product
(1) Operate or sell access to ZeroTier root servers,
network controllers, or authorization key or certificate
generation components of the Licensed Work as a
for-profit service, regardless of whether the use of
these components is sold alone or is bundled with other
services.
* Create Non-Open-Source Commercial Derviative Works
(2) Link or directly include the Licensed Work in a
commercial or for-profit application or other product
not distributed under an Open Source Initiative (OSI)
compliant license. See: https://opensource.org/licenses
(3) Remove the name, logo, copyright, or other branding
material from the Licensed Work to create a "rebranded"
or "white labeled" version to distribute as part of
any commercial or for-profit product or service.
* Certain Government Uses
(4) Use or deploy the Licensed Work in a government
setting in support of any active government function
or operation with the exception of the following:
physical or mental health care, family and social
services, social welfare, senior care, child care, and
the care of persons with disabilities.
Change Date: 2023-01-01
Change License: Apache License version 2.0 as published by the Apache
Software Foundation
https://www.apache.org/licenses/
Alternative Licensing
If you would like to use the Licensed Work in any way that conflicts with
the stipulations of the Additional Use Grant, contact ZeroTier, Inc. to
obtain an alternative commercial license.
Visit us on the web at: https://www.zerotier.com/
Notice
The Business Source License (this document, or the "License") is not an Open
Source license. However, the Licensed Work will eventually be made available
under an Open Source License, as stated in this License.
For more information on the use of the Business Source License for ZeroTier
products, please visit our pricing page which contains license details and
and license FAQ: https://zerotier.com/pricing
For more information on the use of the Business Source License generally,
please visit the Adopting and Developing Business Source License FAQ at
https://mariadb.com/bsl-faq-adopting.
-----------------------------------------------------------------------------
Business Source License 1.1
Terms
The Licensor hereby grants you the right to copy, modify, create derivative
works, redistribute, and make non-production use of the Licensed Work. The
Licensor may make an Additional Use Grant, above, permitting limited
production use.
Effective on the Change Date, or the fourth anniversary of the first publicly
available distribution of a specific version of the Licensed Work under this
License, whichever comes first, the Licensor hereby grants you rights under
the terms of the Change License, and the rights granted in the paragraph
above terminate.
If your use of the Licensed Work does not comply with the requirements
currently in effect as described in this License, you must purchase a
commercial license from the Licensor, its affiliated entities, or authorized
resellers, or you must refrain from using the Licensed Work.
All copies of the original and modified Licensed Work, and derivative works
of the Licensed Work, are subject to this License. This License applies
separately for each version of the Licensed Work and the Change Date may vary
for each version of the Licensed Work released by Licensor.
You must conspicuously display this License on each original or modified copy
of the Licensed Work. If you receive the Licensed Work in original or
modified form from a third party, the terms and conditions set forth in this
License apply to your use of that work.
Any use of the Licensed Work in violation of this License will automatically
terminate your rights under this License for the current and all other
versions of the Licensed Work.
This License does not grant you any right in any trademark or logo of
Licensor or its affiliates (provided that you may use a trademark or logo of
Licensor as expressly required by this License).
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
TITLE.
-----------------------------------------------------------------------------
MariaDB hereby grants you permission to use this License’s text to license
your works, and to refer to it using the trademark "Business Source License",
as long as you comply with the Covenants of Licensor below.
Covenants of Licensor
In consideration of the right to use this License’s text and the "Business
Source License" name and trademark, Licensor covenants to MariaDB, and to all
other recipients of the licensed work to be provided by Licensor:
1. To specify as the Change License the GPL Version 2.0 or any later version,
or a license that is compatible with GPL Version 2.0 or a later version,
where "compatible" means that software provided under the Change License can
be included in a program with software provided under GPL Version 2.0 or a
later version. Licensor may specify additional Change Licenses without
limitation.
2. To either: (a) specify an additional grant of rights to use that does not
impose any additional restriction on the right granted in this License, as
the Additional Use Grant; or (b) insert the text "None".
3. To specify a Change Date.
4. Not to modify this License in any other way.
+12 -2
View File
@@ -11,8 +11,18 @@ ifeq ($(OSTYPE),Linux)
endif
ifeq ($(OSTYPE),FreeBSD)
include make-freebsd.mk
CC=clang
CXX=clang++
ZT_BUILD_PLATFORM=7
include make-bsd.mk
endif
ifeq ($(OSTYPE),OpenBSD)
include make-freebsd.mk
CC=egcc
CXX=eg++
ZT_BUILD_PLATFORM=9
include make-bsd.mk
endif
ifeq ($(OSTYPE),NetBSD)
include make-netbsd.mk
endif
+33
View File
@@ -0,0 +1,33 @@
ZeroTier Official Release Steps
======
This is mostly for ZeroTier internal use, but others who want to do builds might find it helpful.
Note: Many of these steps will require GPG and other signing keys that are kept in cold storage and must be mounted.
# Bumping the Version and Preparing Installers
The version must be incremented in all of the following files:
/version.h
/zerotier-one.spec
/debian/changelog
/ext/installfiles/mac/ZeroTier One.pkgproj
/ext/installfiles/windows/ZeroTier One.aip
/windows/WinUI/AboutView.xaml
The final .AIP file can only be edited on Windows with [Advanced Installer Enterprise](http://www.advancedinstaller.com/). In addition to incrementing the version be sure that a new product code is generated. (The "upgrade code" GUID on the other hand must never change.)
# Building for Supported Platforms
## Macintosh
Mac's easy. Just type:
make official
You will need [Packages](http://s.sudre.free.fr/Software/Packages/about.html) and our release signing key in the keychain.
## Windows
First load the Visual Studio solution and rebuild the UI and ZeroTier One in both x64 and i386 `Release` mode. Then load [Advanced Installer Enterprise](http://www.advancedinstaller.com/), check that the version is correct, and build. The build will fail if any build artifacts are missing, and Windows must have our product singing key (from DigiCert) available to sign the resulting MSI file. The MSI must then be tested on at least a few different CLEAN Windows VMs to ensure that the installer is valid and properly signed.
+57 -123
View File
@@ -1,35 +1,67 @@
ZeroTier One
ZeroTier - Global Area Networking
======
ZeroTier is a software defined networking layer for Earth.
ZeroTier is a smart programmable Ethernet switch for planet Earth. It allows all networked devices, VMs, containers, and applications to communicate as if they all reside in the same physical data center or cloud region.
It can be used for on-premise network virtualization, as a peer to peer VPN for mobile teams, for hybrid or multi-data-center cloud deployments, or just about anywhere else secure software defined virtual networking is useful.
This is accomplished by combining a cryptographically addressed and secure peer to peer network (termed VL1) with an Ethernet emulation layer somewhat similar to VXLAN (termed VL2). Our VL2 Ethernet virtualization layer includes advanced enterprise SDN features like fine grained access control rules for network micro-segmentation and security monitoring.
ZeroTier One is our OS-level client service. It allows Mac, Linux, Windows, FreeBSD, and soon other types of clients to join ZeroTier virtual networks like conventional VPNs or VLANs. It can run on native systems, VMs, or containers (Docker, OpenVZ, etc.).
All ZeroTier traffic is encrypted end-to-end using secret keys that only you control. Most traffic flows peer to peer, though we offer free (but slow) relaying for users who cannot establish peer to peer connetions.
Visit [ZeroTier's site](https://www.zerotier.com/) for more information. You can also download professionally packaged binary installers/packages for a variety of supported OSes there if you don't want to build ZeroTier One from source.
The goals and design principles of ZeroTier are inspired by among other things the original [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) paper and the [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum) with its notion of "deperimeterization."
### Building from Source
Visit [ZeroTier's site](https://www.zerotier.com/) for more information and [pre-built binary packages](https://www.zerotier.com/download/). Apps for Android and iOS are available for free in the Google Play and Apple app stores.
For Mac, Linux, and BSD, just type "make" (or "gmake" on BSD). You won't need much installed; here are the requirements for various platforms:
ZeroTier is licensed under the [BSL version 1.1](https://mariadb.com/bsl11/). See [LICENSE.txt](LICENSE.txt) and the [ZeroTier pricing page](https://www.zerotier.com/pricing) for details. ZeroTier is free to use internally in businesses and academic institutions and for non-commercial purposes. Certain types of commercial use such as building closed-source apps and devices based on ZeroTier or offering ZeroTier network controllers and network management as a SaaS service require a commercial license.
* Mac: Xcode command line tools, and [Packages](http://s.sudre.free.fr/Software/Packages/about.html) if you want to build an OSX .pkg installer ("make mac-dist-pkg"). It should build on OSX 10.7 or newer.
* Linux: gcc/g++ or clang/clang++ (Makefile will use clang by default if available.)
* FreeBSD (and other BSD): C++ compiler (G++ usually) and GNU make (gmake).
A small amount of third party code is also included in ZeroTier and is not subject to our BSL license. See [AUTHORS.md] for a list of third party code, where it is included, and the licenses that apply to it. All of the third party code in ZeroTier is liberally licensed (MIT, BSD, Apache, public domain, etc.).
Each supported platform has its own *make-XXX.mk* file that contains the actual make rules for the platform. The right .mk file is included by the main Makefile based on the GNU make *OSTYPE* variable. Take a look at the .mk file for your platform for other targets, debug build rules, etc.
### Getting Started
Windows, of course, is special. We build for Windows with Microsoft Visual Studio 2012 on Windows 7. A solution file is located in the *windows* subfolder. Newer versions of Visual Studio (and Windows) may work but haven't been tested. Older versions almost certainly will not, since they lack things like *stdint.h* and certain STL features. MinGW or other ports of gcc/clang to Windows should also work but haven't been tested. Build steps for Windows are a bit more complicated. For the moment you are on your own there.
Everything in the ZeroTier world is controlled by two types of identifier: 40-bit/10-digit *ZeroTier addresses* and 64-bit/16-digit *network IDs*. These identifiers are easily distinguished by their length. A ZeroTier address identifies a node or "device" (laptop, phone, server, VM, app, etc.) while a network ID identifies a virtual Ethernet network that can be joined by devices.
Mobile versions are in progress. They don't work yet, and in any case only the glue code will be included in this repository. The full mobile apps are in private repositories on our own git server.
ZeroTier addresses can be thought of as port numbers on an enormous planet-wide enterprise Ethernet smart switch supporting VLANs. Network IDs are VLAN IDs to which these ports may be assigned. A single port can be assigned to more than one VLAN.
### Supported Platforms
A ZeroTier address looks like `8056c2e21c` and a network ID looks like `8056c2e21c000001`. Network IDs are composed of the ZeroTier address of that network's primary controller and an arbitrary 24-bit ID that identifies the network on this controller. Network controllers are roughly analogous to SDN controllers in SDN protocols like [OpenFlow](https://en.wikipedia.org/wiki/OpenFlow), though as with the analogy between VXLAN and VL2 this should not be read to imply that the protocols or design are the same. You can use our convenient and inexpensive SaaS hosted controllers at [my.zerotier.com](https://my.zerotier.com/) or [run your own controller](controller/) if you don't mind messing around with JSON configuration files or writing scripts to do so.
CPU architecture shouldn't matter unless it's smaller than 32-bit or something really bizarre like a "middle-endian" processor. We have reports of ZeroTier One running on arm32, arm64, and MIPS. It builds and runs out of the box on Raspberry Pi, BeagleBone, BananaPi, and other ARM-based developer/hobbyist boards.
### Project Layout
ZeroTier is written in C and C++ (C++03 / ISO/IEC 14882:2003) and uses data structures and algorithms from the C++03 STL. We do not use any C++11 features (yet), since we want to support a few old and embedded platforms that don't have C++11 compilers. You *will* require a compiler and headers new enough to support 64-bit integers (long long) and the *stdint.h* header. The latter could also be faked by adding defines for things like *uint32\_t*, *int64\_t*, etc.
The base path contains the ZeroTier One service main entry point (`one.cpp`), self test code, makefiles, etc.
Typing "make selftest" will build a *zerotier-selftest* binary which unit tests various internals and reports on a few aspects of the build environment. It's a good idea to try this on novel platforms or architectures.
- `artwork/`: icons, logos, etc.
- `attic/`: old stuff and experimental code that we want to keep around for reference.
- `controller/`: the reference network controller implementation, which is built and included by default on desktop and server build targets.
- `debian/`: files for building Debian packages on Linux.
- `doc/`: manual pages and other documentation.
- `docker/`: Dockerfile to build as a container for containerized Linux systems and Kubernetes clusters.
- `ext/`: third party libraries, binaries that we ship for convenience on some platforms (Mac and Windows), and installation support files.
- `include/`: include files for the ZeroTier core.
- `java/`: a JNI wrapper used with our Android mobile app. (The whole Android app is not open source but may be made so in the future.)
- `macui/`: a Macintosh menu-bar app for controlling ZeroTier One, written in Objective C.
- `node/`: the ZeroTier virtual Ethernet switch core, which is designed to be entirely separate from the rest of the code and able to be built as a stand-alone OS-independent library. Note to developers: do not use C++11 features in here, since we want this to build on old embedded platforms that lack C++11 support. C++11 can be used elsewhere.
- `osdep/`: code to support and integrate with OSes, including platform-specific stuff only built for certain targets.
- `rule-compiler/`: JavaScript rules language compiler for defining network-level rules.
- `service/`: the ZeroTier One service, which wraps the ZeroTier core and provides VPN-like connectivity to virtual networks for desktops, laptops, servers, VMs, and containers.
- `windows/`: Visual Studio solution files, Windows service code, and the Windows task bar app UI.
### Build and Platform Notes
To build on Mac and Linux just type `make`. On FreeBSD and OpenBSD `gmake` (GNU make) is required and can be installed from packages or ports. For Windows there is a Visual Studio solution in `windows/'.
- **Mac**
- Xcode command line tools for OSX 10.8 or newer are required.
- **Linux**
- The minimum compiler versions required are GCC/G++ 4.9.3 or CLANG/CLANG++ 3.4.2. (Install `clang` on CentOS 7 as G++ is too old.)
- Linux makefiles automatically detect and prefer clang/clang++ if present as it produces smaller and slightly faster binaries in most cases. You can override by supplying CC and CXX variables on the make command line.
- **Windows**
- Windows 7 or newer is supported. This *may* work on Vista but isn't officially supported there. It will not work on Windows XP.
- We build with Visual Studio 2017. Older versions may not work. Clang or MinGW will also probably work but may require some makefile hacking.
- **FreeBSD**
- GNU make is required. Type `gmake` to build.
- **OpenBSD**
- There is a limit of four network memberships on OpenBSD as there are only four tap devices (`/dev/tap0` through `/dev/tap3`).
- GNU make is required. Type `gmake` to build.
Typing `make selftest` will build a *zerotier-selftest* binary which unit tests various internals and reports on a few aspects of the build environment. It's a good idea to try this on novel platforms or architectures.
### Running
@@ -45,10 +77,10 @@ The service is controlled via the JSON API, which by default is available at 127
Here's where home folders live (by default) on each OS:
* Linux: /var/lib/zerotier-one
* BSD: /var/db/zerotier-one
* Mac: /Library/Application Support/ZeroTier/One
* Windows: \\ProgramData\\ZeroTier\\One (That's for Windows 7. The base 'shared app data' folder might be different on different Windows versions.)
* **Linux**: `/var/lib/zerotier-one`
* **FreeBSD** / **OpenBSD**: `/var/db/zerotier-one`
* **Mac**: `/Library/Application Support/ZeroTier/One`
* **Windows**: `\ProgramData\ZeroTier\One` (That's for Windows 7. The base 'shared app data' folder might be different on different Windows versions.)
Running ZeroTier One on a Mac is the same, but OSX requires a kernel extension. We ship a signed binary build of the ZeroTier tap device driver, which can be installed on Mac with:
@@ -56,120 +88,22 @@ Running ZeroTier One on a Mac is the same, but OSX requires a kernel extension.
This will create the home folder for Mac, place *tap.kext* there, and set its modes correctly to enable ZeroTier One to manage it with *kextload* and *kextunload*.
We recommend using our binary packages on Windows, since there are several prerequisites such as a tap driver that must be installed on the system *and* in the home folder.
### Joining A Network
ZeroTier virtual networks are identified by 16-digit hexadecimal network IDs, while devices are identified by 10-digit addresses. To get your address run:
sudo zerotier-cli status
(Use ./zerotier-cli if you're running it right from your build folder.)
You should see something like:
200 info ########## ONLINE #.#.#
That 10-digit hex code is you. It's derived via a one-way proof of work function from your cryptographic public key. Your public key can be found in *identity.public* in ZeroTier's home folder, while *identity.secret* contains your full identity including the secret portion of the key pair.
(The identity files define your device's *identity*. Moving them to another system will move that identity. Be careful when cloning virtual machines that have identities stored on them. If two devices have the same identity, they'll "fight" over it and you won't know which device will receive network packets.)
If you want to do a quick test, you can join [Earth](https://www.zerotier.com/earth.html). It's a global public network that anyone can join. Type:
sudo zerotier-cli join 8056c2e21c000001
Then:
sudo zerotier-cli listnetworks
At first it'll be in *REQUESTING\_CONFIGURATION* state. In a few seconds to a minute you should see something like:
200 listnetworks 8056c2e21c000001 earth.zerotier.net ##:##:##:##:##:## OK PUBLIC zt0 ##.##.##.##/##
Earth will assign you an IP address in the "unofficially available" globally unrouted 28.0.0.0/7 IP block so as to avoid conflicts with local networks. (Your networks can use any IP scheme, or can even leave IP addresses unmanaged.) Once you get an IP, you should be able to ping something:
ping earth.zerotier.net
Go to [http://earth.zerotier.net/](http://earth.zerotier.net/) to see a short little welcome page that will tell you your IP and Ethernet MAC address.
Earth is a public place. If you don't want to stick around run:
sudo zerotier-cli leave 8056c2e21c000001
The network (and associated interface) should be gone.
Networks are created and administrated by network controllers. Most users will want to use our hosted controllers. Visit [our web site](https://www.zerotier.com/) for more information. Later in this README there are brief instructions about building ZeroTier One with network controller support for those who want to try running their own.
Macintosh and Windows installers also install a GUI application.
### Installing
We don't have a "make install" rule quite yet. On Linux you can type:
make installer
This will build a binary that, when run, will install ZeroTier One on most current Linux distributions. We also have RPM and DEB build files in *ext/installfiles/linux* that wrap this installer in packages for RedHat/CentOS and Debian/Ubuntu derived distributions. If *rpmbuild* is present on the system, the RPM will be built. If *dpkg-deb* is present, the DEB package will be built.
On Mac the best way is to install [Packages](http://s.sudre.free.fr/Software/Packages/about.html) and use:
make mac-dist-pkg
This builds a .pkg file that can be installed.
In FreeBSD there is now an official .pkg in the FreeBSD repository. Type "pkg install zerotier". It can also be built and installed from source.
Linux/BSD and Mac installations have an *uninstall.sh* file in their ZeroTier home folder that cleanly removes ZeroTier One from the system. Run this with:
sudo /path/to/ZeroTier/home/folder/uninstall.sh
Windows installers are insane. We build our .MSI installers with [Advanced Installer Enterprise](http://www.advancedinstaller.com). The Advanced Installer project file is in *ext/installfiles/windows*. To avoid lasting psychological trauma we recommend leaving Windows installers alone and using the pre-built Windows binaries on our web site.
### Using ZeroTier One in Docker Containers
To run the ZeroTier One service in a Docker container, run it with "--device=/dev/net/tun --cap-add=NET_ADMIN". This will allow ZeroTier One to open a "tap" virtual network port inside the container.
Alternately, you can use Ethernet bridging to bridge the *docker0* device on your system to a ZeroTier virtual network. This allows you to run ZeroTier One on the host and bridge the entire Docker network backplane to a virtual network or other hosts.
We're working on better "official" Docker support. In the meantime there is a [user-contributed project here](https://github.com/davide/docker-zerotier).
### Building with Network Controller Support
**Warning: as of beta version 1.0.3 the new network controller is not heavily tested. We recommend waiting for 1.0.4 to deploy this in production.**
Network controllers are nodes responsible for issuing configurations and certificates to members of ZeroTier virtual networks. Most users won't need to run their own, so this code is by default not included in the ZeroTier One binary.
You can build a network controller on Linux or Mac with:
make ZT_ENABLE_NETWORK_CONTROLLER=1
This will build a version that contains the Sqlite-backed network controller and associated extensions to the JSON local service control API. You will need the development headers for sqlite3 installed. On Mac these ship as part of Xcode, while on Linux they'll be found in packages for the various distributions.
See the JSON API documentation in [service/](service/) for more information about how to control controllers.
### Troubleshooting
### Basic Troubleshooting
For most users, it just works.
If you are running a local system firewall, we recommend adding a rule permitting UDP port 9993 inbound and outbound. If you installed binaries for Windows this should be done automatically. Other platforms might require manual editing of local firewall rules depending on your configuration.
The Mac firewall can be founder under "Security" in System Preferences. Linux has a variety of firewall configuration systems and tools. If you're using Ubuntu's *ufw*, you can do this:
The Mac firewall can be found under "Security" in System Preferences. Linux has a variety of firewall configuration systems and tools. If you're using Ubuntu's *ufw*, you can do this:
sudo ufw allow 9993/udp
On CentOS check */etc/sysconfig/iptables* for IPTables rules. For other distributions consult your distribution's documentation. You'll also have to check the UIs or documentation for commercial third party firewall applications like Little Snitch (Mac), McAfee Firewall Enterprise (Windows), etc. if you are running any of those. Some corporate environments might have centrally managed firewall software, so you might also have to contact IT.
On CentOS check `/etc/sysconfig/iptables` for IPTables rules. For other distributions consult your distribution's documentation. You'll also have to check the UIs or documentation for commercial third party firewall applications like Little Snitch (Mac), McAfee Firewall Enterprise (Windows), etc. if you are running any of those. Some corporate environments might have centrally managed firewall software, so you might also have to contact IT.
ZeroTier One peers will automatically locate each other and communicate directly over a local wired LAN *if UDP port 9993 inbound is open*. If that port is filtered, they won't be able to see each others' LAN announcement packets. If you're experiencing poor performance between devices on the same physical network, check their firewall settings. Without LAN auto-location peers must attempt "loopback" NAT traversal, which sometimes fails and in any case requires that every packet traverse your external router twice.
Users behind certain types of firewalls and "symmetric" NAT devices may not able able to connect to external peers directly at all. ZeroTier has limited support for port prediction and will *attempt* to traverse symmetric NATs, but this doesn't always work. If P2P connectivity fails you'll be bouncing UDP packets off our relay servers resulting in slower performance. Some NAT router(s) have a configurable NAT mode, and setting this to "full cone" will eliminate this problem. If you do this you may also see a magical improvement for things like VoIP phones, Skype, BitTorrent, WebRTC, certain games, etc., since all of these use NAT traversal techniques similar to ours.
If you're interested, there's a [technical deep dive about NAT traversal on our blog](https://www.zerotier.com/blog/?p=226). A troubleshooting tool to help you diagnose NAT issues is planned for the future as are uPnP/IGD/NAT-PMP and IPv6 transport.
If a firewall between you and the Internet blocks ZeroTier's UDP traffic, you will fall back to last-resort TCP tunneling to rootservers over port 443 (https impersonation). This will work almost anywhere but is *very slow* compared to UDP or direct peer to peer connectivity.
### Contributing
There are three main branches: **edge**, **test**, and **master**. Other branches may be for specific features, tests, or use cases. In general **edge** is "bleeding" and may or may not work, while **test** should be relatively stable and **master** is the latest tagged release. Pull requests should generally be done against **test** or **edge**, since pull requests against **master** may be working against a branch that is somewhat out of date.
### License
The ZeroTier source code is open source and is licensed under the GNU GPL v3 (not LGPL). If you'd like to embed it in a closed-source commercial product or appliance, please e-mail [contact@zerotier.com](mailto:contact@zerotier.com) to discuss commercial licensing. Otherwise it can be used for free.
Additional help [can be found in our knowledge base](https://zerotier.atlassian.net/wiki/spaces/SD/overview).
+224
View File
@@ -0,0 +1,224 @@
ZeroTier Release Notes
======
# 2019-08-23 -- Version 1.4.4
* Change license from GPL3 to BSL 1.1, see LICENSE.txt
* Fix an issue with the "ipauth" rule and auto-generated unforgeable IPv6 addresses
* Fix socket/bind errors setting IPs and routes on Linux
# 2019-08-12 -- Version 1.4.2
* Fix high CPU use bug on some platforms
* Fix issues with PostgreSQL controller DB (only affects Central)
* Restore backward compatibility with MacOS versions prior to 10.13
# 2019-07-29 -- Version 1.4.0
### Major Changes
* Mac version no longer requires a kernel extension, instead making use of the [feth interfaces](https://apple.stackexchange.com/questions/337715/fake-ethernet-interfaces-feth-if-fake-anyone-ever-seen-this).
* Added support for concurrent multipath (multiple paths at once) with traffic weighting by link quality and faster recovery from lost links.
* Added under-the-hood support for QoS (not yet exposed) that will eventually be configurable via our rules engine.
### Minor Changes and Bug Fixes
* Experimental controller DB driver for [LF](https://github.com/zerotier/lf) to store network controller data (LFDB.cpp / LFDB.hpp).
* Modified credential push and direct path push timings and algorithms to somewhat reduce "chattiness" of the protocol when idle. More radical background overhead reductions will have to wait for the 2.x line.
* Removed our beta/half-baked integration of Central with the Windows UI. We're going to do a whole new UI of some kind in the future at least for Windows and Mac.
* Fixed stack overflow issues on Linux versions using musl libc.
* Fixed some alignment problems reported on ARM and ARM64, but some reports we could not reproduce so please report any issues with exact chip, OS/distro, and ZeroTier version in use.
* Fixed numerous other small issues and bugs such as ARM alignment issues causing crashes on some devices.
* Windows now sets the adapter name such that it is consistent in both the Windows UI and command line utilities.
# 2018-07-27 -- Version 1.2.12
* Fixed a bug that caused exits to take a long time on Mac due to huge numbers of redundant attempts to delete managed routes.
* Fixed a socket limit problem on Windows that caused the ZeroTier service to run out of sockets, causing the UI and CLI to be unable to access the API.
* Fixed a threading bug in the ZeroTier Core, albeit one that never manifested on the regular ZeroTier One service/client.
* Fixed a bug that could cause the service to crash if an authorized local client accessed an invalid URL via the control API. (Not exploitable since you needed admin access anyway.)
# 2018-05-08 -- Version 1.2.10
* Fix bug loading `moons.d/` files for federated root operation.
* Fix compile problem with ZT_DEBUG on some versions of `clang`
* Fix slow network startup bug related to loading of `networks.d/` cache files
# 2018-04-27 -- Version 1.2.8
* Linux version once again builds with PIE (position independent executable) flags
* Fixed bug in zerotier-idtool file sign and verify
* Fixed minor OSX app typo
* Merged alpha NetBSD support (mostly untested, so YMMV)
* Merged several minor typo and one-liner bug fixes
# 2018-04-17 -- Version 1.2.6
* Features and Core Improvements
* Path selection has been overhauled to improve path stability, simplify code, and prepare for multi-path and trunking in the next major release.
* This version introduces remote tracing for remote diagnostics. Network controllers can set a node (usually the controller itself) to receive remote tracing events from all members of the network or from select members. Events are only sent if they pertain to a given network for security reasons.
* Multicast replication can now be done by designated multicast replicators on a network (flagged as such at the controller) rather than by the sender. Most users won't want this, but it's useful for specialized use cases on hub-and-spoke networks and for low-power devices.
* Cryptographic performance improvements on several platforms.
* Multithreaded performance improvements throughout the code base, including the use of an inline lightweight spinlock for low-contention resources.
* Bugs fixed
* Disappearing routes on Mac (GitHub issue #600)
* Route flapping and path instability in some dual-stack V4/V6 networks
* Blacklist (in local.conf) doesn't work reliably (GitHub issue #656)
* Connection instabilities due to unsigned integer overflows in timing comparisons (use int64_t instead of uint64_t)
* Binaries don't run on some older or lower-end 32-bit ARM chips (build problem)
* ARM NEON crypto code crashes (build problem)
* Fixed some lock ordering issues revealed by "valgrind" tool
* The "zerotier-idtool" command could not be accessed from "zerotier-one" via command line switch
* Leaking sockets on some platforms when uPnP/NAT-PMP is enabled
* Fixed two very rare multithreading issues that were only observed on certain systems
* Platform-Specific Changes
* MacOS
* Installer now loads the kernel extension right away so that High Sierra users will see the prompt to authorize it. This is done in the "Security & Privacy" preference pane and must be done directly on the console (not via remote desktop). On High Sierra and newer kexts must be authorized at the console via security settings system preferences pane.
* Windows
* The Windows installer should now install the driver without requiring a special prompt in most cases. This should make it easier for our packages to be accepted into and updated in the Chocolatey repository and should make it easier to perform remote installs across groups of machines using IT management and provisioning tools.
* The Windows official packages are now signed with an EV certificate (with hardware key).
* The Windows UI can now log into ZeroTier Central and join networks via the Central API.
* The `zerotier-idtool` command should now work on Windows without ugly hacks.
* Upgraded the installer version.
* Made a few changes to hopefully fix sporadic "will not uninstall" problems, though we cannot duplicate these issues ourselves.
* Linux
* Device names are now generated deterministically based on network IDs for all newly joined networks.
* Android
* Multicast now works on Android in most cases! Android apps can send and receive multicast and subscribe to multicast group IPs. Note that in some cases the app must bind to the specific correct interface for this to work.
* IPv6 can be disabled in UI for cases where it causes problems.
# 2017-04-20 -- Version 1.2.4
* Managed routes are now only bifurcated for the default route. This is a change in behavior, though few people will probably notice. Bifurcating all managed routes was causing more trouble than it was worth for most users.
* Up to 2X crypto speedup on x86-64 (except Windows, which will take some porting) and 32-bit ARM platforms due to integration of fast assembly language implementations of Salsa20/12 from the [supercop](http://bench.cr.yp.to/supercop.html) code base. These were written by Daniel J. Bernstein and are in the public domain. My Macbook Pro (Core i5 2.8ghz) now does almost 1.5GiB/sec Salsa20/12 per core and a Raspberry Pi got a 2X boost. 64-bit ARM support and Windows support will take some work but should not be too hard.
* Refactored code that manages credentials to greatly reduce memory use in most cases. This may also result in a small performance improvement.
* Reworked and simplified path selection and priority logic to fix path instability and dead path persistence edge cases. There have been some sporadic reports of persistent path instabilities and dead paths hanging around that take minutes to resolve. These have proven difficult to reproduce in house, but hopefully this will fix them. In any case it seems to speed up path establishment in our tests and it makes the code simpler and more readable.
* Eliminated some unused cruft from the code around path management and in the peer class.
* Fixed an issue causing build problems on some MIPS architecture systems.
* Fixed Windows forgetting routes on sleep/wake or in some other circumstances. (GitHub issue #465)
# 2017-03-17 -- Version 1.2.2
* A bug causing unreliable multicast propagation (GitHub issue #461).
* A crash in ARM binaries due to a build chain and flags problem.
* A bug in the network controller preventing members from being listed (GitHub issue #460).
# 2017-03-14 -- Version 1.2.0
Version 1.2.0 is a major milestone release representing almost nine months of work. It includes our rules engine for distributed network packet filtering and security monitoring, federated roots, and many other architectural and UI improvements and bug fixes.
## New Features in 1.2.0
### The ZeroTier Rules Engine
The largest new feature in 1.2.0, and the product of many months of work, is our advanced network rules engine. With this release we achieve traffic control, security monitoring, and micro-segmentation capability on par with many enterprise SDN solutions designed for use in advanced data centers and corporate networks.
Rules allow you to filter packets on your network and vector traffic to security observers. Security observation can be performed in-band using REDIRECT or out of band using TEE.
Tags and capabilities provide advanced methods for implementing fine grained permission structures and micro-segmentation schemes without bloating the size and complexity of your rules table.
See the [rules engine announcement blog post](https://www.zerotier.com/blog/?p=927) for an in-depth discussion of theory and implementation. The [manual](https://www.zerotier.com/manual.shtml) contains detailed information on rule, tag, and capability use, and the `rule-compiler/` subfolder of the ZeroTier source tree contains a JavaScript function to compile rules in our human-readable rule definition language into rules suitable for import into a network controller. (ZeroTier Central uses this same script to compile rules on [my.zerotier.com](https://my.zerotier.com/).)
### Root Server Federation
It's now possible to create your own root servers and add them to the root server pool on your nodes. This is done by creating what's called a "moon," which is a signed enumeration of root servers and their stable points on the network. Refer to the [manual](https://www.zerotier.com/manual.shtml) for instructions.
Federated roots achieve a number of things:
* You can deploy your own infrastructure to reduce dependency on ours.
* You can deploy roots *inside your LAN* to ensure that network connectivity inside your facility still works if the Internet goes down. This is the first step toward making ZeroTier viable as an in-house SDN solution.
* Roots can be deployed inside national boundaries for countries with data residency laws or "great firewalls." (As of 1.2.0 there is still no way to force all traffic to use these roots, but that will be easy to do in a later version.)
* Last but not least this makes ZeroTier somewhat less centralized by eliminating any hard dependency on ZeroTier, Inc.'s infrastructure.
Our roots will of course remain and continue to provide zero-configuration instant-on deployment, a secure global authority for identities, and free traffic relaying for those who can't establish peer to peer connections.
### Local Configuration
An element of our design philosophy is "features are bugs." This isn't an absolute dogma but more of a guiding principle. We try as hard as we can to avoid adding features, especially "knobs" that must be tweaked by a user.
As of 1.2.0 we've decided that certain knobs are unavoidable, and so there is now a `local.conf` file that can be used to configure them. See the ZeroTier One documentation for these. They include:
* Blacklisting interfaces you want to make sure ZeroTier doesn't use for network traffic, such as VPNs, slow links, or backplanes designated for only certain kinds of traffic.
* Turning uPnP/NAT-PMP on or off.
* Configuring software updates on Windows and Mac platforms.
* Defining trusted paths (the old trusted paths file is now deprecated)
* Setting the ZeroTier main port so it doesn't have to be changed on the command line, which is very inconvenient in many cases.
### Improved In-Band Software Updates
A good software update system for Windows and Mac clients has been a missing feature in previous versions. It does exist but we've been shy about using it so far due to its fragility in some environments.
We've greatly improved this mechanism in 1.2.0. Not only does it now do a better job of actually invoking the update, but it also transfers updates in-band using the ZeroTier protocol. This means it can work in environments that do not allows http/https traffic or that force it through proxies. There's also now an update channel setting: `beta` or `release` (the default).
Software updates are authenticated three ways:
1. ZeroTier's own signing key is used to sign all updates and this signature is checked prior to installation. ZeroTier, Inc.'s signatures are performed on an air-gapped machine.
2. Updates for Mac and Windows are signed using Apple and Microsoft (DigiCert EV) keys and will not install unless these signatures are also valid.
3. The new in-band update mechanism also authenticates the source of the update via ZeroTier's built-in security features. This provides transport security, while 1 and 2 provide security of the update at rest.
Updates are now configurable via `local.conf`. There are three options: `disable`, `download`, and `apply`. The third (apply) is the default for official builds on Windows and Mac, making updates happen silently and automatically as they do for popular browsers like Chrome and Firefox. Updates are disabled by default on Linux and other Unix-type systems as these are typically updated through package managers.
### Path Link Quality Awareness
Version 1.2.0 is now aware of the link quality of direct paths with other 1.2.0 nodes. This information isn't used yet but is visible through the JSON API. (Quality always shows as 100% with pre-1.2.0 nodes.) Quality is measured passively with no additional overhead using a counter based packet loss detection algorithm.
This information is visible from the command line via `listpeers`:
200 listpeers XXXXXXXXXX 199.XXX.XXX.XXX/9993;10574;15250;1.00 48 1.2.0 LEAF
200 listpeers XXXXXXXXXX 195.XXX.XXX.XXX/45584;467;7608;0.44 290 1.2.0 LEAF
The first peer's path is at 100% (1.00), while the second peer's path is suffering quite a bit of packet loss (0.44).
Link quality awareness is a precursor to intelligent multi-path and QoS support, which will in future versions bring us to feature parity with SD-WAN products like Cisco iWAN.
### Security Improvements
Version 1.2.0 adds anti-DOS (denial of service) rate limits and other hardening for improved resiliency against a number of denial of service attack scenarios.
It also adds a mechanism for instantaneous credential revocation. This can be used to revoke certificates of membership instantly to kick a node off a network (for private networks) and also to revoke capabilities and tags. The new controller sends revocations by default when a peer is de-authorized.
Revocations propagate using a "rumor mill" peer to peer algorithm. This means that a controller need only successfully send a revocation to at least one member of a network with connections to other active members. At this point the revocation will flood through the network peer to peer very quickly. This helps make revocations more robust in the face of poor connectivity with the controller or attempts to incapacitate the controller with denial of service attacks, as well as making revocations faster on huge networks.
### Windows and Macintosh UI Improvements (ZeroTier One)
The Mac has a whole new UI built natively in Objective-C. It provides a pulldown similar in appearance and operation to the Mac WiFi task bar menu.
The Windows UI has also been improved and now provides a task bar icon that can be right-clicked to manage networks. Both now expose managed route and IP permissions, allowing nodes to easily opt in to full tunnel operation if you have a router configured on your network.
### Ad-Hoc Networks
A special kind of public network called an ad-hoc network may be accessed by joining a network ID with the format:
ffSSSSEEEE000000
| | | |
| | | Reserved for future use, must be 0
| | End of port range (hex)
| Start of port range (hex)
Reserved ZeroTier address prefix indicating a controller-less network
Ad-hoc networks are public (no access control) networks that have no network controller. Instead their configuration and other credentials are generated locally. Ad-hoc networks permit only IPv6 UDP and TCP unicast traffic (no multicast or broadcast) using 6plane format NDP-emulated IPv6 addresses. In addition an ad-hoc network ID encodes an IP port range. UDP packets and TCP SYN (connection open) packets are only allowed to destination ports within the encoded range.
For example `ff00160016000000` is an ad-hoc network allowing only SSH, while `ff0000ffff000000` is an ad-hoc network allowing any UDP or TCP port.
Keep in mind that these networks are public and anyone in the entire world can join them. Care must be taken to avoid exposing vulnerable services or sharing unwanted files or other resources.
### Network Controller (Partial) Rewrite
The network controller has been largely rewritten to use a simple in-filesystem JSON data store in place of SQLite, and it is now included by default in all Windows, Mac, Linux, and BSD builds. This means any desktop or server node running ZeroTier One can now be a controller with no recompilation needed.
If you have data in an old SQLite3 controller we've included a NodeJS script in `controller/migrate-sqlite` to migrate data to the new format. If you don't migrate, members will start getting `NOT_FOUND` when they attempt to query for updates.
## Major Bug Fixes in 1.2.0
* **The Windows HyperV 100% CPU bug is FINALLY DEAD**: This long-running problem turns out to have been an issue with Windows itself, but one we were triggering by placing invalid data into the Windows registry. Microsoft is aware of the issue but we've also fixed the triggering problem on our side. ZeroTier should now co-exist quite well with HyperV and should now be able to be bridged with a HyperV virtual switch.
* **Segmentation faults on musl-libc based Linux systems**: Alpine Linux and some embedded Linux systems that use musl libc (a minimal libc) experienced segmentation faults. These were due to a smaller default stack size. A work-around that sets the stack size for new threads has been added.
* **Windows firewall blocks local JSON API**: On some Windows systems the firewall likes to block 127.0.0.1:9993 for mysterious reasons. This is now fixed in the installer via the addition of another firewall exemption rule.
* **UI crash on embedded Windows due to missing fonts**: The MSI installer now ships fonts and will install them if they are not present, so this should be fixed.
## Other Improvements in 1.2.0
* **Improved dead path detection**: ZeroTier is now more aggressive about expiring paths that do not seem to be active. If a path seems marginal it is re-confirmed before re-use.
* **Minor performance improvements**: We've reduced unnecessary memcpy's and made a few other performance improvements in the core.
* **Linux static binaries**: For our official packages (the ones in the download.zerotier.com apt and yum repositories) we now build Linux binaries with static linking. Hopefully this will stop all the bug reports relating to library inconsistencies, as well as allowing our deb packages to run on a wider variety of Debian-based distributions. (There are far too many of these to support officially!) The overhead for this is very small, especially since we built our static versions against musl-libc. Distribution maintainers are of course free to build dynamically linked versions for inclusion into distributions; this only affects our official binaries.
Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Loaded 20 of 759 files, more files were not shown because too many files have changed in this diff. Show more