diff options
author | Alex Xu (Hello71) <alex_y_xu@yahoo.ca> | 2016-07-06 13:21:32 -0400 |
---|---|---|
committer | Alex Xu (Hello71) <alex_y_xu@yahoo.ca> | 2016-07-06 13:21:32 -0400 |
commit | c68c67ce7d88dcfc9db29e572d60e1c43ddb2519 (patch) | |
tree | 65bc8f8a1e207e5af041b376622f7b1d720afbd0 /src/checksum.h | |
parent | c58e2fa1335322c699a16fa8e12390d0b137b03e (diff) | |
download | udpastcp-c68c67ce7d88dcfc9db29e572d60e1c43ddb2519.tar.xz udpastcp-c68c67ce7d88dcfc9db29e572d60e1c43ddb2519.zip |
Miscellaneous improvements.
Diffstat (limited to 'src/checksum.h')
-rw-r--r-- | src/checksum.h | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/src/checksum.h b/src/checksum.h index f788ff1..7d4a003 100644 --- a/src/checksum.h +++ b/src/checksum.h @@ -2,44 +2,4 @@ #include <stdint.h> #include <stdlib.h> -// based on code from RFCs 1071 and 1624 - -/* -static inline uint16_t csum_update(const void *ptr, uint16_t new_value, uint16_t wsum) { - uint32_t sum = *(uint16_t *)ptr + (~ntohs(*(uint16_t *)&new_value) & 0xffff) + ntohs(wsum); - sum = (sum & 0xffff) + (sum >> 16); - return htons(sum + (sum >> 16)); -} - -static inline uint16_t fold_sum(uint32_t sum) { - while (sum >> 16) - sum = (sum & 0xffff) + (sum >> 16); - return sum; -} - -static inline uint16_t do_csum(const void *ptr, size_t len) { - uint32_t sum = 0; - - while (len > 1) { - sum += *(uint16_t *)ptr++; - len -= 2; - } - - if (len > 0) - sum += *(uint8_t *)ptr; - - return ~fold_sum(sum); -} - -static inline uint16_t csum_partial(uint16_t sum, const void *ptr, size_t len, ...) { - va_list ap; - va_start(ap, len); - do { - sum = ~fold_sum(~sum + ~do_csum(ptr, len)); - } while ((ptr = va_arg(ap, const void *)) && (len = va_arg(ap, size_t))); - va_end(ap); - return sum; -} -*/ - uint16_t csum_partial(const void *buff, int len, uint16_t wsum); |