summaryrefslogtreecommitdiff
path: root/service/OneService.cpp
AgeCommit message (Collapse)Author
2016-04-18Replace cluster-geo subprocess with in-memory loaded CSV of GeoIP data. This ↵Adam Ierymenko
is faster, cheaper, more reliable. We use https://db-ip.com/ but others would work too.
2016-04-07Boost local interface check interval a bit to speed direct link provisioning ↵Adam Ierymenko
on startup.
2016-04-07Make port mapper names even more unique, and trial bind before binding TCP ↵Adam Ierymenko
now which should work on Linux and others.
2016-04-07dev branch now works again on LinuxAdam Ierymenko
2016-04-05Binder for Windows, and use Binder to get local interface addresses to ↵Adam Ierymenko
advertise.
2016-04-05OneService now binds all ports to specific local interfaces instead of ↵Adam Ierymenko
wildcard and rebinds on changes. (default route)
2016-04-05More refactoring and prep for explicit interface bindings (for default route ↵Adam Ierymenko
support).
2016-04-01Tweak metric and clean out attic a bit.Adam Ierymenko
2016-03-03stupid bug is stupidAdam Ierymenko
2016-03-03indent fixAdam Ierymenko
2016-03-03Fix problems with previous commit.Adam Ierymenko
2016-03-03Another NAT-t improvement:Adam Ierymenko
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-01-20Transfer speed increate + stability fixesJoseph Henry
2016-01-12boring doc stuffAdam Ierymenko
2016-01-12Use network user ptr in lookup for Ethernet frame handling to eliminate map ↵Adam Ierymenko
lookup.
2016-01-12Add a network-associated user ptr in API.Adam Ierymenko
2016-01-11Instead of using binary packet comparison, add a callback to the API to ↵Adam Ierymenko
explicitly check whether paths should be used. Check in with this callback (if present) when learning new paths or sending initial packets.
2016-01-11Refactor to eliminate copypasta.Adam Ierymenko
2016-01-11Fix a bug that we visually found in Windows code -- it was not advertising ↵Adam Ierymenko
uPnP addresses?!?
2015-12-21Selectively move over changes from "edge" to "dev" excluding netcon.Adam Ierymenko
2015-11-30Low-impact sanity check against GitHub issue #247 -- will likely prevent ↵Adam Ierymenko
other weird recursions too.
2015-11-30indentationAdam Ierymenko
2015-11-30Ton of uPnP work and adding NAT-PMP support, still testing...Adam Ierymenko
2015-11-24Fix for GitHub issue #253.Adrian Frühwirth
Make 'ip' detection more robust (some distros don't ship the binary in /sbin or /usr/sbin). Add error handling for cases where an ip add/remove fails.
2015-11-12Minor Windows build fixes. Builds on VS2012 again.Adam Ierymenko
2015-11-10Query both root and network controller for multicast last resort GATHER.Adam Ierymenko
2015-11-09Try bringing back TTL escalation -- may help with Docker (IP-MASQ) type NATAdam Ierymenko
2015-11-09Mark geo-redirected paths as suboptimal and do not report that we have a ↵Adam Ierymenko
peer if all we have is one of these. Also a few other small fixes.
2015-11-05Use bigger UDP buffer on bigger x64 machines. Keep old value elsewhere since ↵Adam Ierymenko
these are likely to be smaller boxes.
2015-11-05Integrate deferred background processing into main OneService implementation.Adam Ierymenko
2015-10-29Eliminate some more dead code. We may do path trust, but not like that.Adam Ierymenko
2015-10-27Factor out RemotePath subclass of Path -- no longer needed, just cruft.Adam Ierymenko
2015-10-27Merge Phy<> from netcon.Adam Ierymenko
2015-10-27--wtf; prevent roots from TCP fallbackAdam Ierymenko
2015-10-23(1) Fix bug in geo-ip service that prevented cache lookup, (2) fix problem ↵Adam Ierymenko
in SelfAwareness (will need to test ALL versions in the wild with this), and (3) add more TRACE instrumentation to Cluster.
2015-10-22More cluster wiring...Adam Ierymenko
2015-10-13More World stuff, and mkworld.Adam Ierymenko
2015-10-06Prep in controller code to run tests.Adam Ierymenko
2015-10-01Peer serialization and related changes.Adam Ierymenko
2015-10-01No reason to randomly pick uPnP secondary port. In fact it would likely ↵Adam Ierymenko
cause problems on restarts and uPnP rule bloat.
2015-10-01Get trim() out of core where it is not needed.Adam Ierymenko
2015-09-24(1) Make ZT_ naming convention consistent (get rid of ZT1_), (2) Make local ↵Adam Ierymenko
interface a full sockaddr_storage instead of an int identifier, which turns out to be better for multi-homing and other uses.
2015-09-23Pick a random secondary UDP port for uPnP mapped traffic because of broken ↵Adam Ierymenko
routers.
2015-09-23.Adam Ierymenko
2015-09-23Pick random port on -p0Adam Ierymenko
2015-09-23Plumb through localInterfaceId to track local interfaces corresponding with ↵Adam Ierymenko
remote addresses.
2015-09-10Rename some stuff in Phy since it can be used with any stream socket.Adam Ierymenko
2015-09-10Add socketpair support to Phy.Adam Ierymenko
2015-09-02Unix domain sockets in Phy<>Adam Ierymenko
2015-07-30Because Windows, because Windows. Now it upgrades correctly from 1.0.1, ↵Adam Ierymenko
including automatic driver update from NDIS5 to NDIS6. Also a bit more robust on creating new ports, just in case.