Commit Graph

323 Commits

Author SHA1 Message Date
ee5bd57d40 We don't bind to non-local IP for TCP yet, but eliminate double check. 2016-11-14 15:29:36 -08:00
8d0b2b781e Route management bug fixes. 2016-09-13 16:25:48 -07:00
faa9a06bf5 Controller fixes... 2016-08-17 17:37:37 -07:00
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
402d99ea8d C++11 mode build fix. 2016-08-16 14:07:11 -07:00
98152d974a More cleanup and removal of DeferredPackets, will do the latter in a more elegant way. 2016-08-04 11:40:38 -07:00
7e6e56e2bc Bunch of work on pushing and replication of tags and capabilities, and protocol cleanup. 2016-08-03 18:04:08 -07:00
8912515011 Fix to fix to GitHub issue #352 2016-07-12 15:00:30 -07:00
b5e9d3f6f4 Rename file to be intuitive. 2016-07-12 11:41:19 -07:00
9657675755 Plumbing through trusted path stuff to OneService. 2016-07-12 11:30:22 -07:00
cdb5ceac7b Should remove old IPs before trying to add new ones. 2016-07-12 09:43:12 -07:00
6535730255 GitHub issue #352 2016-07-12 08:42:36 -07:00
32d9850263 More new CLI work. 2016-06-23 12:37:15 -07:00
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
674b84d908 Plumbing for network setting control, and GitHub issue #330 2016-06-21 14:58:30 -07:00
4f237687ce Route management now works on Windows, including default route override! 1.1.6 very close! 2016-06-21 13:54:03 -07:00
5b2d2efb45 Windows builds again. And there was much rejoicing. 2016-06-21 12:55:43 -07:00
b2d048aa0e Make Dictionary templatable so it can be used where we want a higher capacity. 2016-06-21 07:32:58 -07:00
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
1bf1c38b30 Default route population works on Mac! 2016-06-16 18:23:33 -07:00
3c655a4b84 Default route ready to test on Mac. 2016-06-15 15:46:57 -07:00
b90e66f7c7 ManagedRoute, which applies C++ RAII to injected routes. Move RoutingTable to attic. 2016-06-15 15:02:40 -07:00
4446dbde5e Big refactor in service code to prep for plumbing through route management. 2016-06-14 10:09:26 -07:00
536feb632c Support yet another old version of http-parser for CentOS/EPEL. 2016-06-08 15:09:09 -07:00
4da9d4e53a Fix build against Debian version of libhttp-parser -- its old but it will work. 2016-06-08 12:49:07 -07:00
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
63b62ebf4c Boost local interface check interval a bit to speed direct link provisioning on startup. 2016-04-07 12:13:18 -07:00
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
c7df61a3c3 dev branch now works again on Linux 2016-04-07 16:41:07 +00:00
504738b183 Binder for Windows, and use Binder to get local interface addresses to advertise. 2016-04-05 15:53:19 -07:00
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
4a109658ab More refactoring and prep for explicit interface bindings (for default route support). 2016-04-05 11:59:46 -07:00
0e26917c72 Tweak metric and clean out attic a bit. 2016-04-01 11:07:44 -07:00
1fe251d0a0 stupid bug is stupid 2016-03-03 14:50:47 -08:00
09fc9e4d0c indent fix 2016-03-03 14:21:13 -08:00
fe3a84a422 Fix problems with previous commit. 2016-03-03 14:15:09 -08:00
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
bcaf42e075 Transfer speed increate + stability fixes 2016-01-20 13:38:14 -08:00
4e4fd51117 boring doc stuff 2016-01-12 14:04:55 -08:00
d6f0f1a82a Use network user ptr in lookup for Ethernet frame handling to eliminate map lookup. 2016-01-12 11:34:22 -08:00
83ef98a9dc Add a network-associated user ptr in API. 2016-01-12 11:04:35 -08:00
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
eea634a432 Refactor to eliminate copypasta. 2016-01-11 09:11:35 -08:00
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
436c1fac1d Selectively move over changes from "edge" to "dev" excluding netcon. 2015-12-21 16:15:39 -08:00
944fdfb65e Low-impact sanity check against GitHub issue #247 -- will likely prevent other weird recursions too. 2015-11-30 16:44:32 -08:00
40a4ba6e39 indentation 2015-11-30 15:15:43 -08:00
6768521330 Ton of uPnP work and adding NAT-PMP support, still testing... 2015-11-30 13:10:22 -08:00
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
54f68280bd Minor Windows build fixes. Builds on VS2012 again. 2015-11-12 16:48:42 -08:00