Commit Graph

495 Commits

Author SHA1 Message Date
Grant Limberg
9568a4f2b4 netinet6/in6_var.h not available in iOS 2022-11-10 11:35:34 -08:00
Grant Limberg
b41e0910b0
Fun times in ~~cleveland~~ NDK-land 2022-11-09 11:11:10 -08:00
Joseph Henry
bc521504ca
Improved multipath link monitoring 2022-09-20 14:27:34 -07:00
Joseph Henry
a47c3cb16f
Exclude temporary IPv6 check from SDK builds 2022-06-01 14:24:28 -07:00
Grant Limberg
b65c1ed3a0
Add inja
Requries update to C++17 standard
2022-05-13 09:34:15 -07:00
Joseph Henry
6c85f8c7a7
Safely handle disappearing bonded interfaces (See issue #1587) 2022-05-06 14:59:34 -07:00
Adam Ierymenko
56357c077b
Merge pull request #1110 from neheb/patch-1
LinuxNetLink: Add cerrno header for (str)errno
2022-03-07 13:53:14 -05:00
Grant Limberg
31c12aebb5
more fun with linux ethernet taps
older kernels: must set MTU before IFF_UP.
newer kernels: must set MTU *after* IFF_UP
2022-02-17 09:26:53 -08:00
Adam Ierymenko
bb2b109707
Merge pull request #1559 from zerotier/oldlinux
potential fix for 2.6.x kernels
2022-02-11 17:59:53 -05:00
Joseph Henry
c5008031b9
Increase ifname size to accomodate Windows (issue #1560) 2022-02-11 10:08:56 -08:00
Grant Limberg
5d63ed6739
fix function call 2022-02-07 17:14:43 -08:00
Grant Limberg
fdf4ebd43c
potential fix for 2.6.x kernels
detect if the kernel is super old.  if so, do not execute the post IF_UP commands on the interface
2022-02-07 17:10:54 -08:00
Sean OMeara
0da00bf546
Merge pull request #1535 from zerotier/linux-route-metric
Set a high metric on linux routes that have a via.
2022-01-12 18:41:54 +01:00
Travis LaDuke
692a0e7ac2 Set a high metric on linux routes that have a via.
See issue #750.

zerotier doesn't currently set a metric on routes. Linux
takes this to mean "0", the highest priority.

Every comment in the issue is about routing between zerotier
and lan and how they conflict.

This quick change could fix this problem for most people.

The subnet route for the zerotier network, the one with no
via, is still 0 in this patch. Just the "via" routes get
higher metrics.
If for some reason, you needed your via routes to have
higher priority, you could use a prefix work-around:

192.168.1.0/25 via 10.147.17.1
192.168.1.128/25 via 10.147.17.1
2022-01-07 13:10:36 -08:00
Travis LaDuke
fa25b45198 Keep interface name on via routes on linux
See issue #1498
2022-01-07 11:58:42 -08:00
Grant Limberg
cc6c48fca8
Merge pull request #1525 from StephenCWills/lowercase-windows-headers
Use lowercase when including Windows headers
2022-01-04 17:11:51 -08:00
Grant Limberg
e556a2ee23
Merge pull request #1528 from StephenCWills/android-miniupnpc
[Android] Fix include for miniupnpc
2022-01-04 16:56:05 -08:00
staphen
f83eed9ef9
[Android] Fix include for miniupnpc 2022-01-03 12:15:21 -05:00
staphen
1c956494a4
Use lowercase when including Windows headers 2021-12-29 16:29:08 -05:00
Travis LaDuke
afdc91f21f Convince macOS to do ipv6 dns lookups
Puts a value into System Config, similar to how DNS push works.

closes #1466

https://apple.stackexchange.com/questions/309430/ipv6-dns-resolution-on-macos-high-sierra
2021-12-13 12:34:41 -08:00
Adam Ierymenko
fabfb10b97
Remove managed routes in destructor (regression fix). 2021-11-15 19:48:07 -05:00
Adam Ierymenko
65549cb0da
Fix the FD leak fix, and release notes. 2021-11-15 18:27:14 -05:00
Adam Ierymenko
0e798222a7
Fix FD leak on MacOS. 2021-11-15 17:17:05 -05:00
Adam Ierymenko
c890f1762a
This code is obsolete but remove vfork anyway. 2021-11-15 14:09:52 -05:00
Adam Ierymenko
c16b03c8b8
Set MAC address twice, once before and once after bringing interface up, since different kernels behave differently (Linux). 2021-11-09 13:28:15 -05:00
Adam Ierymenko
357e1aca54
Likely MAC fix for Linux. 2021-11-09 13:24:03 -05:00
Travis LaDuke
37f26beb50 Fix multicast flag on linux interfaces.
When we re-ordered the way the interfaces come up, this flag
stopped getting set automatically.

see 9374e45449
and github issue #1477
2021-11-02 11:28:13 -07:00
Grant Limberg
993e58773a
needed in 2 more spots 2021-10-27 14:58:17 -07:00
Grant Limberg
8f4c038e23
fix ifdef
wasn't running IPv6 temporary address detection for binding
2021-10-27 14:48:07 -07:00
Adam Ierymenko
594853e251
Remove deprecated vfork call on Mac, and make Mac route application more robust. 2021-10-26 22:15:06 -04:00
Adam Ierymenko
d2c3ea6901
Another route fix on BSD. 2021-09-15 13:31:18 -04:00
Adam Ierymenko
6bb1598fa3
Another fix for routing and interface issues on MacOS 2021-09-15 11:50:54 -04:00
Adam Ierymenko
1b8917a57c
Fix for MacOS interface setup and config timing bugs. 2021-09-09 09:30:48 -04:00
Adam Ierymenko
1a1d7d9ada
Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-09-02 15:23:38 -04:00
Adam Ierymenko
d1c88971ae
Possible Mac route borking fix. 2021-09-02 15:23:26 -04:00
Joseph Henry
e1af003e4f
Consolidation of multipath logic. Better system separation 2021-09-01 21:37:49 -07:00
Joseph Henry
b6680b18e7
Merge pull request #1304 from skunkwerks/dev
BSD: add debug fprintf for all external commands
2021-08-30 10:11:53 -07:00
Adam Ierymenko
126669b718
MTU fix 2021-08-13 15:12:07 -04:00
Adam Ierymenko
63a44c9268
Fix feth max MTU sysctl. 2021-07-30 18:44:23 -04:00
Travis LaDuke
8866fbd618 Merge branch 'bind' of https://github.com/thoradia/ZeroTierOne into thoradia-bind 2021-06-29 11:22:46 -07:00
Adam Ierymenko
8885149cd3
Revert "Revert "Revert a change to LinuxEthernetTap threading to eliminate out of order packet issues on some systems.""
This reverts commit 89ddf2991b.
2021-06-28 19:29:53 -04:00
Adam Ierymenko
89ddf2991b
Revert "Revert a change to LinuxEthernetTap threading to eliminate out of order packet issues on some systems."
This reverts commit 0461b24db3.
2021-06-28 17:59:28 -04:00
Adam Ierymenko
0461b24db3
Revert a change to LinuxEthernetTap threading to eliminate out of order packet issues on some systems. 2021-06-28 17:15:34 -04:00
Grant Limberg
1859365f9d same IPv6 temp address detection code for macOS works on FreeBSD.
update ifdefs & go
2021-05-27 16:43:12 -04:00
Grant Limberg
ab87b8f881 Don't bind to temporary IPv6 addresses (linux) 2021-05-26 15:50:14 -07:00
Grant Limberg
b8b65da51c
Don't bind temporary IPv6 addresses (macOS) 2021-05-26 11:01:44 -07:00
Grant Limberg
198e6f765c Don't bind to temporary Ipv6 addresses (windows) 2021-05-26 09:15:24 -07:00
Joseph Henry
13481cea18
Fix (some) compile-time warnings on Windows 2021-05-03 21:12:45 -07:00
Joseph Henry
7faaa55436 Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev-multipath 2021-05-03 19:41:41 -07:00
Joseph Henry
29e5880d8b
Match formatting of Bond-related sources to ZeroTier standard (no functional changes) 2021-05-03 17:59:31 -07:00
Grant Limberg
5fb814a04f
Merge pull request #1388 from emundo/fix/1387-dns-issue
Fix macOS DNS issue
2021-04-28 13:19:09 -07:00
Grant Limberg
c69d2df0a2
Merge pull request #1390 from jonathonf/linux-tap-link-ordering
Set MAC address before bringing up Linux TAP link
2021-04-28 13:17:38 -07:00
Adam Ierymenko
46a7136b0d
Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-04-28 16:16:17 -04:00
Adam Ierymenko
d2974f2e60
Do not inherit open file descriptors on fork() in MacEthernetTapAgent 2021-04-28 16:16:02 -04:00
Jonathon Fernyhough
bac57e355d
Set MAC address before bringing up Linux TAP link
This corrects the flow for bringing up a TAP device under Linux by
setting the device MAC address prior to bringing up the device.

Closes #1314
2021-04-21 20:46:13 +01:00
Jonathon Fernyhough
b8b1f64959 Revert "Reorder Linux TAP link sequence"
This reverts commit 9374e45449.
2021-04-21 20:45:17 +01:00
Robert.Schreib
4e8640b380
Handle case where no old DNS servers exist 2021-04-21 13:49:55 +02:00
Jonathon Fernyhough
9374e45449
Reorder Linux TAP link sequence
This corrects the flow for bringing up a TAP device under Linux.

Closes #1314
2021-04-21 12:30:51 +01:00
Robert.Schreib
31ffe4403c
Check if DNS servers need to be Applied on macOS 2021-04-21 12:02:31 +02:00
Dave Cottlehuber
b37e9de24d BSD: add debug fprintfs for external commands 2021-04-15 06:37:01 +00:00
Adam Ierymenko
79e2fd4586 Automatically detect Ethernet tap friendly name in Windows shouldBind stuff. 2021-03-16 10:12:55 -04:00
Adam Ierymenko
5391e95fce
Typo fix. 2020-11-30 15:52:56 -05:00
Adam Ierymenko
954f6a77e5
Another Linux fix. 2020-11-30 15:46:16 -05:00
Adam Ierymenko
21993819a5
Possible fix for Linux deadlock. 2020-11-30 15:41:47 -05:00
Rosen Penev
2aecb547d9
LinuxNetLink: Add cerrno header for (str)errno
Fixes compilation under libcxx.
2020-11-30 01:38:45 -08:00
Grant Limberg
5188c7d41f com & com security already initialized by here 2020-11-25 20:06:43 -08:00
Grant Limberg
0456a71295 Windows feedback loop fix 2020-11-25 11:05:36 -08:00
Adam Ierymenko
d64c5a92c6
Merge pull request #1233 from dosuperuser/improvement/optimizations
Minor C++ optimizations
2020-11-24 19:24:36 -05:00
Grant Limberg
95da2bcbcf move CoUninitialize to the proper place at the end of the tap thread 2020-11-19 14:13:16 -08:00
Grant Limberg
a9e4fb0ed9 Fix multiple networks on Windows 2020-11-19 14:10:34 -08:00
Adam Ierymenko
a0c78da1ad
Revert "Tune thread count based on hardware concurrency."
This reverts commit 7b14aeb53e.
2020-11-18 22:54:05 -05:00
Adam Ierymenko
7b14aeb53e
Tune thread count based on hardware concurrency. 2020-11-18 22:42:00 -05:00
Adam Ierymenko
f934a09baa
Build fix. 2020-11-18 22:32:57 -05:00
Adam Ierymenko
414c248cc5
Try another approach... 2020-11-18 22:26:06 -05:00
Adam Ierymenko
ca428233ba
Revert "Try another optimization in LinuxEthernetTap."
This reverts commit a390629371.
2020-11-18 22:24:18 -05:00
Adam Ierymenko
3712f9b318
Revert "Shutdown fix."
This reverts commit 11545bdb5d.
2020-11-18 22:24:09 -05:00
Adam Ierymenko
11545bdb5d
Shutdown fix. 2020-11-18 22:13:06 -05:00
Adam Ierymenko
a390629371
Try another optimization in LinuxEthernetTap. 2020-11-18 22:06:17 -05:00
Adam Ierymenko
e3e188109d Build fix. 2020-11-18 10:14:39 -08:00
Adam Ierymenko
7cbbc38b89
Reduce mutex use in LinuxEthernetTap. Try to squeeze a bit more powah out of it. 2020-11-18 12:50:34 -05:00
Adam Ierymenko
4bd58d47cf Revert "Try factoring out a mutex to see if its faster."
This reverts commit 982c32322b.
2020-11-17 12:52:48 -08:00
Adam Ierymenko
982c32322b
Try factoring out a mutex to see if its faster. 2020-11-17 15:48:15 -05:00
Adam Ierymenko
2fcc344299
Some buffer tuning. 2020-11-17 15:34:42 -05:00
Adam Ierymenko
3acd901c88
Build fixes. 2020-11-17 12:13:08 -05:00
Adam Ierymenko
0795dbf5f1 Revert "Moar threadz"
This reverts commit 101a3a7d74.
2020-11-16 19:06:52 -08:00
Adam Ierymenko
101a3a7d74
Moar threadz 2020-11-16 21:49:51 -05:00
Adam Ierymenko
2da162bed7
Split Linux tap receive into two threads: one reader, one processor. 2020-11-16 21:40:25 -05:00
Adam Ierymenko
5282e06fd4
Tun/tap flags fix. 2020-11-16 19:08:09 -05:00
Adam Ierymenko
dc806dd718
Try pipelining tap reads on Linux for a little more speed. 2020-11-16 18:56:00 -05:00
Adam Ierymenko
6b67cb0e2a Linux build fixes. 2020-11-16 11:11:52 -08:00
Adam Ierymenko
250f0ef9db
Remove dead code. 2020-11-16 13:51:27 -05:00
Adam Ierymenko
4aab9121d9 Linux build fixes, and new route code seems to work. 2020-11-13 22:25:12 -05:00
Adam Ierymenko
5ea7ef6b65
Rework Linux route setting to actually consult netlink interface. 2020-11-13 22:06:58 -05:00
Adam Ierymenko
a3875f9965
Add a route DB to LinuxNetLink to make route sync robust. 2020-11-13 21:55:31 -05:00
Adam Ierymenko
3730917dda
LinuxNetLink cleanup 2020-11-13 21:06:34 -05:00
Adam Ierymenko
e8be28734b Linux netlink and route setting... work in progress. 2020-11-13 19:07:54 -05:00
Adam Ierymenko
6c5a097711
Use LinuxNetLink for routes on Linux... still needs testing/debugging on an actual Linux machine. 2020-11-13 18:16:14 -05:00
Adam Ierymenko
eadca9dd75
Build fix. 2020-11-11 15:29:01 -05:00
Adam Ierymenko
59dd71187e
Build fix. 2020-11-11 15:14:08 -05:00
Adam Ierymenko
36e167013a
More Linux tap shotgun debugging. 2020-11-11 15:12:16 -05:00