ios/osx example project updates
This commit is contained in:
@@ -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 */
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user