[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] Add API entry-point for getting compression method version numbers.
commit 6b905b38bb850d0530ba6f6d02c10b1fb19aef9a
Author: Alexander Færøy <ahf@xxxxxxxxxxxxxx>
Date: Thu Apr 20 16:20:14 2017 +0200
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
---
src/common/compress.c | 42 ++++++++++++++++++++++++++++++++++++++++++
src/common/compress.h | 6 ++++++
src/common/compress_lzma.c | 10 +++++-----
src/common/compress_zstd.c | 8 ++++----
4 files changed, 57 insertions(+), 9 deletions(-)
diff --git a/src/common/compress.c b/src/common/compress.c
index 725dde5..e64bbca 100644
--- a/src/common/compress.c
+++ b/src/common/compress.c
@@ -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
diff --git a/src/common/compress.h b/src/common/compress.h
index 87306f5..182530f 100644
--- a/src/common/compress.h
+++ b/src/common/compress.h
@@ -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);
diff --git a/src/common/compress_lzma.c b/src/common/compress_lzma.c
index c45cb5e..f2952cc 100644
--- a/src/common/compress_lzma.c
+++ b/src/common/compress_lzma.c
@@ -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
}
diff --git a/src/common/compress_zstd.c b/src/common/compress_zstd.c
index dca4dbd..c838cd9 100644
--- a/src/common/compress_zstd.c
+++ b/src/common/compress_zstd.c
@@ -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
}
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits