1 #ifdef TEST_BPF 2 3 #include "sfbpf.h" 4 #include "sfbpf_dlt.h" 5 #include <stdlib.h> 6 #include <stdio.h> 7 #include <string.h> 8 9 int 10 main() 11 { 12 struct sfbpf_program fcode; 13 const char *filter = "tcp"; 14 char data[1514]; 15 int len = 1514; 16 17 memset(data, 0, sizeof(data)); 18 19 if (sfbpf_compile(1514, DLT_EN10MB, &fcode, filter, 1, 0) < 0) { 20 fprintf(stderr, "%s: BPF state machine compilation failed!", __FUNCTION__); 21 return EXIT_FAILURE; 22 } 23 24 if (fcode.bf_insns && sfbpf_filter(fcode.bf_insns, data, len, len) == 0) { 25 fprintf(stderr, "Packet ignored!\n"); 26 } 27 28 sfbpf_freecode(&fcode); 29 30 return EXIT_SUCCESS; 31 } 32 33 #endif /* !TEST_BPF */ 34