ios/osx example project updates

This commit is contained in:
Joseph Henry
2016-08-25 13:46:01 -07:00
parent a36c40e3a8
commit b3247c8b09
7 changed files with 58 additions and 83 deletions

View File

@@ -10,14 +10,14 @@
// ZT INTERCEPT/RPC CONTROLS
int zt_init_rpc(const char *path, const char *nwid);
int start_intercept();
void disable_intercept();
void enable_intercept();
int zt_start_intercept();
void zt_disable_intercept();
void zt_enable_intercept();
// ZT SERVICE CONTROLS
void start_service(const char * path);
void stop_service();
void start_service_and_rpc(const char * path, const char * nwid);
void zt_start_service(const char * path);
void zt_stop_service();
void zt_start_service_and_rpc(const char * path, const char * nwid);
void zt_join_network(const char *nwid);
void zt_leave_network(const char *nwid);
void zt_is_running(const char *nwid);
@@ -39,6 +39,8 @@ int zt_getsockopt(GETSOCKOPT_SIG);
int zt_close(CLOSE_SIG);
int zt_getsockname(GETSOCKNAME_SIG);
int zt_getpeername(GETPEERNAME_SIG);
int zt_recvfrom(RECVFROM_SIG);
int zt_sendto(SENDTO_SIG);
#endif /* Example_OSX_Bridging_Header_h */

View File

@@ -167,6 +167,7 @@ void zts_get_addresses(const char * nwid, char *addrstr)
ZeroTier::NetconEthernetTap * tap = zt1Service->getTaps()[nwid_int];
if(tap && tap->_ips.size()){
std::string addr = tap->_ips[0].toString();
dwr(MSG_DEBUG, "addr.length() = %d, addr = %s\n", addr.length(), addr.c_str());
memcpy(addrstr, addr.c_str(), addr.length());
}
else {
@@ -185,6 +186,7 @@ void zts_get_addresses(const char * nwid, char *addrstr)
return ip_strings;
*/
}
int zts_get_device_id() { /* TODO */ return 0; }
bool zts_is_relayed() {
@@ -344,10 +346,10 @@ char *zts_get_homepath() {
// Starts a ZeroTier service in the background
void *zts_start_service(void *thread_id) {
//#ifdef ZTSDK_BUILD_VERSION
#ifdef defined(__ANDROID__)
dwr(MSG_DEBUG, "ZTSDK_BUILD_VERSION = %d\n", ZTSDK_BUILD_VERSION);
LOGV("ZTSDK_BUILD_VERSION = %d\n", ZTSDK_BUILD_VERSION);
//#endif
#endif
#if defined(SDK_BUNDLED) && !defined(__ANDROID__)
set_intercept_status(INTERCEPT_DISABLED); // Ignore network calls from ZT service
@@ -377,14 +379,13 @@ void *zts_start_service(void *thread_id) {
localHomeDir = givenHomeDir; // Used for RPC and *can* differ from homeDir on some platforms
#endif
dwr(MSG_DEBUG, "homeDir = %s", givenHomeDir.c_str());
dwr(MSG_DEBUG, "homeDir = %s\n", givenHomeDir.c_str());
// Where network .conf files will be stored
netDir = homeDir + "/networks.d";
zt1Service = (ZeroTier::OneService *)0;
// Construct path for network config and supporting service files
if (homeDir.length()) {
dwr(MSG_DEBUG, "start_service(): constructing path...\n");
std::vector<std::string> hpsp(ZeroTier::Utils::split(homeDir.c_str(),ZT_PATH_SEPARATOR_S,"",""));
std::string ptmp;
if (homeDir[0] == ZT_PATH_SEPARATOR)

View File

@@ -35,50 +35,41 @@
// ZEROTIER CONTROLS
// Starts a ZeroTier service at the specified path
// This will only support SOCKS5 Proxy
extern "C" void start_service(const char * path) {
extern "C" void zt_start_service(const char * path) {
init_service(INTERCEPT_DISABLED, path);
}
extern "C" void stop_service() {
zts_stop_service();
}
// Starts a ZeroTier service at the specified path and initializes the RPC mechanism
// This will allow direct API calls
extern "C" void start_service_and_rpc(const char * path, const char * nwid) {
extern "C" void zt_start_service_and_rpc(const char * path, const char * nwid) {
init_service_and_rpc(INTERCEPT_DISABLED, path, nwid);
}
extern "C" void zt_stop_service() {
zts_stop_service();
}
// Joins a ZeroTier virtual network
extern "C" void zt_join_network(const char * nwid) {
zts_join_network(nwid);
}
// Leaves a ZeroTier virtual network
extern "C" void zt_leave_network(const char * nwid) {
zts_leave_network(nwid);
}
// Returns a list of addresses associated with this device on the given network
extern "C" void zt_get_addresses(const char * nwid, char * addrstr) {
zts_get_addresses(nwid, addrstr);
}
//
extern "C" void zt_start_proxy_server(const char *homepath, const char *nwid, struct sockaddr_storage *addr) {
zts_start_proxy_server(homepath, nwid, addr);
}
//
extern "C" void zt_stop_proxy_server(const char *nwid) {
zts_stop_proxy_server(nwid);
}
//
extern "C" void zt_get_proxy_server_address(const char *nwid, struct sockaddr_storage *addr) {
zts_get_proxy_server_address(nwid, addr);
}
// Explicit ZT API wrappers
#if !defined(__IOS__)
// This isn't available for iOS since function interposition isn't as reliable
@@ -121,4 +112,10 @@ extern "C" int zt_getpeername(GETPEERNAME_SIG) {
}
extern "C" int zt_fcntl(FCNTL_SIG) {
return zts_fcntl(fd, cmd, flags);
}
extern "C" ssize_t zt_recvfrom(RECVFROM_SIG) {
return zts_recvfrom(socket, buffer, length, flags, address, address_len);
}
extern "C" ssize_t zt_sendto(SENDTO_SIG) {
return zts_sendto(sockfd, buf, len, flags, addr, addr_len);
}