diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-03-27 04:37:15 +0000 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-03-27 04:37:15 +0000 |
commit | ef49c3486a19368f444d55ed48dabb26751d8be9 (patch) | |
tree | bed58472db778d001235b3935398ff32e04ead3e /src/libstrongswan/chunk.c | |
parent | 51ae94d77538cc2ce6337639713eaf5e839b8589 (diff) | |
download | strongswan-ef49c3486a19368f444d55ed48dabb26751d8be9.tar.bz2 strongswan-ef49c3486a19368f444d55ed48dabb26751d8be9.tar.xz |
added chunk_compare() which compares orders chunks
Diffstat (limited to 'src/libstrongswan/chunk.c')
-rw-r--r-- | src/libstrongswan/chunk.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libstrongswan/chunk.c b/src/libstrongswan/chunk.c index f2c8a3efb..1967b350a 100644 --- a/src/libstrongswan/chunk.c +++ b/src/libstrongswan/chunk.c @@ -233,6 +233,21 @@ chunk_t chunk_skip(chunk_t chunk, size_t bytes) /** * Described in header. */ +int chunk_compare(chunk_t a, chunk_t b) +{ + int compare_len = a.len - b.len; + int len = (compare_len < 0)? a.len : b.len; + + if (compare_len != 0 || len == 0) + { + return compare_len; + } + return memcmp(a.ptr, b.ptr, len); +}; + +/** + * Described in header. + */ bool chunk_equals(chunk_t a, chunk_t b) { return a.ptr != NULL && b.ptr != NULL && |