diff --git a/API.md b/API.md
index 80a9454..4f230bb 100644
--- a/API.md
+++ b/API.md
@@ -1,10 +1,14 @@
-# ZeroTier SDK
-
-
+
+
+
+ ZeroTier SDK
+
The ZeroTier SDK is composed of two libraries: `libztcore` which is the platform-agnostic network hypervisor, and `libzt` which is the network hypervisor paired with a userspace network stack. `libzt` is a superset of `libztcore` and is distinguished by the fact that it exposes a standard [socket API](https://en.wikipedia.org/wiki/Berkeley_sockets) and simple network control API. The full source for these products can be found at [github.com/zerotier/libzt](https://github.com/zerotier/libzt) for the SDK and [github.com/zerotier/ZeroTierOne](https://github.com/zerotier/ZeroTierOne) for the desktop client. With these libraries the network stack and virtual link are exclusive to your app and traffic is fully encrypted via the [Salsa20](https://en.wikipedia.org/wiki/Salsa20) cipher. For a more in-depth discussion on the technical side of ZeroTier, check out our [Manual](https://www.zerotier.com/manual.shtml?pk_campaign=github_libzt)
-
+The ZeroTier source code is open source and is licensed under the GNU GPL v3 (not LGPL). If you'd like to embed it in a closed-source commercial product or appliance, please e-mail contact@zerotier.com to discuss commercial licensing. Otherwise it can be used for free.
+
+
# Getting started
@@ -255,6 +259,8 @@ The control API for `libzt` is thread safe and can be called at any time from an
*Note: Internally, `libzt` will spawn a number of threads for various purposes: a thread for the core service, a thread for the network stack, a low priority thread to process callback events, and a thread for each network joined. The vast majority of work is performed by the core service and stack threads.*
+
+
# Statistics
Protocol and service statistics are available in debug builds of `libzt`. These statistics are detailed fully in the section of `include/ZeroTier.h` that is guarded by `LWIP_STATS`. The protocol constants are defined in `include/ZeroTierConstants.h`. An example usage is as follows:
@@ -263,12 +269,12 @@ C++ example:
```
struct zts_stats_proto stats;
-// Get received pings
+// Get count of received pings
if (zts_get_protocol_stats(ZTS_STATS_PROTOCOL_ICMP, &stats) == ZTS_ERR_OK) {
printf("icmp.recv=%d\n", stats.recv);
}
-// Get dropped TCP packets
+// Get count of dropped TCP packets
if (zts_get_protocol_stats(ZTS_STATS_PROTOCOL_TCP, &stats) == ZTS_ERR_OK) {
printf("tcp.drop=%d\n", stats.drop);
}
@@ -287,9 +293,13 @@ ZeroTier.get_protocol_stats(ZeroTier.STATS_PROTOCOL_ICMP, stats);
System.out.println("icmp.recv="+stats.recv);
```
-# Network Controller Mode (Coming soon)
+
-The library form of ZeroTier can act as a network controller and is controlled via the `zts_controller_*` API calls specified in `include/ZeroTier.h`.
+# Network Controller Mode
+
+The library form of ZeroTier can act as a network controller and in `libzt` this is controlled via the `zts_controller_*` API calls specified in `include/ZeroTier.h`. Currently controller mode is not available in the `iOS` and `macOS` framework builds.
+
+
# C Example
diff --git a/src/VirtualTap.cpp b/src/VirtualTap.cpp
index 5bff9a1..a0dd2cb 100644
--- a/src/VirtualTap.cpp
+++ b/src/VirtualTap.cpp
@@ -33,7 +33,7 @@
#include "VirtualTap.hpp"
#include "Phy.hpp"
#include "Node.hpp"
-#include "OSUtils.hpp"
+//#include "OSUtils.hpp"
#include "Service.hpp"
#include "Mutex.hpp"