nghttp2_hd_deflate_hd_vec

Synopsis

#include <nghttp2/nghttp2.h>

ssize_t nghttp2_hd_deflate_hd_vec(nghttp2_hd_deflater *deflater, const nghttp2_vec *vec, size_t veclen, const nghttp2_nv *nva, size_t nvlen)

Deflates the nva, which has the nvlen name/value pairs, into the veclen size of buf vector vec. The each size of buffer must be set in len field of nghttp2_vec. If and only if one chunk is filled up completely, next chunk will be used. If vec 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 0 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.