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 --- tap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'tap.c') diff --git a/tap.c b/tap.c index 58fc1de..de02c56 100644 --- a/tap.c +++ b/tap.c @@ -135,8 +135,7 @@ void tap_ip_send(const struct ctx *c, const struct in6_addr *src, uint8_t proto, iph->daddr = c->ip4.addr_seen; memcpy(&iph->saddr, &src->s6_addr[12], 4); - iph->check = 0; - iph->check = csum_unaligned(iph, (size_t)iph->ihl * 4, 0); + csum_ip4_header(iph); memcpy(data, in, len); -- cgit v1.2.3