14 #if !defined(ZLIB_CONST)
27 #define G_LOG_DOMAIN "libgvm util"
39 gvm_compress (
const void *src,
unsigned long srclen,
unsigned long *dstlen)
41 unsigned long buflen = srclen * 2;
43 if (src == NULL || dstlen == NULL)
59 strm.avail_in = srclen;
64 strm.next_in = (
void *) src;
66 if (deflateInit (&strm, Z_DEFAULT_COMPRESSION) != Z_OK)
69 buffer = g_malloc0 (buflen);
70 strm.avail_out = buflen;
71 strm.next_out = buffer;
73 err = deflate (&strm, Z_SYNC_FLUSH);
79 if (strm.avail_out != 0)
81 *dstlen = strm.total_out;
109 unsigned long buflen = srclen * 2;
111 if (src == NULL || dstlen == NULL)
121 strm.zalloc = Z_NULL;
123 strm.opaque = Z_NULL;
124 strm.avail_in = srclen;
129 strm.next_in = (
void *) src;
136 if (inflateInit2 (&strm, 15 + 32) != Z_OK)
139 buffer = g_malloc0 (buflen);
140 strm.avail_out = buflen;
141 strm.next_out = buffer;
143 err = inflate (&strm, Z_SYNC_FLUSH);
149 if (strm.avail_out != 0)
151 *dstlen = strm.total_out;
178 unsigned long *dstlen)
180 unsigned long buflen = srclen * 2;
181 int windowsBits = 15;
182 int GZIP_ENCODING = 16;
184 if (src == NULL || dstlen == NULL)
197 strm.zalloc = Z_NULL;
199 strm.opaque = Z_NULL;
200 strm.avail_in = srclen;
205 strm.next_in = (
void *) src;
208 if (deflateInit2 (&strm, Z_DEFAULT_COMPRESSION, Z_DEFLATED,
209 windowsBits | GZIP_ENCODING, 8, Z_DEFAULT_STRATEGY)
213 buffer = g_malloc0 (buflen);
214 strm.avail_out = buflen;
215 strm.next_out = buffer;
217 err = deflate (&strm, Z_FINISH);
223 if (strm.avail_out != 0)
225 *dstlen = strm.total_out;