From 1463e1656f693d1c27873e47546288dfa5726b7b Mon Sep 17 00:00:00 2001 From: emanuele-f Date: Fri, 18 Aug 2023 21:11:53 +0200 Subject: [PATCH] Only stop PCAP dump after capture This ensures that all the monitored data is actually exported, avoiding a possible inconsistency between the data shown on the screen and the exported PCAP data. --- .../main/java/com/emanuelef/remote_capture/CaptureService.java | 2 -- app/src/main/jni/core/capture_libpcap.c | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java b/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java index 891c104b..0d69dee0 100644 --- a/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java +++ b/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java @@ -878,9 +878,7 @@ public static void stopService() { return; captureService.mStopping = true; - stopPacketLoop(); - captureService.signalServicesTermination(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) captureService.stopForeground(STOP_FOREGROUND_REMOVE); diff --git a/app/src/main/jni/core/capture_libpcap.c b/app/src/main/jni/core/capture_libpcap.c index 3bc71090..0b3c9528 100644 --- a/app/src/main/jni/core/capture_libpcap.c +++ b/app/src/main/jni/core/capture_libpcap.c @@ -533,6 +533,9 @@ static void process_pcapd_rv(pcapdroid_t *pd, int rv) { case PCAPD_PCAP_READ_ERROR: log_f(PD_ERR_PCAP_READ); break; + case PCAPD_SOCKET_WRITE_ERROR: + // ignore, as it can be caused by PCAPdroid stopping the capture + break; default: log_f("pcapd daemon exited with code %d", rv); }