summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-08-24Docs, Node picks a default home folder if created with NULL as its home ↵Adam Ierymenko
path, and add binary tap drivers (self-signed for now).
2013-08-24Forked tap driver installs with test cert, assuming Windows is in test mode, ↵Adam Ierymenko
and seems to work!
2013-08-24It builds and it installs! Well, except for not being digitally signed. :PAdam Ierymenko
2013-08-24More tap work in progress.Adam Ierymenko
2013-08-24Tap driver project config, inf file.Adam Ierymenko
2013-08-23Tap driver basically builds in VS2012... fork of tap-windows from OpenVPN ↵Adam Ierymenko
(compatible license).
2013-08-23VERSION 0.4.4: multicast cleanup, Windows port workAdam Ierymenko
In addition to a lot of Windows port work that isn't finished yet (and doesn't affect the *nix platforms at all), this version contains quite a bit of multicast cleanup and code simplification. I also pulled rate limits for now, as it seems to be causing problems. More testing on the testnet is going to be needed.
2013-08-23Decided to abandon the winpcap direction for Windows tap... re-evaluating ↵Adam Ierymenko
using OpenVPN tap driver in some form for now.
2013-08-22Commit of a draft of the pcap-based strategy for a Windows tap. This may, in ↵Adam Ierymenko
the end, not work, since winpcap may not support immediate capture and also because some software flags winpcap as malware. Like I said, trying to do anything interesting with Windows is PAIN.
2013-08-22Add winpcap development libraries and includes.Adam Ierymenko
2013-08-22Tap now creates Microsoft Loopback Adapter instances and tags them with a ↵Adam Ierymenko
special ID... work in progress.
2013-08-21Bug fix in multicast changes.Adam Ierymenko
2013-08-21Huge convoluted logic de-tangling in multicast propagation, supernodes now ↵Adam Ierymenko
do random propagation for more efficient coverage with less bias in sparse graph cases.
2013-08-21A bit of code comment cleanup.Adam Ierymenko
2013-08-21Some work on Windows tap.Adam Ierymenko
2013-08-21Make that an arbitrary tag to identify persistent taps...Adam Ierymenko
2013-08-19Add an interface description to EthernetTap, mostly for Windows.Adam Ierymenko
2013-08-19Add devcon 32-bit and 64-bit Windoze binaries.Adam Ierymenko
2013-08-19Clean up...Adam Ierymenko
2013-08-16On second thought... argh.Adam Ierymenko
2013-08-15Add a fork of tap-windows from OpenVPN, will be customized.Adam Ierymenko
2013-08-15Create devel project for Windows tap work. (Might be temporary.)Adam Ierymenko
2013-08-14A few test build changes.Adam Ierymenko
2013-08-14Windows builds, self test runs in Debug mode!Adam Ierymenko
2013-08-14Self test almost builds, now need skeleton EthernetTap implementation for ↵Adam Ierymenko
Windows.
2013-08-14Move .vcxproj files to vsprojects\ subfolder and use Visual Studio's ability ↵Adam Ierymenko
to add existing files to create per-tool solutions. Create self test solution to test basic functionality on Windows.
2013-08-13Version 0.4.3 (the real one): fix Gentoo ip config failures and crashesAdam Ierymenko
This version fixes problems with locating the 'ip' command on Gentoo and possibly other Linux systems, and a problem that could cause a crash if EthernetTap was unable to locate one of the commands it invokes to configure IP information on tap devices. The code also now builds on Windows. It doesn't run yet, but it's a step. Windows port is in full swing. Finally, the multicast rate limit defaults were raised a little. More testing is needed here, and real world measurments.
2013-08-13Version 0.4.3: fix Gentoo ip config failures and crashesAdam Ierymenko
This version fixes problems with locating the 'ip' command on Gentoo and possibly other Linux systems, and a problem that could cause a crash if EthernetTap was unable to locate one of the commands it invokes to configure IP information on tap devices. The code also now builds on Windows. It doesn't run yet, but it's a step. Windows port is in full swing.
2013-08-12Fix a *nix build issue.Adam Ierymenko
2013-08-12Windows compiles! (w/Visual Studio 2012) That's about all it does, but it's ↵Adam Ierymenko
a start.
2013-08-12More Windows port work.Adam Ierymenko
2013-08-12Windows build work: condition, mutex, thread, udp socket...Adam Ierymenko
2013-08-12A few more visual studio file changes, forgot to save all. Will be switching ↵Adam Ierymenko
to dev branch now.
2013-08-12Add Visual Studio DLL project for coreAdam Ierymenko
2013-08-120.4.2: cleanup releaseAdam Ierymenko
Version 0.4.2 is largely a cleanup release. Changes are minor: * Programatically replace libcrypto's random number generator with our own (using /dev/urandom or Windows CAPI) since libcrypto's RNG likes to use uninitialized memory as one of its entropy sources. This causes massive floods of valgrind (debugger) errors during memory error profiling analysis. * Clean up some other code to eliminate valgrind errors. Valgrind now runs on Linux with only one error. This error is in EthernetTap and is a false positive.
2013-08-12Clean up a bunch of valgrind errors, nix a potentially unsafe op in Buffer ↵Adam Ierymenko
assignment operator.
2013-08-10Replace libcrypto RAND_ with our own to avoid valgrind errors.Adam Ierymenko
2013-08-10Stop using RAND_ in libcrypto for Utils::getSecureRandom() due to annoying ↵Adam Ierymenko
valgrind spew from libcrypto use of uninitialized RAM as a random source. Might look into replacing RAND_ in libcrypto with our own simple /dev/urandom / Windows CAPI plugin.
2013-08-09Add range safety check to EllipticCurveKey.Adam Ierymenko
2013-08-09Version 0.4.1 - RateLimiter for multicast, bug fixes.Adam Ierymenko
This version adds a draft of the multicast rate limiting architecture. A few minor bugs are also fixed. The Linux version builds in debug mode for now.
2013-08-09Fix for another wonderful C++ threading race condition.Adam Ierymenko
2013-08-09Tweak default multicast rate limits.Adam Ierymenko
2013-08-09Add a concept of debt to RateLimiter, save a bit of RAM.Adam Ierymenko
2013-08-08Add RateLimiter for rate limiting multicast, not tested yet.Adam Ierymenko
2013-08-08Back off a little on multicast propagation depth. Eventually this will be a ↵Adam Ierymenko
network parameter.
2013-08-08Actually report a meaningful network status instead of always OKAdam Ierymenko
2013-08-08Generalize unlink to OS-dep code in Utils, just a little prep for Windows port.Adam Ierymenko
2013-08-08Move template parameter in Thread to a more logical scope location.Adam Ierymenko
2013-08-070.4.0: MAJOR CHANGE TO NETWORK IDS AND NETWORK MEMBERSHIP (please upgrade!)Adam Ierymenko
In keeping with the wild west alpha phase of this software, this version is a major departure from 0.3.0 and an upgrade is required. The protocol hasn't changed much, but the system of network membership, network IDs, and network configuration bootstrapping has changed dramatically. The mechanism for network autoconfiguration is now in-band, via the ZeroTier protocol itself, rather than using an HTTP API. This simplifies the code and allows us to use a consistent system of encryption and authentication. To accomodate this change, network IDs now contain in their most significant 40 bits the ZeroTier address of a node responsible for overseeing the addressing of participating network members. The remaining bits are free, so each network controller (netconf node) can control up to 2^24 networks. The code for the netconf service is in /netconf-service, but for ordinary users there's not much need to look at it or use it. It's just there to be open source. The system for network membership tracking is also revamped. For open networks like Earth this doesn't matter, but for closed networks membership is now driven by something called a membership certificate that is signed by the controlling node in the network. There's still work to be done here, so private network support isn't fully baked yet. But public open networks work fine. Nodes still join "Earth" by default. The ID for Earth has changed from 1 to 6c92786fee000001 (hex). This means that old 0.3.0 clients and older will not be able to communicate with 0.4.0 as their network IDs will not match. The new certificate-based network membership system scales better than the old HTTP API system and will support some pretty amazing features. Stay tuned! For now just update and relaunch. You should get the same IPv4 address you had before. The second big change is zerotier-cli. Try running it as root (or after copying the auth file to the path it tells you about when you first run it) with 'help' as a command.
2013-08-07Make cli try to read auth token from global home if possible (unix-like systems)Adam Ierymenko