Переглянути джерело

Expose `tor_compress_memory_level()` as a public function in the compression module.

This patch makes the internal `get_memlevel()` a part of the public
compression API as `tor_compress_memory_level()`.

See https://bugs.torproject.org/21663
Alexander Færøy 7 роки тому
батько
коміт
6b5172bcf2
2 змінених файлів з 17 додано та 10 видалено
  1. 14 10
      src/common/torgzip.c
  2. 3 0
      src/common/torgzip.h

+ 14 - 10
src/common/torgzip.c

@@ -86,16 +86,6 @@ method_bits(compress_method_t method, compression_level_t level)
   }
 }
 
-static inline int
-get_memlevel(compression_level_t level)
-{
-  switch (level) {
-    default:
-    case HIGH_COMPRESSION: return 8;
-    case MEDIUM_COMPRESSION: return 7;
-    case LOW_COMPRESSION: return 6;
-  }
-}
 
 /** @{ */
 /* These macros define the maximum allowable compression factor.  Anything of
@@ -126,6 +116,20 @@ is_compression_bomb(size_t size_in, size_t size_out)
   return (size_out / size_in > MAX_UNCOMPRESSION_FACTOR);
 }
 
+/** Given <b>level</b> return the memory level.  The memory level is needed for
+ * the various compression backends used in Tor.
+ */
+int
+tor_compress_memory_level(compression_level_t level)
+{
+  switch (level) {
+    default:
+    case HIGH_COMPRESSION: return 8;
+    case MEDIUM_COMPRESSION: return 7;
+    case LOW_COMPRESSION: return 6;
+  }
+}
+
 /** Given <b>in_len</b> bytes at <b>in</b>, compress them into a newly
  * allocated buffer, using the method described in <b>method</b>.  Store the
  * compressed string in *<b>out</b>, and its length in *<b>out_len</b>.

+ 3 - 0
src/common/torgzip.h

@@ -46,6 +46,9 @@ tor_zlib_get_header_version_str(void);
 
 compress_method_t detect_compression_method(const char *in, size_t in_len);
 
+int
+tor_compress_memory_level(compression_level_t level);
+
 /** Return values from tor_compress_process; see that function's documentation
  * for details. */
 typedef enum {