mirror of https://github.com/M66B/NetGuard.git
Native refactoring, improvements, fixes, settings
This commit is contained in:
parent
10634c0c05
commit
b070aa6e54
|
@ -173,7 +173,7 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
|||
});
|
||||
|
||||
// Handle pcap export
|
||||
Preference pref_pcap = screen.findPreference("pcap");
|
||||
Preference pref_pcap = screen.findPreference("pcap_export");
|
||||
pref_pcap.setEnabled(getIntentPCAPDocument().resolveActivity(getPackageManager()) != null);
|
||||
pref_pcap.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
|
@ -413,6 +413,16 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
|||
|
||||
} else if ("native".equals(name))
|
||||
SinkholeService.reload(null, "setting changed", this);
|
||||
|
||||
else if ("pcap_enabled".equals(name)) {
|
||||
if (prefs.getBoolean(name, false)) {
|
||||
File pcap = new File(getCacheDir(), "netguard.pcap");
|
||||
if (pcap.exists())
|
||||
pcap.delete();
|
||||
SinkholeService.setPcap(pcap.getAbsolutePath());
|
||||
} else
|
||||
SinkholeService.setPcap(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -112,7 +112,7 @@ public class SinkholeService extends VpnService implements SharedPreferences.OnS
|
|||
|
||||
private static final String ACTION_SCREEN_OFF_DELAYED = "eu.faircode.netguard.SCREEN_OFF_DELAYED";
|
||||
|
||||
private native void jni_init(String pcap);
|
||||
private native void jni_init();
|
||||
|
||||
private native void jni_start(int tun, int loglevel, boolean native_);
|
||||
|
||||
|
@ -120,6 +120,12 @@ public class SinkholeService extends VpnService implements SharedPreferences.OnS
|
|||
|
||||
private native void jni_done();
|
||||
|
||||
private static native void jni_pcap(String name);
|
||||
|
||||
public static void setPcap(String name) {
|
||||
jni_pcap(name);
|
||||
}
|
||||
|
||||
static {
|
||||
System.loadLibrary("netguard");
|
||||
}
|
||||
|
@ -674,8 +680,6 @@ public class SinkholeService extends VpnService implements SharedPreferences.OnS
|
|||
PendingIntent pi = PendingIntent.getActivity(this, 0, configure, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
builder.setConfigureIntent(pi);
|
||||
|
||||
builder.setBlocking(true);
|
||||
|
||||
// Start VPN service
|
||||
try {
|
||||
return builder.establish();
|
||||
|
@ -858,10 +862,7 @@ public class SinkholeService extends VpnService implements SharedPreferences.OnS
|
|||
public void onCreate() {
|
||||
Log.i(TAG, "Create");
|
||||
|
||||
File pcap = new File(getCacheDir(), "netguard.pcap");
|
||||
if (pcap.exists())
|
||||
pcap.delete();
|
||||
jni_init(pcap.getAbsolutePath());
|
||||
jni_init();
|
||||
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
prefs.registerOnSharedPreferenceChangeListener(this);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -60,7 +60,7 @@ typedef struct pcaprec_hdr_s {
|
|||
|
||||
#define LINKTYPE_RAW 101
|
||||
|
||||
void sig_handler(int sig, siginfo_t *info, void *context);
|
||||
void handle_signal(int sig, siginfo_t *info, void *context);
|
||||
|
||||
void handle_events(void *a);
|
||||
|
||||
|
@ -78,6 +78,8 @@ int open_socket(const struct session *cur, const struct arguments *args);
|
|||
|
||||
int get_local_port(const int sock);
|
||||
|
||||
ssize_t send_socket(int sock, uint8_t *buffer, uint16_t len);
|
||||
|
||||
int write_syn_ack(struct session *cur, int tun);
|
||||
|
||||
int write_ack(struct session *cur, int bytes, int tun);
|
||||
|
@ -94,12 +96,18 @@ int write_tcp(const struct session *cur,
|
|||
|
||||
jint get_uid(const int protocol, const int version, const void *saddr, const uint16_t sport);
|
||||
|
||||
uint16_t checksum(uint8_t *buffer, uint16_t length);
|
||||
uint16_t calc_checksum(uint8_t *buffer, uint16_t length);
|
||||
|
||||
void ng_log(int prio, const char *fmt, ...);
|
||||
void log_android(int prio, const char *fmt, ...);
|
||||
|
||||
void log_java(const struct arguments *args, uint8_t version,
|
||||
const char *source, uint16_t sport,
|
||||
const char *dest, uint16_t dport,
|
||||
uint8_t protocol, const char *flags,
|
||||
jint uid, jboolean allowed);
|
||||
|
||||
void write_pcap(const void *ptr, size_t len);
|
||||
|
||||
const char *strstate(const int state);
|
||||
|
||||
char *hex(const u_int8_t *data, const u_int16_t len);
|
||||
|
||||
void pcap_write(const void *ptr, size_t len);
|
||||
|
|
|
@ -133,9 +133,14 @@
|
|||
android:dependency="log"
|
||||
android:key="native"
|
||||
android:title="Native code" />
|
||||
<Preference
|
||||
android:key="pcap"
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:dependency="native"
|
||||
android:key="pcap_enabled"
|
||||
android:title="PCAP" />
|
||||
<Preference
|
||||
android:dependency="pcap_enabled"
|
||||
android:key="pcap_export"
|
||||
android:title="Export PCAP" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
|
|
Loading…
Reference in New Issue