/* Otherwise, drop it. */
BPF_STMT (BPF_RET + BPF_K, 0),
};
+static const size_t dhcp_bpf_filter_len =
+ sizeof(dhcp_bpf_filter) / sizeof(dhcp_bpf_filter[0]);
+
/* This, however, is mine */
static struct bpf_insn arp_bpf_filter [] = {
/* Otherwise, drop it. */
BPF_STMT (BPF_RET + BPF_K, 0),
};
+static const size_t arp_bpf_filter_len =
+ sizeof(arp_bpf_filter) / sizeof(arp_bpf_filter[0]);
#define LEASEFILE DBDIR "/" PACKAGE "-%s.lease"
#define PIDFILE RUNDIR "/" PACKAGE "-%s.pid"
+#define UNCONST(a) ((void *)(unsigned long)(const void *)(a))
+
#endif
memset(&pf, 0, sizeof(pf));
if (protocol == ETHERTYPE_ARP) {
pf.filter = arp_bpf_filter;
- pf.len = sizeof(arp_bpf_filter) / sizeof(arp_bpf_filter[0]);
+ pf.len = arp_bpf_filter_len;
} else {
pf.filter = dhcp_bpf_filter;
- pf.len = sizeof(dhcp_bpf_filter) / sizeof(dhcp_bpf_filter[0]);
+ pf.len = dhcp_bpf_filter_len;
}
if (setsockopt(s, SOL_SOCKET, SO_ATTACH_FILTER, &pf, sizeof(pf)) != 0)
goto eexit;