On Mon, Dec 13, 2021 at 11:27:20AM +0100, Florian Obser wrote: > Treat xid as a uint32_t in network byte order on the wire. > > Internally this doesn't matter since we only care about equality. > This makes logging output comparable to tcpdump(8). > > Pointed out by joel@ > > OK?
OK claudio@ > diff --git engine.c engine.c > index 60f81d6f3c8..4fbdf2f16ef 100644 > --- engine.c > +++ engine.c > @@ -848,7 +848,7 @@ parse_dhcp(struct dhcpleased_iface *iface, struct > imsg_dhcp *dhcp) > return; > } > > - if (dhcp_hdr->xid != iface->xid) > + if (ntohl(dhcp_hdr->xid) != iface->xid) > return; /* silently ignore wrong xid */ > > if (rem < sizeof(cookie)) > @@ -1770,7 +1770,7 @@ log_dhcp_hdr(struct dhcp_hdr *dhcp_hdr) > "Unknown", dhcp_hdr->htype); > log_debug("dhcp_hdr hlen: %d", dhcp_hdr->hlen); > log_debug("dhcp_hdr hops: %d", dhcp_hdr->hops); > - log_debug("dhcp_hdr xid: 0x%x", dhcp_hdr->xid); > + log_debug("dhcp_hdr xid: 0x%x", ntohl(dhcp_hdr->xid)); > log_debug("dhcp_hdr secs: %u", dhcp_hdr->secs); > log_debug("dhcp_hdr flags: 0x%x", dhcp_hdr->flags); > log_debug("dhcp_hdr ciaddr: %s", inet_ntop(AF_INET, &dhcp_hdr->ciaddr, > diff --git frontend.c frontend.c > index 53b61cafb77..ab644285451 100644 > --- frontend.c > +++ frontend.c > @@ -935,7 +935,7 @@ build_packet(uint8_t message_type, char *if_name, > uint32_t xid, > hdr->htype = HTYPE_ETHER; > hdr->hlen = 6; > hdr->hops = 0; > - hdr->xid = xid; > + hdr->xid = htonl(xid); > hdr->secs = 0; > hdr->ciaddr = *ciaddr; > memcpy(hdr->chaddr, hw_address, sizeof(*hw_address)); > > -- > I'm not entirely sure you are real. > -- :wq Claudio