aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extcap/androiddump.c54
1 files changed, 15 insertions, 39 deletions
diff --git a/extcap/androiddump.c b/extcap/androiddump.c
index 5dbebd8a5b..3cc67de5f2 100644
--- a/extcap/androiddump.c
+++ b/extcap/androiddump.c
@@ -58,10 +58,7 @@
/* Configuration options */
/* #define ANDROIDDUMP_USE_LIBPCAP */
-#define EXTCAP_ENCAP_BLUETOOTH_H4_WITH_PHDR 1
-#define EXTCAP_ENCAP_WIRESHARK_UPPER_PDU 2
-#define EXTCAP_ENCAP_ETHERNET 3
-#define EXTCAP_ENCAP_LINUX_SLL 4
+
#define PCAP_GLOBAL_HEADER_LENGTH 24
#define PCAP_RECORD_HEADER_LENGTH 16
@@ -89,6 +86,18 @@
#include "wiretap/wtap.h"
#endif
+#ifdef ANDROIDDUMP_USE_LIBPCAP
+ #define EXTCAP_ENCAP_BLUETOOTH_H4_WITH_PHDR DLT_BLUETOOTH_H4_WITH_PHDR
+ #define EXTCAP_ENCAP_WIRESHARK_UPPER_PDU DLT_WIRESHARK_UPPER_PDU
+ #define EXTCAP_ENCAP_ETHERNET DLT_EN10MB
+ #define EXTCAP_ENCAP_LINUX_SLL DLT_LINUX_SLL
+#else
+ #define EXTCAP_ENCAP_BLUETOOTH_H4_WITH_PHDR WTAP_ENCAP_BLUETOOTH_H4_WITH_PHDR
+ #define EXTCAP_ENCAP_WIRESHARK_UPPER_PDU WTAP_ENCAP_WIRESHARK_UPPER_PDU
+ #define EXTCAP_ENCAP_ETHERNET WTAP_ENCAP_ETHERNET
+ #define EXTCAP_ENCAP_LINUX_SLL WTAP_ENCAP_SLL
+#endif
+
#define WIRESHARK_UPPER_PDU_TAG_DISSECTOR_NAME 0x000C
#define INTERFACE_ANDROID_LOGCAT_MAIN "android-logcat-main"
@@ -409,46 +418,13 @@ static void useNormalConnectTimeout(socket_handle_t sock) {
g_debug("Can't set socket timeout, using default");
}
-static int extcap_encap_to_dlt(int encap)
-{
- int dlt = -1;
-#ifdef ANDROIDDUMP_USE_LIBPCAP
- if (encap == EXTCAP_ENCAP_BLUETOOTH_H4_WITH_PHDR)
- dlt = DLT_BLUETOOTH_H4_WITH_PHDR;
- else if (encap == EXTCAP_ENCAP_WIRESHARK_UPPER_PDU)
- dlt = DLT_WIRESHARK_UPPER_PDU;
- else if (encap == EXTCAP_ENCAP_ETHERNET)
- dlt = DLT_EN10MB;
- else if (encap == EXTCAP_ENCAP_LINUX_SLL)
- dlt = DLT_LINUX_SLL;
- return dlt;
-#else
- if (encap == EXTCAP_ENCAP_BLUETOOTH_H4_WITH_PHDR)
- dlt = WTAP_ENCAP_BLUETOOTH_H4_WITH_PHDR;
- else if (encap == EXTCAP_ENCAP_WIRESHARK_UPPER_PDU)
- dlt = WTAP_ENCAP_WIRESHARK_UPPER_PDU;
- else if (encap == EXTCAP_ENCAP_ETHERNET)
- dlt = WTAP_ENCAP_ETHERNET;
- else if (encap == EXTCAP_ENCAP_LINUX_SLL)
- dlt = WTAP_ENCAP_SLL;
-#endif
- return dlt;
-}
-
static struct extcap_dumper extcap_dumper_open(char *fifo, int encap) {
struct extcap_dumper extcap_dumper;
- int encap_ext;
-
- encap_ext = extcap_encap_to_dlt(encap);
- if (encap_ext == -1) {
- g_warning("Unknown encapsulation");
- exit(EXIT_CODE_UNKNOWN_ENCAPSULATION_LIBPCAP);
- }
#ifdef ANDROIDDUMP_USE_LIBPCAP
pcap_t *pcap;
- pcap = pcap_open_dead_with_tstamp_precision(encap_ext, PACKET_LENGTH, PCAP_TSTAMP_PRECISION_NANO);
+ pcap = pcap_open_dead_with_tstamp_precision(encap, PACKET_LENGTH, PCAP_TSTAMP_PRECISION_NANO);
extcap_dumper.dumper.pcap = pcap_dump_open(pcap, fifo);
if (!extcap_dumper.dumper.pcap) {
g_warning("Can't open %s for saving packets: %s", pcap_geterr(pcap));
@@ -467,7 +443,7 @@ static struct extcap_dumper extcap_dumper_open(char *fifo, int encap) {
register_all_wiretap_modules();
#endif
- extcap_dumper.dumper.wtap = wtap_dump_open(fifo, WTAP_FILE_TYPE_SUBTYPE_PCAP_NSEC, encap_ext, PACKET_LENGTH, FALSE, &err);
+ extcap_dumper.dumper.wtap = wtap_dump_open(fifo, WTAP_FILE_TYPE_SUBTYPE_PCAP_NSEC, encap, PACKET_LENGTH, FALSE, &err);
if (!extcap_dumper.dumper.wtap) {
cfile_dump_open_failure_message("androiddump", fifo, err, WTAP_FILE_TYPE_SUBTYPE_PCAP_NSEC);
exit(EXIT_CODE_CANNOT_SAVE_WIRETAP_DUMP);