mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
Add API entry-point for getting compression method version numbers.
This patch adds `tor_compress_version_str()` and `tor_compress_header_version_str()` to get the version strings of the different compression schema providers. Both functions returns `NULL` in case a given `compress_method_t` is unknown or unsupported. See: https://bugs.torproject.org/21662
This commit is contained in:
parent
1c77d8690c
commit
6b905b38bb
@ -173,6 +173,48 @@ tor_compress_supports_method(compress_method_t method)
|
||||
}
|
||||
}
|
||||
|
||||
/** Return a string representation of the version of the library providing the
|
||||
* compression method given in <b>method</b>. Returns NULL if <b>method</b> is
|
||||
* unknown or unsupported. */
|
||||
const char *
|
||||
tor_compress_version_str(compress_method_t method)
|
||||
{
|
||||
switch (method) {
|
||||
case GZIP_METHOD:
|
||||
case ZLIB_METHOD:
|
||||
return tor_zlib_get_version_str();
|
||||
case LZMA_METHOD:
|
||||
return tor_lzma_get_version_str();
|
||||
case ZSTD_METHOD:
|
||||
return tor_zstd_get_version_str();
|
||||
case NO_METHOD:
|
||||
case UNKNOWN_METHOD:
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/** Return a string representation of the version of the library, found at
|
||||
* compile time, providing the compression method given in <b>method</b>.
|
||||
* Returns NULL if <b>method</b> is unknown or unsupported. */
|
||||
const char *
|
||||
tor_compress_header_version_str(compress_method_t method)
|
||||
{
|
||||
switch (method) {
|
||||
case GZIP_METHOD:
|
||||
case ZLIB_METHOD:
|
||||
return tor_zlib_get_header_version_str();
|
||||
case LZMA_METHOD:
|
||||
return tor_lzma_get_header_version_str();
|
||||
case ZSTD_METHOD:
|
||||
return tor_zstd_get_header_version_str();
|
||||
case NO_METHOD:
|
||||
case UNKNOWN_METHOD:
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/** Return the approximate number of bytes allocated for all
|
||||
* supported compression schemas. */
|
||||
size_t
|
||||
|
@ -55,6 +55,12 @@ tor_compress_is_compression_bomb(size_t size_in, size_t size_out);
|
||||
int
|
||||
tor_compress_supports_method(compress_method_t method);
|
||||
|
||||
const char *
|
||||
tor_compress_version_str(compress_method_t method);
|
||||
|
||||
const char *
|
||||
tor_compress_header_version_str(compress_method_t method);
|
||||
|
||||
size_t
|
||||
tor_compress_get_total_allocation(void);
|
||||
|
||||
|
@ -73,26 +73,26 @@ tor_lzma_method_supported(void)
|
||||
}
|
||||
|
||||
/** Return a string representation of the version of the currently running
|
||||
* version of liblzma. */
|
||||
* version of liblzma. Returns NULL if LZMA is unsupported. */
|
||||
const char *
|
||||
tor_lzma_get_version_str(void)
|
||||
{
|
||||
#ifdef HAVE_LZMA
|
||||
return lzma_version_string();
|
||||
#else
|
||||
return "N/A";
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
/** Return a string representation of the version of the version of liblzma
|
||||
* used at compilation. */
|
||||
/** Return a string representation of the version of liblzma used at
|
||||
* compilation time. Returns NULL if LZMA is unsupported. */
|
||||
const char *
|
||||
tor_lzma_get_header_version_str(void)
|
||||
{
|
||||
#ifdef HAVE_LZMA
|
||||
return LZMA_VERSION_STRING;
|
||||
#else
|
||||
return "N/A";
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@ tor_zstd_method_supported(void)
|
||||
}
|
||||
|
||||
/** Return a string representation of the version of the currently running
|
||||
* version of libzstd. */
|
||||
* version of libzstd. Returns NULL if Zstandard is unsupported. */
|
||||
const char *
|
||||
tor_zstd_get_version_str(void)
|
||||
{
|
||||
@ -55,19 +55,19 @@ tor_zstd_get_version_str(void)
|
||||
|
||||
return version_str;
|
||||
#else
|
||||
return "N/A";
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
/** Return a string representation of the version of the version of libzstd
|
||||
* used at compilation. */
|
||||
* used at compilation time. Returns NULL if Zstandard is unsupported. */
|
||||
const char *
|
||||
tor_zstd_get_header_version_str(void)
|
||||
{
|
||||
#ifdef HAVE_ZSTD
|
||||
return ZSTD_VERSION_STRING;
|
||||
#else
|
||||
return "N/A";
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user