]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
dhcp_bpf_filter -> bootp_bpf_filter (and DHCP -> BOOTP for ports).
authorRoy Marples <roy@marples.name>
Sat, 14 May 2016 16:35:23 +0000 (16:35 +0000)
committerRoy Marples <roy@marples.name>
Sat, 14 May 2016 16:35:23 +0000 (16:35 +0000)
bpf-filter.h
dhcp.c
dhcp.h
if-bsd.c
if-linux.c

index c8b027a4ed15e25ed35545f9bcf4cb1e80dc6d37..37c3e30326a433431727eea2ffee79d034d94205 100644 (file)
@@ -49,7 +49,7 @@ static const struct bpf_insn arp_bpf_filter [] = {
        /* Otherwise, drop it. */
        BPF_STMT(BPF_RET + BPF_K, 0),
 };
-#define arp_bpf_filter_len sizeof(arp_bpf_filter) / sizeof(arp_bpf_filter[0])
+#define arp_bpf_filter_len __arraycount(arp_bpf_filter)
 
 
 /* dhcp_bpf_filter taken from bpf.c in dhcp-3.1.0
@@ -76,7 +76,7 @@ static const struct bpf_insn arp_bpf_filter [] = {
  *   http://www.isc.org/
  */
 
-static const struct bpf_insn dhcp_bpf_filter [] = {
+static const struct bpf_insn bootp_bpf_filter [] = {
 #ifndef BPF_SKIPTYPE
        /* Make sure this is an IP packet... */
        BPF_STMT(BPF_LD + BPF_H + BPF_ABS, 12),
@@ -92,10 +92,10 @@ static const struct bpf_insn dhcp_bpf_filter [] = {
        BPF_STMT(BPF_LDX + BPF_B + BPF_MSH, 14 + BPF_ETHCOOK),
        /* Make sure it's to the right port... */
        BPF_STMT(BPF_LD + BPF_H + BPF_IND, 16 + BPF_ETHCOOK),
-       BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, DHCP_CLIENT_PORT, 0, 1),
+       BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, BOOTPC, 0, 1),
        /* If we passed all the tests, ask for the whole packet. */
        BPF_STMT(BPF_RET + BPF_K, BPF_WHOLEPACKET),
        /* Otherwise, drop it. */
        BPF_STMT(BPF_RET + BPF_K, 0),
 };
-#define dhcp_bpf_filter_len sizeof(dhcp_bpf_filter) / sizeof(dhcp_bpf_filter[0])
+#define bootp_bpf_filter_len __arraycount(bootp_bpf_filter)
diff --git a/dhcp.c b/dhcp.c
index fc0a0b2f0a4887509ee63b9bbb733c05e1ef93a1..2579495dafe5ca5f1e913b82197cd8c74ab24661 100644 (file)
--- a/dhcp.c
+++ b/dhcp.c
@@ -1539,7 +1539,7 @@ dhcp_openudp(struct interface *ifp)
 #endif
        memset(&sin, 0, sizeof(sin));
        sin.sin_family = AF_INET;
-       sin.sin_port = htons(DHCP_CLIENT_PORT);
+       sin.sin_port = htons(BOOTPC);
        if (ifp) {
                state = D_STATE(ifp);
                sin.sin_addr.s_addr = state->addr.s_addr;
@@ -1607,8 +1607,8 @@ dhcp_makeudppacket(size_t *sz, const uint8_t *data, size_t length,
        else
                ip->ip_dst.s_addr = dest.s_addr;
 
-       udp->uh_sport = htons(DHCP_CLIENT_PORT);
-       udp->uh_dport = htons(DHCP_SERVER_PORT);
+       udp->uh_sport = htons(BOOTPC);
+       udp->uh_dport = htons(BOOTPS);
        udp->uh_ulen = htons((uint16_t)(sizeof(*udp) + length));
        ip->ip_len = udp->uh_ulen;
        udp->uh_sum = checksum(udpp, sizeof(*ip) +  sizeof(*udp) + length);
@@ -1717,7 +1717,7 @@ send_message(struct interface *ifp, uint8_t type,
                memset(&sin, 0, sizeof(sin));
                sin.sin_family = AF_INET;
                sin.sin_addr.s_addr = to.s_addr;
-               sin.sin_port = htons(DHCP_SERVER_PORT);
+               sin.sin_port = htons(BOOTPS);
                r = sendto(s, (uint8_t *)bootp, len, 0,
                    (struct sockaddr *)&sin, sizeof(sin));
                if (r == -1)
diff --git a/dhcp.h b/dhcp.h
index e007cb034cd1eca23f8771dad89f5b8142ab3033..5d4ccf47ecba479410dba3c051def954a4b8ce5b 100644 (file)
--- a/dhcp.h
+++ b/dhcp.h
 #include "dhcp-common.h"
 
 /* UDP port numbers for DHCP */
-#define DHCP_SERVER_PORT    67
-#define DHCP_CLIENT_PORT    68
+#define BOOTPS                 67
+#define BOOTPC                 68
 
-#define MAGIC_COOKIE        0x63825363
-#define BROADCAST_FLAG      0x8000
+#define MAGIC_COOKIE           0x63825363
+#define BROADCAST_FLAG         0x8000
 
 /* DHCP message OP code */
-#define DHCP_BOOTREQUEST    1
-#define DHCP_BOOTREPLY      2
+#define DHCP_BOOTREQUEST       1
+#define DHCP_BOOTREPLY         2
 
 /* DHCP message type */
-#define DHCP_DISCOVER       1
-#define DHCP_OFFER          2
-#define DHCP_REQUEST        3
-#define DHCP_DECLINE        4
-#define DHCP_ACK            5
-#define DHCP_NAK            6
-#define DHCP_RELEASE        7
-#define DHCP_INFORM         8
-#define DHCP_FORCERENEW     9
+#define DHCP_DISCOVER          1
+#define DHCP_OFFER             2
+#define DHCP_REQUEST           3
+#define DHCP_DECLINE           4
+#define DHCP_ACK               5
+#define DHCP_NAK               6
+#define DHCP_RELEASE           7
+#define DHCP_INFORM            8
+#define DHCP_FORCERENEW                9
 
 /* Constants taken from RFC 2131. */
 #define T1                     0.5
index 0f35ce2a18b9f736573cd4332e5ecf73fc76aad2..3cab244d8531176a232c961a3b8cc38a588d8765 100644 (file)
--- a/if-bsd.c
+++ b/if-bsd.c
@@ -447,14 +447,14 @@ if_openraw(struct interface *ifp, uint16_t protocol)
                goto eexit;
 #endif
 
-       /* Install the DHCP filter */
+       /* Install the filter. */
        memset(&pf, 0, sizeof(pf));
        if (protocol == ETHERTYPE_ARP) {
                pf.bf_insns = UNCONST(arp_bpf_filter);
                pf.bf_len = arp_bpf_filter_len;
        } else {
-               pf.bf_insns = UNCONST(dhcp_bpf_filter);
-               pf.bf_len = dhcp_bpf_filter_len;
+               pf.bf_insns = UNCONST(bootp_bpf_filter);
+               pf.bf_len = bootp_bpf_filter_len;
        }
        if (ioctl(fd, BIOCSETF, &pf) == -1)
                goto eexit;
index 404b2c968db6f4b08e2cb09057fc99e8579fe6a5..921c8e022ca0d4941d64c5e0543070c0b9044e55 100644 (file)
@@ -1244,14 +1244,14 @@ if_openraw(struct interface *ifp, uint16_t protocol)
                return -1;
 #undef SF
 
-       /* Install the DHCP filter */
+       /* Install the filter. */
        memset(&pf, 0, sizeof(pf));
        if (protocol == ETHERTYPE_ARP) {
                pf.filter = UNCONST(arp_bpf_filter);
                pf.len = arp_bpf_filter_len;
        } else {
-               pf.filter = UNCONST(dhcp_bpf_filter);
-               pf.len = dhcp_bpf_filter_len;
+               pf.filter = UNCONST(bootp_bpf_filter);
+               pf.len = bootp_bpf_filter_len;
        }
        if (setsockopt(s, SOL_SOCKET, SO_ATTACH_FILTER, &pf, sizeof(pf)) != 0)
                goto eexit;