diff options
Diffstat (limited to 'epan/in_cksum.c')
-rw-r--r-- | epan/in_cksum.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/epan/in_cksum.c b/epan/in_cksum.c index feb1079f6f..4d65c0646b 100644 --- a/epan/in_cksum.c +++ b/epan/in_cksum.c @@ -37,6 +37,7 @@ #include <glib.h> +#include <epan/tvbuff.h> #include <epan/in_cksum.h> /* @@ -143,6 +144,24 @@ in_cksum(const vec_t *vec, int veclen) return (~sum & 0xffff); } +guint16 +ip_checksum(const guint8 *ptr, int len) +{ + vec_t cksum_vec[1]; + + SET_CKSUM_VEC_PTR(cksum_vec[0], ptr, len); + return in_cksum(&cksum_vec[0], 1); +} + +guint16 +ip_checksum_tvb(tvbuff_t *tvb, int offset, int len) +{ + vec_t cksum_vec[1]; + + SET_CKSUM_VEC_TVB(cksum_vec[0], tvb, offset, len); + return in_cksum(&cksum_vec[0], 1); +} + /* * Given the host-byte-order value of the checksum field in a packet * header, and the network-byte-order computed checksum of the data |