Ejemplo n.º 1
0
static void request_free(struct Request *req)
{
  free(req->host);
  free(req->path);
  free(req->hostport);
  spdylay_gzip_inflate_del(req->inflater);
}
Ejemplo n.º 2
0
void test_spdylay_gzip_inflate(void)
{
  spdylay_gzip *inflater;
  uint8_t in[4096], out[4096], *inptr;
  size_t inlen = sizeof(in);
  size_t inproclen, outproclen;
  const char *inputptr = input;

  inlen = deflate_data(in, inlen, (const uint8_t*)input, sizeof(input)-1);

  CU_ASSERT(0 == spdylay_gzip_inflate_new(&inflater));
  /* First 16 bytes */
  inptr = in;
  inproclen = inlen;
  outproclen = 16;
  CU_ASSERT(0 == spdylay_gzip_inflate(inflater, out, &outproclen,
                                      inptr, &inproclen));
  CU_ASSERT(16 == outproclen);
  CU_ASSERT(inproclen > 0);
  CU_ASSERT(0 == memcmp(inputptr, out, outproclen));
  /* Next 32 bytes */
  inptr += inproclen;
  inlen -= inproclen;
  inproclen = inlen;
  inputptr += outproclen;
  outproclen = 32;
  CU_ASSERT(0 == spdylay_gzip_inflate(inflater, out, &outproclen,
                                      inptr, &inproclen));
  CU_ASSERT(32 == outproclen);
  CU_ASSERT(inproclen > 0);
  CU_ASSERT(0 == memcmp(inputptr, out, outproclen));
  /* Rest */
  inptr += inproclen;
  inlen -= inproclen;
  inproclen = inlen;
  inputptr += outproclen;
  outproclen = sizeof(out);
  CU_ASSERT(0 == spdylay_gzip_inflate(inflater, out, &outproclen,
                                      inptr, &inproclen));
  CU_ASSERT(sizeof(input)-49 == outproclen);
  CU_ASSERT(inproclen > 0);
  CU_ASSERT(0 == memcmp(inputptr, out, outproclen));

  inlen -= inproclen;
  CU_ASSERT(0 == inlen);

  spdylay_gzip_inflate_del(inflater);
}