Adam Ierymenko
61d0f27d2a
Make MulticastTopology have its own mutex.
2014-09-23 10:26:30 -07:00
Adam Ierymenko
c49e253e21
.
2014-09-22 15:03:16 -07:00
Adam Ierymenko
954f9cbc13
Yet more WIP on mulitcast algo...
2014-09-22 13:18:24 -07:00
Adam Ierymenko
d9abd4d9be
Work on defining new direct broadcast multicast algorithm.
2014-09-18 18:28:14 -07:00
Adam Ierymenko
4708231046
Fix for GitHub issue #122 and other fixes
2014-09-18 10:01:30 -07:00
Adam Ierymenko
6b76cac6cf
Back off from thrashing shutdownIfUnreadableCheck, fix bug in control service.
2014-09-17 14:19:58 -07:00
Adam Ierymenko
2762db8408
More work on control bus refactor...
2014-09-17 12:54:39 -07:00
Adam Ierymenko
73dd9d3b74
Make sure open() has third argument
2014-09-16 08:58:49 -07:00
Adam Ierymenko
8d2e20ede6
Get rid of __align stuff in Salsa20 -- not portable, does not seem to help much on newer chips.
2014-09-16 08:53:18 -07:00
Adam Ierymenko
5c1c70a604
cleanup
2014-09-16 08:19:39 -07:00
Adam Ierymenko
fb22ef053b
Move rest of NodeControl stuff out of node/ and into control/
2014-09-15 16:32:55 -07:00
Adam Ierymenko
13aba7640b
refactoring for SDK
2014-09-15 09:43:57 -07:00
Adam Ierymenko
1d37204a37
Refactoring in progress... pardon our dust...
2014-09-12 16:57:37 -07:00
Adam Ierymenko
6b4346d1ac
work in progress on API refactor
2014-09-10 17:16:40 -07:00
Adam Ierymenko
4e9280fc7a
Rip out dead "firewall opener" code, replace in pipeline with anti-symmetric-NAT tactics.
2014-09-05 16:23:24 -07:00
Adam Ierymenko
d02ecfb288
IP assignment and change cleanup -- leave IPs that were never configured via ZT static assignment alone.
2014-09-05 15:35:09 -07:00
Adam Ierymenko
3afc629ac5
Bit of network config parser cleanup.
2014-09-05 14:56:11 -07:00
Adam Ierymenko
7d4b6767eb
Old-school GCC build fix -- make sure __GCC__ is defined
2014-09-05 17:48:59 +00:00
Adam Ierymenko
93f9b4392d
Enable configuration of multicast algorithm parameters in netconf
2014-09-04 14:25:07 -07:00
Adam Ierymenko
6df9546742
Fix for missing broadcast address on Linux Ethernet taps.
2014-09-04 13:36:25 -04:00
Adam Ierymenko
dcea212e40
Add noupdate flag in root topologies, add ability for mktopology to read from a template.
2014-09-03 11:56:36 -07:00
Adam Ierymenko
00b16f6aa6
Fix for GitHub issue #110 -- failure to bind IPv6 now non-fatal
2014-08-27 20:09:56 -04:00
Adam Ierymenko
eadff71d37
Another fix to Network life cycle.
2014-08-21 18:07:27 -07:00
Adam Ierymenko
de4e29288d
Fix for crazy Windows threading bug... repeatedly adding and removing a network now doesn't leave networks in limbo.
2014-08-21 17:49:05 -07:00
Adam Ierymenko
721625d512
Add MAC to listnetworks, and some other make stuff.
2014-08-19 14:11:02 -07:00
Adam Ierymenko
282114e96c
Makefile changes, and make Topology::getBestSupernode() return the "next" supernode if I am a supernode. Also some comment cleanup.
2014-08-19 10:09:21 -07:00
Adam Ierymenko
95d123cfc2
Do HttpClient refactoring for Windows.
2014-08-18 14:34:04 -07:00
Adam Ierymenko
f5cbb45ab9
Increase sleep/wake detection threshold... might want to switch to using native interfaces to really detect this in the future since this is not 100% reliable.
2014-08-18 10:13:25 -04:00
Adam Ierymenko
715afc0314
Default to built-in root topology if signature check fails (instead of exiting)
2014-08-16 14:01:25 -07:00
Adam Ierymenko
f281886bfd
Small thread safety fix in HttpClient.
2014-08-16 13:32:33 -07:00
Adam Ierymenko
4f0fcc582e
Refactor HttpClient a bit.
2014-08-16 09:08:52 -07:00
Adam Ierymenko
aa59cfd545
Web request part of supernode resync (not quite done, needs test)
2014-08-15 23:37:35 -04:00
Adam Ierymenko
c2187c8759
(1) distribute default root-topology in new dictionary format, (2) bump peer serialization version to force obsolescence of old supernodes, (3) stop outputting a log message every time we poll for software updates
2014-08-14 19:52:22 -04:00
Adam Ierymenko
be6b61b1bc
Accept supernode dictionaries in Topology, also fix (unused) field name in one of these.
2014-08-14 18:06:18 -04:00
Adam Ierymenko
f8d4611d15
(1) Tweak LAN locator beacon frequencies, (2) Windows virtual networks
...
now show up as *real* networks and prompt the user to set their
location and firewall status (public, private, home/work, etc.).
The hack used to achieve #2 should not be examined by children or those
suffering from epilepsy or heart conditions.
2014-08-12 17:20:34 -07:00
Adam Ierymenko
fe3ad5e2cc
Fix a Windows bug in refactored tap code, and always make sure we have a firewall exception rule on startup.
2014-08-08 14:57:13 -07:00
Adam Ierymenko
502ea66f15
Kill ugly old getSecureRandom() and replace with simple wrapper for Windows CAPI and *nix /dev/urandom, and some build fixes.
2014-08-08 11:53:55 -07:00
Adam Ierymenko
673aab5ba2
Fix an oversight in signed dictionaries: the timestamp and signing identity should themselves be part of the signature. Also include the raw dictionary in addition to the bin2c version in root-topology/
2014-08-08 12:46:00 -04:00
Adam Ierymenko
77457cbff1
Windows compile fixes, compiler warning fix, unfreed memory fix in main.c (though it would not have mattered since program exits immediately after).
2014-08-07 19:08:41 -07:00
Adam Ierymenko
adfb71fa6b
Compile for for TRACE, remove old TESTNET cruft.
2014-08-07 08:49:43 -07:00
Adam Ierymenko
b3491f9de1
ifdef out Unix-only output redirect function on Windows
2014-08-07 06:36:46 -07:00
Adam Ierymenko
80fc584923
Fix for GitHub issue #97
2014-08-07 06:35:54 -07:00
Adam Ierymenko
92d9ad4a7f
Some tap interface changes and integration into main.cpp for *nix systems.
2014-08-06 16:24:30 -07:00
Adam Ierymenko
8a804b5257
(1) Disable firewall openers (its easy to re-enable), (2) Do some prep work for making supernode topology hot-updatable.
2014-08-05 14:05:50 -07:00
Adam Ierymenko
e3c5ada3a7
Add signatures to Dictionary, and fix unhex() API in Utils to be a little safer.
2014-08-05 09:56:49 -07:00
Adam Ierymenko
98d426e1d5
Path fixes in osnet/ stuff
2014-07-31 14:31:32 -07:00
Adam Ierymenko
b80c229d87
Tons of code cleanup, refactor Network to use EthernetTapFactory, probably also fix GitHub issue #90
2014-07-31 14:09:32 -07:00
Adam Ierymenko
9b93141dd0
Upgrade LZ4 to latest version.
2014-07-30 15:34:15 -07:00
Adam Ierymenko
f2d372545a
Salsa20 SSE Windows build fix -- turns out you can't be as loose with SSE intrinsics in Visual Studio
2014-07-26 20:07:38 -07:00
Adam Ierymenko
538e8a86c8
Move node/osdep/ to sys/
2014-07-26 13:10:41 -07:00
Adam Ierymenko
27aa6ea44e
Linux routing table support work.
2014-07-25 16:16:05 -04:00
Adam Ierymenko
7475c4047e
A bunch more osdep/ work...
2014-07-23 09:14:53 -07:00
Adam Ierymenko
5e58a7d54a
Split UnixEthernetTap by platform to get rid of ifdef spaghetti.
2014-07-21 09:18:33 -07:00
Adam Ierymenko
6a174483d8
Ethernet tap factory interface.
2014-07-18 17:26:08 -07:00
Adam Ierymenko
a76d9d4408
Move OS-dependent implementations of generic interfaces to osdep/ in preparation for TapFactory refactor.
2014-07-17 17:19:18 -07:00
Adam Ierymenko
1189f4a568
Set/delete functionality in BSD routing table.
2014-07-17 17:17:59 -07:00
Adam Ierymenko
51766e6549
BSD routing table works... that hurt much worse than it should have.
2014-07-17 13:08:37 -07:00
Adam Ierymenko
d315156733
BSD routing table implementation work.
2014-07-16 15:13:53 -07:00
Adam Ierymenko
4c4675e3ac
Cleanup, add __BSD__
2014-07-15 20:49:13 -07:00
Adam Ierymenko
12692c551e
SSE optimized Salsa20 -- anywhere from 20% to 50% faster than plain C version
2014-07-15 17:56:09 -07:00
Adam Ierymenko
00f9305ad8
Routing table base class.
2014-07-15 13:48:42 -07:00
Adam Ierymenko
0097949ba9
.
2014-07-15 12:32:06 -07:00
Adam Ierymenko
1b33a9e807
.
2014-07-15 12:21:24 -07:00
Adam Ierymenko
4a0b33561c
Starting to define system network stack interface.
2014-07-13 12:57:30 -07:00
Adam Ierymenko
f82c7006ea
Leave IP addresses alone instead of deleting them from tap if they are not members of any of the networks under management.
2014-07-02 15:59:08 -07:00
Adam Ierymenko
681af253ef
Fix for GitHub issue #88 - actually do in the code what the web UI expects it to do.
2014-07-01 09:27:33 -07:00
Adam Ierymenko
88bdb81791
Keep track of basic aliveness for peers regardless if direct or indirect connectivity and use this for multicast propagation. Also consolidate adding of active bridges via the same functor as regular multicast next hops.
2014-06-30 11:31:04 -07:00
Adam Ierymenko
458f6ae7c3
Only add active bridges to top of MC propagation list if they are alive. Otherwise a dead active bridge might kill multicast for us.
2014-06-26 18:13:48 -07:00
Adam Ierymenko
38433e85bf
More little stuff in crypto code.
2014-06-26 17:23:10 -07:00
Adam Ierymenko
c3cbc92757
Some crypto comment fixes.
2014-06-26 17:15:20 -07:00
Adam Ierymenko
45a1e048bb
Add enabled/disabled status to network.
2014-06-26 17:05:07 -07:00
Adam Ierymenko
40bd460b1c
Some comment revisions and additional sanity checks.
2014-06-23 08:19:41 -07:00
Adam Ierymenko
ae7143d693
Comments and cleanup.
2014-06-21 12:19:10 -07:00
Adam Ierymenko
aead1050fb
Bridging (GitHub issue #68 ) does indeed work! Just needed to fix a packet size thinko.
2014-06-21 12:29:33 -04:00
Adam Ierymenko
6e485833ef
.
2014-06-21 12:25:10 -04:00
Adam Ierymenko
be0a8ec1f1
.
2014-06-21 12:16:25 -04:00
Adam Ierymenko
11e1f7a3fb
.
2014-06-21 12:01:26 -04:00
Adam Ierymenko
0b0d5fabac
Bridging #68 should work now!
2014-06-21 11:59:08 -04:00
Adam Ierymenko
35aa0921ee
.
2014-06-21 11:47:26 -04:00
Adam Ierymenko
2f8936181c
Debug code -- temporary.
2014-06-21 08:36:23 -07:00
Adam Ierymenko
c3cea55493
Some cleanup in PacketDecoder.
2014-06-18 09:00:53 -07:00
Adam Ierymenko
5d467f0f45
Some TRACE improvements and comment revs.
2014-06-18 08:25:30 -07:00
Adam Ierymenko
2162a419e3
Some logging fixes.
2014-06-17 13:52:55 -07:00
Adam Ierymenko
f15271f31f
Get rid of pointer type punning warning/issue on g++.
2014-06-17 15:54:35 -04:00
Adam Ierymenko
cf4700bc26
Simplify network briding modes -- we only need passive toggle and active bridge list, not three mode types. Also change isOpen to isPublic for terminology consistency.
2014-06-14 20:24:19 +00:00
Adam Ierymenko
367b5439e1
Run icacls.exe twice, once for each change - GitHub issue #71
2014-06-14 12:52:06 -07:00
Adam Ierymenko
6802da457e
Bridging pretty much ready to test! Got Switch all wired up. Also fix a latent probably-never-triggered bug in MULTICAST_FRAME handling. GitHub issue #68
2014-06-13 21:06:34 -07:00
Adam Ierymenko
5682f0b772
Some more bridging work... wiring up in Switch - GitHub issue #68
2014-06-13 17:49:33 -07:00
Adam Ierymenko
08b7bb3c7a
Network memory for bridge-side multicast groups that we learn - GitHub issue #68
2014-06-13 14:06:34 -07:00
Adam Ierymenko
d6a4f8d77b
Add flags to EXT_FRAME for better future proofness.
2014-06-12 11:40:30 -07:00
Adam Ierymenko
c30f9832b0
Packet decoder work for EXT_FRAME for bridging - GitHub issue #68
2014-06-10 21:41:34 -07:00
Adam Ierymenko
d44e1349d8
Bridge routing table - GitHub issue #68
2014-06-10 17:18:59 -07:00
Adam Ierymenko
4e1f49258b
Bridging in NetworkConfig - GitHub Issue #68
2014-06-10 15:47:20 -07:00
Adam Ierymenko
fb31f93c52
Protocol messages for bridging. GitHub issue #68
2014-06-10 15:25:15 -07:00
Adam Ierymenko
994565bdeb
Fix for GitHub issue #71
2014-05-29 15:06:05 -07:00
Adam Ierymenko
eae130467b
Build fix for Windows setsockopt().
2014-05-29 11:22:35 -07:00
Adam Ierymenko
f764cf8d31
Make UDP send and receive buffers as big as possible to reduce packet loss.
2014-05-28 12:17:43 -07:00
Adam Ierymenko
4b773b61f5
Netconf fixes.
2014-05-24 00:10:23 +00:00
Adam Ierymenko
657f6ae342
Don't transmit broadcasts if enableBroadcast is false on a network.
2014-05-23 19:52:39 -04:00
Adam Ierymenko
2861229558
Windows build fixes for MAC changes (in tap driver), some comments and cleanup in MAC.hpp.
2014-05-23 16:21:57 -07:00
Adam Ierymenko
66a38a9e7c
Default for private should be true.
2014-05-23 15:15:44 -07:00
Adam Ierymenko
31ddc49da2
GitHub issue #67
2014-05-23 15:13:34 -07:00
Adam Ierymenko
317995b921
Fixed for Linux tap for GitHub Issue #69
2014-05-23 17:35:35 -04:00
Adam Ierymenko
beb7b5bbe5
GitHub Issue #69 - make MAC assignment schema differ between virtual networks.
2014-05-23 14:32:31 -07:00
Adam Ierymenko
596e5dd583
Another sanity check on filename for GitHub issue #72
2014-05-19 16:16:34 +00:00
Adam Ierymenko
b958a2d30c
Redis schema updates and fix for GitHub issue #72
2014-05-19 16:13:42 +00:00
Adam Ierymenko
ecbcc9eb2c
TESTNET supernodes need different addresses.
2014-05-09 11:45:38 -07:00
Adam Ierymenko
1ad29fe31f
Merge branch 'adamierymenko-dev' of ssh://shub-niggurath.zerotier.com:222/git/ZeroTierOne into adamierymenko-dev
2014-05-09 15:40:08 +00:00
Adam Ierymenko
42f6aae259
More netconf work... set ZT_HOME and chdir there on service launch.
2014-05-09 15:39:51 +00:00
Adam Ierymenko
de485ad900
Add testnet ports and ZT_USE_TESTNET define for contacting the test.zerotier.com net instead of the live net.
2014-05-08 17:53:22 -07:00
Adam Ierymenko
99c5fae9da
Make Service communicate via empty-line-delimited Dictionary objects instead of the old size prefix way.
2014-05-08 21:27:59 +00:00
Adam Ierymenko
1e6475fad6
Clean out unused netconf fields, rename a few, work on new netconf server.
2014-05-08 00:11:50 +00:00
Adam Ierymenko
7831c4bfef
Cleanup, dead code removal, some pretty insignificant security stuff that's based on recommendations.
2014-04-18 00:14:12 -07:00
Adam Ierymenko
d187ec82d4
Adding supernode yig.zerotier.com (Sydney, Australia) and removing mi-go.zerotier.com (Singapore) due to real-world usage data.
2014-04-15 14:37:19 -07:00
Adam Ierymenko
aee742e767
More toward GitHub issue #56
2014-04-10 16:30:15 -07:00
Adam Ierymenko
c9294c1a78
Prevent recursive transit of ZeroTier packets, toward GitHub issue #56
2014-04-10 14:22:25 -07:00
Adam Ierymenko
b117ff5435
Probable fix for GitHub issue #63 - do not unite() if either path is TCP, since doing so can result in asymmetric failed NAT-t over UDP if one side has a firewall that permits outgoing UDP but not incoming.
2014-04-10 11:17:54 -07:00
Adam Ierymenko
119ef5ecbf
More logic cleanup and some documentation / comment improvements.
2014-04-10 10:00:20 -07:00
Adam Ierymenko
8fb442d81a
Yet more cleanup to TCP logic, this time adding a master switch and adding UDP preference in send().
2014-04-09 17:08:35 -07:00
Adam Ierymenko
73153b89b4
Some cleanup, and use best (not first) UDP addresses for NAT-t VERB_RENDEZVOUS computation.
2014-04-09 16:00:25 -07:00
Adam Ierymenko
d9836adbf6
.... aaaaaand... GitHub issue #61 was caused by the fact that we were no longer deleting taps on Windows!
2014-04-09 15:34:03 -07:00
Adam Ierymenko
420edf23ad
Was not closing _shutdownSignalPipe in UnixEthernetTap either...
2014-04-09 15:32:37 -07:00
Adam Ierymenko
6c5f6feb5e
Set close-on-exec in attempt to head off GitHub issue #61
2014-04-09 15:22:08 -07:00
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
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
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
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
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
Adam Ierymenko
4e26ade2df
Fix deadlock in refactored code.
2014-03-21 14:31:10 -07:00
Adam Ierymenko
8d3eb1a258
A few renamings to be consistent.
2014-03-21 14:18:35 -07:00
Adam Ierymenko
33ad3deaee
Builds with new Path code.
2014-03-21 13:46:55 -07:00
Adam Ierymenko
ba3f04deed
Work in progress: refactoring paths, adding TCP fallback.
2014-03-20 20:07:35 -07:00
Adam Ierymenko
45e823d27c
Reworking of paths in Peer work-in-progress, and TCP connect support in SocketManager. Also add FD_SETSIZE checking for the default select implementation of sockets.
2014-03-20 18:49:33 -07:00
Adam Ierymenko
97e6b38144
MULTICAST_FRAME TRACE improvements.
2014-03-20 14:24:15 -07:00
Adam Ierymenko
7a45ff460d
More deadlock fixes in new I/O.
2014-03-20 14:00:05 -07:00
Adam Ierymenko
6f5a4d7e29
Fix blocking socket issues in new socket I/O code.
2014-03-20 13:21:58 -07:00
Adam Ierymenko
4d0ad9abb6
Fix TRACE bug and new UDP socket code issue.
2014-03-19 23:10:34 -07:00
Adam Ierymenko
15e8c18106
Bug fixes.
2014-03-19 22:01:32 -07:00
Adam Ierymenko
1c555e4b96
command bus fix
2014-03-19 16:59:23 -07:00
Adam Ierymenko
6fdb360e2a
More IPC work.
2014-03-19 16:05:03 -07:00
Adam Ierymenko
0d847d9410
More build fixes.
2014-03-19 15:29:00 -07:00
Adam Ierymenko
abc82d6a52
IPC changes and SocketManager changes all build!
2014-03-19 13:56:48 -07:00
Adam Ierymenko
acf7d70d24
Integrate IPC stuff into NodeConfig.
2014-03-19 08:20:09 -07:00
Adam Ierymenko
3be4c38946
IPC stuff for Unix.
2014-03-18 18:44:44 -07:00
Adam Ierymenko
6a1bd52854
New IPC work...
2014-03-18 17:19:32 -07:00
Adam Ierymenko
0b75992737
Everything but the local config bus... blech.
2014-03-18 14:33:57 -07:00
Adam Ierymenko
91fef21973
More ripping out of old condition stuff.
2014-03-18 12:21:22 -07:00
Adam Ierymenko
dc0f3559be
Rip out old condition and Demarc stuff...
2014-03-18 12:00:15 -07:00
Adam Ierymenko
bb25128406
TCP socket.
2014-03-18 11:53:53 -07:00
Adam Ierymenko
bf5d8de999
More new socket I/O work...
2014-03-17 16:29:53 -07:00
Adam Ierymenko
1a0a6755b1
UDP socket implementation.
2014-03-17 16:18:44 -07:00
Adam Ierymenko
8adbbe092d
Drop old Demarc.cpp code.
2014-03-17 15:15:02 -07:00
Adam Ierymenko
bd749e040d
Compile fixes.
2014-03-17 15:14:22 -07:00
Adam Ierymenko
7e80d7e551
Bunch of work in progress on new socket multiplexer and plumbing for TCP jailbreaking... Don't try to build, won't yet.
2014-03-17 09:05:43 -07:00
Adam Ierymenko
60f25ccdf9
Some text changes, remove unused modules from installer project.
2014-03-07 14:25:24 -08:00
Adam Ierymenko
d0b506c12b
Fix crash on uninitialized taps.
2014-03-06 15:11:08 -08:00
Adam Ierymenko
742261c7fc
(1) Fix menu bar item font size on Windows, (2) fix for possible Windows EthernetTap infinite loop while enumerating registry.
2014-03-06 14:06:31 -08:00
Adam Ierymenko
939cdc82a2
VERSION 0.7.1: small Linux compile fix on g++, does not merit new release
2014-03-05 15:40:31 -08:00
Adam Ierymenko
54313212a4
New supernode: shoggoth.zerotier.com in Tokyo, Japan! This just about covers the entire world for global low-latency peer location and relaying.
2014-03-05 23:21:23 +01:00
Adam Ierymenko
13fbf9a200
*nix build fix
2014-02-28 15:05:56 -08:00
Adam Ierymenko
f2a03f68bd
Add code to clean unused permanent tap interfaces on Windows (but not used yet).
2014-02-28 15:04:50 -08:00
Adam Ierymenko
d27251ec4e
Make AtomicCounter use <atomic> on Windows (eventually this will replace it on other platforms), and some installer work.
2014-02-28 09:15:29 -08:00
Adam Ierymenko
268ec8d1e0
Fix for GitHub issue #40 : updates.d not being cleared.
2014-02-24 13:23:03 -08:00
Adam Ierymenko
655b6d1996
Windows auto-update URL and dummy Windows update for testing.
2014-02-23 08:01:52 -08:00
Adam Ierymenko
b5c3a92be2
Boring stuff: update dates in copyrights across all files.
2014-02-16 12:40:22 -08:00
Adam Ierymenko
4ec7cd2760
Fix for GitHub issue #38 : compute whether we are ONLINE a little differently
2014-02-14 16:23:03 -08:00
Adam Ierymenko
01d13c153d
Fix compiler warnings in Linux build.
2014-02-14 13:08:54 -08:00
Adam Ierymenko
9acfd3eb73
Build fix on Linux with G++.
2014-02-11 23:09:53 +00:00
Adam Ierymenko
0ad84b8723
Possible bug fix in Topology, have to test...
2014-02-11 15:02:21 -08:00
Adam Ierymenko
3f912eb4ad
Fix for GitHub issue #37 : remember *nix device names.
2014-02-11 14:21:59 -08:00
Adam Ierymenko
f1b45f7df0
A few little fixes in NodeConfig.
2014-02-11 13:20:51 -08:00
Adam Ierymenko
29c18d4bde
Add new Singapore supernode!
2014-02-11 08:57:25 -08:00
Adam Ierymenko
33728840ec
More local.conf stuff.
2014-02-10 16:46:53 -08:00
Adam Ierymenko
cd339486b7
local.conf in NodeConfig
2014-02-10 14:22:57 -08:00
Adam Ierymenko
d24b192f8c
Remove old updates from updates.d on Node startup.
2014-02-07 09:13:08 -08:00
Adam Ierymenko
5b97bb247e
More Windows service work... it builds! Now to do a new installer and test. Also fix a Windows compile warning in Switch.cpp.
2014-02-06 23:12:12 -08:00
Adam Ierymenko
d452ed7db8
Fix inverted sense bug in new skip-stale-relay logic.
2014-02-03 21:15:29 -08:00
Adam Ierymenko
d7bc3c6f4a
Fix infinite loop bug introduced in last commit.
2014-02-03 12:28:23 -08:00
Adam Ierymenko
d04e5a1fe0
Add a simple but very nice mechanism for avoiding potentially dead supernodes.
2014-02-03 11:09:09 -08:00
Adam Ierymenko
bf5f09a0c7
Yank a code path it turns out we probably don't want.
2014-02-03 10:46:37 -08:00
Adam Ierymenko
ce0bd93289
Make software update run a little more often for now.
2014-02-02 16:46:27 -08:00
Adam Ierymenko
0fdefdf7a4
So Linux has getifaddrs() too! Yay!
2014-02-02 02:21:09 -05:00
Adam Ierymenko
8236f20759
Private struct ifmaddrs for OSX cause struct ifmaddrs is missing too on OSX 10.6.
2014-02-01 23:18:31 -08:00
Adam Ierymenko
e16b2a8831
Real implementation of ips() on OSX, now for Linux.
2014-02-01 23:10:04 -08:00
Adam Ierymenko
2a3e646b94
Manually generate IPv6 link-local address only on Mac.
2014-02-01 14:02:14 -08:00
Adam Ierymenko
64231aa3f0
Fix for GitHub issue #36 on OSX... results in a duplicate entry for IPv6 link-local but seems okay... need to test on OSX 10.6 though.
2014-01-31 15:55:45 -08:00
Adam Ierymenko
525ab3faa9
Take TRACE back out of Mac makefile, fix a few decode little things.
2014-01-30 15:26:12 -08:00
Adam Ierymenko
490e86dde3
Bunch of fixes to startup, pinging, and choice of route. Also some TRACE updates.
2014-01-30 14:23:52 -08:00
Adam Ierymenko
6e076e77d8
More work on connection reset stuff...
2014-01-29 22:04:23 -08:00
Adam Ierymenko
d75f2f7051
SIGHUP now causes resync with peers.
2014-01-29 17:24:55 -08:00
Adam Ierymenko
aa1be9fcad
Some TRACE cleanup.
2014-01-29 20:09:55 -05:00
Adam Ierymenko
17796aaed4
TRACE NOP receipt.
2014-01-29 17:08:03 -08:00
Adam Ierymenko
2355fa973e
Tiny compiler warning fix.
2014-01-29 18:27:02 -05:00
Adam Ierymenko
694e9f2bdc
Some cleanup and rationalization of main loop.
2014-01-29 14:09:12 -08:00
Adam Ierymenko
372566295e
Alternate order of packet emission in unite().
2014-01-29 12:11:01 -08:00
Adam Ierymenko
4e85213473
Yank RuntimeEnvironment from SysEnv.
2014-01-29 09:58:17 -08:00
Adam Ierymenko
d6a346ca6e
Fix for GitHub issue #35 and also possibly partial fix for #29 issues.
2014-01-28 16:12:24 -08:00
Adam Ierymenko
8b65b3e6d7
Yank PROBE stuff since it's not used and was a premature addition to the protocol.
2014-01-28 10:41:43 -08:00
Adam Ierymenko
ffffc0179f
Fix a couple compile items.
2014-01-27 23:16:15 -08:00
Adam Ierymenko
f80ec871f6
Make EthernetTap creation occur in a background thread in Network since it's a time consuming operation on Windows. This fixes one of the last remaining Windows problems.
2014-01-27 23:13:36 -08:00
Adam Ierymenko
afbbf61588
Delete persistent tap device on Windows when we leave a network.
2014-01-26 22:47:08 -08:00
Adam Ierymenko
28665079a0
Windows UI appearance fixes (font issue, etc.) and fix to WinSock init on GUI client.
2014-01-26 22:24:29 -08:00
Adam Ierymenko
80997f652b
Few small cleanup things...
2014-01-26 10:59:33 -08:00
Adam Ierymenko
9d67a02b5f
Lock down individual files in networks.d instead of directory since directory ACLs are more complex on Windows.
2014-01-26 10:32:12 -08:00
Adam Ierymenko
22efa1ab53
Windows Installer work, fix 100% CPU bug in EthernetTap on Windows, Windows lockDownFile() implementation that uses 'cacls' utility.
2014-01-26 10:21:43 -08:00
Adam Ierymenko
eb554a504d
Fix for allIps -> ips in EthernetTap on Unix.
2014-01-23 16:25:51 -08:00
Adam Ierymenko
8771418170
Fix bug in tap driver introduced during unused code purge (deleted the part that acknowledges writes!), and fix bug in EthernetTap causing 0000 for etherType. Windows works now! Yay!
2014-01-23 16:10:24 -08:00
Adam Ierymenko
2f37ea842f
Couple of Windows fixes, get rid of ips()/allIps() distinction in EthernetTap. (Will need to be fixed on Unix now... later.)
2014-01-23 14:15:00 -08:00
Adam Ierymenko
9232ba1da0
Tap works on Windows now, sort of. Now I discovered that Windows has two mechanisms for assigning IP addresses: the registry and lower-level calls. Joy.
2014-01-22 23:46:33 -08:00
Adam Ierymenko
2da6a7570b
More tap driver work, increment version number, remove old binaries since signatures may not have been valid.
2014-01-22 18:38:45 -08:00
Adam Ierymenko
370dd6c4da
Several things:
...
(1) Add a bunch of tedious type casts to eliminate unnecessary compiler warnings on Windows X64 builds.
(2) Some EthernetTap work to integrate Windows custom IOCTL for multicast group lookup (not done quite yet).
(3) Dump some more info in selftest to make sure our Windows path lookup functions are returning sane results.
2014-01-21 13:07:22 -08:00
Adam Ierymenko
6bc5a84a2d
Windows build fixes and installer work...
2014-01-20 16:16:01 -08:00