+#ifdef HAVE_PCAP_CREATE
+ pd = pcap_create(device, ebuf);
+ if (pd == NULL)
+ error("%s", ebuf);
+ status = pcap_set_snaplen(pd, snaplen);
+ if (status != 0)
+ error("%s: pcap_set_snaplen failed: %s",
+ device, pcap_strerror(status));
+ status = pcap_set_promisc(pd, !pflag);
+ if (status != 0)
+ error("%s: pcap_set_promisc failed: %s",
+ device, pcap_strerror(status));
+ if (Iflag) {
+status = pcap_can_set_rfmon(pd);
+if (status < 0) {
+if (status == PCAP_ERROR)
+fprintf(stderr, "pcap_can_set_rfmon failed: %s\n", pcap_geterr(pd));
+else
+fprintf(stderr, "pcap_can_set_rfmon failed: %s\n", pcap_strerror(status));
+}
+else if (!status)
+fprintf(stderr, "This isn't gonna work...\n");
+ status = pcap_set_rfmon(pd, 1);
+ if (status != 0)
+ error("%s: pcap_set_rfmon failed: %s",
+ device, pcap_strerror(status));
+ }
+ status = pcap_set_timeout(pd, 1000);
+ if (status != 0)
+ error("%s: pcap_set_timeout failed: %s",
+ device, pcap_strerror(status));
+ if (Bflag != 0) {
+ status = pcap_set_buffer_size(pd, Bflag);
+ if (status != 0)
+ error("%s: pcap_set_buffer_size failed: %s",
+ device, pcap_strerror(status));
+ }
+ status = pcap_activate(pd);
+ if (status != 0) {
+ if (status == PCAP_ERROR)
+ error("%s", pcap_geterr(pd));
+ else
+ error("%s: %s", device, pcap_strerror(status));
+ }
+#else