summaryrefslogtreecommitdiffstats
path: root/src/checksum.c
diff options
context:
space:
mode:
author/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>2007-05-24 11:32:53 +0000
committer/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>2007-05-24 11:32:53 +0000
commitbc91f60fc288fe1fd0729f7bafe0596837c3e675 (patch)
tree5e36e8e4c64295ab5d9a30e8625358f2c6a876d7 /src/checksum.c
parenteaae45fa65fdb559b5442dfe2da05a808c5c57ba (diff)
simplify checksum code: use UDP/multicast checksum facilities
Diffstat (limited to 'src/checksum.c')
-rw-r--r--src/checksum.c32
1 files changed, 0 insertions, 32 deletions
diff --git a/src/checksum.c b/src/checksum.c
deleted file mode 100644
index 41866ff..0000000
--- a/src/checksum.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Extracted from RFC 1071 with some minor changes to fix compilation on GCC,
- * this can probably be improved
- * --pablo 11/feb/07
- */
-
-#include <conntrackd.h>
-
-unsigned short do_csum(const void *addr, unsigned int count)
-{
- unsigned int sum = 0;
-
- /* checksumming disabled, just skip */
- if (CONFIG(flags) & DONT_CHECKSUM)
- return 0;
-
- while(count > 1) {
- /* This is the inner loop */
- sum += *((unsigned short *) addr++);
- count -= 2;
- }
-
- /* Add left-over byte, if any */
- if(count > 0)
- sum += *((unsigned char *) addr);
-
- /* Fold 32-bit sum to 16 bits */
- while (sum>>16)
- sum = (sum & 0xffff) + (sum >> 16);
-
- return ~sum;
-}