Macros

Library version macros

DWNX_VERSION

Version number of the dwnx library release.

DWNX_VERSION_NUM

Numerical representation of the version number of the dwnx library release. This is a 24 bit number with 8 bits for major number, 8 bits for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.

QUIC specific macros

DWNX_MAX_VARINT

DWNX_MAX_VARINT is the maximum value which can be encoded in variable-length integer encoding.

DWNX_DEFAULT_MAX_RECORD_SIZE

DWNX_DEFAULT_MAX_RECORD_SIZE is the default maximum QMux record size.

dwnx library error codes

DWNX_ERR_INVALID_ARGUMENT

DWNX_ERR_INVALID_ARGUMENT indicates that a passed argument is invalid.

DWNX_ERR_NOBUF

DWNX_ERR_NOBUF indicates that a provided buffer does not have enough space to store data.

DWNX_ERR_PROTO

DWNX_ERR_PROTO indicates a general protocol error.

DWNX_ERR_INVALID_STATE

DWNX_ERR_INVALID_STATE indicates that a requested operation is not allowed at the current connection state.

DWNX_ERR_STREAM_ID_BLOCKED

DWNX_ERR_STREAM_ID_BLOCKED indicates that there is no spare stream ID available.

DWNX_ERR_STREAM_IN_USE

DWNX_ERR_STREAM_IN_USE indicates that a stream ID is already in use.

DWNX_ERR_STREAM_DATA_BLOCKED

DWNX_ERR_STREAM_DATA_BLOCKED indicates that stream data cannot be sent because of flow control.

DWNX_ERR_FLOW_CONTROL

DWNX_ERR_FLOW_CONTROL indicates flow control error.

DWNX_ERR_STREAM_LIMIT

DWNX_ERR_STREAM_LIMIT indicates that a remote endpoint opens more streams that is permitted.

DWNX_ERR_FINAL_SIZE

DWNX_ERR_FINAL_SIZE indicates that inconsistent final size of a stream.

DWNX_ERR_REQUIRED_TRANSPORT_PARAM

DWNX_ERR_REQUIRED_TRANSPORT_PARAM indicates that a required transport parameter is missing.

DWNX_ERR_MALFORMED_TRANSPORT_PARAM

DWNX_ERR_MALFORMED_TRANSPORT_PARAM indicates that a transport parameter is malformed.

DWNX_ERR_FRAME_ENCODING

DWNX_ERR_FRAME_ENCODING indicates there is an error in frame encoding.

DWNX_ERR_STREAM_SHUT_WR

DWNX_ERR_STREAM_SHUT_WR indicates no more data can be sent to a stream.

DWNX_ERR_STREAM_NOT_FOUND

DWNX_ERR_STREAM_NOT_FOUND indicates that a stream was not found.

DWNX_ERR_STREAM_STATE

DWNX_ERR_STREAM_STATE indicates that a requested operation is not allowed at the current stream state.

DWNX_ERR_CLOSING

DWNX_ERR_CLOSING indicates that connection is in closing state.

DWNX_ERR_DRAINING

DWNX_ERR_DRAINING indicates that connection is in draining state.

DWNX_ERR_TRANSPORT_PARAM

DWNX_ERR_TRANSPORT_PARAM indicates a general transport parameter error.

DWNX_ERR_INTERNAL

DWNX_ERR_INTERNAL indicates an internal error.

DWNX_ERR_WRITE_MORE

DWNX_ERR_WRITE_MORE indicates DWNX_WRITE_STREAM_FLAG_MORE is used and a function call succeeded.

DWNX_ERR_IDLE_CLOSE

DWNX_ERR_IDLE_CLOSE indicates the connection should be closed silently because of idle timeout.

DWNX_ERR_FATAL

DWNX_ERR_FATAL indicates that error codes less than this value is fatal error. When this error is returned, an endpoint should close connection immediately.

DWNX_ERR_NOMEM

DWNX_ERR_NOMEM indicates out of memory.

DWNX_ERR_CALLBACK_FAILURE

DWNX_ERR_CALLBACK_FAILURE indicates that user defined callback function failed.

QUIC transport error code

DWNX_NO_ERROR

DWNX_NO_ERROR is QUIC transport error code NO_ERROR.

DWNX_INTERNAL_ERROR

DWNX_INTERNAL_ERROR is QUIC transport error code INTERNAL_ERROR.

DWNX_CONNECTION_REFUSED

DWNX_CONNECTION_REFUSED is QUIC transport error code CONNECTION_REFUSED.

DWNX_FLOW_CONTROL_ERROR

DWNX_FLOW_CONTROL_ERROR is QUIC transport error code FLOW_CONTROL_ERROR.

DWNX_STREAM_LIMIT_ERROR

DWNX_STREAM_LIMIT_ERROR is QUIC transport error code STREAM_LIMIT_ERROR.

DWNX_STREAM_STATE_ERROR

DWNX_STREAM_STATE_ERROR is QUIC transport error code STREAM_STATE_ERROR.

DWNX_FINAL_SIZE_ERROR

DWNX_FINAL_SIZE_ERROR is QUIC transport error code FINAL_SIZE_ERROR.

DWNX_FRAME_ENCODING_ERROR

DWNX_FRAME_ENCODING_ERROR is QUIC transport error code FRAME_ENCODING_ERROR.

DWNX_TRANSPORT_PARAMETER_ERROR

DWNX_TRANSPORT_PARAMETER_ERROR is QUIC transport error code TRANSPORT_PARAMETER_ERROR.

DWNX_PROTOCOL_VIOLATION

DWNX_PROTOCOL_VIOLATION is QUIC transport error code PROTOCOL_VIOLATION.

DWNX_APPLICATION_ERROR

DWNX_APPLICATION_ERROR is QUIC transport error code APPLICATION_ERROR.

STREAM frame data flags

DWNX_STREAM_DATA_FLAG_NONE

DWNX_STREAM_DATA_FLAG_NONE indicates no flag set.

DWNX_STREAM_DATA_FLAG_FIN

DWNX_STREAM_DATA_FLAG_FIN indicates that this chunk of data is final piece of an incoming stream.

Stream close flags for dwnx_stream_close callback.

DWNX_STREAM_CLOSE_FLAG_NONE

DWNX_STREAM_CLOSE_FLAG_NONE indicates no flag set.

DWNX_STREAM_CLOSE_FLAG_RX_APP_ERROR_CODE_SET

DWNX_STREAM_CLOSE_FLAG_RX_APP_ERROR_CODE_SET indicates that rx_app_error_code parameter is set.

DWNX_STREAM_CLOSE_FLAG_TX_APP_ERROR_CODE_SET

DWNX_STREAM_CLOSE_FLAG_TX_APP_ERROR_CODE_SET indicates that tx_app_error_code parameter is set.

Write stream data flags

DWNX_WRITE_STREAM_FLAG_NONE

DWNX_WRITE_STREAM_FLAG_NONE indicates no flag set.

DWNX_WRITE_STREAM_FLAG_FIN

DWNX_WRITE_STREAM_FLAG_FIN indicates that a passed data is the final part of a stream.