summaryrefslogtreecommitdiff
path: root/net/icmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/icmp.c')
-rw-r--r--net/icmp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/icmp.c b/net/icmp.c
index 54dc67b..6f5f14f 100644
--- a/net/icmp.c
+++ b/net/icmp.c
@@ -26,8 +26,8 @@ bool icmp_reply(struct netdev *dev,struct eth_hdr *hdr)
data->csum=0;
ipv4->csum=0;
- data->csum=htons(checksum(data,ipv4->len-ipv4->ihl*4));
- ipv4->csum=htons(checksum(ipv4,ntohs(ipv4->len)));
+ data->csum=(checksum(data,ntohs(ipv4->len)-ipv4->ihl*4));
+ ipv4->csum=(checksum(ipv4,ntohs(ipv4->len)));
dev->transmit(hdr,ntohs(ipv4->len)+14); // 14bytes for link2
@@ -43,7 +43,7 @@ bool icmp_incoming(struct netdev *dev,struct eth_hdr *hdr)
klog ("icmp code=%d",data->code);
klog ("icmp csum=0x%04x",ntohs(data->csum));
data->csum=0;
- klog("expected checksum = 0x%04X",checksum(data,ipv4->len-ipv4->ihl*4));
+ klog("expected checksum = 0x%04X",checksum(data,ntohs(ipv4->len)-ipv4->ihl*4));
if(data->type==ICMP_ECHO_REQUEST) // echo request
{