From 3d8ccb44a6a3dc74b9bf7b765c7a2ae41f771d40 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 19 Oct 2022 11:43:48 +1100 Subject: Add csum_ip4_header() helper to calculate IPv4 header checksums We calculate IPv4 header checksums in at least two places, in dhcp() and in tap_ip_send. Add a helper to handle this calculation in both places. Signed-off-by: David Gibson Signed-off-by: Stefano Brivio --- dhcp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'dhcp.c') diff --git a/dhcp.c b/dhcp.c index 8dcf645..875e18b 100644 --- a/dhcp.c +++ b/dhcp.c @@ -371,8 +371,7 @@ int dhcp(const struct ctx *c, const struct pool *p) iph->tot_len = htons(len += sizeof(*iph)); iph->daddr = c->ip4.addr; iph->saddr = c->ip4.gw; - iph->check = 0; - iph->check = csum_unaligned(iph, (intptr_t)(iph->ihl * 4), 0); + csum_ip4_header(iph); len += sizeof(*eh); memcpy(eh->h_dest, eh->h_source, ETH_ALEN); -- cgit v1.2.3