Enums¶
-
type
nghttp2_error
¶ Error codes used in this library. The code range is [-999, -500], inclusive. The following values are defined:
-
enum
NGHTTP2_ERR_INVALID_ARGUMENT
¶ (
-501
) Invalid argument passed.
-
enum
NGHTTP2_ERR_BUFFER_ERROR
¶ (
-502
) Out of buffer space.
-
enum
NGHTTP2_ERR_UNSUPPORTED_VERSION
¶ (
-503
) The specified protocol version is not supported.
-
enum
NGHTTP2_ERR_WOULDBLOCK
¶ (
-504
) Used as a return value fromnghttp2_send_callback
,nghttp2_recv_callback
andnghttp2_send_data_callback
to indicate that the operation would block.
-
enum
NGHTTP2_ERR_PROTO
¶ (
-505
) General protocol error
-
enum
NGHTTP2_ERR_INVALID_FRAME
¶ (
-506
) The frame is invalid.
-
enum
NGHTTP2_ERR_EOF
¶ (
-507
) The peer performed a shutdown on the connection.
-
enum
NGHTTP2_ERR_DEFERRED
¶ (
-508
) Used as a return value fromnghttp2_data_source_read_callback()
to indicate that data transfer is postponed. Seenghttp2_data_source_read_callback()
for details.
-
enum
NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE
¶ (
-509
) Stream ID has reached the maximum value. Therefore no stream ID is available.
-
enum
NGHTTP2_ERR_STREAM_CLOSED
¶ (
-510
) The stream is already closed; or the stream ID is invalid.
-
enum
NGHTTP2_ERR_STREAM_CLOSING
¶ (
-511
) RST_STREAM has been added to the outbound queue. The stream is in closing state.
-
enum
NGHTTP2_ERR_STREAM_SHUT_WR
¶ (
-512
) The transmission is not allowed for this stream (e.g., a frame with END_STREAM flag set has already sent).
-
enum
NGHTTP2_ERR_INVALID_STREAM_ID
¶ (
-513
) The stream ID is invalid.
-
enum
NGHTTP2_ERR_INVALID_STREAM_STATE
¶ (
-514
) The state of the stream is not valid (e.g., DATA cannot be sent to the stream if response HEADERS has not been sent).
-
enum
NGHTTP2_ERR_DEFERRED_DATA_EXIST
¶ (
-515
) Another DATA frame has already been deferred.
-
enum
NGHTTP2_ERR_START_STREAM_NOT_ALLOWED
¶ (
-516
) Starting new stream is not allowed (e.g., GOAWAY has been sent and/or received).
-
enum
NGHTTP2_ERR_GOAWAY_ALREADY_SENT
¶ (
-517
) GOAWAY has already been sent.
-
enum
NGHTTP2_ERR_INVALID_HEADER_BLOCK
¶ (
-518
) The received frame contains the invalid header block (e.g., There are duplicate header names; or the header names are not encoded in US-ASCII character set and not lower cased; or the header name is zero-length string; or the header value contains multiple in-sequence NUL bytes).
-
enum
NGHTTP2_ERR_INVALID_STATE
¶ (
-519
) Indicates that the context is not suitable to perform the requested operation.
-
enum
NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE
¶ (
-521
) The user callback function failed due to the temporal error.
-
enum
NGHTTP2_ERR_FRAME_SIZE_ERROR
¶ (
-522
) The length of the frame is invalid, either too large or too small.
-
enum
NGHTTP2_ERR_HEADER_COMP
¶ (
-523
) Header block inflate/deflate error.
-
enum
NGHTTP2_ERR_FLOW_CONTROL
¶ (
-524
) Flow control error
-
enum
NGHTTP2_ERR_INSUFF_BUFSIZE
¶ (
-525
) Insufficient buffer size given to function.
-
enum
NGHTTP2_ERR_PAUSE
¶ (
-526
) Callback was paused by the application
-
enum
NGHTTP2_ERR_TOO_MANY_INFLIGHT_SETTINGS
¶ (
-527
) There are too many in-flight SETTING frame and no more transmission of SETTINGS is allowed.
-
enum
NGHTTP2_ERR_PUSH_DISABLED
¶ (
-528
) The server push is disabled.
-
enum
NGHTTP2_ERR_DATA_EXIST
¶ (
-529
) DATA or HEADERS frame for a given stream has been already submitted and has not been fully processed yet. Application should wait for the transmission of the previously submitted frame before submitting another.
-
enum
NGHTTP2_ERR_SESSION_CLOSING
¶ (
-530
) The current session is closing due to a connection error ornghttp2_session_terminate_session()
is called.
-
enum
NGHTTP2_ERR_HTTP_HEADER
¶ (
-531
) Invalid HTTP header field was received and stream is going to be closed.
-
enum
NGHTTP2_ERR_HTTP_MESSAGING
¶ (
-532
) Violation in HTTP messaging rule.
-
enum
NGHTTP2_ERR_REFUSED_STREAM
¶ (
-533
) Stream was refused.
-
enum
NGHTTP2_ERR_INTERNAL
¶ (
-534
) Unexpected internal error, but recovered.
-
enum
NGHTTP2_ERR_CANCEL
¶ (
-535
) Indicates that a processing was canceled.
-
enum
NGHTTP2_ERR_SETTINGS_EXPECTED
¶ (
-536
) When a local endpoint expects to receive SETTINGS frame, it receives an other type of frame.
-
enum
NGHTTP2_ERR_TOO_MANY_SETTINGS
¶ (
-537
) When a local endpoint receives too many settings entries in a single SETTINGS frame.
-
enum
NGHTTP2_ERR_FATAL
¶ (
-900
) The errors <nghttp2_error.NGHTTP2_ERR_FATAL
mean that the library is under unexpected condition and processing was terminated (e.g., out of memory). If application receives this error code, it must stop using thatnghttp2_session
object and only allowed operation for that object is deallocate it usingnghttp2_session_del()
.
-
enum
NGHTTP2_ERR_NOMEM
¶ (
-901
) Out of memory. This is a fatal error.
-
enum
NGHTTP2_ERR_CALLBACK_FAILURE
¶ (
-902
) The user callback function failed. This is a fatal error.
-
enum
NGHTTP2_ERR_BAD_CLIENT_MAGIC
¶ (
-903
) Invalid client magic (seeNGHTTP2_CLIENT_MAGIC
) was received and further processing is not possible.
-
enum
NGHTTP2_ERR_FLOODED
¶ (
-904
) Possible flooding by peer was detected in this HTTP/2 session. Flooding is measured by how many PING and SETTINGS frames with ACK flag set are queued for transmission. These frames are response for the peer initiated frames, and peer can cause memory exhaustion on server side to send these frames forever and does not read network.
-
enum
-
type
nghttp2_nv_flag
¶ The flags for header field name/value pair.
-
enum
NGHTTP2_NV_FLAG_NONE
¶ (
0
) No flag set.
-
enum
NGHTTP2_NV_FLAG_NO_INDEX
¶ (
0x01
) Indicates that this name/value pair must not be indexed (“Literal Header Field never Indexed” representation must be used in HPACK encoding). Other implementation calls this bit as “sensitive”.
-
enum
NGHTTP2_NV_FLAG_NO_COPY_NAME
¶ (
0x02
) This flag is set solely by application. If this flag is set, the library does not make a copy of header field name. This could improve performance.
-
enum
NGHTTP2_NV_FLAG_NO_COPY_VALUE
¶ (
0x04
) This flag is set solely by application. If this flag is set, the library does not make a copy of header field value. This could improve performance.
-
enum
-
type
nghttp2_frame_type
¶ The frame types in HTTP/2 specification.
-
enum
NGHTTP2_DATA
¶ (
0
) The DATA frame.
-
enum
NGHTTP2_HEADERS
¶ (
0x01
) The HEADERS frame.
-
enum
NGHTTP2_PRIORITY
¶ (
0x02
) The PRIORITY frame.
-
enum
NGHTTP2_RST_STREAM
¶ (
0x03
) The RST_STREAM frame.
-
enum
NGHTTP2_SETTINGS
¶ (
0x04
) The SETTINGS frame.
-
enum
NGHTTP2_PUSH_PROMISE
¶ (
0x05
) The PUSH_PROMISE frame.
-
enum
NGHTTP2_PING
¶ (
0x06
) The PING frame.
-
enum
NGHTTP2_GOAWAY
¶ (
0x07
) The GOAWAY frame.
-
enum
NGHTTP2_WINDOW_UPDATE
¶ (
0x08
) The WINDOW_UPDATE frame.
-
enum
NGHTTP2_CONTINUATION
¶ (
0x09
) The CONTINUATION frame. This frame type won’t be passed to any callbacks because the library processes this frame type and its preceding HEADERS/PUSH_PROMISE as a single frame.
-
enum
-
type
nghttp2_flag
¶ The flags for HTTP/2 frames. This enum defines all flags for all frames.
-
enum
NGHTTP2_FLAG_NONE
¶ (
0
) No flag set.
-
enum
NGHTTP2_FLAG_END_STREAM
¶ (
0x01
) The END_STREAM flag.
-
enum
NGHTTP2_FLAG_END_HEADERS
¶ (
0x04
) The END_HEADERS flag.
-
enum
NGHTTP2_FLAG_ACK
¶ (
0x01
) The ACK flag.
-
enum
NGHTTP2_FLAG_PADDED
¶ (
0x08
) The PADDED flag.
-
enum
NGHTTP2_FLAG_PRIORITY
¶ (
0x20
) The PRIORITY flag.
-
enum
-
type
nghttp2_settings_id
¶ The SETTINGS ID.
-
enum
NGHTTP2_SETTINGS_HEADER_TABLE_SIZE
¶ (
0x01
) SETTINGS_HEADER_TABLE_SIZE
-
enum
NGHTTP2_SETTINGS_ENABLE_PUSH
¶ (
0x02
) SETTINGS_ENABLE_PUSH
-
enum
NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS
¶ (
0x03
) SETTINGS_MAX_CONCURRENT_STREAMS
-
enum
NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE
¶ (
0x04
) SETTINGS_INITIAL_WINDOW_SIZE
-
enum
NGHTTP2_SETTINGS_MAX_FRAME_SIZE
¶ (
0x05
) SETTINGS_MAX_FRAME_SIZE
-
enum
NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE
¶ (
0x06
) SETTINGS_MAX_HEADER_LIST_SIZE
-
enum
-
type
nghttp2_error_code
¶ The status codes for the RST_STREAM and GOAWAY frames.
-
enum
NGHTTP2_NO_ERROR
¶ (
0x00
) No errors.
-
enum
NGHTTP2_PROTOCOL_ERROR
¶ (
0x01
) PROTOCOL_ERROR
-
enum
NGHTTP2_INTERNAL_ERROR
¶ (
0x02
) INTERNAL_ERROR
-
enum
NGHTTP2_FLOW_CONTROL_ERROR
¶ (
0x03
) FLOW_CONTROL_ERROR
-
enum
NGHTTP2_SETTINGS_TIMEOUT
¶ (
0x04
) SETTINGS_TIMEOUT
-
enum
NGHTTP2_STREAM_CLOSED
¶ (
0x05
) STREAM_CLOSED
-
enum
NGHTTP2_FRAME_SIZE_ERROR
¶ (
0x06
) FRAME_SIZE_ERROR
-
enum
NGHTTP2_REFUSED_STREAM
¶ (
0x07
) REFUSED_STREAM
-
enum
NGHTTP2_CANCEL
¶ (
0x08
) CANCEL
-
enum
NGHTTP2_COMPRESSION_ERROR
¶ (
0x09
) COMPRESSION_ERROR
-
enum
NGHTTP2_CONNECT_ERROR
¶ (
0x0a
) CONNECT_ERROR
-
enum
NGHTTP2_ENHANCE_YOUR_CALM
¶ (
0x0b
) ENHANCE_YOUR_CALM
-
enum
NGHTTP2_INADEQUATE_SECURITY
¶ (
0x0c
) INADEQUATE_SECURITY
-
enum
NGHTTP2_HTTP_1_1_REQUIRED
¶ (
0x0d
) HTTP_1_1_REQUIRED
-
enum
-
type
nghttp2_data_flag
¶ The flags used to set in data_flags output parameter in
nghttp2_data_source_read_callback
.-
enum
NGHTTP2_DATA_FLAG_NONE
¶ (
0
) No flag set.
-
enum
NGHTTP2_DATA_FLAG_EOF
¶ (
0x01
) Indicates EOF was sensed.
-
enum
NGHTTP2_DATA_FLAG_NO_END_STREAM
¶ (
0x02
) Indicates that END_STREAM flag must not be set even if NGHTTP2_DATA_FLAG_EOF is set. Usually this flag is used to send trailer fields withnghttp2_submit_request()
ornghttp2_submit_response()
.
-
enum
NGHTTP2_DATA_FLAG_NO_COPY
¶ (
0x04
) Indicates that application will send complete DATA frame innghttp2_send_data_callback
.
-
enum
-
type
nghttp2_headers_category
¶ The category of HEADERS, which indicates the role of the frame. In HTTP/2 spec, request, response, push response and other arbitrary headers (e.g., trailer fields) are all called just HEADERS. To give the application the role of incoming HEADERS frame, we define several categories.
-
enum
NGHTTP2_HCAT_REQUEST
¶ (
0
) The HEADERS frame is opening new stream, which is analogous to SYN_STREAM in SPDY.
-
enum
NGHTTP2_HCAT_RESPONSE
¶ (
1
) The HEADERS frame is the first response headers, which is analogous to SYN_REPLY in SPDY.
-
enum
NGHTTP2_HCAT_PUSH_RESPONSE
¶ (
2
) The HEADERS frame is the first headers sent against reserved stream.
-
enum
NGHTTP2_HCAT_HEADERS
¶ (
3
) The HEADERS frame which does not apply for the above categories, which is analogous to HEADERS in SPDY. If non-final response (e.g., status 1xx) is used, final response HEADERS frame will be categorized here.
-
enum
-
type
nghttp2_hd_inflate_flag
¶ The flags for header inflation.
-
enum
NGHTTP2_HD_INFLATE_NONE
¶ (
0
) No flag set.
-
enum
NGHTTP2_HD_INFLATE_FINAL
¶ (
0x01
) Indicates all headers were inflated.
-
enum
NGHTTP2_HD_INFLATE_EMIT
¶ (
0x02
) Indicates a header was emitted.
-
enum
-
type
nghttp2_stream_proto_state
¶ State of stream as described in RFC 7540.
-
enum
NGHTTP2_STREAM_STATE_IDLE
¶ (
1
) idle state.
-
enum
NGHTTP2_STREAM_STATE_OPEN
¶ open state.
-
enum
NGHTTP2_STREAM_STATE_RESERVED_LOCAL
¶ reserved (local) state.
-
enum
NGHTTP2_STREAM_STATE_RESERVED_REMOTE
¶ reserved (remote) state.
-
enum
NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL
¶ half closed (local) state.
-
enum
NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE
¶ half closed (remote) state.
-
enum
NGHTTP2_STREAM_STATE_CLOSED
¶ closed state.
-
enum