diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 09:51:24 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 09:51:24 +0000 |
commit | f7548d6d28c313cf80e6f3ef89aed16a19815df1 (patch) | |
tree | a3f6f2a3f247293bee59ecd28e8cd8ceb6ca064a /src/lib-compression/iostream-zstd-private.h | |
parent | Initial commit. (diff) | |
download | dovecot-f7548d6d28c313cf80e6f3ef89aed16a19815df1.tar.xz dovecot-f7548d6d28c313cf80e6f3ef89aed16a19815df1.zip |
Adding upstream version 1:2.3.19.1+dfsg1.upstream/1%2.3.19.1+dfsg1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/lib-compression/iostream-zstd-private.h')
-rw-r--r-- | src/lib-compression/iostream-zstd-private.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/lib-compression/iostream-zstd-private.h b/src/lib-compression/iostream-zstd-private.h new file mode 100644 index 0000000..e430bbc --- /dev/null +++ b/src/lib-compression/iostream-zstd-private.h @@ -0,0 +1,35 @@ +#ifndef IOSTREAM_ZSTD_PRIVATE_H +#define IOSTREAM_ZSTD_PRIVATE_H 1 + +/* a horrible hack to fix issues when the installed libzstd is lot + newer than what we were compiled against. */ +static inline ZSTD_ErrorCode zstd_version_errcode(ZSTD_ErrorCode err) +{ +#if ZSTD_VERSION_NUMBER < 10301 + if (ZSTD_versionNumber() > 10300) { + /* reinterpret them */ + if (err == 10) + return ZSTD_error_prefix_unknown; + if (err == 32) + return ZSTD_error_dictionary_wrong; + if (err == 62) + return ZSTD_error_init_missing; + if (err == 64) + return ZSTD_error_memory_allocation; + return ZSTD_error_GENERIC; + } +#endif + return err; +} + +static inline void zstd_version_check(void) +{ + /* error codes were pinned on 1.3.1, so we only care about + versions before that. */ + if (ZSTD_VERSION_NUMBER < 10301 || ZSTD_versionNumber() < 10301) + if (ZSTD_versionNumber() / 100 != ZSTD_VERSION_NUMBER / 100) + i_warning("zstd: Compiled against %u, but %u installed!", + ZSTD_VERSION_NUMBER, ZSTD_versionNumber()); +} + +#endif |