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
f7e8d8f1dd
Fix LFDB path issue when using with Postgress in DBMirrorSet config
2019-08-07 11:23:48 -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
fdc708a624
GitHub issue #979
2019-08-02 13:59:03 -07: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
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
c5a07c7f20
More stack->heap
2019-06-17 15:28:02 -07:00
Adam Ierymenko
523df47a65
Check for null data ptr
2019-06-17 14:02:35 -07:00
Adam Ierymenko
ce2338c24a
Fix null ptr on managed routes if no IPs are set.
2019-06-13 12:52:38 -07: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
2966eac64f
Get rid of ZT_FAST_MEMCPY because this is not really needed.
2019-03-22 15:50:15 -07:00
Grant Limberg
fcb4221f97
rabbitMQ implementation
2019-03-05 15:11:50 -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
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
Grant Limberg
b59c4a2106
Print error & exit on local.conf parsing error
2019-01-07 11:19:50 -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
Adam Ierymenko
6684559cd9
More Mac tap improvements and threading efficiency improvements.
2018-11-13 13:51:25 -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
Adam Ierymenko
b937aeb857
cleanup
2018-11-11 23:03:51 -08:00
Adam Ierymenko
1cec4b1c4c
Raise thread count to 8
2018-11-11 22:55:38 -08:00
Adam Ierymenko
c9c17eaddd
Retire RethinkDB, simple receive path multithreading.
2018-11-11 22:35:15 -08:00
Adam Ierymenko
15649334a6
Do not use new "feth" devices for ZT traffic.
2018-11-11 19:22:07 -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
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
7c72653385
because Windows....
2018-10-23 13:21:25 -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
0fddebc791
Added ability to manually set secondary and tertiary ports in local.conf
2018-09-10 13:06:05 -07: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
Joseph Henry
e01c0adff2
Added ifdef checks to omit some ManagedRoute code in SDK builds
2018-08-01 17:17:04 -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
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
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
42ec780a6f
Merge branch 'dev' into netbsd-support
2018-04-25 06:39:02 -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
916077012e
Make sure fopen is in binary mode on Windows.
2018-03-16 11:27:11 -07:00
Joseph Henry
db952a050a
Added platform checks for Windows in OneService
2018-02-08 14:15:32 -08:00
neutronscott
73ca9b6373
check physical blacklist for interface binding as well
2018-02-03 14:53:46 -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
c594351bcc
Remove old code.
2018-01-11 14:32:55 -08:00
Adam Ierymenko
f87326fc21
Fixes for lock ordering -- GitHub issue #573
2018-01-11 14:29:57 -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
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
30694f0b20
Allow trusted paths over global IPs for legacy config format too.
2018-01-09 08:59:26 -08:00
Adam Ierymenko
65c07afe05
Copyright updates for 2018.
2018-01-08 14:33:28 -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
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
Joseph Henry
382dd82eb6
Fix for local.conf virtual path blacklist (ticket #594 )
2017-11-27 15:31:25 -08:00
Adam Ierymenko
cb550ab4fe
Merge branch 'dev' into edge
2017-11-07 14:59:18 -08:00
Joseph Henry
e5d1243dd2
Minor changes to SDK-related portions of OneService
2017-11-06 13:43:56 -08:00
Adam Ierymenko
92c7070aa8
RethinkDB fixes.
2017-11-03 20:55:16 -04:00
Adam Ierymenko
2cc4dc5a6f
Clean peers.d periodically and delete peers older than 30 days.
2017-10-25 16:08:14 -07:00
Joseph Henry
ee4783e3fb
ifdef omit of deletePersistentTapDevice() in OneService for libzt builds on Windows
2017-10-10 15:01:15 -07:00
Grant Limberg
ceeb35eaac
If lastSend/lastReceive is < 0, just put 0.
2017-10-05 13:19:25 -07:00
Grant Limberg
4177a11522
remove some leftover debug code
2017-10-04 09:18:13 -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
Adam Ierymenko
f8014413a3
Add UDP MTU configurability.
2017-09-01 16:25:34 -07:00
Adam Ierymenko
6418d02572
Fix HTTP DELETE stupid bug.
2017-08-24 15:33:24 -07:00
Adam Ierymenko
2cebe7a5e0
Fix name difference.
2017-08-23 14:09:29 -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
Joseph Henry
59b7cbb591
Rename SocketTap to VirtualTap to prevent confusion on role
2017-08-15 16:22:28 -07:00
Joseph Henry
ee1dc16e8f
Added getRoutes() for libzt
2017-08-10 00:59:15 -07:00
Adam Ierymenko
b62296a40b
Bug fixes in new harness mode.
2017-07-19 14:13:17 -07:00
Adam Ierymenko
4ecc0c59ca
Plumbing through of remote trace into controller code.
2017-07-14 13:03:16 -07:00
Adam Ierymenko
ba6fd16823
More tracing stuff.
2017-07-13 15:08:57 -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
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
f18158a52d
.
2017-07-06 11:45:22 -07:00
Adam Ierymenko
2f20258807
.
2017-07-06 10:25:36 -07:00
Adam Ierymenko
baa10c2995
.
2017-06-30 17:32:07 -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
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
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
e8d11eb5c5
.
2017-06-01 17:21:04 -07:00
Joseph Henry
7bc9666aac
fix for SDK's route/tap association in getTap()
2017-05-31 13:07:03 -07:00
Adam Ierymenko
e5e90b1f71
Wire MTU through to service.
2017-05-04 20:10:49 -07:00
Joseph Henry
1f26cb98de
updated OneService convenience functions for SDK
2017-05-04 15:26:44 -07:00
Adam Ierymenko
1b68d6dbdc
License header update.
2017-04-27 20:47:25 -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
8542ee59db
Windows crash fix.
2017-04-21 12:42:51 -07:00
Adam Ierymenko
ba0d73d102
Windows build fixes.
2017-04-20 10:21:40 -07:00
Adam Ierymenko
bc61357a44
HTTP backend support for JSONDB
2017-04-18 17:37:44 -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
Joseph Henry
683ba79ff0
Added ButtFlare stub code
2017-03-24 17:00:14 -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
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
27d4bedd73
Wait a minute (literally) before doing software update check on startup.
2017-03-14 13:17:10 -07:00
Adam Ierymenko
d0224b3623
Software update fix.
2017-03-10 22:02: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
9c1a9f984b
Clean iddb.d periodically.
2017-03-08 10:18:12 -08:00
Adam Ierymenko
5249ce8fb4
Small amount of cleanup.
2017-03-08 08:45:04 -08:00
Adam Ierymenko
5dbafc2eeb
Add config to status in JSON API.
2017-03-07 14:17:51 -08:00
Adam Ierymenko
22f86df606
Merge ControlPlane into OneService to make variable access simpler.
2017-03-07 13:53:11 -08:00
Adam Ierymenko
a577b8d381
Update how controller handles circuit tests -- save results to filesystem.
2017-03-01 16:33:34 -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
Joseph Henry
b5b335a6f8
Route re-add patch for linux build on Synology devices
2017-02-16 16:41:26 -08:00
Adam Ierymenko
cd7b571da0
Add a local.conf option to set the port.
2017-02-13 15:55:38 -08:00
Adam Ierymenko
4b11566505
Integrate moon concept into http config bus, and clean up that code quite a bit.
2017-02-13 14:27:08 -08:00
Adam Ierymenko
42f28bce52
Cleanup and make moons (federated roots) a little easier to deal with.
2017-02-13 09:03:48 -08:00
Adam Ierymenko
31db768e4d
A bit of code cleanup.
2017-02-04 00:23:31 -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
9f7919f71f
Add comments to join ("orbit") moons.
2017-01-27 15:27:26 -08:00
Adam Ierymenko
0b3b994241
Relay policy can now be computed.
2017-01-27 14:05:09 -08:00
Adam Ierymenko
64774d0d4f
Replace piecemeal designation of upstreams with the concept of moons, which is simpler and easier to use and inherits all the cool live update stuff of worlds (now called planets) and global roots.
2017-01-27 13:27:52 -08:00
Adam Ierymenko
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
Michał Zieliński
8f2a42d1ad
allow user to specify arbitrary allowed IP networks in allowManaged
2017-01-23 12:16:40 +01: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
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
e9007b1f56
NodeJS migration script for old Sqlite controller.db to new controller data format.
2017-01-19 10:44:26 -08:00
Adam Ierymenko
e7bab66d29
Auto-apply updates if enabled.
2017-01-12 13:54:08 -08:00
Adam Ierymenko
c6b0b07605
More software update work, and settings in local.conf.
2017-01-12 13:18:11 -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
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
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
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
Daniel Skowroński
f09eedbd7a
make it compilable
2016-12-25 22:54:27 +01: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
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
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
d159e5ca44
Allow relay policy setting in local.conf
2016-11-21 15:21:24 -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
Adam Ierymenko
2e5de46584
local.conf and support for virtual role definition
2016-11-21 13:20:56 -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
Adam Ierymenko
8d0b2b781e
Route management bug fixes.
2016-09-13 16:25:48 -07:00
Adam Ierymenko
faa9a06bf5
Controller fixes...
2016-08-17 17:37:37 -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
402d99ea8d
C++11 mode build fix.
2016-08-16 14:07:11 -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
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
8912515011
Fix to fix to GitHub issue #352
2016-07-12 15:00:30 -07:00
Adam Ierymenko
b5e9d3f6f4
Rename file to be intuitive.
2016-07-12 11:41:19 -07:00
Adam Ierymenko
9657675755
Plumbing through trusted path stuff to OneService.
2016-07-12 11:30:22 -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
6535730255
GitHub issue #352
2016-07-12 08:42:36 -07:00
Adam Ierymenko
32d9850263
More new CLI work.
2016-06-23 12:37:15 -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
674b84d908
Plumbing for network setting control, and GitHub issue #330
2016-06-21 14:58:30 -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
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
Adam Ierymenko
1bf1c38b30
Default route population works on Mac!
2016-06-16 18:23:33 -07: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
Adam Ierymenko
4446dbde5e
Big refactor in service code to prep for plumbing through route management.
2016-06-14 10:09:26 -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
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
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
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
c7df61a3c3
dev branch now works again on Linux
2016-04-07 16:41:07 +00: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
0e26917c72
Tweak metric and clean out attic a bit.
2016-04-01 11:07:44 -07:00
Adam Ierymenko
1fe251d0a0
stupid bug is stupid
2016-03-03 14:50:47 -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
Joseph Henry
bcaf42e075
Transfer speed increate + stability fixes
2016-01-20 13:38:14 -08:00
Adam Ierymenko
4e4fd51117
boring doc stuff
2016-01-12 14:04:55 -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
b3e3d4cacc
Instead of using binary packet comparison, add a callback to the API to explicitly check whether paths should be used. Check in with this callback (if present) when learning new paths or sending initial packets.
2016-01-11 10:17:44 -08:00
Adam Ierymenko
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
436c1fac1d
Selectively move over changes from "edge" to "dev" excluding netcon.
2015-12-21 16:15:39 -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