Files
i2p.android.browser/I2PRouter.java
2022-04-21 20:47:04 -04:00

81 lines
2.6 KiB
Java

package com.stoutner.privacybrowser.activities;
import java.io.IOException;
import java.net.DatagramSocket;
import java.net.ServerSocket;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
public class I2PRouter extends AppCompatActivity {
private static final int MIN_PORT_NUMBER = 0;
private static final int MAX_PORT_NUMBER = 65535;
private static final int DEFAULT_PROXY_PORT = 4444;
private int proxy_port = DEFAULT_PROXY_PORT;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
}
public void startService(View view) {
Log.i("main","starting");
Intent serviceIntent = new Intent(this, I2PTunnelForegroundService.class);
serviceIntent.putExtra("inputExtra", "Start Foreground Service in Android");
serviceIntent.setAction("START_FOREGROUND_ACTION");
startService(serviceIntent);
}
public void stopService(View view) {
Log.i("main","stopping");
Intent serviceIntent = new Intent(this, I2PTunnelForegroundService.class);
serviceIntent.putExtra("inputExtra", "Stop Foreground Service in Android");
serviceIntent.setAction("STOP_FOREGROUND_ACTION");
startService(serviceIntent);
}
public static boolean ProxyIsDown(){
return ProxyIsDown(DEFAULT_PROXY_PORT);
}
/** https://svn.apache.org/viewvc/camel/trunk/components/camel-test/src/main/java/org/apache/camel/test/AvailablePortFinder.java?view=markup#l130
* Checks to see if a specific port is available.
*
* @param port the port to check for availability
*/
public static boolean ProxyIsDown(int port) {
if (port < MIN_PORT_NUMBER || port > MAX_PORT_NUMBER) {
throw new IllegalArgumentException("Invalid start port: " + port);
}
ServerSocket ss = null;
DatagramSocket ds = null;
try {
ss = new ServerSocket(port);
ss.setReuseAddress(true);
ds = new DatagramSocket(port);
ds.setReuseAddress(true);
return true;
} catch (IOException e) {
} finally {
if (ds != null) {
ds.close();
}
if (ss != null) {
try {
ss.close();
} catch (IOException e) {
/* should not be thrown */
}
}
}
return false;
}
}