14#if !defined(ZLIB_CONST)
29#define G_LOG_DOMAIN "libgvm util"
42gvm_compress (
const void *src,
unsigned long srclen,
unsigned long *dstlen)
44 unsigned long buflen = srclen * 2;
46 if (src == NULL || dstlen == NULL)
62 strm.avail_in = srclen;
67 strm.next_in = (
void *) src;
69 if (deflateInit (&strm, Z_DEFAULT_COMPRESSION) != Z_OK)
72 buffer = g_malloc0 (buflen);
73 strm.avail_out = buflen;
74 strm.next_out = buffer;
76 err = deflate (&strm, Z_SYNC_FLUSH);
82 if (strm.avail_out != 0)
84 *dstlen = strm.total_out;
113 unsigned long buflen = srclen * 2;
115 if (src == NULL || dstlen == NULL)
125 strm.zalloc = Z_NULL;
127 strm.opaque = Z_NULL;
128 strm.avail_in = srclen;
133 strm.next_in = (
void *) src;
140 if (inflateInit2 (&strm, 15 + 32) != Z_OK)
143 buffer = g_malloc0 (buflen);
144 strm.avail_out = buflen;
145 strm.next_out = buffer;
147 err = inflate (&strm, Z_SYNC_FLUSH);
153 if (strm.avail_out != 0)
155 *dstlen = strm.total_out;
183 unsigned long *dstlen)
185 unsigned long buflen = srclen * 2;
186 int windowsBits = 15;
187 int GZIP_ENCODING = 16;
189 if (src == NULL || dstlen == NULL)
202 strm.zalloc = Z_NULL;
204 strm.opaque = Z_NULL;
205 strm.avail_in = srclen;
210 strm.next_in = (
void *) src;
213 if (deflateInit2 (&strm, Z_DEFAULT_COMPRESSION, Z_DEFLATED,
214 windowsBits | GZIP_ENCODING, 8, Z_DEFAULT_STRATEGY)
218 buffer = g_malloc0 (buflen);
219 strm.avail_out = buflen;
220 strm.next_out = buffer;
222 err = deflate (&strm, Z_FINISH);
228 if (strm.avail_out != 0)
230 *dstlen = strm.total_out;
258 gzFile gz_file = cookie;
260 return gzread (gz_file, buffer, buffer_size);
273 gzFile gz_file = cookie;
275 return gzclose (gz_file);
289 static cookie_io_functions_t io_functions = {
301 gzFile gz_file = gzopen (path,
"r");
307 FILE *file = fopencookie (gz_file,
"r", io_functions);
321 static cookie_io_functions_t io_functions = {
333 gzFile gz_file = gzdopen (fd,
"r");
339 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:319
void * gvm_uncompress(const void *src, unsigned long srclen, unsigned long *dstlen)
Uncompresses data in src buffer.
Definition compressutils.c:111
void * gvm_compress(const void *src, unsigned long srclen, unsigned long *dstlen)
Compresses data in src buffer.
Definition compressutils.c:42
FILE * gvm_gzip_open_file_reader(const char *path)
Opens a gzip file as a FILE* stream for reading and decompression.
Definition compressutils.c:287
static int gz_file_close(void *cookie)
Close a gzip file.
Definition compressutils.c:271
static ssize_t gz_file_read(void *cookie, char *buffer, size_t buffer_size)
Read decompressed data from a gzip file.
Definition compressutils.c:256
void * gvm_compress_gzipheader(const void *src, unsigned long srclen, unsigned long *dstlen)
Compresses data in src buffer, gzip format compatible.
Definition compressutils.c:182
API related to data compression (gzip format.)