mirror of https://github.com/M66B/NetGuard.git
Made rcode configurable
This commit is contained in:
parent
ca65ab92a0
commit
589ac7db4d
|
@ -223,12 +223,14 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
|||
EditTextPreference pref_dns1 = (EditTextPreference) screen.findPreference("dns");
|
||||
EditTextPreference pref_dns2 = (EditTextPreference) screen.findPreference("dns2");
|
||||
EditTextPreference pref_ttl = (EditTextPreference) screen.findPreference("ttl");
|
||||
EditTextPreference pref_rcode = (EditTextPreference) screen.findPreference("rcode");
|
||||
List<String> def_dns = Util.getDefaultDNS(this);
|
||||
pref_dns1.getEditText().setHint(def_dns.get(0));
|
||||
pref_dns2.getEditText().setHint(def_dns.get(1));
|
||||
pref_dns1.setTitle(getString(R.string.setting_dns, prefs.getString("dns", def_dns.get(0))));
|
||||
pref_dns2.setTitle(getString(R.string.setting_dns, prefs.getString("dns2", def_dns.get(1))));
|
||||
pref_ttl.setTitle(getString(R.string.setting_ttl, prefs.getString("ttl", "259200")));
|
||||
pref_rcode.setTitle(getString(R.string.setting_rcode, prefs.getString("rcode", "3")));
|
||||
|
||||
// SOCKS5 parameters
|
||||
screen.findPreference("socks5_addr").setTitle(getString(R.string.setting_socks5_addr, prefs.getString("socks5_addr", "-")));
|
||||
|
@ -245,9 +247,10 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
|||
|
||||
// Show resolved
|
||||
Preference pref_show_resolved = screen.findPreference("show_resolved");
|
||||
if (Util.isPlayStoreInstall(this))
|
||||
if (Util.isPlayStoreInstall(this)) {
|
||||
cat_advanced.removePreference(pref_show_resolved);
|
||||
else
|
||||
cat_advanced.removePreference(pref_rcode);
|
||||
} else
|
||||
pref_show_resolved.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
|
@ -671,7 +674,12 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
|||
getPreferenceScreen().findPreference(name).setTitle(
|
||||
getString(R.string.setting_ttl, prefs.getString(name, "259200")));
|
||||
|
||||
else if ("socks5_enabled".equals(name))
|
||||
else if ("rcode".equals(name)) {
|
||||
getPreferenceScreen().findPreference(name).setTitle(
|
||||
getString(R.string.setting_rcode, prefs.getString(name, "3")));
|
||||
ServiceSinkhole.reload("changed " + name, this);
|
||||
|
||||
} else if ("socks5_enabled".equals(name))
|
||||
ServiceSinkhole.reload("changed " + name, this);
|
||||
|
||||
else if ("socks5_addr".equals(name)) {
|
||||
|
|
|
@ -176,7 +176,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
|
||||
private native void jni_init();
|
||||
|
||||
private native void jni_start(int tun, boolean fwd53, int loglevel);
|
||||
private native void jni_start(int tun, boolean fwd53, int rcode, int loglevel);
|
||||
|
||||
private native void jni_stop(int tun, boolean clr);
|
||||
|
||||
|
@ -1187,6 +1187,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
|
||||
if (log || log_app || filter) {
|
||||
int prio = Integer.parseInt(prefs.getString("loglevel", Integer.toString(Log.WARN)));
|
||||
int rcode = Integer.parseInt(prefs.getString("rcode", "3"));
|
||||
if (prefs.getBoolean("socks5_enabled", false))
|
||||
jni_socks5(
|
||||
prefs.getString("socks5_addr", ""),
|
||||
|
@ -1195,7 +1196,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
prefs.getString("socks5_password", ""));
|
||||
else
|
||||
jni_socks5("", 0, "", "");
|
||||
jni_start(vpn.getFd(), mapForward.containsKey(53), prio);
|
||||
jni_start(vpn.getFd(), mapForward.containsKey(53), rcode, prio);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -232,9 +232,9 @@ int check_domain(const struct arguments *args, const struct udp_session *u,
|
|||
else
|
||||
inet_pton(AF_INET6, "::1", addr);
|
||||
|
||||
// Experiment
|
||||
// Send selected negative response
|
||||
rlen = datalen;
|
||||
rh->rcode = 3; // NXDOMAIN
|
||||
rh->rcode = (uint16_t) args->rcode;
|
||||
rh->ans_count = 0;
|
||||
|
||||
// Send response
|
||||
|
|
|
@ -130,7 +130,7 @@ Java_eu_faircode_netguard_ServiceSinkhole_jni_1init(JNIEnv *env, jobject instanc
|
|||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_eu_faircode_netguard_ServiceSinkhole_jni_1start(
|
||||
JNIEnv *env, jobject instance, jint tun, jboolean fwd53, jint loglevel_) {
|
||||
JNIEnv *env, jobject instance, jint tun, jboolean fwd53, jint rcode, jint loglevel_) {
|
||||
|
||||
loglevel = loglevel_;
|
||||
max_tun_msg = 0;
|
||||
|
@ -157,6 +157,7 @@ Java_eu_faircode_netguard_ServiceSinkhole_jni_1start(
|
|||
args->instance = (*env)->NewGlobalRef(env, instance);
|
||||
args->tun = tun;
|
||||
args->fwd53 = fwd53;
|
||||
args->rcode = rcode;
|
||||
|
||||
// Start native thread
|
||||
int err = pthread_create(&thread_id, NULL, handle_events, (void *) args);
|
||||
|
|
|
@ -70,6 +70,7 @@ struct arguments {
|
|||
jobject instance;
|
||||
int tun;
|
||||
jboolean fwd53;
|
||||
jint rcode;
|
||||
};
|
||||
|
||||
struct allowed {
|
||||
|
|
|
@ -96,6 +96,7 @@ however it is impossible to guarantee NetGuard will work correctly on every devi
|
|||
<string name="setting_vpn6">VPN IPv6: %s</string>
|
||||
<string name="setting_dns">VPN DNS: %s</string>
|
||||
<string name="setting_ttl">Minimum DNS TTL: %s s</string>
|
||||
<string name="setting_rcode">DNS response code: %s</string>
|
||||
<string name="setting_socks5_enabled">Use SOCKS5 proxy</string>
|
||||
<string name="setting_socks5_addr">SOCKS5 address: %s</string>
|
||||
<string name="setting_socks5_port">SOCKS5 port: %s</string>
|
||||
|
|
|
@ -200,6 +200,10 @@
|
|||
android:dependency="filter"
|
||||
android:inputType="number"
|
||||
android:key="ttl" />
|
||||
<EditTextPreference
|
||||
android:dependency="filter"
|
||||
android:inputType="number"
|
||||
android:key="rcode" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:dependency="filter"
|
||||
|
|
|
@ -200,6 +200,10 @@
|
|||
android:dependency="filter"
|
||||
android:inputType="number"
|
||||
android:key="ttl" />
|
||||
<EditTextPreference
|
||||
android:dependency="filter"
|
||||
android:inputType="number"
|
||||
android:key="rcode" />
|
||||
<eu.faircode.netguard.SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:dependency="filter"
|
||||
|
|
Loading…
Reference in New Issue