From 29488f9e49ca6f4f485dc814ee7f862ca7fcb71e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gh?= Date: Wed, 16 Nov 2016 10:08:51 +0100 Subject: [PATCH] Change pcap format to ethernet --- daemon/recording.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/daemon/recording.c b/daemon/recording.c index a838dfd84..40672018c 100644 --- a/daemon/recording.c +++ b/daemon/recording.c @@ -399,7 +399,7 @@ static char *recording_setup_file(struct recording *recording) { recording_path = file_path_str(recording->meta_prefix, "/pcaps/", ".pcap"); recording->pcap.recording_path = recording_path; - recording->pcap.recording_pd = pcap_open_dead(DLT_RAW, 65535); + recording->pcap.recording_pd = pcap_open_dead(DLT_EN10MB, 65535); recording->pcap.recording_pdumper = pcap_dump_open(recording->pcap.recording_pd, recording_path); if (recording->pcap.recording_pdumper == NULL) { pcap_close(recording->pcap.recording_pd); @@ -450,8 +450,11 @@ static void stream_pcap_dump(pcap_dumper_t *pdumper, struct packet_stream *strea if (!pdumper) return; - unsigned char pkt[s->len + MAX_PACKET_HEADER_LEN]; - unsigned int pkt_len = fake_ip_header(pkt, stream, s); + unsigned char pkt[s->len + MAX_PACKET_HEADER_LEN + 14]; + unsigned int pkt_len = fake_ip_header(pkt + 14, stream, s); + pkt_len += 14; + memset(pkt, 0, 14); + pkt[12] = 0x08; // Set up PCAP packet header struct pcap_pkthdr header;