From 51541d38f5ab535e4e62d54c748b483d56bd2aa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 1 Apr 2007 11:38:37 +0000 Subject: [PATCH] You also have to recompute the checksum in case the source address was updated, patch by Hugo Santos. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20490 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/network/protocols/ipv4/ipv4.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/network/protocols/ipv4/ipv4.cpp b/src/add-ons/kernel/network/protocols/ipv4/ipv4.cpp index d58d2386ab..b8cd8605df 100644 --- a/src/add-ons/kernel/network/protocols/ipv4/ipv4.cpp +++ b/src/add-ons/kernel/network/protocols/ipv4/ipv4.cpp @@ -984,8 +984,11 @@ ipv4_send_routed_data(net_protocol *_protocol, struct net_route *route, return bufferHeader.Status(); ipv4_header &header = bufferHeader.Data(); - if (header.source == 0) + if (header.source == 0) { header.source = source.sin_addr.s_addr; + header.checksum = gBufferModule->checksum(buffer, + sizeof(ipv4_header), sizeof(ipv4_header), true); + } bufferHeader.Detach(); }