nghttp2_hd_deflate_hd

Synopsis

#include <nghttp2/nghttp2.h>

ssize_t nghttp2_hd_deflate_hd(nghttp2_hd_deflater *deflater, uint8_t *buf, size_t buflen, const nghttp2_nv *nva, size_t nvlen)

Deflates the nva, which has the nvlen name/value pairs, into the buf of length buflen.

If buf is not large enough to store the deflated header block, this function fails with NGHTTP2_ERR_INSUFF_BUFSIZE. The caller should use nghttp2_hd_deflate_bound() to know the upper bound of buffer size required to deflate given header name/value pairs.

Once this function fails, subsequent call of this function always returns NGHTTP2_ERR_HEADER_COMP.

After this function returns, it is safe to delete the nva.

This function returns the number of bytes written to buf if it succeeds, or one of the following negative error codes:

NGHTTP2_ERR_NOMEM
Out of memory.
NGHTTP2_ERR_HEADER_COMP
Deflation process has failed.
NGHTTP2_ERR_INSUFF_BUFSIZE
The provided buflen size is too small to hold the output.