removed old unity3d project

This commit is contained in:
Joseph Henry
2016-06-15 10:18:16 -07:00
parent 1f74ceaea6
commit 8b05d4b857
17 changed files with 0 additions and 1668 deletions

View File

@@ -1,194 +0,0 @@

var zoomSpeed : float = 3.0f;
var moveSpeed : float = 3.0f;
var rotateSpeed : float = 6.0f;
var optionalMaterialForSelection : Material;
// Some internal placeholders
private var orbitVector : GameObject;
private var materialForSelection : Material;
private var selectedObjects = new ArrayList();
private var selectedObjectsMaterial = new ArrayList();
function Start() {
// Create a capsule (which will be the lookAt target and global orbit vector)
orbitVector = GameObject.CreatePrimitive(PrimitiveType.Capsule);
orbitVector.transform.position = Vector3.zero;
// Snap the camera to align with the grid in set starting position (otherwise everything gets a bit wonky)
transform.position = Vector3(4, 4, 4);
// Point the camera towards the capsule
transform.LookAt(orbitVector.transform.position, Vector3.up);
// Hide the capsule (disable the mesh renderer)
orbitVector.GetComponent.<Renderer>().enabled = false;
// Create material to apply for selections (or use material supplied by user)
if (optionalMaterialForSelection) {
materialForSelection = optionalMaterialForSelection;
} else {
materialForSelection = new Material(Shader.Find("Diffuse"));
materialForSelection.color = Color.green;
}
}
function Update(){
orbitVector.transform.position = Vector3.zero;
if (Input.GetAxis("Mouse ScrollWheel") < 0) {
var currentZoomSpeedin = -10;
transform.Translate(Vector3.forward * ( currentZoomSpeedin));
}
if (Input.GetAxis("Mouse ScrollWheel") > 0) {
var currentZoomSpeedout = 10;
transform.Translate(Vector3.forward * ( currentZoomSpeedout));
}
}
// Call all of our functionality in LateUpdate() to avoid weird behaviour (as seen in Update())
function LateUpdate() {
// Get mouse vectors
var x = Input.GetAxis("Mouse X");
var y = Input.GetAxis("Mouse Y");
// ALT is pressed, start navigation
//if (Input.GetKey(KeyCode.RightAlt) || Input.GetKey(KeyCode.LeftAlt)) {
// Distance between camera and orbitVector. We'll need this in a few places
var distanceToOrbit = Vector3.Distance(transform.position, orbitVector.transform.position);
//RMB - ZOOM
if (Input.GetMouseButton(2)) {
// Refine the rotateSpeed based on distance to orbitVector
var currentZoomSpeed = Mathf.Clamp(zoomSpeed * (distanceToOrbit / 50), 0.1f, 2.0f);
// Move the camera in/out
transform.Translate(Vector3.forward * (x * currentZoomSpeed));
// If about to collide with the orbitVector, repulse the orbitVector slightly to keep it in front of us
if (Vector3.Distance(transform.position, orbitVector.transform.position) < 3) {
orbitVector.transform.Translate(Vector3.forward, transform);
}
//LMB - PIVOT
} else if (Input.GetMouseButton(1)) {
// Refine the rotateSpeed based on distance to orbitVector
var currentRotateSpeed = Mathf.Clamp(rotateSpeed * (distanceToOrbit / 50), 1.0f, rotateSpeed);
// Temporarily parent the camera to orbitVector and rotate orbitVector as desired
transform.parent = orbitVector.transform;
orbitVector.transform.Rotate(Vector3.right * (y * currentRotateSpeed));
orbitVector.transform.Rotate(Vector3.up * (x * currentRotateSpeed), Space.World);
transform.parent = null;
//MMB - PAN
} else if (Input.GetMouseButton(0)) {
// Calculate move speed
var translateX = Vector3.right * (x * moveSpeed) * -1;
var translateY = Vector3.up * (y * moveSpeed) * -1;
// Move the camera
transform.Translate(translateX);
transform.Translate(translateY);
// Move the orbitVector with the same values, along the camera's axes. In effect causing it to behave as if temporarily parented.
orbitVector.transform.Translate(translateX, transform);
orbitVector.transform.Translate(translateY, transform);
}
/*
// If we're not currently navigating, grab selection if something is clicked
} else if (Input.GetMouseButtonDown(0)) {
var hitInfo : RaycastHit;
var ray : Ray = camera.ScreenPointToRay(Input.mousePosition);
var allowMultiSelect : boolean = false;
// See if the user is holding in CTRL or SHIFT. If so, enable multiselection
if(Input.GetKey(KeyCode.RightShift) || Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightControl) || Input.GetKey(KeyCode.LeftControl)) {
allowMultiSelect = true;
}
// Something was clicked. Fetch.
if (Physics.Raycast(ray, hitInfo, camera.farClipPlane)) {
target = hitInfo.transform;
// If NOT multiselection, remove all prior selections
if (!allowMultiSelect) {
deselectAll();
}
//Toggle between selected and unselected (depending on current state)
if (target.renderer.sharedMaterial != materialForSelection) {
selectedObjects.Add(target.gameObject);
selectedObjectsMaterial.Add(target.gameObject.renderer.sharedMaterial);
target.gameObject.renderer.sharedMaterial = materialForSelection;
} else {
var arrayLocation : int = selectedObjects.IndexOf(target.gameObject);
if (arrayLocation == -1) {return;}; //this shouldn't happen. Ever. But still.
target.gameObject.renderer.sharedMaterial = selectedObjectsMaterial[arrayLocation];
selectedObjects.RemoveAt(arrayLocation);
selectedObjectsMaterial.RemoveAt(arrayLocation);
}
// Else deselect all selected objects (ie. click on empty background)
} else {
// Don't deselect if allowMultiSelect is true
if (!allowMultiSelect) {deselectAll();};
}
// Fetch input of the F-button (focus) -- this is a very dodgy implementation...
} else if (Input.GetKeyDown("f")) {
var backtrack = Vector3(0, 0, -15);
var selectedObject : GameObject;
// If dealing with only one selected object
if (selectedObjects.Count == 1) {
selectedObject = selectedObjects[0];
transform.position = selectedObject.transform.position;
orbitVector.transform.position = selectedObject.transform.position;
transform.Translate(backtrack);
// Else we need to average out the position vectors (this is the proper dodgy part of the implementation)
} else if (selectedObjects.Count > 1) {
selectedObject = selectedObjects[0];
var average = selectedObject.transform.position;
for (var i = 1; i < selectedObjects.Count; i++) {
selectedObject = selectedObjects[i];
average = (average + selectedObject.transform.position) / 2;
}
transform.position = average;
orbitVector.transform.position = average;
transform.Translate(backtrack);
}
}
*/
}
// Function to handle the de-selection of all objects in scene
function deselectAll() {
// Run through the list of selected objects and restore their original materials
for (var currentItem = 0; currentItem < selectedObjects.Count; currentItem++) {
var selectedObject : GameObject = selectedObjects[currentItem];
selectedObject.GetComponent.<Renderer>().sharedMaterial = selectedObjectsMaterial[currentItem];
}
// Clear both arrays
selectedObjects.Clear();
selectedObjectsMaterial.Clear();
}

View File

@@ -1,89 +0,0 @@
using UnityEngine;
using System.Collections;
using System.Threading;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
public class Demo : MonoBehaviour
{
public float speed = 300f;
private ZeroTierNetworkInterface zt;
string nwid = "";
private void zt_sample_network_test_thread()
{
print("test_network");
byte error;
// Prepare sample data buffer
/*
byte[] buffer = new byte[1024];
Stream stream = new MemoryStream(buffer);
BinaryFormatter f = new BinaryFormatter();
f.Serialize ( stream , "Welcome to the machine! (from Unity3D)" );
int error;
*/
// Connect to server
int connfd = zt.Connect (0, "172.22.211.245", 8888, out error);
print(connfd);
// Send sample data to server
//int bytes_written = zt.Send(connfd,buffer,0, out error);
//print(bytes_written);
char[] buffer = new char[1024];
buffer = "hello".ToCharArray();
//print (buffer);
//Stream stream = new MemoryStream(buffer);
//BinaryFormatter formatter = new BinaryFormatter();
//formatter.Serialize(stream, "HelloServer");
//int bufferSize = 1024;
int bytes_written = zt.Send(connfd, "hello".ToCharArray(),4, out error);
print(bytes_written);
}
public void zt_test_network()
{
Thread networkTestThread = new Thread(() => { zt_sample_network_test_thread();});
networkTestThread.IsBackground = true;
networkTestThread.Start();
}
void Start()
{
// Create new instance of ZeroTier in separate thread
zt = new ZeroTierNetworkInterface ("/Users/Joseph/utest2");
/* This new instance will communicate via a named pipe, so any
* API calls (ZeroTier.Connect(), ZeroTier.Send(), etc) will be sent to the service
* via this pipe.
*/
}
// Terminate the ZeroTier service when the application quits
void OnApplicationQuit() {
zt.Terminate ();
}
// Update is called once per frame
void Update () {
// Rotate ZTCube when ZT is running
if (zt.IsRunning ()) {
GameObject go = GameObject.Find ("ZTCube");
Vector3 rotvec = new Vector3 (10f, 10f, 10f);
go.transform.Rotate (rotvec, speed * Time.deltaTime);
}
/*
GameObject go = GameObject.Find("ZTCube");
Text text = go.GetComponents<Text> ()[0];
if (text) {
text.text = IsRunning() ? "ZeroTier Status: Online" : "ZeroTier Status: Offline";
}
*/
}
}

View File

@@ -1,8 +0,0 @@
using UnityEngine;
using System.Collections;
public class MyZeroTier : MonoBehaviour {
void Start() {
Application.OpenURL("https://my.zerotier.com");
}
}

View File

@@ -1 +0,0 @@


Binary file not shown.

View File

@@ -1,282 +0,0 @@
/*
* ZeroTier One - Network Virtualization Everywhere
* Copyright (C) 2011-2015 ZeroTier, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* --
*
* ZeroTier may be used and distributed under the terms of the GPLv3, which
* are available at: http://www.gnu.org/licenses/gpl-3.0.html
*
* If you would like to embed ZeroTier into a commercial application or
* redistribute it in a modified binary form, please contact ZeroTier Networks
* LLC. Start here: http://www.zerotier.com/
*/
using UnityEngine;
using UnityEngine.UI;
using System;
using System.Collections;
using System.Runtime.InteropServices;
using System.Threading;
using UnityEngine.Networking;
using System.Net.Sockets;
using System.Net;
using System.IO;
public class ZeroTierNetworkInterface {
// ZeroTier background thread
private Thread ztThread;
// Interop structures
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, CharSet=System.Runtime.InteropServices.CharSet.Ansi)]
public struct sockaddr {
/// u_short->unsigned short
public ushort sa_family;
/// char[14]
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst=14)]
public string sa_data;
}
// Virtual network interace config
private int MaxPacketSize;
private string rpc_path = "/does/this/work";
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void MyDelegate(string str);
static void CallBackFunction(string str) {
Debug.Log("Native ZT Plugin: " + str);
}
// ZeroTier service / debug initialization
[DllImport ("ZeroTierUnity")]
public static extern void SetDebugFunction( IntPtr fp );
[DllImport ("ZeroTierUnity")]
private static extern int unity_start_service(string path);
// Connection calls
[DllImport ("ZeroTierUnity")]
private static extern int zt_socket(int family, int type, int protocol);
[DllImport ("ZeroTierUnity")]
unsafe private static extern int zt_bind(int sockfd, System.IntPtr addr, int addrlen);
[DllImport ("ZeroTierUnity")]
unsafe private static extern int zt_connect(int sockfd, System.IntPtr addr, int addrlen);
[DllImport ("ZeroTierUnity")]
private static extern int zt_accept(int sockfd);
[DllImport ("ZeroTierUnity")]
private static extern int zt_listen(int sockfd, int backlog);
[DllImport ("ZeroTierUnity")]
private static extern int zt_close(int sockfd);
// RX / TX
[DllImport ("ZeroTierUnity")]
unsafe private static extern int zt_recv(int sockfd, System.IntPtr buf, int len);
[DllImport ("ZeroTierUnity")]
unsafe private static extern int zt_send(int sockfd, System.IntPtr buf, int len);
// ZT Thread controls
[DllImport ("ZeroTierUnity")]
private static extern bool zt_is_running();
[DllImport ("ZeroTierUnity")]
private static extern void zt_terminate();
// ZT Network controls
[DllImport ("ZeroTierUnity")]
private static extern bool zt_join_network(string nwid);
[DllImport ("ZeroTierUnity")]
private static extern void zt_leave_network(string nwid);
// Thread which starts the ZeroTier service
// The ZeroTier service may spin off a SOCKS5 proxy server
// if -DUSE_SOCKS_PROXY is set when building the bundle
private void zt_service_thread()
{
MyDelegate callback_delegate = new MyDelegate( CallBackFunction );
// Convert callback_delegate into a function pointer that can be
// used in unmanaged code.
IntPtr intptr_delegate =
Marshal.GetFunctionPointerForDelegate(callback_delegate);
// Call the API passing along the function pointer.
SetDebugFunction( intptr_delegate );
unity_start_service (rpc_path);
}
// Start the ZeroTier service
private void Init()
{
// TODO: Handle exceptions from unmanaged code
ztThread = new Thread(() => {
try {
zt_service_thread();
} catch(Exception e) {
Debug.Log(e.Message.ToString());
}
});
ztThread.IsBackground = true; // Allow the thread to be aborted safely
ztThread.Start();
}
// Initialize the ZeroTier service with a given path
public ZeroTierNetworkInterface(string path)
{
rpc_path = path;
Init();
}
// Initialize the ZeroTier service
public ZeroTierNetworkInterface()
{
Init();
}
// Initialize the ZeroTier service
// Use the GlobalConfig to set things like the max packet size
public ZeroTierNetworkInterface(GlobalConfig gConfig)
{
MaxPacketSize = gConfig.MaxPacketSize; // TODO: Do something with this!
Init();
}
// Joins a ZeroTier virtual network
public void JoinNetwork(string nwid)
{
zt_join_network(nwid);
}
// Leaves a ZeroTier virtual network
public void LeaveNetwork(string nwid)
{
zt_leave_network(nwid);
}
// Creates a ZeroTier Socket and binds on the port provided
// A client instance can now connect to this "host"
public int AddHost(int port)
{
int sockfd = zt_socket ((int)AddressFamily.InterNetwork, (int)SocketType.Stream, (int)ProtocolType.Unspecified);
if (sockfd < 0) {
return -1;
}
GCHandle sockaddr_ptr = ZeroTierUtils.Generate_unmananged_sockaddr("0.0.0.0" + ":" + port);
IntPtr pSockAddr = sockaddr_ptr.AddrOfPinnedObject ();
int addrlen = Marshal.SizeOf (pSockAddr);
return zt_bind (sockfd, pSockAddr, addrlen);
}
// hostId - host socket ID for this connection
public int Connect(int hostId, string address, int port, out byte error)
{
int sockfd = zt_socket ((int)AddressFamily.InterNetwork, (int)SocketType.Stream, (int)ProtocolType.Unspecified);
Debug.Log ("sockfd = " + sockfd);
if (sockfd < 0) {
error = (byte)sockfd;
return -1;
}
GCHandle sockaddr_ptr = ZeroTierUtils.Generate_unmananged_sockaddr(address + ":" + port);
IntPtr pSockAddr = sockaddr_ptr.AddrOfPinnedObject ();
int addrlen = Marshal.SizeOf (pSockAddr);
error = (byte)zt_connect (sockfd, pSockAddr, addrlen);
return sockfd;
}
// Returns whether the ZeroTier service is currently running
public bool IsRunning()
{
return zt_is_running ();
}
// Terminates the ZeroTier service
public void Terminate()
{
zt_terminate ();
}
// Shutdown a given connection
public int Disconnect(int fd)
{
return zt_close (fd);
}
// Sends data out over the network
public int Send(int fd, char[] buf, int len, out byte error)
{
int bytes_written = 0;
error = 0;
GCHandle buf_handle = GCHandle.Alloc (buf, GCHandleType.Pinned);
IntPtr pBufPtr = buf_handle.AddrOfPinnedObject ();
//int len = Marshal.SizeOf (pBufPtr);
if((bytes_written = zt_send (fd, pBufPtr, len)) < 0) {
error = (byte)bytes_written;
}
return bytes_written;
}
// Structure used to house arrays meant to be sent to unmanaged memory and passed to the
// ZeroTier service
public struct UnityArrayInput
{
public IntPtr array;
}
/*
// Sends data out over the network
public int Send(int fd, char[] buf, int len, out byte error)
{
//char[] buffer = new char[1024];
UnityArrayInput data = new UnityArrayInput ();
data.array = Marshal.AllocHGlobal (Marshal.SizeOf (typeof(char))*buf.Length);
//data.len = buf.Length;
int bytes_written = 0;
error = 0;
try
{
Marshal.Copy(buf, 0, data.array, buf.Length);
Debug.Log(buf.Length);
// ZT API call
if((bytes_written = zt_send (fd, data.array, buf.Length)) < 0) {
error = (byte)bytes_written;
}
return bytes_written;
}
finally
{
Marshal.FreeHGlobal (data.array);
}
return 0;
}
*/
// Checks for data to RX
public int OnReceive(int fd, byte[] buf, int len)
{
return 0;
//return zt_read(fd, buf, len);
}
}

View File

@@ -1,55 +0,0 @@
using UnityEngine;
using System.Collections;
using System.Net;
using System;
using System.Globalization;
using System.Runtime.InteropServices;
public class ZeroTierUtils {
// Handles IPv4 and IPv6 notation.
public static IPEndPoint CreateIPEndPoint(string endPoint)
{
string[] ep = endPoint.Split(':');
if (ep.Length < 2) throw new FormatException("Invalid endpoint format");
IPAddress ip;
if (ep.Length > 2) {
if (!IPAddress.TryParse(string.Join(":", ep, 0, ep.Length - 1), out ip)) {
throw new FormatException("Invalid ip-adress");
}
}
else {
if (!IPAddress.TryParse(ep[0], out ip)) {
throw new FormatException("Invalid ip-adress");
}
}
int port;
if (!int.TryParse(ep[ep.Length - 1], NumberStyles.None, NumberFormatInfo.CurrentInfo, out port)) {
throw new FormatException("Invalid port");
}
return new IPEndPoint(ip, port);
}
// Generates an unmanaged sockaddr structure from a string-formatted endpoint
public static GCHandle Generate_unmananged_sockaddr(string endpoint_str)
{
IPEndPoint ipEndPoint;
ipEndPoint = ZeroTierUtils.CreateIPEndPoint (endpoint_str);
SocketAddress socketAddress = ipEndPoint.Serialize ();
// use an array of bytes instead of the sockaddr structure
byte[] sockAddrStructureBytes = new byte[socketAddress.Size];
GCHandle sockAddrHandle = GCHandle.Alloc (sockAddrStructureBytes, GCHandleType.Pinned);
for (int i = 0; i < socketAddress.Size; ++i) {
sockAddrStructureBytes [i] = socketAddress [i];
}
return sockAddrHandle;
}
public static GCHandle Generate_unmanaged_buffer(byte[] buf)
{
// use an array of bytes instead of the sockaddr structure
GCHandle sockAddrHandle = GCHandle.Alloc (buf, GCHandleType.Pinned);
return sockAddrHandle;
}
}

View File

@@ -1 +0,0 @@
-unsafe

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -1,817 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
7C13E9791D11BFCD004F16BE /* C25519.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9401D11BFCD004F16BE /* C25519.cpp */; };
7C13E97A1D11BFCD004F16BE /* CertificateOfMembership.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9421D11BFCD004F16BE /* CertificateOfMembership.cpp */; };
7C13E97B1D11BFCD004F16BE /* Cluster.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9441D11BFCD004F16BE /* Cluster.cpp */; };
7C13E97C1D11BFCD004F16BE /* DeferredPackets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9471D11BFCD004F16BE /* DeferredPackets.cpp */; };
7C13E97D1D11BFCD004F16BE /* Dictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9491D11BFCD004F16BE /* Dictionary.cpp */; };
7C13E97E1D11BFCD004F16BE /* Identity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E94C1D11BFCD004F16BE /* Identity.cpp */; };
7C13E97F1D11BFCD004F16BE /* IncomingPacket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E94E1D11BFCD004F16BE /* IncomingPacket.cpp */; };
7C13E9801D11BFCD004F16BE /* InetAddress.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9501D11BFCD004F16BE /* InetAddress.cpp */; };
7C13E9811D11BFCD004F16BE /* Multicaster.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9531D11BFCD004F16BE /* Multicaster.cpp */; };
7C13E9821D11BFCD004F16BE /* Network.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9571D11BFCD004F16BE /* Network.cpp */; };
7C13E9831D11BFCD004F16BE /* NetworkConfig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9591D11BFCD004F16BE /* NetworkConfig.cpp */; };
7C13E9841D11BFCD004F16BE /* Node.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E95D1D11BFCD004F16BE /* Node.cpp */; };
7C13E9851D11BFCD004F16BE /* OutboundMulticast.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9601D11BFCD004F16BE /* OutboundMulticast.cpp */; };
7C13E9861D11BFCD004F16BE /* Packet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9621D11BFCD004F16BE /* Packet.cpp */; };
7C13E9871D11BFCD004F16BE /* Path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9641D11BFCD004F16BE /* Path.cpp */; };
7C13E9881D11BFCD004F16BE /* Peer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9661D11BFCD004F16BE /* Peer.cpp */; };
7C13E9891D11BFCD004F16BE /* Poly1305.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9681D11BFCD004F16BE /* Poly1305.cpp */; };
7C13E98A1D11BFCD004F16BE /* Salsa20.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E96B1D11BFCD004F16BE /* Salsa20.cpp */; };
7C13E98B1D11BFCD004F16BE /* SelfAwareness.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E96D1D11BFCD004F16BE /* SelfAwareness.cpp */; };
7C13E98C1D11BFCD004F16BE /* SHA512.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E96F1D11BFCD004F16BE /* SHA512.cpp */; };
7C13E98D1D11BFCD004F16BE /* Switch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9721D11BFCD004F16BE /* Switch.cpp */; };
7C13E98E1D11BFCD004F16BE /* Topology.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9741D11BFCD004F16BE /* Topology.cpp */; };
7C13E98F1D11BFCD004F16BE /* Utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9761D11BFCD004F16BE /* Utils.cpp */; };
7C13E9981D11C013004F16BE /* ControlPlane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9931D11C013004F16BE /* ControlPlane.cpp */; };
7C13E9991D11C013004F16BE /* OneService.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9951D11C013004F16BE /* OneService.cpp */; };
7C13E9B11D11C028004F16BE /* Arp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E99A1D11C028004F16BE /* Arp.cpp */; };
7C13E9B21D11C028004F16BE /* BackgroundResolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E99C1D11C028004F16BE /* BackgroundResolver.cpp */; };
7C13E9B31D11C028004F16BE /* BSDEthernetTap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E99F1D11C028004F16BE /* BSDEthernetTap.cpp */; };
7C13E9B41D11C028004F16BE /* Http.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9A11D11C028004F16BE /* Http.cpp */; };
7C13E9B61D11C028004F16BE /* OSUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9A51D11C028004F16BE /* OSUtils.cpp */; };
7C13E9B81D11C028004F16BE /* PortMapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9AA1D11C028004F16BE /* PortMapper.cpp */; };
7C13E9B91D11C028004F16BE /* RoutingTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9AC1D11C028004F16BE /* RoutingTable.cpp */; };
7C13E9C91D11C03D004F16BE /* SDK_Debug.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9BB1D11C03C004F16BE /* SDK_Debug.c */; };
7C13E9CA1D11C03D004F16BE /* SDK_EthernetTap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9BD1D11C03C004F16BE /* SDK_EthernetTap.cpp */; };
7C13E9CC1D11C03D004F16BE /* SDK_Proxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9C11D11C03C004F16BE /* SDK_Proxy.cpp */; };
7C13E9CD1D11C03D004F16BE /* SDK_RPC.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9C21D11C03C004F16BE /* SDK_RPC.c */; };
7C13E9CE1D11C03D004F16BE /* SDK_ServiceSetup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9C41D11C03C004F16BE /* SDK_ServiceSetup.cpp */; };
7C13E9CF1D11C03D004F16BE /* SDK_Sockets.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9C71D11C03D004F16BE /* SDK_Sockets.c */; };
7C13E9D81D11C0D7004F16BE /* api_lib.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9D01D11C0D7004F16BE /* api_lib.c */; };
7C13E9D91D11C0D7004F16BE /* api_msg.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9D11D11C0D7004F16BE /* api_msg.c */; };
7C13E9DA1D11C0D7004F16BE /* err.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9D21D11C0D7004F16BE /* err.c */; };
7C13E9DB1D11C0D7004F16BE /* netbuf.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9D31D11C0D7004F16BE /* netbuf.c */; };
7C13E9DC1D11C0D7004F16BE /* netdb.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9D41D11C0D7004F16BE /* netdb.c */; };
7C13E9DD1D11C0D7004F16BE /* netifapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9D51D11C0D7004F16BE /* netifapi.c */; };
7C13E9DE1D11C0D7004F16BE /* sockets.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9D61D11C0D7004F16BE /* sockets.c */; };
7C13E9DF1D11C0D7004F16BE /* tcpip.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9D71D11C0D7004F16BE /* tcpip.c */; };
7C13E9F01D11C0EE004F16BE /* def.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9E01D11C0EE004F16BE /* def.c */; };
7C13E9F11D11C0EE004F16BE /* dhcp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9E11D11C0EE004F16BE /* dhcp.c */; };
7C13E9F21D11C0EE004F16BE /* dns.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9E21D11C0EE004F16BE /* dns.c */; };
7C13E9F31D11C0EE004F16BE /* init.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9E31D11C0EE004F16BE /* init.c */; };
7C13E9F41D11C0EE004F16BE /* mem.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9E41D11C0EE004F16BE /* mem.c */; };
7C13E9F51D11C0EE004F16BE /* memp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9E51D11C0EE004F16BE /* memp.c */; };
7C13E9F61D11C0EE004F16BE /* netif.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9E61D11C0EE004F16BE /* netif.c */; };
7C13E9F71D11C0EE004F16BE /* pbuf.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9E71D11C0EE004F16BE /* pbuf.c */; };
7C13E9F81D11C0EE004F16BE /* raw.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9E81D11C0EE004F16BE /* raw.c */; };
7C13E9F91D11C0EE004F16BE /* stats.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9E91D11C0EE004F16BE /* stats.c */; };
7C13E9FA1D11C0EE004F16BE /* sys.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9EA1D11C0EE004F16BE /* sys.c */; };
7C13E9FB1D11C0EE004F16BE /* tcp_in.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9EB1D11C0EE004F16BE /* tcp_in.c */; };
7C13E9FC1D11C0EE004F16BE /* tcp_out.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9EC1D11C0EE004F16BE /* tcp_out.c */; };
7C13E9FD1D11C0EE004F16BE /* tcp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9ED1D11C0EE004F16BE /* tcp.c */; };
7C13E9FE1D11C0EE004F16BE /* timers.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9EE1D11C0EE004F16BE /* timers.c */; };
7C13E9FF1D11C0EE004F16BE /* udp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13E9EF1D11C0EE004F16BE /* udp.c */; };
7C13EA081D11C0FC004F16BE /* autoip.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA001D11C0FC004F16BE /* autoip.c */; };
7C13EA091D11C0FC004F16BE /* icmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA011D11C0FC004F16BE /* icmp.c */; };
7C13EA0A1D11C0FC004F16BE /* igmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA021D11C0FC004F16BE /* igmp.c */; };
7C13EA0B1D11C0FC004F16BE /* inet_chksum.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA031D11C0FC004F16BE /* inet_chksum.c */; };
7C13EA0C1D11C0FC004F16BE /* inet.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA041D11C0FC004F16BE /* inet.c */; };
7C13EA0D1D11C0FC004F16BE /* ip_addr.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA051D11C0FC004F16BE /* ip_addr.c */; };
7C13EA0E1D11C0FC004F16BE /* ip_frag.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA061D11C0FC004F16BE /* ip_frag.c */; };
7C13EA0F1D11C0FC004F16BE /* ip.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA071D11C0FC004F16BE /* ip.c */; };
7C13EA131D11C10D004F16BE /* etharp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA101D11C10D004F16BE /* etharp.c */; };
7C13EA141D11C10D004F16BE /* ethernetif.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA111D11C10D004F16BE /* ethernetif.c */; };
7C13EA151D11C10D004F16BE /* slipif.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA121D11C10D004F16BE /* slipif.c */; };
7C13EA431D11C342004F16BE /* http_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA411D11C342004F16BE /* http_parser.c */; };
7C13EA461D11C355004F16BE /* lz4.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C13EA441D11C355004F16BE /* lz4.c */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
7C13E93B1D11BFCD004F16BE /* Address.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Address.hpp; path = ../../../../zerotierone/node/Address.hpp; sourceTree = "<group>"; };
7C13E93C1D11BFCD004F16BE /* Array.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Array.hpp; path = ../../../../zerotierone/node/Array.hpp; sourceTree = "<group>"; };
7C13E93D1D11BFCD004F16BE /* AtomicCounter.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = AtomicCounter.hpp; path = ../../../../zerotierone/node/AtomicCounter.hpp; sourceTree = "<group>"; };
7C13E93E1D11BFCD004F16BE /* BinarySemaphore.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = BinarySemaphore.hpp; path = ../../../../zerotierone/node/BinarySemaphore.hpp; sourceTree = "<group>"; };
7C13E93F1D11BFCD004F16BE /* Buffer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Buffer.hpp; path = ../../../../zerotierone/node/Buffer.hpp; sourceTree = "<group>"; };
7C13E9401D11BFCD004F16BE /* C25519.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = C25519.cpp; path = ../../../../zerotierone/node/C25519.cpp; sourceTree = "<group>"; };
7C13E9411D11BFCD004F16BE /* C25519.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = C25519.hpp; path = ../../../../zerotierone/node/C25519.hpp; sourceTree = "<group>"; };
7C13E9421D11BFCD004F16BE /* CertificateOfMembership.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CertificateOfMembership.cpp; path = ../../../../zerotierone/node/CertificateOfMembership.cpp; sourceTree = "<group>"; };
7C13E9431D11BFCD004F16BE /* CertificateOfMembership.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = CertificateOfMembership.hpp; path = ../../../../zerotierone/node/CertificateOfMembership.hpp; sourceTree = "<group>"; };
7C13E9441D11BFCD004F16BE /* Cluster.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Cluster.cpp; path = ../../../../zerotierone/node/Cluster.cpp; sourceTree = "<group>"; };
7C13E9451D11BFCD004F16BE /* Cluster.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Cluster.hpp; path = ../../../../zerotierone/node/Cluster.hpp; sourceTree = "<group>"; };
7C13E9461D11BFCD004F16BE /* Constants.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Constants.hpp; path = ../../../../zerotierone/node/Constants.hpp; sourceTree = "<group>"; };
7C13E9471D11BFCD004F16BE /* DeferredPackets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DeferredPackets.cpp; path = ../../../../zerotierone/node/DeferredPackets.cpp; sourceTree = "<group>"; };
7C13E9481D11BFCD004F16BE /* DeferredPackets.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = DeferredPackets.hpp; path = ../../../../zerotierone/node/DeferredPackets.hpp; sourceTree = "<group>"; };
7C13E9491D11BFCD004F16BE /* Dictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Dictionary.cpp; path = ../../../../zerotierone/node/Dictionary.cpp; sourceTree = "<group>"; };
7C13E94A1D11BFCD004F16BE /* Dictionary.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Dictionary.hpp; path = ../../../../zerotierone/node/Dictionary.hpp; sourceTree = "<group>"; };
7C13E94B1D11BFCD004F16BE /* Hashtable.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Hashtable.hpp; path = ../../../../zerotierone/node/Hashtable.hpp; sourceTree = "<group>"; };
7C13E94C1D11BFCD004F16BE /* Identity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Identity.cpp; path = ../../../../zerotierone/node/Identity.cpp; sourceTree = "<group>"; };
7C13E94D1D11BFCD004F16BE /* Identity.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Identity.hpp; path = ../../../../zerotierone/node/Identity.hpp; sourceTree = "<group>"; };
7C13E94E1D11BFCD004F16BE /* IncomingPacket.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IncomingPacket.cpp; path = ../../../../zerotierone/node/IncomingPacket.cpp; sourceTree = "<group>"; };
7C13E94F1D11BFCD004F16BE /* IncomingPacket.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = IncomingPacket.hpp; path = ../../../../zerotierone/node/IncomingPacket.hpp; sourceTree = "<group>"; };
7C13E9501D11BFCD004F16BE /* InetAddress.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = InetAddress.cpp; path = ../../../../zerotierone/node/InetAddress.cpp; sourceTree = "<group>"; };
7C13E9511D11BFCD004F16BE /* InetAddress.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = InetAddress.hpp; path = ../../../../zerotierone/node/InetAddress.hpp; sourceTree = "<group>"; };
7C13E9521D11BFCD004F16BE /* MAC.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = MAC.hpp; path = ../../../../zerotierone/node/MAC.hpp; sourceTree = "<group>"; };
7C13E9531D11BFCD004F16BE /* Multicaster.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Multicaster.cpp; path = ../../../../zerotierone/node/Multicaster.cpp; sourceTree = "<group>"; };
7C13E9541D11BFCD004F16BE /* Multicaster.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Multicaster.hpp; path = ../../../../zerotierone/node/Multicaster.hpp; sourceTree = "<group>"; };
7C13E9551D11BFCD004F16BE /* MulticastGroup.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = MulticastGroup.hpp; path = ../../../../zerotierone/node/MulticastGroup.hpp; sourceTree = "<group>"; };
7C13E9561D11BFCD004F16BE /* Mutex.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Mutex.hpp; path = ../../../../zerotierone/node/Mutex.hpp; sourceTree = "<group>"; };
7C13E9571D11BFCD004F16BE /* Network.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Network.cpp; path = ../../../../zerotierone/node/Network.cpp; sourceTree = "<group>"; };
7C13E9581D11BFCD004F16BE /* Network.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Network.hpp; path = ../../../../zerotierone/node/Network.hpp; sourceTree = "<group>"; };
7C13E9591D11BFCD004F16BE /* NetworkConfig.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkConfig.cpp; path = ../../../../zerotierone/node/NetworkConfig.cpp; sourceTree = "<group>"; };
7C13E95A1D11BFCD004F16BE /* NetworkConfig.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = NetworkConfig.hpp; path = ../../../../zerotierone/node/NetworkConfig.hpp; sourceTree = "<group>"; };
7C13E95B1D11BFCD004F16BE /* NetworkConfigRequestMetaData.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = NetworkConfigRequestMetaData.hpp; path = ../../../../zerotierone/node/NetworkConfigRequestMetaData.hpp; sourceTree = "<group>"; };
7C13E95C1D11BFCD004F16BE /* NetworkController.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = NetworkController.hpp; path = ../../../../zerotierone/node/NetworkController.hpp; sourceTree = "<group>"; };
7C13E95D1D11BFCD004F16BE /* Node.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Node.cpp; path = ../../../../zerotierone/node/Node.cpp; sourceTree = "<group>"; };
7C13E95E1D11BFCD004F16BE /* Node.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Node.hpp; path = ../../../../zerotierone/node/Node.hpp; sourceTree = "<group>"; };
7C13E95F1D11BFCD004F16BE /* NonCopyable.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = NonCopyable.hpp; path = ../../../../zerotierone/node/NonCopyable.hpp; sourceTree = "<group>"; };
7C13E9601D11BFCD004F16BE /* OutboundMulticast.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OutboundMulticast.cpp; path = ../../../../zerotierone/node/OutboundMulticast.cpp; sourceTree = "<group>"; };
7C13E9611D11BFCD004F16BE /* OutboundMulticast.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = OutboundMulticast.hpp; path = ../../../../zerotierone/node/OutboundMulticast.hpp; sourceTree = "<group>"; };
7C13E9621D11BFCD004F16BE /* Packet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Packet.cpp; path = ../../../../zerotierone/node/Packet.cpp; sourceTree = "<group>"; };
7C13E9631D11BFCD004F16BE /* Packet.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Packet.hpp; path = ../../../../zerotierone/node/Packet.hpp; sourceTree = "<group>"; };
7C13E9641D11BFCD004F16BE /* Path.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Path.cpp; path = ../../../../zerotierone/node/Path.cpp; sourceTree = "<group>"; };
7C13E9651D11BFCD004F16BE /* Path.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Path.hpp; path = ../../../../zerotierone/node/Path.hpp; sourceTree = "<group>"; };
7C13E9661D11BFCD004F16BE /* Peer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Peer.cpp; path = ../../../../zerotierone/node/Peer.cpp; sourceTree = "<group>"; };
7C13E9671D11BFCD004F16BE /* Peer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Peer.hpp; path = ../../../../zerotierone/node/Peer.hpp; sourceTree = "<group>"; };
7C13E9681D11BFCD004F16BE /* Poly1305.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Poly1305.cpp; path = ../../../../zerotierone/node/Poly1305.cpp; sourceTree = "<group>"; };
7C13E9691D11BFCD004F16BE /* Poly1305.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Poly1305.hpp; path = ../../../../zerotierone/node/Poly1305.hpp; sourceTree = "<group>"; };
7C13E96A1D11BFCD004F16BE /* RuntimeEnvironment.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = RuntimeEnvironment.hpp; path = ../../../../zerotierone/node/RuntimeEnvironment.hpp; sourceTree = "<group>"; };
7C13E96B1D11BFCD004F16BE /* Salsa20.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Salsa20.cpp; path = ../../../../zerotierone/node/Salsa20.cpp; sourceTree = "<group>"; };
7C13E96C1D11BFCD004F16BE /* Salsa20.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Salsa20.hpp; path = ../../../../zerotierone/node/Salsa20.hpp; sourceTree = "<group>"; };
7C13E96D1D11BFCD004F16BE /* SelfAwareness.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SelfAwareness.cpp; path = ../../../../zerotierone/node/SelfAwareness.cpp; sourceTree = "<group>"; };
7C13E96E1D11BFCD004F16BE /* SelfAwareness.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = SelfAwareness.hpp; path = ../../../../zerotierone/node/SelfAwareness.hpp; sourceTree = "<group>"; };
7C13E96F1D11BFCD004F16BE /* SHA512.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SHA512.cpp; path = ../../../../zerotierone/node/SHA512.cpp; sourceTree = "<group>"; };
7C13E9701D11BFCD004F16BE /* SHA512.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = SHA512.hpp; path = ../../../../zerotierone/node/SHA512.hpp; sourceTree = "<group>"; };
7C13E9711D11BFCD004F16BE /* SharedPtr.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = SharedPtr.hpp; path = ../../../../zerotierone/node/SharedPtr.hpp; sourceTree = "<group>"; };
7C13E9721D11BFCD004F16BE /* Switch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Switch.cpp; path = ../../../../zerotierone/node/Switch.cpp; sourceTree = "<group>"; };
7C13E9731D11BFCD004F16BE /* Switch.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Switch.hpp; path = ../../../../zerotierone/node/Switch.hpp; sourceTree = "<group>"; };
7C13E9741D11BFCD004F16BE /* Topology.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Topology.cpp; path = ../../../../zerotierone/node/Topology.cpp; sourceTree = "<group>"; };
7C13E9751D11BFCD004F16BE /* Topology.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Topology.hpp; path = ../../../../zerotierone/node/Topology.hpp; sourceTree = "<group>"; };
7C13E9761D11BFCD004F16BE /* Utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Utils.cpp; path = ../../../../zerotierone/node/Utils.cpp; sourceTree = "<group>"; };
7C13E9771D11BFCD004F16BE /* Utils.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Utils.hpp; path = ../../../../zerotierone/node/Utils.hpp; sourceTree = "<group>"; };
7C13E9781D11BFCD004F16BE /* World.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = World.hpp; path = ../../../../zerotierone/node/World.hpp; sourceTree = "<group>"; };
7C13E9931D11C013004F16BE /* ControlPlane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ControlPlane.cpp; path = ../../../../zerotierone/service/ControlPlane.cpp; sourceTree = "<group>"; };
7C13E9941D11C013004F16BE /* ControlPlane.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = ControlPlane.hpp; path = ../../../../zerotierone/service/ControlPlane.hpp; sourceTree = "<group>"; };
7C13E9951D11C013004F16BE /* OneService.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OneService.cpp; path = ../../../../zerotierone/service/OneService.cpp; sourceTree = "<group>"; };
7C13E9961D11C013004F16BE /* OneService.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = OneService.hpp; path = ../../../../zerotierone/service/OneService.hpp; sourceTree = "<group>"; };
7C13E99A1D11C028004F16BE /* Arp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Arp.cpp; path = ../../../../zerotierone/osdep/Arp.cpp; sourceTree = "<group>"; };
7C13E99B1D11C028004F16BE /* Arp.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Arp.hpp; path = ../../../../zerotierone/osdep/Arp.hpp; sourceTree = "<group>"; };
7C13E99C1D11C028004F16BE /* BackgroundResolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BackgroundResolver.cpp; path = ../../../../zerotierone/osdep/BackgroundResolver.cpp; sourceTree = "<group>"; };
7C13E99D1D11C028004F16BE /* BackgroundResolver.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = BackgroundResolver.hpp; path = ../../../../zerotierone/osdep/BackgroundResolver.hpp; sourceTree = "<group>"; };
7C13E99E1D11C028004F16BE /* Binder.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Binder.hpp; path = ../../../../zerotierone/osdep/Binder.hpp; sourceTree = "<group>"; };
7C13E99F1D11C028004F16BE /* BSDEthernetTap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BSDEthernetTap.cpp; path = ../../../../zerotierone/osdep/BSDEthernetTap.cpp; sourceTree = "<group>"; };
7C13E9A01D11C028004F16BE /* BSDEthernetTap.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = BSDEthernetTap.hpp; path = ../../../../zerotierone/osdep/BSDEthernetTap.hpp; sourceTree = "<group>"; };
7C13E9A11D11C028004F16BE /* Http.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Http.cpp; path = ../../../../zerotierone/osdep/Http.cpp; sourceTree = "<group>"; };
7C13E9A21D11C028004F16BE /* Http.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Http.hpp; path = ../../../../zerotierone/osdep/Http.hpp; sourceTree = "<group>"; };
7C13E9A51D11C028004F16BE /* OSUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OSUtils.cpp; path = ../../../../zerotierone/osdep/OSUtils.cpp; sourceTree = "<group>"; };
7C13E9A61D11C028004F16BE /* OSUtils.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = OSUtils.hpp; path = ../../../../zerotierone/osdep/OSUtils.hpp; sourceTree = "<group>"; };
7C13E9A91D11C028004F16BE /* Phy.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Phy.hpp; path = ../../../../zerotierone/osdep/Phy.hpp; sourceTree = "<group>"; };
7C13E9AA1D11C028004F16BE /* PortMapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PortMapper.cpp; path = ../../../../zerotierone/osdep/PortMapper.cpp; sourceTree = "<group>"; };
7C13E9AB1D11C028004F16BE /* PortMapper.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = PortMapper.hpp; path = ../../../../zerotierone/osdep/PortMapper.hpp; sourceTree = "<group>"; };
7C13E9AC1D11C028004F16BE /* RoutingTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RoutingTable.cpp; path = ../../../../zerotierone/osdep/RoutingTable.cpp; sourceTree = "<group>"; };
7C13E9AD1D11C028004F16BE /* RoutingTable.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = RoutingTable.hpp; path = ../../../../zerotierone/osdep/RoutingTable.hpp; sourceTree = "<group>"; };
7C13E9AE1D11C028004F16BE /* Thread.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Thread.hpp; path = ../../../../zerotierone/osdep/Thread.hpp; sourceTree = "<group>"; };
7C13E9BB1D11C03C004F16BE /* SDK_Debug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDK_Debug.c; path = ../../../../src/SDK_Debug.c; sourceTree = "<group>"; };
7C13E9BC1D11C03C004F16BE /* SDK_Debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDK_Debug.h; path = ../../../../src/SDK_Debug.h; sourceTree = "<group>"; };
7C13E9BD1D11C03C004F16BE /* SDK_EthernetTap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SDK_EthernetTap.cpp; path = ../../../../src/SDK_EthernetTap.cpp; sourceTree = "<group>"; };
7C13E9BE1D11C03C004F16BE /* SDK_EthernetTap.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = SDK_EthernetTap.hpp; path = ../../../../src/SDK_EthernetTap.hpp; sourceTree = "<group>"; };
7C13E9C01D11C03C004F16BE /* SDK_LWIPStack.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = SDK_LWIPStack.hpp; path = ../../../../src/SDK_LWIPStack.hpp; sourceTree = "<group>"; };
7C13E9C11D11C03C004F16BE /* SDK_Proxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SDK_Proxy.cpp; path = ../../../../src/SDK_Proxy.cpp; sourceTree = "<group>"; };
7C13E9C21D11C03C004F16BE /* SDK_RPC.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDK_RPC.c; path = ../../../../src/SDK_RPC.c; sourceTree = "<group>"; };
7C13E9C31D11C03C004F16BE /* SDK_RPC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDK_RPC.h; path = ../../../../src/SDK_RPC.h; sourceTree = "<group>"; };
7C13E9C41D11C03C004F16BE /* SDK_ServiceSetup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SDK_ServiceSetup.cpp; path = ../../../../src/SDK_ServiceSetup.cpp; sourceTree = "<group>"; };
7C13E9C51D11C03C004F16BE /* SDK_ServiceSetup.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = SDK_ServiceSetup.hpp; path = ../../../../src/SDK_ServiceSetup.hpp; sourceTree = "<group>"; };
7C13E9C61D11C03D004F16BE /* SDK_Signatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDK_Signatures.h; path = ../../../../src/SDK_Signatures.h; sourceTree = "<group>"; };
7C13E9C71D11C03D004F16BE /* SDK_Sockets.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDK_Sockets.c; path = ../../../../src/SDK_Sockets.c; sourceTree = "<group>"; };
7C13E9C81D11C03D004F16BE /* SDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDK.h; path = ../../../../src/SDK.h; sourceTree = "<group>"; };
7C13E9D01D11C0D7004F16BE /* api_lib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = api_lib.c; path = ../../../../ext/lwip/src/api/api_lib.c; sourceTree = "<group>"; };
7C13E9D11D11C0D7004F16BE /* api_msg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = api_msg.c; path = ../../../../ext/lwip/src/api/api_msg.c; sourceTree = "<group>"; };
7C13E9D21D11C0D7004F16BE /* err.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = err.c; path = ../../../../ext/lwip/src/api/err.c; sourceTree = "<group>"; };
7C13E9D31D11C0D7004F16BE /* netbuf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = netbuf.c; path = ../../../../ext/lwip/src/api/netbuf.c; sourceTree = "<group>"; };
7C13E9D41D11C0D7004F16BE /* netdb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = netdb.c; path = ../../../../ext/lwip/src/api/netdb.c; sourceTree = "<group>"; };
7C13E9D51D11C0D7004F16BE /* netifapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = netifapi.c; path = ../../../../ext/lwip/src/api/netifapi.c; sourceTree = "<group>"; };
7C13E9D61D11C0D7004F16BE /* sockets.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sockets.c; path = ../../../../ext/lwip/src/api/sockets.c; sourceTree = "<group>"; };
7C13E9D71D11C0D7004F16BE /* tcpip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tcpip.c; path = ../../../../ext/lwip/src/api/tcpip.c; sourceTree = "<group>"; };
7C13E9E01D11C0EE004F16BE /* def.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = def.c; path = ../../../../ext/lwip/src/core/def.c; sourceTree = "<group>"; };
7C13E9E11D11C0EE004F16BE /* dhcp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dhcp.c; path = ../../../../ext/lwip/src/core/dhcp.c; sourceTree = "<group>"; };
7C13E9E21D11C0EE004F16BE /* dns.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dns.c; path = ../../../../ext/lwip/src/core/dns.c; sourceTree = "<group>"; };
7C13E9E31D11C0EE004F16BE /* init.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = init.c; path = ../../../../ext/lwip/src/core/init.c; sourceTree = "<group>"; };
7C13E9E41D11C0EE004F16BE /* mem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mem.c; path = ../../../../ext/lwip/src/core/mem.c; sourceTree = "<group>"; };
7C13E9E51D11C0EE004F16BE /* memp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = memp.c; path = ../../../../ext/lwip/src/core/memp.c; sourceTree = "<group>"; };
7C13E9E61D11C0EE004F16BE /* netif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = netif.c; path = ../../../../ext/lwip/src/core/netif.c; sourceTree = "<group>"; };
7C13E9E71D11C0EE004F16BE /* pbuf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pbuf.c; path = ../../../../ext/lwip/src/core/pbuf.c; sourceTree = "<group>"; };
7C13E9E81D11C0EE004F16BE /* raw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = raw.c; path = ../../../../ext/lwip/src/core/raw.c; sourceTree = "<group>"; };
7C13E9E91D11C0EE004F16BE /* stats.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = stats.c; path = ../../../../ext/lwip/src/core/stats.c; sourceTree = "<group>"; };
7C13E9EA1D11C0EE004F16BE /* sys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sys.c; path = ../../../../ext/lwip/src/core/sys.c; sourceTree = "<group>"; };
7C13E9EB1D11C0EE004F16BE /* tcp_in.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tcp_in.c; path = ../../../../ext/lwip/src/core/tcp_in.c; sourceTree = "<group>"; };
7C13E9EC1D11C0EE004F16BE /* tcp_out.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tcp_out.c; path = ../../../../ext/lwip/src/core/tcp_out.c; sourceTree = "<group>"; };
7C13E9ED1D11C0EE004F16BE /* tcp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tcp.c; path = ../../../../ext/lwip/src/core/tcp.c; sourceTree = "<group>"; };
7C13E9EE1D11C0EE004F16BE /* timers.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = timers.c; path = ../../../../ext/lwip/src/core/timers.c; sourceTree = "<group>"; };
7C13E9EF1D11C0EE004F16BE /* udp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = udp.c; path = ../../../../ext/lwip/src/core/udp.c; sourceTree = "<group>"; };
7C13EA001D11C0FC004F16BE /* autoip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = autoip.c; path = ../../../../ext/lwip/src/core/ipv4/autoip.c; sourceTree = "<group>"; };
7C13EA011D11C0FC004F16BE /* icmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = icmp.c; path = ../../../../ext/lwip/src/core/ipv4/icmp.c; sourceTree = "<group>"; };
7C13EA021D11C0FC004F16BE /* igmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = igmp.c; path = ../../../../ext/lwip/src/core/ipv4/igmp.c; sourceTree = "<group>"; };
7C13EA031D11C0FC004F16BE /* inet_chksum.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = inet_chksum.c; path = ../../../../ext/lwip/src/core/ipv4/inet_chksum.c; sourceTree = "<group>"; };
7C13EA041D11C0FC004F16BE /* inet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = inet.c; path = ../../../../ext/lwip/src/core/ipv4/inet.c; sourceTree = "<group>"; };
7C13EA051D11C0FC004F16BE /* ip_addr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ip_addr.c; path = ../../../../ext/lwip/src/core/ipv4/ip_addr.c; sourceTree = "<group>"; };
7C13EA061D11C0FC004F16BE /* ip_frag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ip_frag.c; path = ../../../../ext/lwip/src/core/ipv4/ip_frag.c; sourceTree = "<group>"; };
7C13EA071D11C0FC004F16BE /* ip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ip.c; path = ../../../../ext/lwip/src/core/ipv4/ip.c; sourceTree = "<group>"; };
7C13EA101D11C10D004F16BE /* etharp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = etharp.c; path = ../../../../ext/lwip/src/netif/etharp.c; sourceTree = "<group>"; };
7C13EA111D11C10D004F16BE /* ethernetif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ethernetif.c; path = ../../../../ext/lwip/src/netif/ethernetif.c; sourceTree = "<group>"; };
7C13EA121D11C10D004F16BE /* slipif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = slipif.c; path = ../../../../ext/lwip/src/netif/slipif.c; sourceTree = "<group>"; };
7C13EA161D11C12F004F16BE /* lwipopts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lwipopts.h; path = ../../../../ext/lwipopts.h; sourceTree = "<group>"; };
7C13EA171D11C14B004F16BE /* autoip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = autoip.h; path = ../../../../ext/lwip/src/include/ipv4/lwip/autoip.h; sourceTree = "<group>"; };
7C13EA181D11C14B004F16BE /* icmp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = icmp.h; path = ../../../../ext/lwip/src/include/ipv4/lwip/icmp.h; sourceTree = "<group>"; };
7C13EA191D11C14B004F16BE /* igmp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = igmp.h; path = ../../../../ext/lwip/src/include/ipv4/lwip/igmp.h; sourceTree = "<group>"; };
7C13EA1A1D11C14B004F16BE /* inet_chksum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = inet_chksum.h; path = ../../../../ext/lwip/src/include/ipv4/lwip/inet_chksum.h; sourceTree = "<group>"; };
7C13EA1B1D11C14B004F16BE /* inet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = inet.h; path = ../../../../ext/lwip/src/include/ipv4/lwip/inet.h; sourceTree = "<group>"; };
7C13EA1C1D11C14B004F16BE /* ip_addr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ip_addr.h; path = ../../../../ext/lwip/src/include/ipv4/lwip/ip_addr.h; sourceTree = "<group>"; };
7C13EA1D1D11C14B004F16BE /* ip_frag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ip_frag.h; path = ../../../../ext/lwip/src/include/ipv4/lwip/ip_frag.h; sourceTree = "<group>"; };
7C13EA1E1D11C14B004F16BE /* ip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ip.h; path = ../../../../ext/lwip/src/include/ipv4/lwip/ip.h; sourceTree = "<group>"; };
7C13EA1F1D11C15D004F16BE /* api_msg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = api_msg.h; path = ../../../../ext/lwip/src/include/lwip/api_msg.h; sourceTree = "<group>"; };
7C13EA201D11C15D004F16BE /* api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = api.h; path = ../../../../ext/lwip/src/include/lwip/api.h; sourceTree = "<group>"; };
7C13EA211D11C15D004F16BE /* arch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = arch.h; path = ../../../../ext/lwip/src/include/lwip/arch.h; sourceTree = "<group>"; };
7C13EA221D11C15D004F16BE /* debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = debug.h; path = ../../../../ext/lwip/src/include/lwip/debug.h; sourceTree = "<group>"; };
7C13EA231D11C15D004F16BE /* def.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = def.h; path = ../../../../ext/lwip/src/include/lwip/def.h; sourceTree = "<group>"; };
7C13EA241D11C15D004F16BE /* dhcp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dhcp.h; path = ../../../../ext/lwip/src/include/lwip/dhcp.h; sourceTree = "<group>"; };
7C13EA251D11C15D004F16BE /* dns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dns.h; path = ../../../../ext/lwip/src/include/lwip/dns.h; sourceTree = "<group>"; };
7C13EA261D11C15D004F16BE /* err.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = err.h; path = ../../../../ext/lwip/src/include/lwip/err.h; sourceTree = "<group>"; };
7C13EA271D11C15D004F16BE /* init.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = init.h; path = ../../../../ext/lwip/src/include/lwip/init.h; sourceTree = "<group>"; };
7C13EA281D11C15D004F16BE /* ip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ip.h; path = ../../../../ext/lwip/src/include/lwip/ip.h; sourceTree = "<group>"; };
7C13EA291D11C15D004F16BE /* mem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mem.h; path = ../../../../ext/lwip/src/include/lwip/mem.h; sourceTree = "<group>"; };
7C13EA2A1D11C15D004F16BE /* memp_std.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = memp_std.h; path = ../../../../ext/lwip/src/include/lwip/memp_std.h; sourceTree = "<group>"; };
7C13EA2B1D11C15D004F16BE /* memp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = memp.h; path = ../../../../ext/lwip/src/include/lwip/memp.h; sourceTree = "<group>"; };
7C13EA2C1D11C15D004F16BE /* netbuf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = netbuf.h; path = ../../../../ext/lwip/src/include/lwip/netbuf.h; sourceTree = "<group>"; };
7C13EA2D1D11C15D004F16BE /* netdb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = netdb.h; path = ../../../../ext/lwip/src/include/lwip/netdb.h; sourceTree = "<group>"; };
7C13EA2E1D11C15D004F16BE /* netif.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = netif.h; path = ../../../../ext/lwip/src/include/lwip/netif.h; sourceTree = "<group>"; };
7C13EA2F1D11C15D004F16BE /* netifapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = netifapi.h; path = ../../../../ext/lwip/src/include/lwip/netifapi.h; sourceTree = "<group>"; };
7C13EA301D11C15D004F16BE /* opt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = opt.h; path = ../../../../ext/lwip/src/include/lwip/opt.h; sourceTree = "<group>"; };
7C13EA311D11C15D004F16BE /* pbuf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pbuf.h; path = ../../../../ext/lwip/src/include/lwip/pbuf.h; sourceTree = "<group>"; };
7C13EA321D11C15D004F16BE /* raw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = raw.h; path = ../../../../ext/lwip/src/include/lwip/raw.h; sourceTree = "<group>"; };
7C13EA331D11C15D004F16BE /* sio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sio.h; path = ../../../../ext/lwip/src/include/lwip/sio.h; sourceTree = "<group>"; };
7C13EA341D11C15D004F16BE /* snmp_asn1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = snmp_asn1.h; path = ../../../../ext/lwip/src/include/lwip/snmp_asn1.h; sourceTree = "<group>"; };
7C13EA351D11C15D004F16BE /* snmp_msg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = snmp_msg.h; path = ../../../../ext/lwip/src/include/lwip/snmp_msg.h; sourceTree = "<group>"; };
7C13EA361D11C15D004F16BE /* snmp_structs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = snmp_structs.h; path = ../../../../ext/lwip/src/include/lwip/snmp_structs.h; sourceTree = "<group>"; };
7C13EA371D11C15D004F16BE /* snmp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = snmp.h; path = ../../../../ext/lwip/src/include/lwip/snmp.h; sourceTree = "<group>"; };
7C13EA381D11C15D004F16BE /* sockets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sockets.h; path = ../../../../ext/lwip/src/include/lwip/sockets.h; sourceTree = "<group>"; };
7C13EA391D11C15D004F16BE /* stats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stats.h; path = ../../../../ext/lwip/src/include/lwip/stats.h; sourceTree = "<group>"; };
7C13EA3A1D11C15D004F16BE /* sys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sys.h; path = ../../../../ext/lwip/src/include/lwip/sys.h; sourceTree = "<group>"; };
7C13EA3B1D11C15D004F16BE /* tcp_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tcp_impl.h; path = ../../../../ext/lwip/src/include/lwip/tcp_impl.h; sourceTree = "<group>"; };
7C13EA3C1D11C15D004F16BE /* tcp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tcp.h; path = ../../../../ext/lwip/src/include/lwip/tcp.h; sourceTree = "<group>"; };
7C13EA3D1D11C15D004F16BE /* tcpip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tcpip.h; path = ../../../../ext/lwip/src/include/lwip/tcpip.h; sourceTree = "<group>"; };
7C13EA3E1D11C15D004F16BE /* timers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = timers.h; path = ../../../../ext/lwip/src/include/lwip/timers.h; sourceTree = "<group>"; };
7C13EA3F1D11C15D004F16BE /* udp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = udp.h; path = ../../../../ext/lwip/src/include/lwip/udp.h; sourceTree = "<group>"; };
7C13EA411D11C342004F16BE /* http_parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = http_parser.c; path = "../../../../zerotierone/ext/http-parser/http_parser.c"; sourceTree = "<group>"; };
7C13EA421D11C342004F16BE /* http_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = http_parser.h; path = "../../../../zerotierone/ext/http-parser/http_parser.h"; sourceTree = "<group>"; };
7C13EA441D11C355004F16BE /* lz4.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lz4.c; path = ../../../../zerotierone/ext/lz4/lz4.c; sourceTree = "<group>"; };
7C13EA451D11C355004F16BE /* lz4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lz4.h; path = ../../../../zerotierone/ext/lz4/lz4.h; sourceTree = "<group>"; };
7C3F4C791D0618670033F5EB /* ZeroTierUnity.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ZeroTierUnity.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
7C3F4C7C1D0618670033F5EB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
7C3F4C761D0618670033F5EB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
7C13EA401D11C325004F16BE /* ext */ = {
isa = PBXGroup;
children = (
7C13EA441D11C355004F16BE /* lz4.c */,
7C13EA451D11C355004F16BE /* lz4.h */,
7C13EA411D11C342004F16BE /* http_parser.c */,
7C13EA421D11C342004F16BE /* http_parser.h */,
);
name = ext;
sourceTree = "<group>";
};
7C24164B1D073F2A000851B2 /* ZeroTier */ = {
isa = PBXGroup;
children = (
7C13E99A1D11C028004F16BE /* Arp.cpp */,
7C13E99B1D11C028004F16BE /* Arp.hpp */,
7C13E99C1D11C028004F16BE /* BackgroundResolver.cpp */,
7C13E99D1D11C028004F16BE /* BackgroundResolver.hpp */,
7C13E99E1D11C028004F16BE /* Binder.hpp */,
7C13E99F1D11C028004F16BE /* BSDEthernetTap.cpp */,
7C13E9A01D11C028004F16BE /* BSDEthernetTap.hpp */,
7C13E9A11D11C028004F16BE /* Http.cpp */,
7C13E9A21D11C028004F16BE /* Http.hpp */,
7C13E9A51D11C028004F16BE /* OSUtils.cpp */,
7C13E9A61D11C028004F16BE /* OSUtils.hpp */,
7C13E9A91D11C028004F16BE /* Phy.hpp */,
7C13E9AA1D11C028004F16BE /* PortMapper.cpp */,
7C13E9AB1D11C028004F16BE /* PortMapper.hpp */,
7C13E9AC1D11C028004F16BE /* RoutingTable.cpp */,
7C13E9AD1D11C028004F16BE /* RoutingTable.hpp */,
7C13E9AE1D11C028004F16BE /* Thread.hpp */,
7C13E9931D11C013004F16BE /* ControlPlane.cpp */,
7C13E9941D11C013004F16BE /* ControlPlane.hpp */,
7C13E9951D11C013004F16BE /* OneService.cpp */,
7C13E9961D11C013004F16BE /* OneService.hpp */,
7C13E93B1D11BFCD004F16BE /* Address.hpp */,
7C13E93C1D11BFCD004F16BE /* Array.hpp */,
7C13E93D1D11BFCD004F16BE /* AtomicCounter.hpp */,
7C13E93E1D11BFCD004F16BE /* BinarySemaphore.hpp */,
7C13E93F1D11BFCD004F16BE /* Buffer.hpp */,
7C13E9401D11BFCD004F16BE /* C25519.cpp */,
7C13E9411D11BFCD004F16BE /* C25519.hpp */,
7C13E9421D11BFCD004F16BE /* CertificateOfMembership.cpp */,
7C13E9431D11BFCD004F16BE /* CertificateOfMembership.hpp */,
7C13E9441D11BFCD004F16BE /* Cluster.cpp */,
7C13E9451D11BFCD004F16BE /* Cluster.hpp */,
7C13E9461D11BFCD004F16BE /* Constants.hpp */,
7C13E9471D11BFCD004F16BE /* DeferredPackets.cpp */,
7C13E9481D11BFCD004F16BE /* DeferredPackets.hpp */,
7C13E9491D11BFCD004F16BE /* Dictionary.cpp */,
7C13E94A1D11BFCD004F16BE /* Dictionary.hpp */,
7C13E94B1D11BFCD004F16BE /* Hashtable.hpp */,
7C13E94C1D11BFCD004F16BE /* Identity.cpp */,
7C13E94D1D11BFCD004F16BE /* Identity.hpp */,
7C13E94E1D11BFCD004F16BE /* IncomingPacket.cpp */,
7C13E94F1D11BFCD004F16BE /* IncomingPacket.hpp */,
7C13E9501D11BFCD004F16BE /* InetAddress.cpp */,
7C13E9511D11BFCD004F16BE /* InetAddress.hpp */,
7C13E9521D11BFCD004F16BE /* MAC.hpp */,
7C13E9531D11BFCD004F16BE /* Multicaster.cpp */,
7C13E9541D11BFCD004F16BE /* Multicaster.hpp */,
7C13E9551D11BFCD004F16BE /* MulticastGroup.hpp */,
7C13E9561D11BFCD004F16BE /* Mutex.hpp */,
7C13E9571D11BFCD004F16BE /* Network.cpp */,
7C13E9581D11BFCD004F16BE /* Network.hpp */,
7C13E9591D11BFCD004F16BE /* NetworkConfig.cpp */,
7C13E95A1D11BFCD004F16BE /* NetworkConfig.hpp */,
7C13E95B1D11BFCD004F16BE /* NetworkConfigRequestMetaData.hpp */,
7C13E95C1D11BFCD004F16BE /* NetworkController.hpp */,
7C13E95D1D11BFCD004F16BE /* Node.cpp */,
7C13E95E1D11BFCD004F16BE /* Node.hpp */,
7C13E95F1D11BFCD004F16BE /* NonCopyable.hpp */,
7C13E9601D11BFCD004F16BE /* OutboundMulticast.cpp */,
7C13E9611D11BFCD004F16BE /* OutboundMulticast.hpp */,
7C13E9621D11BFCD004F16BE /* Packet.cpp */,
7C13E9631D11BFCD004F16BE /* Packet.hpp */,
7C13E9641D11BFCD004F16BE /* Path.cpp */,
7C13E9651D11BFCD004F16BE /* Path.hpp */,
7C13E9661D11BFCD004F16BE /* Peer.cpp */,
7C13E9671D11BFCD004F16BE /* Peer.hpp */,
7C13E9681D11BFCD004F16BE /* Poly1305.cpp */,
7C13E9691D11BFCD004F16BE /* Poly1305.hpp */,
7C13E96A1D11BFCD004F16BE /* RuntimeEnvironment.hpp */,
7C13E96B1D11BFCD004F16BE /* Salsa20.cpp */,
7C13E96C1D11BFCD004F16BE /* Salsa20.hpp */,
7C13E96D1D11BFCD004F16BE /* SelfAwareness.cpp */,
7C13E96E1D11BFCD004F16BE /* SelfAwareness.hpp */,
7C13E96F1D11BFCD004F16BE /* SHA512.cpp */,
7C13E9701D11BFCD004F16BE /* SHA512.hpp */,
7C13E9711D11BFCD004F16BE /* SharedPtr.hpp */,
7C13E9721D11BFCD004F16BE /* Switch.cpp */,
7C13E9731D11BFCD004F16BE /* Switch.hpp */,
7C13E9741D11BFCD004F16BE /* Topology.cpp */,
7C13E9751D11BFCD004F16BE /* Topology.hpp */,
7C13E9761D11BFCD004F16BE /* Utils.cpp */,
7C13E9771D11BFCD004F16BE /* Utils.hpp */,
7C13E9781D11BFCD004F16BE /* World.hpp */,
);
name = ZeroTier;
sourceTree = "<group>";
};
7C24164C1D073F43000851B2 /* lwIP */ = {
isa = PBXGroup;
children = (
7C13EA1F1D11C15D004F16BE /* api_msg.h */,
7C13EA201D11C15D004F16BE /* api.h */,
7C13EA211D11C15D004F16BE /* arch.h */,
7C13EA221D11C15D004F16BE /* debug.h */,
7C13EA231D11C15D004F16BE /* def.h */,
7C13EA241D11C15D004F16BE /* dhcp.h */,
7C13EA251D11C15D004F16BE /* dns.h */,
7C13EA261D11C15D004F16BE /* err.h */,
7C13EA271D11C15D004F16BE /* init.h */,
7C13EA281D11C15D004F16BE /* ip.h */,
7C13EA291D11C15D004F16BE /* mem.h */,
7C13EA2A1D11C15D004F16BE /* memp_std.h */,
7C13EA2B1D11C15D004F16BE /* memp.h */,
7C13EA2C1D11C15D004F16BE /* netbuf.h */,
7C13EA2D1D11C15D004F16BE /* netdb.h */,
7C13EA2E1D11C15D004F16BE /* netif.h */,
7C13EA2F1D11C15D004F16BE /* netifapi.h */,
7C13EA301D11C15D004F16BE /* opt.h */,
7C13EA311D11C15D004F16BE /* pbuf.h */,
7C13EA321D11C15D004F16BE /* raw.h */,
7C13EA331D11C15D004F16BE /* sio.h */,
7C13EA341D11C15D004F16BE /* snmp_asn1.h */,
7C13EA351D11C15D004F16BE /* snmp_msg.h */,
7C13EA361D11C15D004F16BE /* snmp_structs.h */,
7C13EA371D11C15D004F16BE /* snmp.h */,
7C13EA381D11C15D004F16BE /* sockets.h */,
7C13EA391D11C15D004F16BE /* stats.h */,
7C13EA3A1D11C15D004F16BE /* sys.h */,
7C13EA3B1D11C15D004F16BE /* tcp_impl.h */,
7C13EA3C1D11C15D004F16BE /* tcp.h */,
7C13EA3D1D11C15D004F16BE /* tcpip.h */,
7C13EA3E1D11C15D004F16BE /* timers.h */,
7C13EA3F1D11C15D004F16BE /* udp.h */,
7C13EA171D11C14B004F16BE /* autoip.h */,
7C13EA181D11C14B004F16BE /* icmp.h */,
7C13EA191D11C14B004F16BE /* igmp.h */,
7C13EA1A1D11C14B004F16BE /* inet_chksum.h */,
7C13EA1B1D11C14B004F16BE /* inet.h */,
7C13EA1C1D11C14B004F16BE /* ip_addr.h */,
7C13EA1D1D11C14B004F16BE /* ip_frag.h */,
7C13EA1E1D11C14B004F16BE /* ip.h */,
7C13EA161D11C12F004F16BE /* lwipopts.h */,
7C13EA101D11C10D004F16BE /* etharp.c */,
7C13EA111D11C10D004F16BE /* ethernetif.c */,
7C13EA121D11C10D004F16BE /* slipif.c */,
7C13EA001D11C0FC004F16BE /* autoip.c */,
7C13EA011D11C0FC004F16BE /* icmp.c */,
7C13EA021D11C0FC004F16BE /* igmp.c */,
7C13EA031D11C0FC004F16BE /* inet_chksum.c */,
7C13EA041D11C0FC004F16BE /* inet.c */,
7C13EA051D11C0FC004F16BE /* ip_addr.c */,
7C13EA061D11C0FC004F16BE /* ip_frag.c */,
7C13EA071D11C0FC004F16BE /* ip.c */,
7C13E9E01D11C0EE004F16BE /* def.c */,
7C13E9E11D11C0EE004F16BE /* dhcp.c */,
7C13E9E21D11C0EE004F16BE /* dns.c */,
7C13E9E31D11C0EE004F16BE /* init.c */,
7C13E9E41D11C0EE004F16BE /* mem.c */,
7C13E9E51D11C0EE004F16BE /* memp.c */,
7C13E9E61D11C0EE004F16BE /* netif.c */,
7C13E9E71D11C0EE004F16BE /* pbuf.c */,
7C13E9E81D11C0EE004F16BE /* raw.c */,
7C13E9E91D11C0EE004F16BE /* stats.c */,
7C13E9EA1D11C0EE004F16BE /* sys.c */,
7C13E9EB1D11C0EE004F16BE /* tcp_in.c */,
7C13E9EC1D11C0EE004F16BE /* tcp_out.c */,
7C13E9ED1D11C0EE004F16BE /* tcp.c */,
7C13E9EE1D11C0EE004F16BE /* timers.c */,
7C13E9EF1D11C0EE004F16BE /* udp.c */,
7C13E9D01D11C0D7004F16BE /* api_lib.c */,
7C13E9D11D11C0D7004F16BE /* api_msg.c */,
7C13E9D21D11C0D7004F16BE /* err.c */,
7C13E9D31D11C0D7004F16BE /* netbuf.c */,
7C13E9D41D11C0D7004F16BE /* netdb.c */,
7C13E9D51D11C0D7004F16BE /* netifapi.c */,
7C13E9D61D11C0D7004F16BE /* sockets.c */,
7C13E9D71D11C0D7004F16BE /* tcpip.c */,
);
name = lwIP;
sourceTree = "<group>";
};
7C24169F1D074282000851B2 /* zt_api */ = {
isa = PBXGroup;
children = (
7C13E9BB1D11C03C004F16BE /* SDK_Debug.c */,
7C13E9BC1D11C03C004F16BE /* SDK_Debug.h */,
7C13E9BD1D11C03C004F16BE /* SDK_EthernetTap.cpp */,
7C13E9BE1D11C03C004F16BE /* SDK_EthernetTap.hpp */,
7C13E9C01D11C03C004F16BE /* SDK_LWIPStack.hpp */,
7C13E9C11D11C03C004F16BE /* SDK_Proxy.cpp */,
7C13E9C21D11C03C004F16BE /* SDK_RPC.c */,
7C13E9C31D11C03C004F16BE /* SDK_RPC.h */,
7C13E9C41D11C03C004F16BE /* SDK_ServiceSetup.cpp */,
7C13E9C51D11C03C004F16BE /* SDK_ServiceSetup.hpp */,
7C13E9C61D11C03D004F16BE /* SDK_Signatures.h */,
7C13E9C71D11C03D004F16BE /* SDK_Sockets.c */,
7C13E9C81D11C03D004F16BE /* SDK.h */,
);
name = zt_api;
sourceTree = "<group>";
};
7C3F4C701D0618670033F5EB = {
isa = PBXGroup;
children = (
7C13EA401D11C325004F16BE /* ext */,
7C24169F1D074282000851B2 /* zt_api */,
7C24164C1D073F43000851B2 /* lwIP */,
7C24164B1D073F2A000851B2 /* ZeroTier */,
7C3F4C7B1D0618670033F5EB /* ZeroTierUnity */,
7C3F4C7A1D0618670033F5EB /* Products */,
);
sourceTree = "<group>";
};
7C3F4C7A1D0618670033F5EB /* Products */ = {
isa = PBXGroup;
children = (
7C3F4C791D0618670033F5EB /* ZeroTierUnity.bundle */,
);
name = Products;
sourceTree = "<group>";
};
7C3F4C7B1D0618670033F5EB /* ZeroTierUnity */ = {
isa = PBXGroup;
children = (
7C3F4C7C1D0618670033F5EB /* Info.plist */,
);
path = ZeroTierUnity;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
7C3F4C781D0618670033F5EB /* ZeroTierUnity */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7C3F4C7F1D0618670033F5EB /* Build configuration list for PBXNativeTarget "ZeroTierUnity" */;
buildPhases = (
7C3F4C751D0618670033F5EB /* Sources */,
7C3F4C761D0618670033F5EB /* Frameworks */,
7C3F4C771D0618670033F5EB /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = ZeroTierUnity;
productName = ZeroTierUnity;
productReference = 7C3F4C791D0618670033F5EB /* ZeroTierUnity.bundle */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
7C3F4C711D0618670033F5EB /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0730;
ORGANIZATIONNAME = "ZeroTier Inc.";
TargetAttributes = {
7C3F4C781D0618670033F5EB = {
CreatedOnToolsVersion = 7.3;
};
};
};
buildConfigurationList = 7C3F4C741D0618670033F5EB /* Build configuration list for PBXProject "ZeroTierUnity" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 7C3F4C701D0618670033F5EB;
productRefGroup = 7C3F4C7A1D0618670033F5EB /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
7C3F4C781D0618670033F5EB /* ZeroTierUnity */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
7C3F4C771D0618670033F5EB /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
7C3F4C751D0618670033F5EB /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7C13EA0A1D11C0FC004F16BE /* igmp.c in Sources */,
7C13EA431D11C342004F16BE /* http_parser.c in Sources */,
7C13E9821D11BFCD004F16BE /* Network.cpp in Sources */,
7C13E97D1D11BFCD004F16BE /* Dictionary.cpp in Sources */,
7C13E9B61D11C028004F16BE /* OSUtils.cpp in Sources */,
7C13E9F61D11C0EE004F16BE /* netif.c in Sources */,
7C13E97F1D11BFCD004F16BE /* IncomingPacket.cpp in Sources */,
7C13E9FB1D11C0EE004F16BE /* tcp_in.c in Sources */,
7C13E9C91D11C03D004F16BE /* SDK_Debug.c in Sources */,
7C13E97C1D11BFCD004F16BE /* DeferredPackets.cpp in Sources */,
7C13E9851D11BFCD004F16BE /* OutboundMulticast.cpp in Sources */,
7C13E9B31D11C028004F16BE /* BSDEthernetTap.cpp in Sources */,
7C13E9D81D11C0D7004F16BE /* api_lib.c in Sources */,
7C13E97B1D11BFCD004F16BE /* Cluster.cpp in Sources */,
7C13E9991D11C013004F16BE /* OneService.cpp in Sources */,
7C13E9F11D11C0EE004F16BE /* dhcp.c in Sources */,
7C13E9CC1D11C03D004F16BE /* SDK_Proxy.cpp in Sources */,
7C13E98A1D11BFCD004F16BE /* Salsa20.cpp in Sources */,
7C13E9CD1D11C03D004F16BE /* SDK_RPC.c in Sources */,
7C13E9DA1D11C0D7004F16BE /* err.c in Sources */,
7C13E9CE1D11C03D004F16BE /* SDK_ServiceSetup.cpp in Sources */,
7C13EA0C1D11C0FC004F16BE /* inet.c in Sources */,
7C13E9F31D11C0EE004F16BE /* init.c in Sources */,
7C13E9861D11BFCD004F16BE /* Packet.cpp in Sources */,
7C13EA151D11C10D004F16BE /* slipif.c in Sources */,
7C13E9FC1D11C0EE004F16BE /* tcp_out.c in Sources */,
7C13E9FE1D11C0EE004F16BE /* timers.c in Sources */,
7C13E9791D11BFCD004F16BE /* C25519.cpp in Sources */,
7C13E9DC1D11C0D7004F16BE /* netdb.c in Sources */,
7C13E9FA1D11C0EE004F16BE /* sys.c in Sources */,
7C13E9DE1D11C0D7004F16BE /* sockets.c in Sources */,
7C13EA461D11C355004F16BE /* lz4.c in Sources */,
7C13E9FF1D11C0EE004F16BE /* udp.c in Sources */,
7C13E9DB1D11C0D7004F16BE /* netbuf.c in Sources */,
7C13E98F1D11BFCD004F16BE /* Utils.cpp in Sources */,
7C13E9F01D11C0EE004F16BE /* def.c in Sources */,
7C13E9811D11BFCD004F16BE /* Multicaster.cpp in Sources */,
7C13EA0D1D11C0FC004F16BE /* ip_addr.c in Sources */,
7C13E98D1D11BFCD004F16BE /* Switch.cpp in Sources */,
7C13E9871D11BFCD004F16BE /* Path.cpp in Sources */,
7C13EA141D11C10D004F16BE /* ethernetif.c in Sources */,
7C13E9841D11BFCD004F16BE /* Node.cpp in Sources */,
7C13EA131D11C10D004F16BE /* etharp.c in Sources */,
7C13EA0B1D11C0FC004F16BE /* inet_chksum.c in Sources */,
7C13E9B21D11C028004F16BE /* BackgroundResolver.cpp in Sources */,
7C13E9F51D11C0EE004F16BE /* memp.c in Sources */,
7C13E9B11D11C028004F16BE /* Arp.cpp in Sources */,
7C13E9F81D11C0EE004F16BE /* raw.c in Sources */,
7C13E9DD1D11C0D7004F16BE /* netifapi.c in Sources */,
7C13EA0F1D11C0FC004F16BE /* ip.c in Sources */,
7C13EA0E1D11C0FC004F16BE /* ip_frag.c in Sources */,
7C13E9831D11BFCD004F16BE /* NetworkConfig.cpp in Sources */,
7C13E9F71D11C0EE004F16BE /* pbuf.c in Sources */,
7C13E9F41D11C0EE004F16BE /* mem.c in Sources */,
7C13E9981D11C013004F16BE /* ControlPlane.cpp in Sources */,
7C13E98E1D11BFCD004F16BE /* Topology.cpp in Sources */,
7C13E9B81D11C028004F16BE /* PortMapper.cpp in Sources */,
7C13E9F91D11C0EE004F16BE /* stats.c in Sources */,
7C13E9F21D11C0EE004F16BE /* dns.c in Sources */,
7C13E9CA1D11C03D004F16BE /* SDK_EthernetTap.cpp in Sources */,
7C13E97A1D11BFCD004F16BE /* CertificateOfMembership.cpp in Sources */,
7C13E9881D11BFCD004F16BE /* Peer.cpp in Sources */,
7C13EA091D11C0FC004F16BE /* icmp.c in Sources */,
7C13EA081D11C0FC004F16BE /* autoip.c in Sources */,
7C13E98C1D11BFCD004F16BE /* SHA512.cpp in Sources */,
7C13E9B91D11C028004F16BE /* RoutingTable.cpp in Sources */,
7C13E9891D11BFCD004F16BE /* Poly1305.cpp in Sources */,
7C13E9FD1D11C0EE004F16BE /* tcp.c in Sources */,
7C13E9B41D11C028004F16BE /* Http.cpp in Sources */,
7C13E9CF1D11C03D004F16BE /* SDK_Sockets.c in Sources */,
7C13E9D91D11C0D7004F16BE /* api_msg.c in Sources */,
7C13E9801D11BFCD004F16BE /* InetAddress.cpp in Sources */,
7C13E9DF1D11C0D7004F16BE /* tcpip.c in Sources */,
7C13E98B1D11BFCD004F16BE /* SelfAwareness.cpp in Sources */,
7C13E97E1D11BFCD004F16BE /* Identity.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
7C3F4C7D1D0618670033F5EB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
7C3F4C7E1D0618670033F5EB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
};
name = Release;
};
7C3F4C801D0618670033F5EB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
HEADER_SEARCH_PATHS = (
"$(SRCROOT)/../../../../src/",
"$(SRCROOT)/../../../../zerotierone/include/",
"$(SRCROOT)/../../../../ext/lwip/src/include/",
"$(SRCROOT)/../../../../ext/lwip/src/include/ipv4/",
"$(SRCROOT)/../../../../zerotierone/",
);
INFOPLIST_FILE = ZeroTierUnity/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
OTHER_CFLAGS = (
"-DNETCON_SERVICE",
"-D__UNITY_3D__",
"-DZT_SERVICE_NETCON",
"-g",
);
PRODUCT_BUNDLE_IDENTIFIER = zerotier.ZeroTierUnity;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = bundle;
};
name = Debug;
};
7C3F4C811D0618670033F5EB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
HEADER_SEARCH_PATHS = (
"$(SRCROOT)/../../../../src/",
"$(SRCROOT)/../../../../zerotierone/include/",
"$(SRCROOT)/../../../../ext/lwip/src/include/",
"$(SRCROOT)/../../../../ext/lwip/src/include/ipv4/",
"$(SRCROOT)/../../../../zerotierone/",
);
INFOPLIST_FILE = ZeroTierUnity/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
OTHER_CFLAGS = (
"-DNETCON_SERVICE",
"-D__UNITY_3D__",
"-DZT_SERVICE_NETCON",
"-g",
);
PRODUCT_BUNDLE_IDENTIFIER = zerotier.ZeroTierUnity;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = bundle;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
7C3F4C741D0618670033F5EB /* Build configuration list for PBXProject "ZeroTierUnity" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7C3F4C7D1D0618670033F5EB /* Debug */,
7C3F4C7E1D0618670033F5EB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
7C3F4C7F1D0618670033F5EB /* Build configuration list for PBXNativeTarget "ZeroTierUnity" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7C3F4C801D0618670033F5EB /* Debug */,
7C3F4C811D0618670033F5EB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 7C3F4C711D0618670033F5EB /* Project object */;
}

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:ZeroTierUnity.xcodeproj">
</FileRef>
</Workspace>

View File

@@ -1,80 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7C3F4C781D0618670033F5EB"
BuildableName = "ZeroTierUnity.bundle"
BlueprintName = "ZeroTierUnity"
ReferencedContainer = "container:ZeroTierUnity.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7C3F4C781D0618670033F5EB"
BuildableName = "ZeroTierUnity.bundle"
BlueprintName = "ZeroTierUnity"
ReferencedContainer = "container:ZeroTierUnity.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7C3F4C781D0618670033F5EB"
BuildableName = "ZeroTierUnity.bundle"
BlueprintName = "ZeroTierUnity"
ReferencedContainer = "container:ZeroTierUnity.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>ZeroTierUnity.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>7C3F4C781D0618670033F5EB</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2016 ZeroTier Inc. All rights reserved.</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>

View File

@@ -1,84 +0,0 @@
Unity3D + ZeroTier SDK
====
Welcome!
We want your Unity apps to talk *directly* over a flat, secure, no-config virtual network without sending everything into the "cloud". Thus, we introduce the ZeroTier-Unity3D integration!
Our implementation currently intends to be the bare minimum required to get your Unity application to talk over ZeroTier virtual networks. As a result, we've created an API that is very similar to the built-in Unity LLAPI. It's possible that higher-level functionality could be added in the future.
***
## Adding ZeroTier to your Unity app
**Step 1: Create virtual ZeroTier [virtual network](https://my.zerotier.com/)**
**Step 2: Add plugin**
- Create a folder called `Plugins` in `Assets`
- Place `ZeroTierUnity.bundle` in that folder
**Step 3: Add script to some `GameObject`**
- Drag our `ZeroTier.cs` native plugin wrapper onto any `GameObject`
***
## Examples
Calling `ZeroTier.Init()` will start the network service in a separate thread. You can check if the service is running by checking `ZeroTier.IsRunning()`. Then, connecting and sending data to another endpoint would look something like the following:
```
public void zt_sample_network_test_thread()
{
// Prepare sample data buffer
byte[] buffer = new byte[1024];
Stream stream = new MemoryStream(buffer);
BinaryFormatter f = new BinaryFormatter();
f.Serialize ( stream , "Welcome to the machine! (from Unity3D)" );
// Connect and send
int error;
Connect (0, "192.168.0.6", 8887, out error);
Send(connfd,buffer,0, out error);
}
```
Finally, when you're done running the service you can call `ZeroTier.Terminate()`
***
## API
The API is designed to resemble the Unity LLAPI, so you'll see a few familiar functions but with a slight twist.
- `Join(nwid)`: Joins a ZeroTier virtual network
- `Leave(nwid)`: Leaves a ZeroTier virtual network
- `AddHost(port)`: Creates a socket, and binds to that socket on the address and port given
- `Connect(fd, ip_address, port, out error)`: Connects to an endpoint associated with the given `fd`
- `Send(fd, buf, pos, out error)`: Sends data to the endpoint associated with the given `fd`
- `Recv(fd, buf, out error)`: Receives data from an endpoint associated with the given `fd`
- `Disconnect(fd)`: Closes a connection with an endpoint
***
## Design and structure of the ZeroTier Unity OSX Bundle
XCode:
New XCode project
Select Cocoa bundle as target
Add C linkages to external functions
Build as 64bit (not universal)
Unity:
Select x86_64 build target in `Build Settings`
In new C# script asset:
```
[DllImport ("ZeroTierUnity")]
private static extern int unity_start_service ();
```
Add asset to GameObject
Start ZT service
***
## Future Roadmap
With the ZeroTier sockets API in place, higher-level functionality such as lobbies, chat, and object synchronization could easily be built on top.