Adam Ierymenko
a8c12369fd
More tweaks to TCP logic for GitHub issue #60
2014-04-09 12:10:05 -07:00
Adam Ierymenko
28a6d328a5
Some adjustments to TCP logic for GitHub issue #60
2014-04-09 11:55:24 -07:00
Adam Ierymenko
dd404b8ba3
VERSION 0.8.0
...
This version introduces a major new feature requested by several users,
both via the user survey and otherwise: TCP tunneling.
If you are not able to communicate over UDP/9993, ZeroTier One will switch to
TCP connections to ZeroTier's supernodes. This is always slower than UDP, but
will allow you to communicate behind all but the most extremely restrictive
firewalls. This TCP traffic travels over port 443 and looks like HTTPS (SSL)
traffic (though it isn't), since that port is almost always open.
This also fixes several minor bugs and attempts to improve the robustness of
Windows tap driver management. Several users have reported spurious issues
with the Windows tap device, though I was unable to reproduce any of these with
clean VMs. (Tried Windows 7 and 8.1, both x86 and x64. No luck.) But I tried
to beef up the tap code anyway in the hopes of catching it. It now tries a lot
harder to make sure the tap is up and running.
There was some significant under the hood refactoring in support of TCP, so
this was a non-trivial change.
I bumped the version to 0.8 to indicate that more and more features are being
crossed off the list as we approach 1.0 and exit from beta. After this, the next
major feature will be LAN announcement to find direct paths to peers on the
same physical LAN. But assuming that 0.8.0 goes smoothly, I am going to divert
attention to the web site. A new design is coming that is much cleaner, sharper,
and easier to use.
Thank you all for all your excellent feedback! We're well on the way to a killer
product that makes conventional VPNs and other kludges obsolete.
2014-04-08 22:38:51 -07:00
Adam Ierymenko
1c636afe3f
Fix typo.
2014-04-08 16:43:36 -07:00
Adam Ierymenko
48a1799f49
More Windows tap cleanup... seems solid. We'll see.
2014-04-08 16:10:48 -07:00
Adam Ierymenko
bf24de43fe
Windows tap: be REAL REAL REAL PARANOID. Wake up sheeple.
2014-04-08 15:47:33 -07:00
Adam Ierymenko
76d9ea911d
Another Qt build fix... need the right tap driver in build just to make symbols work even though UI doesn't use that code.
2014-04-08 14:16:45 -07:00
Adam Ierymenko
ff773def26
Remove EthernetTap.cpp from UI build project.
2014-04-08 13:59:31 -07:00
Adam Ierymenko
5abfb11813
Some installer stuff, complete refactoring of Windows side of newly split tap driver. Seems to work. Now to see if the cleanup we did here gets rid of the zombie tap device issue on Windows.
2014-04-08 12:00:21 -07:00
Adam Ierymenko
0b8d6c7f4a
Builds and runs on Unix with EthernetTap changes, now for Windows... and for what we did this for: a refactor of the Windows tap connector.
2014-04-07 15:39:33 -07:00
Adam Ierymenko
6c60305a96
Split EthernetTap into subclasses, work in progress...
2014-04-07 14:47:39 -07:00
Adam Ierymenko
19c4d82512
Intaller upgrade and stuff, fix to Windows service for new Node API changes.
2014-04-04 16:59:02 -07:00
Adam Ierymenko
e11149bcae
Fix network widget spacer issue on Windows.
2014-04-04 12:25:48 -07:00
Adam Ierymenko
fe85426df6
A few more tweaks to TCP failover... seems to be switching back and forth pretty well now!
2014-04-03 17:12:34 -07:00
Adam Ierymenko
158002d2d1
Tweak some timings and stuff.
2014-04-03 16:19:41 -07:00
Adam Ierymenko
c96d3ebf8c
Such ping logic. So edge case.
2014-04-03 14:36:52 -07:00
Adam Ierymenko
b1088a6bd7
Make Unix domain sockets mode 0777 so that properly authorized non-privileged users can access them (if they have auth token).
2014-04-02 17:21:26 -07:00
Adam Ierymenko
f0223490be
Make GUI work with new control client API, make control client look for user authtoken.secret if system unreadable.
2014-04-02 17:12:04 -07:00
Adam Ierymenko
81e5690410
More tweaks to TCP failover logic. Such edge case.
2014-04-02 17:32:47 -04:00
Adam Ierymenko
700a450806
More tweaks to algorithm for determining when to fail over to TCP, and stop supernodes from resynchronizing unless explicitly ordered.
2014-04-01 18:39:10 -07:00
Adam Ierymenko
0e1fc06a6f
The remove paths on send fail thing in Peer.cpp was not well thought out, and there is no point in mallocing the TCP write buffer.
2014-04-01 15:55:05 -07:00
Adam Ierymenko
c3b41c289d
Resynchronize on startup.
2014-04-01 14:12:54 -07:00
Adam Ierymenko
6ab95e0391
Get : out of Path.toString() since this will conflict with : in IPv6 IPs.
2014-04-01 08:52:52 -07:00
Adam Ierymenko
67b3fa9311
Clean up main.o in Linux make clean.
2014-03-31 22:38:46 -07:00
Adam Ierymenko
316e8d1939
Build fix.
2014-03-31 22:30:08 -07:00
Adam Ierymenko
f13493edb2
Oops... turns out we need to differentiate incoming from outgoing TCP and indeed learn incoming TCP paths. Otherwise the recipient of a TCP connection does not know to reply via TCP! Heh.
2014-03-31 22:23:55 -07:00
Adam Ierymenko
595b386afc
Increase maximum packet fragments to make room for huge multicasts with certificates of membership tagged onto them. This likely will not actually increase the number of fragments in practice much, since these are then subsequently compressed. But the buffer needs to be allocated with room for them, otherwise these packets get dropped with a range_error exception internally.
2014-03-31 14:53:33 -07:00
Adam Ierymenko
8e587ae481
Clean dead paths from peers.
2014-03-31 11:41:14 -07:00
Adam Ierymenko
acb056e3b1
Small readability fix.
2014-03-28 21:04:15 -07:00
Adam Ierymenko
5ef2c6fd6f
Add TCP/443 to all supernodes in Defaults.
2014-03-28 15:51:19 -07:00
Adam Ierymenko
1a0572d7e7
Remove UDP-breaking debug code.
2014-03-28 13:58:18 -07:00
Adam Ierymenko
7957ab6b1d
Windows uses exceptfds to report failed async connect() in select(). TCP now done on Windows (I think).
2014-03-28 13:37:21 -07:00
Adam Ierymenko
e8b613e625
TCP connections work on Windows now.
2014-03-28 12:26:33 -07:00
Adam Ierymenko
9c68a343f6
Reduce some TRACE noise.
2014-03-27 18:57:20 -07:00
Adam Ierymenko
881ff08269
Make multiple attempts to open the tap device on Windows.
2014-03-27 18:50:10 -07:00
Adam Ierymenko
e3239d23f4
Windows build fix.
2014-03-27 18:39:58 -07:00
Adam Ierymenko
f9c92b0351
Build fix from merge.
2014-03-27 18:24:57 -07:00
Adam Ierymenko
b73c36acbf
Merge branch 'adamierymenko-dev' of ssh://shub-niggurath.zerotier.com:222/git/ZeroTierOne into adamierymenko-dev
2014-03-27 18:23:02 -07:00
Adam Ierymenko
181369964f
Make TCP optional, rename port constant.
2014-03-27 18:22:53 -07:00
Adam Ierymenko
d2c5d71502
Finally fixed TCP sockets.
2014-03-27 17:42:02 -07:00
Adam Ierymenko
c231510f8b
More TCP-related fixes and tweaks to ping timing, resynchronize, and startup.
2014-03-27 17:02:52 -07:00
Adam Ierymenko
2ac56fd120
Fix TCP connection accumulation problem, still having issues with TCP tunneling.
2014-03-26 17:59:45 -07:00
Adam Ierymenko
e6b23059ac
Change the way TCP failover is invoked.
2014-03-26 16:44:58 -07:00
Adam Ierymenko
04169b5150
If I want it to pick the first, actually picking the first is helpful.
2014-03-26 15:44:24 -07:00
Adam Ierymenko
daaec84c6b
Add TCP channel support for supernode list, make Peer pick the first path if all paths are equally dead.
2014-03-26 15:35:15 -07:00
Adam Ierymenko
73c1d43f2f
Crank down default multicast preload and max balance just a little bit... should not impact non-lame protocols.
2014-03-25 21:48:16 -07:00
Adam Ierymenko
ab5a460177
Apply multicast rate limits on a network to ourselves and do not send multicasts that would exceed limits, for GitHub issue #55
2014-03-25 21:38:54 -07:00
Adam Ierymenko
67a85221d5
WINDOWS IS SUFFERING
2014-03-25 17:31:03 -07:00
Adam Ierymenko
328be8f846
Make Windows build, add (untested) Windows named pipe based IPC code.
2014-03-25 08:37:08 -07:00
Adam Ierymenko
d9b91758e0
Fix command line interface.
2014-03-21 14:58:35 -07:00