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

Reply via email to