static bool compress_with_fastlz(JCR *jcr, char *rbuf, uint32_t rsize, unsigned char *cbuf, uint32_t max_compress_len, uint32_t *compress_len) { int zstat; zfast_stream *pZfastStream; Dmsg3(400, "cbuf=0x%x rbuf=0x%x len=%u\n", cbuf, rbuf, rsize); pZfastStream = (zfast_stream *)jcr->compress.workset.pZFAST; pZfastStream->next_in = (Bytef *)rbuf; pZfastStream->avail_in = rsize; pZfastStream->next_out = (Bytef *)cbuf; pZfastStream->avail_out = max_compress_len; if ((zstat = fastlzlibCompress(pZfastStream, Z_FINISH)) != Z_STREAM_END) { Jmsg(jcr, M_FATAL, 0, _("Compression fastlzlibCompress error: %d\n"), zstat); jcr->setJobStatus(JS_ErrorTerminated); return false; } *compress_len = pZfastStream->total_out; /* * Reset fastlz stream to be able to begin from scratch again */ if ((zstat = fastlzlibCompressReset(pZfastStream)) != Z_OK) { Jmsg(jcr, M_FATAL, 0, _("Compression fastlzlibCompressReset error: %d\n"), zstat); jcr->setJobStatus(JS_ErrorTerminated); return false; } Dmsg2(400, "FASTLZ compressed len=%d uncompressed len=%d\n", *compress_len, rsize); return true; }
int fastlzlibDecompressReset(zfast_stream *s) { return fastlzlibCompressReset(s); }