14#if !defined(ZLIB_CONST)
29#define G_LOG_DOMAIN "libgvm util"
41gvm_compress (
const void *src,
unsigned long srclen,
unsigned long *dstlen)
43 unsigned long buflen = srclen * 2;
45 if (src == NULL || dstlen == NULL)
61 strm.avail_in = srclen;
66 strm.next_in = (
void *) src;
68 if (deflateInit (&strm, Z_DEFAULT_COMPRESSION) != Z_OK)
71 buffer = g_malloc0 (buflen);
72 strm.avail_out = buflen;
73 strm.next_out = buffer;
75 err = deflate (&strm, Z_SYNC_FLUSH);
81 if (strm.avail_out != 0)
83 *dstlen = strm.total_out;
111 unsigned long buflen = srclen * 2;
113 if (src == NULL || dstlen == NULL)
123 strm.zalloc = Z_NULL;
125 strm.opaque = Z_NULL;
126 strm.avail_in = srclen;
131 strm.next_in = (
void *) src;
138 if (inflateInit2 (&strm, 15 + 32) != Z_OK)
141 buffer = g_malloc0 (buflen);
142 strm.avail_out = buflen;
143 strm.next_out = buffer;
145 err = inflate (&strm, Z_SYNC_FLUSH);
151 if (strm.avail_out != 0)
153 *dstlen = strm.total_out;
180 unsigned long *dstlen)
182 unsigned long buflen = srclen * 2;
183 int windowsBits = 15;
184 int GZIP_ENCODING = 16;
186 if (src == NULL || dstlen == NULL)
199 strm.zalloc = Z_NULL;
201 strm.opaque = Z_NULL;
202 strm.avail_in = srclen;
207 strm.next_in = (
void *) src;
210 if (deflateInit2 (&strm, Z_DEFAULT_COMPRESSION, Z_DEFLATED,
211 windowsBits | GZIP_ENCODING, 8, Z_DEFAULT_STRATEGY)
215 buffer = g_malloc0 (buflen);
216 strm.avail_out = buflen;
217 strm.next_out = buffer;
219 err = deflate (&strm, Z_FINISH);
225 if (strm.avail_out != 0)
227 *dstlen = strm.total_out;
255 gzFile gz_file = cookie;
257 return gzread (gz_file, buffer, buffer_size);
270 gzFile gz_file = cookie;
272 return gzclose (gz_file);
286 static cookie_io_functions_t io_functions = {
298 gzFile gz_file = gzopen (path,
"r");
304 FILE *file = fopencookie (gz_file,
"r", io_functions);
318 static cookie_io_functions_t io_functions = {
330 gzFile gz_file = gzdopen (fd,
"r");
336 FILE *file = fopencookie (gz_file,
"r", io_functions);
FILE * gvm_gzip_open_file_reader_fd(int fd)
Opens a gzip file as a FILE* stream for reading and decompression.
Definition compressutils.c:316
void * gvm_uncompress(const void *src, unsigned long srclen, unsigned long *dstlen)
Uncompresses data in src buffer.
Definition compressutils.c:109
void * gvm_compress(const void *src, unsigned long srclen, unsigned long *dstlen)
Compresses data in src buffer.
Definition compressutils.c:41
FILE * gvm_gzip_open_file_reader(const char *path)
Opens a gzip file as a FILE* stream for reading and decompression.
Definition compressutils.c:284
static int gz_file_close(void *cookie)
Close a gzip file.
Definition compressutils.c:268
static ssize_t gz_file_read(void *cookie, char *buffer, size_t buffer_size)
Read decompressed data from a gzip file.
Definition compressutils.c:253
void * gvm_compress_gzipheader(const void *src, unsigned long srclen, unsigned long *dstlen)
Compresses data in src buffer, gzip format compatible.
Definition compressutils.c:179
API related to data compression (gzip format.)