Example #1
0
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;
}
Example #2
0
int fastlzlibDecompressReset(zfast_stream *s) {
  return fastlzlibCompressReset(s);
}