Adam Ierymenko
278c8fd9f1
Wire up externally specified NetworkConfigMaster
2015-03-13 13:53:15 -07:00
Adam Ierymenko
b6fba5934a
RedisNetworkConfigMaster in its own folder. Also fix some hex/decimal Redis database confusion.
2015-02-24 14:17:57 -08:00
Adam Ierymenko
ff255a34de
Make NetworkConfigMaster a plugin to get Redis and other non-endpoint code out of node/
2015-02-24 12:28:58 -08:00
Adam Ierymenko
93012b0ee5
Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware]
2015-02-17 13:11:34 -08:00
Adam Ierymenko
89f0c948f8
Physical address change message verb.
2015-02-04 11:59:02 -08:00
Adam Ierymenko
eeed31b396
Ping supernodes on surface change, and also reset TCP flag.
2015-02-02 17:02:23 -08:00
Adam Ierymenko
b7148c107d
Rip out network environment fingerprint. This will be replaced by constant monitoring of actual external address surface.
2015-02-02 16:40:57 -08:00
Adam Ierymenko
b1bf3f68c3
Drop support for legacy P5 multicast, as there are fewer than 1% of these remaining on the network.
2015-02-02 16:34:01 -08:00
Adam Ierymenko
37d23336ed
Surface logic in Topology.
2015-02-02 16:23:26 -08:00
Adam Ierymenko
61cff47f5b
Code to track externally visible address surface.
2015-02-02 15:24:05 -08:00
Adam Ierymenko
c30bf7957e
Hash code method for InetAddress
2015-02-02 14:44:24 -08:00
Adam Ierymenko
c8c5d3b06e
Create netconf master if redis options are in local.conf.
2015-01-09 18:25:41 -05:00
Adam Ierymenko
0b84c10ccc
Add confirmation step to new netconf, with the caveat that it will be disabled for older netconf servers to avoid race. Also add some comments.
2015-01-09 16:35:20 -05:00
Adam Ierymenko
afea153a0b
Build fixes.
2015-01-08 18:17:02 -05:00
Adam Ierymenko
64ba596e0b
C++ network config master ready to test.
2015-01-08 14:27:55 -08:00
Adam Ierymenko
60fb28a90a
Cleanup, new C++ netconf code is almost ready to test!
2015-01-06 17:16:54 -08:00
Adam Ierymenko
a369c69091
C++ netconf master Redis plumbing.
2015-01-06 13:45:10 -08:00
Adam Ierymenko
b644d2a893
Add timestamp field to network config requests.
2015-01-05 17:51:50 -08:00
Adam Ierymenko
4e95384ad6
Cleanup, add tristate to config code in Network, and happy new year!
2015-01-05 17:47:59 -08:00
Adam Ierymenko
96e9a90e8e
docs
2015-01-05 16:19:56 -08:00
Adam Ierymenko
87c599df5c
Back out service message type -- YAGNI violation.
2015-01-05 15:52:02 -08:00
Adam Ierymenko
56cfe1d603
Strip out old Service code, add new service message type.
2015-01-05 11:47:22 -08:00
Adam Ierymenko
f60dfe4963
FreeBSD works, and some documentation fixes.
2014-12-19 15:18:20 -08:00
Adam Ierymenko
ff539c22f9
locallyValidate() is expensive -- stop doing it on every HELLO since in most cases we already know the identity and know it is valid
2014-12-16 09:29:40 -08:00
Adam Ierymenko
149dbff3ea
Windows Visual Studio meaningless-warning-ectomy.
2014-12-02 16:50:53 -08:00
Adam Ierymenko
30e82a4d9c
Fix network enumeration buffer size bug -- reported by user Neal Symms via LiveAgent
2014-12-02 12:53:30 -08:00
Adam Ierymenko
8c64046a53
docs
2014-11-26 14:59:43 -08:00
Adam Ierymenko
04e4c5263e
Remove more legacy code -- just doing the supernode redist for old multicast is now good enough given the small number of legacy nodes left.
2014-11-26 13:39:57 -08:00
Adam Ierymenko
4303376ba6
cleanup and docs
2014-11-26 13:30:00 -08:00
Adam Ierymenko
cda61fe2d9
docs and cleanup
2014-11-26 13:14:18 -08:00
Adam Ierymenko
0f505411cf
Enable legacy multicast in Constants.
2014-11-25 14:12:33 -08:00
Adam Ierymenko
15d3e383e6
Add ZT_SUPPORT_LEGACY_MULTICAST ifdef to enable the legacy code to all be toggled.
2014-11-25 12:46:51 -08:00
Adam Ierymenko
6888c6482c
Re-enable legacy multicast distribution -- still too many pre1.0.0 nodes online.
2014-11-24 10:37:34 -08:00
Adam Ierymenko
d772639cc6
Multicast code cleanup.
2014-11-24 10:05:16 -08:00
Adam Ierymenko
acac88cf77
A few more tweaks to MC algo...
2014-11-23 14:00:27 -08:00
Adam Ierymenko
0bcac1fd79
Add a bunch of high-resolution try/catch safety in Node main loop to attempt to snare gremlin.
2014-11-21 11:54:06 -08:00
Adam Ierymenko
959f611a65
Fix thinko in multicast changes... works now!
2014-11-21 11:27:53 -08:00
Adam Ierymenko
7619b0ecbd
Send multicasts in random order.
...
This should not affect most users, but on large networks it should cause service
announcements to work a lot better. This is the result of a prolonged discussion
with a user about the visibility of game servers on a large network. The old
multicast algorithm was de-facto randomized due to its distributed nature, while
the new algorithm is more deterministic. This will restore some randomization
beyond limit-overflow conditions.
It won't affect small networks at all.
2014-11-21 10:50:27 -08:00
Adam Ierymenko
0c85b4ef5f
Tweak to symmetric NAT buster to add one to the number of ports above the current one it attempts.
2014-11-20 13:42:18 -08:00
Adam Ierymenko
ee9e6a3c6b
Change path selection logic to exclude non-fixed and non-active paths -- possible fix for "NAT traversal coma" issue. Also fix a typo.
2014-11-20 13:20:16 -08:00
Adam Ierymenko
7b6f10e859
Optimization: we don't need to verify signatures on certs if they're certs we already have and have verified.
2014-11-13 12:40:51 -08:00
Adam Ierymenko
c61e9c0ef9
Prevent "software laser" in legacy multicast support. Already hotpatched in supernodes.
2014-11-13 14:21:06 -05:00
Adam Ierymenko
1bd5a1ebcd
Make selftest build and run on FreeBSD 10 with gmake
2014-11-04 11:20:38 -08:00
Adam Ierymenko
0e84eb3852
Back off default multicast limit just a little.
2014-10-29 18:25:24 -07:00
Adam Ierymenko
5484cf4309
More cleanup, and fix a bug in Multicaster::gather()
2014-10-29 16:24:19 -07:00
Adam Ierymenko
22d8aa4dc9
Moderate efficiency improvement on multicast gather result parsing, and go ahead and keep track of total known peers.
2014-10-29 15:26:32 -07:00
Adam Ierymenko
95f421024a
Code cleanup, and fix some unsafe pointer handling in Network.
2014-10-29 13:57:37 -07:00
Adam Ierymenko
5bb854e504
Fix a nasty bug introduced in packet fragmentation a while back during refactoring, and a few other things related to multicast.
2014-10-28 17:25:34 -07:00
Adam Ierymenko
4dec598fb8
Make multicast gather slightly more aggressive, and add total to list command in testnet.
2014-10-28 15:33:10 -07:00
Adam Ierymenko
3d85a615fb
NULL dereference on still-initializing node bug fix in status query commands, and doc updates.
2014-10-28 14:17:39 -07:00
Adam Ierymenko
934a575a74
Testnet seems to work a bit better now...
2014-10-27 18:23:10 -07:00
Adam Ierymenko
fe7b429866
...
2014-10-27 17:32:37 -07:00
Adam Ierymenko
3857116724
More testnet work.
2014-10-24 16:35:06 -07:00
Adam Ierymenko
4fbb098daa
Testnet work... getting there!
2014-10-23 16:46:09 -07:00
Adam Ierymenko
0a195e7bc0
Some work on simulated net...
2014-10-22 09:52:29 -07:00
Adam Ierymenko
ae228ade8c
Starting on simulated socket manager.
2014-10-21 17:00:25 -07:00
Adam Ierymenko
2436e22f46
More work on abstracting socket manager.
2014-10-21 15:18:50 -07:00
Adam Ierymenko
128a131070
About halfway there in refactoring to support pluggable SocketManager.
2014-10-21 14:26:10 -07:00
Adam Ierymenko
6bc9a938cf
Move socket manager implementation into osnet/
2014-10-21 11:25:31 -07:00
Adam Ierymenko
0e47f13f14
Simplify locking semantics some more to address a deadlock.
2014-10-21 10:42:04 -07:00
Adam Ierymenko
7c0f5e97e1
Don't need to check peer version for every item in txQueue since there is only one peer.
2014-10-19 15:20:19 -07:00
Adam Ierymenko
8730d30575
Now for some clang compile fixes...
2014-10-19 13:07:50 -07:00
Adam Ierymenko
74f36f5dc0
Windows build fixes.
2014-10-19 12:56:39 -07:00
Adam Ierymenko
a8bd8fff93
Make several changes to eliminate potential deadlock or recursive lock conditions, and add back rescan of multicast groups on network startup.
2014-10-14 16:38:27 -07:00
Adam Ierymenko
a94b0e6a43
Get rid of rescanMulticastGroups() in Network thread since this can deadlock... the fact that this can happen is probably bad design.
2014-10-14 15:58:03 -07:00
Adam Ierymenko
7a37326cc0
Fix sleeper bug that probably did nothing in setSupernodes().
2014-10-14 14:59:17 -07:00
Adam Ierymenko
42d644a57e
More fixes to legacy support, and to a potential issue on quit.
2014-10-14 12:37:35 -07:00
Adam Ierymenko
2416491cbc
Permanently retire peers.persist, but make iddb.d always enabled instead since identities are what we really want to cache.
2014-10-13 14:12:51 -07:00
Adam Ierymenko
6e23986bb3
Another build fix.
2014-10-13 13:09:02 -07:00
Adam Ierymenko
52314dcdf6
GitHub issue #111
2014-10-13 11:47:14 -07:00
Adam Ierymenko
05309037a8
Yank potentially costly support for TTL out of UdpSocket since we dont use this anymore.
2014-10-13 09:37:17 -07:00
Adam Ierymenko
6316011024
Make crypto and compression build optimized in debug, and also try disabling peers.persist -- might ship this way as it seems more trouble than its worth.
2014-10-12 11:42:49 -07:00
Adam Ierymenko
8b0846d077
Delete bunch of commented out code.
2014-10-11 16:53:21 -07:00
Adam Ierymenko
0d017c043f
Stop persisting last announcement time since Multicaster is volatile. Also some more legacy multicast fixes.
2014-10-11 16:26:02 -07:00
Adam Ierymenko
c2aac69a9f
Fixes to legacy peer support.
2014-10-11 15:49:31 -07:00
Adam Ierymenko
e071c05f1b
Add a sanity limit to legacy multicast repeater function in supernode-mode nodes, and change netconf-master to issue multicast limit (ml) instead of old p5 stuff.
2014-10-10 14:59:07 -07:00
Adam Ierymenko
03dc823ad7
(1) Back off a little on default max multicast limit since 128 is pretty bandwidth heavy, (2) add a little to default multicast rate limit since new MC algo is fairerererer, (3) decided not to involve netconf masters in multicast so take that out of list of who gets LIKEs.
2014-10-10 12:55:06 -07:00
Adam Ierymenko
1774e615a1
<= MTU
2014-10-10 09:09:56 -07:00
Adam Ierymenko
56f8f8aa24
Return self in GATHER requests if self is a member of multicast group, and reinstate legacy support.
2014-10-09 18:32:05 -07:00
Adam Ierymenko
4941c8a1f3
New multicast bug fixes, TRACE improvements, and temporarily disable legacy multicast for debugging purposes.
2014-10-09 17:58:31 -07:00
Adam Ierymenko
d5e0f7e3e4
Reorg multicast packet, and a whole bunch of refactoring around the pushing of certificates of membership.
2014-10-09 12:42:25 -07:00
Adam Ierymenko
620e64c58f
Supernode propagation of legacy multicast frames was brokezored.
2014-10-09 09:03:12 -07:00
Adam Ierymenko
3f15752f73
Add IPv4 address assignment to ffffffffffffffff test network.
2014-10-07 14:34:00 -07:00
Adam Ierymenko
87f1b1b1e3
Bug fix in new multicast frame handler, handling of old "P5" multicast frames in new way.
2014-10-06 13:16:16 -07:00
Adam Ierymenko
ab22feba9a
Bump version to 1.0.0, add legacy support code to Multicaster to not send new frame to known-to-be-old peers.
2014-10-05 10:34:25 -07:00
Adam Ierymenko
10c196df50
Send a VERB_P5_MULTICAST_FRAME to the supernode for each multicast -- for now. This will allow supernodes to echo these down to pre-1.0.0 peers.
2014-10-04 13:46:29 -07:00
Adam Ierymenko
2c8321be1f
Pull logic to always send new multicasts to supernode since we need to do that differently, re-add support for active bridges, and remove some gratuitous use of std::set where not needed.
2014-10-04 13:15:02 -07:00
Adam Ierymenko
62da7e67b6
Add some rate limiting to implicit gathers, and always send multicasts to at least one supernode so they can broadcast to old peers (temporary).
2014-10-03 22:30:10 -07:00
Adam Ierymenko
e7c81ef34e
Turns out that needed to be a list after all. Also clean up Multicaster::gather().
2014-10-03 22:03:19 -07:00
Adam Ierymenko
3f7e7e8a88
Do not multicast to self.
2014-10-03 18:42:41 -07:00
Adam Ierymenko
496109fdcc
Announce multicast group changes on network rescanMulticastGroups()
2014-10-03 18:27:42 -07:00
Adam Ierymenko
aad344bb84
Add test network support to Network.
2014-10-03 16:14:34 -07:00
Adam Ierymenko
351db7f1a0
Plumb injectPacketFromHost through to API.
2014-10-03 14:49:11 -07:00
Adam Ierymenko
67aa23530b
More work on adding testnet and user-mode capabilities for local network simulation.
2014-10-03 11:59:50 -07:00
Adam Ierymenko
96fa3f7550
Work on in-place testnet support.
2014-10-02 16:33:08 -07:00
Adam Ierymenko
1109046782
Last steps before test: parse OK(MULTICAST_GATHER) and OK(MULTICAST_FRAME)
2014-10-02 13:50:37 -07:00
Adam Ierymenko
49dc47ff38
Make multicast gathering a bit smarter.
2014-10-02 11:35:37 -07:00
Adam Ierymenko
dee86e2448
But since we are now using middle 3 bits we can assign sane values for the cipher suite enum.
2014-10-02 11:13:53 -07:00
Adam Ierymenko
17da733f97
Gotta support old encrypted flag, move cipher spec to middle 3 bits... due to some shortsighted design early-on. In the future this can die once there are no old peers.
2014-10-02 11:08:59 -07:00
Adam Ierymenko
23836d4c11
Change "encrypted" flag to full cipher suite selector. Go ahead and reserve AES256-GCM which might be added in the future.
2014-10-02 10:54:34 -07:00
Adam Ierymenko
e53d208ea4
Improve security posture by eliminating non-const data() accessor from Buffer.
2014-10-02 10:06:29 -07:00
Adam Ierymenko
e8c5495b61
Yes, zero my secret key data. Yes I really, really mean it.
2014-10-02 09:08:31 -07:00
Adam Ierymenko
28646eee0a
A bit more IncomingPacket cleanup... almost ready to test, just need OK() handling.
2014-10-01 16:29:52 -07:00
Adam Ierymenko
e1882b614b
Some cleanup, Multicaster now sends multicasts as it gets additional members.
2014-10-01 14:05:25 -07:00
Adam Ierymenko
ae082c3cb8
Yay... now everything compiles! Getting close to testing on this. Still have not added backward compatibility support for relaying of multicasts to 0.9.X clients yet but that will be easy. Will test with heterogenous 1.0.0 clients only first.
2014-10-01 12:41:48 -07:00
Adam Ierymenko
ea6124dd2f
IncomingPacket builds!
2014-09-30 17:33:20 -07:00
Adam Ierymenko
b41437780b
Add origin to new MULTICAST_FRAME, move security check for certs into Network to remove redundant code and bug-proneness, more work on IncomingPacket...
2014-09-30 17:26:34 -07:00
Adam Ierymenko
2659427864
Multicaster needs to be global, not per-network, and a bunch of other stuff.
2014-09-30 16:28:25 -07:00
Adam Ierymenko
8607aa7c3c
Everything in for new multicast except IncomingPacket parsing...
2014-09-30 08:38:03 -07:00
Adam Ierymenko
ed0ba49502
A few more revisions to new multicast verbs.
2014-09-26 14:18:25 -07:00
Adam Ierymenko
2d41055bdc
Some Network code cleanup.
2014-09-26 12:23:43 -07:00
Adam Ierymenko
027060dad1
Most of new multicast code builds... now on to packet parsing.
2014-09-25 22:13:31 -07:00
Adam Ierymenko
0778332747
.
2014-09-25 22:08:52 -07:00
Adam Ierymenko
9e186bbd89
.
2014-09-25 15:57:43 -07:00
Adam Ierymenko
050a0ce85d
.
2014-09-25 15:08:29 -07:00
Adam Ierymenko
6c87f9f765
Rename MulticastTopology to Multicaster -- same name as old multicast controller but different code. More descriptive though.
2014-09-24 14:02:16 -07:00
Adam Ierymenko
81b12b6826
Rename the ubiquitous _r pointer to RuntimeEnvironment to RR just to be a little more consistent about using _ to denote private member variables.
2014-09-24 13:53:03 -07:00
Adam Ierymenko
431476e2e4
Some more multicast algo work...
2014-09-24 13:45:58 -07:00
Adam Ierymenko
557801a09e
Rename PacketDecoder to much more descriptive IncomingPacket
2014-09-24 09:04:09 -07:00
Adam Ierymenko
9180a30986
.
2014-09-24 09:01:58 -07:00
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