Browse Source

Add a "best compression" flag.

Nick Mathewson 7 years ago
parent
commit
4b01b45ec1

+ 3 - 3
src/common/compress.c

@@ -208,8 +208,8 @@ tor_compress(char **out, size_t *out_len,
              compress_method_t method)
 {
   return tor_compress_impl(1, out, out_len, in, in_len, method,
-                           HIGH_COMPRESSION,
-                           1, LOG_WARN); // XXXX "best"?
+                           BEST_COMPRESSION,
+                           1, LOG_WARN);
 }
 
 /** Given zero or more zlib-compressed or gzip-compressed strings of
@@ -231,7 +231,7 @@ tor_uncompress(char **out, size_t *out_len,
                int protocol_warn_level)
 {
   return tor_compress_impl(0, out, out_len, in, in_len, method,
-                           HIGH_COMPRESSION,
+                           BEST_COMPRESSION,
                            complete_only, protocol_warn_level);
 }
 

+ 2 - 2
src/common/compress.h

@@ -26,11 +26,11 @@ typedef enum {
 
 /**
  * Enumeration to define tradeoffs between memory usage and compression level.
- * HIGH_COMPRESSION saves the most bandwidth; LOW_COMPRESSION saves the most
+ * BEST_COMPRESSION saves the most bandwidth; LOW_COMPRESSION saves the most
  * memory.
  **/
 typedef enum {
-  HIGH_COMPRESSION, MEDIUM_COMPRESSION, LOW_COMPRESSION
+  BEST_COMPRESSION, HIGH_COMPRESSION, MEDIUM_COMPRESSION, LOW_COMPRESSION
 } compression_level_t;
 
 int tor_compress(char **out, size_t *out_len,

+ 1 - 0
src/common/compress_lzma.c

@@ -32,6 +32,7 @@ memory_level(compression_level_t level)
 {
   switch (level) {
     default:
+    case BEST_COMPRESSION:
     case HIGH_COMPRESSION: return 9;
     case MEDIUM_COMPRESSION: return 6;
     case LOW_COMPRESSION: return 3;

+ 3 - 1
src/common/compress_zlib.c

@@ -56,6 +56,7 @@ memory_level(compression_level_t level)
 {
   switch (level) {
     default:
+    case BEST_COMPRESSION: return 9;
     case HIGH_COMPRESSION: return 8;
     case MEDIUM_COMPRESSION: return 7;
     case LOW_COMPRESSION: return 6;
@@ -70,6 +71,7 @@ method_bits(compress_method_t method, compression_level_t level)
   const int flag = method == GZIP_METHOD ? 16 : 0;
   switch (level) {
     default:
+    case BEST_COMPRESSION:
     case HIGH_COMPRESSION: return flag + 15;
     case MEDIUM_COMPRESSION: return flag + 13;
     case LOW_COMPRESSION: return flag + 11;
@@ -162,7 +164,7 @@ tor_zlib_compress_new(int compress_,
   if (! compress_) {
     /* use this setting for decompression, since we might have the
      * max number of window bits */
-    compression_level = HIGH_COMPRESSION;
+    compression_level = BEST_COMPRESSION;
   }
 
   out = tor_malloc_zero(sizeof(tor_zlib_compress_state_t));

+ 1 - 0
src/common/compress_zstd.c

@@ -33,6 +33,7 @@ memory_level(compression_level_t level)
 {
   switch (level) {
     default:
+    case BEST_COMPRESSION:
     case HIGH_COMPRESSION: return 9;
     case MEDIUM_COMPRESSION: return 8;
     case LOW_COMPRESSION: return 7;