nexmon – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 #include <sys/time.h>
2 #include <pcap.h>
3  
4 #include "dumpfile.h"
5  
6 pcap_t *dumphandle = NULL;
7 pcap_dumper_t *dumper = NULL;
8  
9 void dump_packet(struct packet *pkt) {
10 struct timeval now;
11 struct pcap_pkthdr hdr;
12  
13 if (! dumper) {
14 printf("You need to start a dumpfile before dumping packets.\n");
15 return;
16 }
17  
18 gettimeofday(&now, NULL);
19 hdr.ts = now;
20 hdr.caplen = pkt->len;
21 hdr.len = pkt->len;
22  
23 pcap_dump((u_char *) dumper, &hdr, pkt->data);
24 pcap_dump_flush(dumper);
25 }
26  
27 void start_dump(char *filename) {
28  
29 if (dumper) {
30 printf("Dumpfile is already opened, ignoring request\n");
31 return;
32 }
33  
34 dumphandle = pcap_open_dead(DLT_IEEE802_11, BUFSIZ);
35 dumper = pcap_dump_open(dumphandle, filename);
36 }
37  
38 void stop_dump() {
39 if (! dumper) return;
40 pcap_dump_close(dumper);
41 pcap_close(dumphandle);
42 }