This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
zhangyang-libzt/integrations/iOS/Netcon-iOS/NetconWrapper.cpp

64 lines
1.6 KiB
C++

//
// NetconWrapper.cpp
// Netcon-iOS
//
// Created by Joseph Henry on 2/14/16.
// Copyright © 2016 ZeroTier. All rights reserved.
//
#include "SDK.h"
#include "NetconWrapper.hpp"
#include "SDK_Signatures.h"
#include <sys/socket.h>
#define INTERCEPT_ENABLED 111
#define INTERCEPT_DISABLED 222
#include "SDK_ServiceSetup.hpp"
// Starts a service at the specified path
extern "C" int start_service(const char * path) {
init_service(INTERCEPT_DISABLED, path);
return 1;
}
// Joins a network
extern "C" void zt_join_network(const char * nwid){
join_network(nwid); // Instruct ZeroTier service to join network
zt_init_rpc(nwid); // Tells the RPC code where to contact the ZeroTier service
}
// Leaves a network
extern "C" void zt_leave_network(const char * nwid){
leave_network(nwid);
}
// Explicit ZT API wrappers
extern "C" int zts_socket(SOCKET_SIG) {
return zt_socket(socket_family, socket_type, protocol);
}
extern "C" int zts_connect(CONNECT_SIG) {
return zt_connect(__fd, __addr, __len);
}
extern "C" int zt_bind(BIND_SIG){
return zt_bind(sockfd, addr, addrlen);
}
extern "C" int zt_accept(ACCEPT_SIG) {
return zt_accept(sockfd, addr, addrlen);
}
extern "C" int zt_listen(LISTEN_SIG) {
return zt_listen(sockfd, backlog);
}
extern "C" int zt_setsockopt(SETSOCKOPT_SIG) {
return zt_setsockopt(socket, level, option_name, option_value, option_len);
}
extern "C" int zt_getsockopt(GETSOCKOPT_SIG) {
return zt_getsockopt(sockfd, level, optname, optval, optlen);
}
extern "C" int zt_close(CLOSE_SIG) {
return zt_close(fd);
}
extern "C" int zt_getsockname(GETSOCKNAME_SIG) {
return zt_getsockname(sockfd, addr, addrlen);
}