summaryrefslogtreecommitdiffstats
path: root/c/src/libnetworking/netinet/in_cksum.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/libnetworking/netinet/in_cksum.c')
-rw-r--r--c/src/libnetworking/netinet/in_cksum.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/c/src/libnetworking/netinet/in_cksum.c b/c/src/libnetworking/netinet/in_cksum.c
index f834d629d2..a2889f878a 100644
--- a/c/src/libnetworking/netinet/in_cksum.c
+++ b/c/src/libnetworking/netinet/in_cksum.c
@@ -203,6 +203,9 @@ in_cksum(m, len)
* code and should be modified for each CPU to be as fast as possible.
*/
+#define ADDCARRY(x) (x > 65535 ? x -= 65535 : x)
+#define REDUCE \
+ {l_util.l = sum; sum = l_util.s[0] + l_util.s[1]; ADDCARRY(sum);}
int
in_cksum(m, len)