diff --git a/src/basic/siphash24.c b/src/basic/siphash24.c index 72d6bbe4f0..b73ede34c8 100644 --- a/src/basic/siphash24.c +++ b/src/basic/siphash24.c @@ -21,6 +21,7 @@ #include +#include "iovec-util.h" #include "siphash24.h" #include "string-util.h" #include "unaligned.h" @@ -156,6 +157,16 @@ void siphash24_compress_string(const char *in, struct siphash *state) { siphash24_compress_safe(in, strlen_ptr(in), state); } +void siphash24_compress_iovec(const struct iovec *iov, struct siphash *state) { + assert(iovec_is_valid(iov)); + assert(state); + + if (!iovec_is_set(iov)) + return; + + siphash24_compress(iov->iov_base, iov->iov_len, state); +} + uint64_t siphash24_finalize(struct siphash *state) { uint64_t b; diff --git a/src/basic/siphash24.h b/src/basic/siphash24.h index d72233beda..772e2728b6 100644 --- a/src/basic/siphash24.h +++ b/src/basic/siphash24.h @@ -36,6 +36,7 @@ static inline void siphash24_compress_safe(const void *in, size_t inlen, struct } void siphash24_compress_string(const char *in, struct siphash *state); +void siphash24_compress_iovec(const struct iovec *iov, struct siphash *state); uint64_t siphash24_finalize(struct siphash *state);