mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-02-08 22:13:48 +01:00
[android] stop immediatly if no transit tunnels available while graceful shutdown
Signed-off-by: R4SAS <r4sas@i2pmail.org>
This commit is contained in:
parent
65e1871cd7
commit
c0de9455bb
5 changed files with 23 additions and 3 deletions
|
@ -4,6 +4,7 @@
|
||||||
#include "RouterContext.h"
|
#include "RouterContext.h"
|
||||||
#include "ClientContext.h"
|
#include "ClientContext.h"
|
||||||
#include "Transports.h"
|
#include "Transports.h"
|
||||||
|
#include "Tunnel.h"
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getABICompiledWith
|
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getABICompiledWith
|
||||||
(JNIEnv *env, jclass clazz) {
|
(JNIEnv *env, jclass clazz) {
|
||||||
|
@ -98,3 +99,8 @@ JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_setDataDir
|
||||||
// Set DataDir
|
// Set DataDir
|
||||||
i2p::android::SetDataDir(dataDir);
|
i2p::android::SetDataDir(dataDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jint JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_GetTransitTunnelsCount
|
||||||
|
(JNIEnv *env, jclass clazz) {
|
||||||
|
return i2p::tunnel::tunnels.CountTransitTunnels();
|
||||||
|
}
|
||||||
|
|
|
@ -36,6 +36,9 @@ JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_onNetworkStateChanged
|
||||||
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_setDataDir
|
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_setDataDir
|
||||||
(JNIEnv *env, jclass clazz, jstring jdataDir);
|
(JNIEnv *env, jclass clazz, jstring jdataDir);
|
||||||
|
|
||||||
|
JNIEXPORT jint JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_GetTransitTunnelsCount
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -65,6 +65,10 @@ public class DaemonSingleton {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public synchronized int GetTransitTunnelsCount() {
|
||||||
|
return I2PD_JNI.GetTransitTunnelsCount();
|
||||||
|
}
|
||||||
|
|
||||||
private volatile boolean startedOkay;
|
private volatile boolean startedOkay;
|
||||||
|
|
||||||
public enum State {
|
public enum State {
|
||||||
|
|
|
@ -373,6 +373,11 @@ public class I2PDActivity extends Activity {
|
||||||
if (gracefulQuitTimerOld != null)
|
if (gracefulQuitTimerOld != null)
|
||||||
gracefulQuitTimerOld.cancel();
|
gracefulQuitTimerOld.cancel();
|
||||||
|
|
||||||
|
if(daemon.GetTransitTunnelsCount() <= 0) { // no tunnels left
|
||||||
|
Log.d(TAG, "no transit tunnels left, stopping");
|
||||||
|
i2pdStop();
|
||||||
|
}
|
||||||
|
|
||||||
final Timer gracefulQuitTimer = new Timer(true);
|
final Timer gracefulQuitTimer = new Timer(true);
|
||||||
setGracefulQuitTimer(gracefulQuitTimer);
|
setGracefulQuitTimer(gracefulQuitTimer);
|
||||||
gracefulQuitTimer.schedule(new TimerTask() {
|
gracefulQuitTimer.schedule(new TimerTask() {
|
||||||
|
|
|
@ -22,6 +22,8 @@ public class I2PD_JNI {
|
||||||
|
|
||||||
public static native void setDataDir(String jdataDir);
|
public static native void setDataDir(String jdataDir);
|
||||||
|
|
||||||
|
public static native int GetTransitTunnelsCount();
|
||||||
|
|
||||||
public static void loadLibraries() {
|
public static void loadLibraries() {
|
||||||
//System.loadLibrary("c++_shared");
|
//System.loadLibrary("c++_shared");
|
||||||
System.loadLibrary("i2pd");
|
System.loadLibrary("i2pd");
|
||||||
|
|
Loading…
Add table
Reference in a new issue