mirror of https://github.com/M66B/NetGuard.git
Added setting to allow LAN
This commit is contained in:
parent
d8a4c8b944
commit
1b0b7819b1
|
@ -80,7 +80,11 @@ import java.io.File;
|
|||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.Inet4Address;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InterfaceAddress;
|
||||
import java.net.NetworkInterface;
|
||||
import java.net.SocketException;
|
||||
import java.net.URL;
|
||||
import java.net.UnknownHostException;
|
||||
import java.text.DateFormat;
|
||||
|
@ -89,6 +93,7 @@ import java.util.ArrayList;
|
|||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
@ -948,6 +953,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
private Builder getBuilder(List<Rule> listAllowed, List<Rule> listRule) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
boolean tethering = prefs.getBoolean("tethering", false);
|
||||
boolean lan = prefs.getBoolean("lan", false);
|
||||
boolean filter = prefs.getBoolean("filter", false);
|
||||
boolean system = prefs.getBoolean("manage_system", false);
|
||||
|
||||
|
@ -972,11 +978,30 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
// Exclude IP ranges
|
||||
List<IPUtil.CIDR> listExclude = new ArrayList<>();
|
||||
listExclude.add(new IPUtil.CIDR("127.0.0.0", 8)); // localhost
|
||||
|
||||
if (tethering) {
|
||||
// USB Tethering 192.168.42.x
|
||||
// Wi-Fi Tethering 192.168.43.x
|
||||
listExclude.add(new IPUtil.CIDR("192.168.42.0", 23));
|
||||
}
|
||||
|
||||
if (lan) {
|
||||
try {
|
||||
Enumeration<NetworkInterface> nis = NetworkInterface.getNetworkInterfaces();
|
||||
while (nis.hasMoreElements()) {
|
||||
NetworkInterface ni = nis.nextElement();
|
||||
for (InterfaceAddress ia : ni.getInterfaceAddresses())
|
||||
if (ia.getAddress() instanceof Inet4Address) {
|
||||
IPUtil.CIDR local = new IPUtil.CIDR(ia.getAddress(), ia.getNetworkPrefixLength());
|
||||
Log.i(TAG, "Excluding " + ni.getName() + " " + local);
|
||||
listExclude.add(local);
|
||||
}
|
||||
}
|
||||
} catch (SocketException ex) {
|
||||
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
|
||||
}
|
||||
}
|
||||
|
||||
Configuration config = getResources().getConfiguration();
|
||||
if (config.mcc == 310 && config.mnc == 260) {
|
||||
// T-Mobile Wi-Fi calling
|
||||
|
|
|
@ -65,6 +65,7 @@ however it is impossible to guarantee NetGuard will work correctly on every devi
|
|||
|
||||
<string name="setting_network_options">Network options</string>
|
||||
<string name="setting_tethering">Allow tethering</string>
|
||||
<string name="setting_lan">Allow LAN access</string>
|
||||
<string name="setting_wifi_home">Wi-Fi home networks: %1$s</string>
|
||||
<string name="setting_metered">Handle metered Wi-Fi networks</string>
|
||||
<string name="setting_metered_2g">Consider 2G unmetered</string>
|
||||
|
@ -111,6 +112,7 @@ however it is impossible to guarantee NetGuard will work correctly on every devi
|
|||
<string name="summary_update">Check for new releases on GitHub twice daily</string>
|
||||
|
||||
<string name="summary_tethering">Depending on the Android version, tethering may work or may not work. Tethered traffic cannot be filtered.</string>
|
||||
<string name="summary_lan">Allow applications to connect to local area network addresses, like 10.0.0.0/8 and 192.168.0.0/16</string>
|
||||
<string name="summary_wifi_home">Apply Wi-Fi network rules for selected network only (apply mobile network rules for other Wi-Fi networks)</string>
|
||||
<string name="summary_metered">Apply mobile network rules to metered (paid, tethered) Wi-Fi networks</string>
|
||||
<string name="summary_metered_2g">Apply Wi-Fi network rules for 2G data connections</string>
|
||||
|
|
|
@ -62,6 +62,11 @@
|
|||
android:key="tethering"
|
||||
android:summary="@string/summary_tethering"
|
||||
android:title="@string/setting_tethering" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="lan"
|
||||
android:summary="@string/summary_lan"
|
||||
android:title="@string/setting_lan" />
|
||||
<MultiSelectListPreference
|
||||
android:defaultValue="@array/default_wifi_home"
|
||||
android:key="wifi_homes"
|
||||
|
@ -194,14 +199,14 @@
|
|||
android:key="import"
|
||||
android:title="@string/setting_import" />
|
||||
<Preference
|
||||
android:key="hosts_import"
|
||||
android:dependency="filter"
|
||||
android:key="hosts_import"
|
||||
android:title="@string/setting_hosts" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="http://www.netguard.me/hosts"
|
||||
android:dependency="filter"
|
||||
android:hint="http://www.netguard.me/hosts"
|
||||
android:key="hosts_url"
|
||||
android:dependency="filter"
|
||||
android:title="@string/setting_hosts_url" />
|
||||
<Preference
|
||||
android:dependency="hosts_url"
|
||||
|
|
|
@ -62,6 +62,11 @@
|
|||
android:key="tethering"
|
||||
android:summary="@string/summary_tethering"
|
||||
android:title="@string/setting_tethering" />
|
||||
<eu.faircode.netguard.SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="lan"
|
||||
android:summary="@string/summary_lan"
|
||||
android:title="@string/setting_lan" />
|
||||
<MultiSelectListPreference
|
||||
android:defaultValue="@array/default_wifi_home"
|
||||
android:key="wifi_homes"
|
||||
|
@ -194,14 +199,14 @@
|
|||
android:key="import"
|
||||
android:title="@string/setting_import" />
|
||||
<Preference
|
||||
android:key="hosts_import"
|
||||
android:dependency="filter"
|
||||
android:key="hosts_import"
|
||||
android:title="@string/setting_hosts" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="http://www.netguard.me/hosts"
|
||||
android:dependency="filter"
|
||||
android:hint="http://www.netguard.me/hosts"
|
||||
android:key="hosts_url"
|
||||
android:dependency="filter"
|
||||
android:title="@string/setting_hosts_url" />
|
||||
<Preference
|
||||
android:dependency="hosts_url"
|
||||
|
|
Loading…
Reference in New Issue