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