Mercurial > dovecot > core-2.2
annotate src/lib-compression/compression.c @ 22325:e01bc3015b2f
lib-index: Check .log.2 rotation only when syncing
Instead of also whenever appending transactions to .log file. This
shouldn't change the behavior much, and it's needed for the following
change to work correctly.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Tue, 11 Jul 2017 15:33:56 +0300 |
parents | 2e2563132d5f |
children | cb108f786fb4 |
rev | line source |
---|---|
21390
2e2563132d5f
Updated copyright notices to include the year 2017.
Stephan Bosch <stephan.bosch@dovecot.fi>
parents:
21322
diff
changeset
|
1 /* Copyright (c) 2010-2017 Dovecot authors, see the included COPYING file */ |
14739
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
2 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 #include "lib.h" |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
4 #include "istream.h" |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
5 #include "istream-zlib.h" |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
6 #include "ostream-zlib.h" |
17104
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
7 #include "iostream-lz4.h" |
14739
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
8 #include "compression.h" |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
9 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
10 #ifndef HAVE_ZLIB |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
11 # define i_stream_create_gz NULL |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
12 # define o_stream_create_gz NULL |
15990 | 13 # define i_stream_create_deflate NULL |
14 # define o_stream_create_deflate NULL | |
14739
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 #endif |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
16 #ifndef HAVE_BZLIB |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
17 # define i_stream_create_bz2 NULL |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
18 # define o_stream_create_bz2 NULL |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
19 #endif |
17028
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
20 #ifndef HAVE_LZMA |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
21 # define i_stream_create_lzma NULL |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
22 # define o_stream_create_lzma NULL |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
23 #endif |
17104
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
24 #ifndef HAVE_LZ4 |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
25 # define i_stream_create_lz4 NULL |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
26 # define o_stream_create_lz4 NULL |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
27 #endif |
14739
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
28 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
29 static bool is_compressed_zlib(struct istream *input) |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
30 { |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
31 const unsigned char *data; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
32 size_t size; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
33 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
34 /* Peek in to the stream and see if it looks like it's compressed |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
35 (based on its header). This also means that users can try to exploit |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
36 security holes in the uncompression library by APPENDing a specially |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
37 crafted mail. So let's hope zlib is free of holes. */ |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
38 if (i_stream_read_data(input, &data, &size, 1) <= 0) |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
39 return FALSE; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
40 i_assert(size >= 2); |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
41 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
42 return data[0] == 31 && data[1] == 139; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
43 } |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
44 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
45 static bool is_compressed_bzlib(struct istream *input) |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
46 { |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
47 const unsigned char *data; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
48 size_t size; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
49 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
50 if (i_stream_read_data(input, &data, &size, 4+6 - 1) <= 0) |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
51 return FALSE; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
52 if (data[0] != 'B' || data[1] != 'Z') |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
53 return FALSE; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
54 if (data[2] != 'h' && data[2] != '0') |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
55 return FALSE; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
56 if (data[3] < '1' || data[3] > '9') |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
57 return FALSE; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
58 return memcmp(data + 4, "\x31\x41\x59\x26\x53\x59", 6) == 0; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
59 } |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
60 |
17028
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
61 static bool is_compressed_xz(struct istream *input) |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
62 { |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
63 const unsigned char *data; |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
64 size_t size; |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
65 |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
66 if (i_stream_read_data(input, &data, &size, 6 - 1) <= 0) |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
67 return FALSE; |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
68 return memcmp(data, "\xfd\x37\x7a\x58\x5a", 6) == 0; |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
69 } |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
70 |
17104
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
71 static bool is_compressed_lz4(struct istream *input) |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
72 { |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
73 const unsigned char *data; |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
74 size_t size; |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
75 |
19519
7de67ada80b3
lib-compress: lz4 istream wasn't detected reliably in some situations.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
18137
diff
changeset
|
76 if (i_stream_read_data(input, &data, &size, |
7de67ada80b3
lib-compress: lz4 istream wasn't detected reliably in some situations.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
18137
diff
changeset
|
77 IOSTREAM_LZ4_MAGIC_LEN - 1) <= 0) |
17104
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
78 return FALSE; |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
79 /* there is no standard LZ4 header, so we've created our own */ |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
80 return memcmp(data, IOSTREAM_LZ4_MAGIC, IOSTREAM_LZ4_MAGIC_LEN) == 0; |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
81 } |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
82 |
14739
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
83 const struct compression_handler *compression_lookup_handler(const char *name) |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
84 { |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
85 unsigned int i; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
86 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
87 for (i = 0; compression_handlers[i].name != NULL; i++) { |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
88 if (strcmp(name, compression_handlers[i].name) == 0) |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
89 return &compression_handlers[i]; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
90 } |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
91 return NULL; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
92 } |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
93 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
94 const struct compression_handler * |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
95 compression_detect_handler(struct istream *input) |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
96 { |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
97 unsigned int i; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
98 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
99 for (i = 0; compression_handlers[i].name != NULL; i++) { |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
100 if (compression_handlers[i].is_compressed != NULL && |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
101 compression_handlers[i].is_compressed(input)) |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
102 return &compression_handlers[i]; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
103 } |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
104 return NULL; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
105 } |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
106 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
107 const struct compression_handler * |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
108 compression_lookup_handler_from_ext(const char *path) |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
109 { |
21322
5ab8dc1a4a6f
global: Change string position/length from unsigned int to size_t
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
19552
diff
changeset
|
110 unsigned int i; |
5ab8dc1a4a6f
global: Change string position/length from unsigned int to size_t
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
19552
diff
changeset
|
111 size_t len, path_len = strlen(path); |
14739
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
112 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
113 for (i = 0; compression_handlers[i].name != NULL; i++) { |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
114 if (compression_handlers[i].ext == NULL) |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
115 continue; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
116 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
117 len = strlen(compression_handlers[i].ext); |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
118 if (path_len > len && |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
119 strcmp(path + path_len - len, compression_handlers[i].ext) == 0) |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
120 return &compression_handlers[i]; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
121 } |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
122 return NULL; |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
123 } |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
124 |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
125 const struct compression_handler compression_handlers[] = { |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
126 { "gz", ".gz", is_compressed_zlib, |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
127 i_stream_create_gz, o_stream_create_gz }, |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
128 { "bz2", ".bz2", is_compressed_bzlib, |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
129 i_stream_create_bz2, o_stream_create_bz2 }, |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
130 { "deflate", NULL, NULL, |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
131 i_stream_create_deflate, o_stream_create_deflate }, |
17028
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
132 { "xz", ".xz", is_compressed_xz, |
81e486aacbc7
lib-compression: Added support for liblzma (xz)
Timo Sirainen <tss@iki.fi>
parents:
15990
diff
changeset
|
133 i_stream_create_lzma, o_stream_create_lzma }, |
17104
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
134 { "lz4", ".lz4", is_compressed_lz4, |
fb4a0a84da50
lib-compression: Added initial support for LZ4
Timo Sirainen <tss@iki.fi>
parents:
17028
diff
changeset
|
135 i_stream_create_lz4, o_stream_create_lz4 }, |
14739
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
136 { NULL, NULL, NULL, NULL, NULL } |
378ba560ea9f
Moved zlib/bzlib code to lib-compression library.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
137 }; |