Exposed stop_service() to java-land

This commit is contained in:
Joseph Henry
2016-08-17 10:22:31 -07:00
parent ca55570e24
commit 15985ebcd6
8 changed files with 60 additions and 32 deletions

View File

@@ -94,7 +94,7 @@ void zts_leave_network(const char * nwid);
bool zts_is_running();
void zts_get_addresses(const char * nwid, char * addrstr);
int zts_get_device_id();
void zts_terminate();
void zts_stop_service();
bool zts_is_relayed();
// ZT Intercept/RPC Controls
void set_intercept_status(int mode); /* TODO: Rethink this */
@@ -134,12 +134,12 @@ ssize_t zts_recvmsg(RECVMSG_SIG);
#if defined(__ANDROID__)
// Exported JNI : ZT SERVICE CONTROLS
JNIEXPORT jint JNICALL Java_ZeroTier_SDK_zt_1start_1service(JNIEnv *env, jobject thisObj, jstring path);
JNIEXPORT jboolean JNICALL Java_ZeroTier_SDK_zt_1stop_service();
JNIEXPORT void JNICALL Java_ZeroTier_SDK_zt_1join_1network(JNIEnv *env, jobject thisObj, jstring nwid);
JNIEXPORT void JNICALL Java_ZeroTier_SDK_zt_1leave_1network(JNIEnv *env, jobject thisObj, jstring nwid);
JNIEXPORT jboolean JNICALL Java_ZeroTier_SDK_zt_1running(JNIEnv *env, jobject thisObj);
JNIEXPORT jobject JNICALL Java_ZeroTier_SDK_zt_1get_1addresses(JNIEnv *env, jobject thisObj, jstring nwid);
JNIEXPORT jboolean JNICALL Java_ZeroTier_SDK_zt_1is_1relayed();
JNIEXPORT jboolean JNICALL Java_ZeroTier_SDK_zt_1terminate_service();
// Exported JNI : SOCKS5 PROXY SERVER CONTROLS
JNIEXPORT jint JNICALL Java_ZeroTier_SDK_zt_1start_1proxy_1server(JNIEnv *env, jobject thisObj, jstring nwid, jobject zaddr);
JNIEXPORT jint JNICALL Java_ZeroTier_SDK_zt_1stop_1proxy_1server(JNIEnv *env, jobject thisObj, jstring nwid);

View File

@@ -16,6 +16,7 @@ void 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_join_network(const char *nwid);
void zt_leave_network(const char *nwid);

View File

@@ -46,7 +46,7 @@
#define SDK_DEBUG_H
// Set during make (e.g. make SDK_DEBUG=2)
#define DEBUG_LEVEL 2
#define DEBUG_LEVEL 4
#define MSG_ERROR 1 // Errors
#define MSG_TRANSFER 2 // RX/TX specific statements

View File

@@ -26,7 +26,7 @@
* LLC. Start here: http://www.zerotier.com/
*/
#define DEBUG_LEVEL 2 // Set this to adjust what you'd like to see in the debug traces
#define DEBUG_LEVEL 4 // Set this to adjust what you'd like to see in the debug traces
#define MSG_ERROR 1 // Errors
#define MSG_TRANSFER 2 // RX/TX specific statements

View File

@@ -109,7 +109,7 @@ void zts_join_network(const char * nwid) {
}
void zts_leave_network(const char * nwid) { zt1Service->leave(nwid); }
bool zts_is_running() { return zt1Service->isRunning(); }
void zts_terminate() { zt1Service->terminate(); }
void zts_stop_service() { zt1Service->terminate(); }
// FIXME: Re-implemented to make it play nicer with the C-linkage required for Xcode integrations
// Now only returns first assigned address per network. Shouldn't normally be a problem
@@ -187,9 +187,9 @@ int zts_get_proxy_server_address(const char * nwid, struct sockaddr_storage * ad
return false;
}
// Shuts down ZeroTier service and SOCKS5 Proxy server
JNIEXPORT void JNICALL Java_ZeroTier_SDK_zt_1terminate_1service(JNIEnv *env, jobject thisObj) {
JNIEXPORT void JNICALL Java_ZeroTier_SDK_zt_1stop_1service(JNIEnv *env, jobject thisObj) {
if(zt1Service)
zts_terminate();
zts_stop_service();
// TODO: Also terminate SOCKS5 Proxy
// zts_stop_proxy_server();
}

View File

@@ -39,6 +39,10 @@ extern "C" void 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) {