Mercurial > dovecot > core-2.2
annotate src/lib-compression/compression.c @ 22616:629f44740f50
cassandra: Include "prepared" when logging about prepared statement queries
Mainly useful for debugging/testing.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Mon, 16 Oct 2017 15:12:12 +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 }; |