nghttp2_submit_altsvc

Synopsis

#include <nghttp2/nghttp2.h>

int nghttp2_submit_altsvc(nghttp2_session *session, uint8_t flags, int32_t stream_id, const uint8_t *origin, size_t origin_len, const uint8_t *field_value, size_t field_value_len)

Submits ALTSVC frame.

ALTSVC frame is a non-critical extension to HTTP/2, and defined in RFC 7383.

The flags is currently ignored and should be nghttp2_flag.NGHTTP2_FLAG_NONE.

The origin points to the origin this alternative service is associated with. The origin_len is the length of the origin. If stream_id is 0, the origin must be specified. If stream_id is not zero, the origin must be empty (in other words, origin_len must be 0).

The ALTSVC frame is only usable from server side. If this function is invoked with client side session, this function returns nghttp2_error.NGHTTP2_ERR_INVALID_STATE.

This function returns 0 if it succeeds, or one of the following negative error codes:

nghttp2_error.NGHTTP2_ERR_NOMEM

Out of memory

nghttp2_error.NGHTTP2_ERR_INVALID_STATE

The function is called from client side session

nghttp2_error.NGHTTP2_ERR_INVALID_ARGUMENT

The sum of origin_len and field_value_len is larger than 16382; or origin_len is 0 while stream_id is 0; or origin_len is not 0 while stream_id is not 0.