armour libwebsockets.h against careless enum changes affecting abi

Signed-off-by: Andy Green <andy.green@linaro.org>
This commit is contained in:
Andy Green 2015-12-08 11:04:19 +08:00
parent 90a0dd6b75
commit dc0731b3a5

View file

@ -296,6 +296,10 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len);
/* extra parameter introduced in 917f43ab821 */
#define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_LEN
/*
* NOTE: These public enums are part of the abi. If you want to add one,
* add it at where specified so existing users are unaffected.
*/
enum lws_context_options {
LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT = 2,
LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME = 4,
@ -304,51 +308,59 @@ enum lws_context_options {
LWS_SERVER_OPTION_DISABLE_IPV6 = 32,
LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS = 64,
LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED = 128,
/****** add new things just above ---^ ******/
};
/*
* NOTE: These public enums are part of the abi. If you want to add one,
* add it at where specified so existing users are unaffected.
*/
enum lws_callback_reasons {
LWS_CALLBACK_ESTABLISHED,
LWS_CALLBACK_CLIENT_CONNECTION_ERROR,
LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH,
LWS_CALLBACK_CLIENT_ESTABLISHED,
LWS_CALLBACK_CLOSED,
LWS_CALLBACK_CLOSED_HTTP,
LWS_CALLBACK_RECEIVE,
LWS_CALLBACK_RECEIVE_PONG,
LWS_CALLBACK_CLIENT_RECEIVE,
LWS_CALLBACK_CLIENT_RECEIVE_PONG,
LWS_CALLBACK_CLIENT_WRITEABLE,
LWS_CALLBACK_SERVER_WRITEABLE,
LWS_CALLBACK_HTTP,
LWS_CALLBACK_HTTP_BODY,
LWS_CALLBACK_HTTP_BODY_COMPLETION,
LWS_CALLBACK_HTTP_FILE_COMPLETION,
LWS_CALLBACK_HTTP_WRITEABLE,
LWS_CALLBACK_FILTER_NETWORK_CONNECTION,
LWS_CALLBACK_FILTER_HTTP_CONNECTION,
LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED,
LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION,
LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS,
LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS,
LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION,
LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER,
LWS_CALLBACK_CONFIRM_EXTENSION_OKAY,
LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED,
LWS_CALLBACK_PROTOCOL_INIT,
LWS_CALLBACK_PROTOCOL_DESTROY,
LWS_CALLBACK_WSI_CREATE, /* always protocol[0] */
LWS_CALLBACK_WSI_DESTROY, /* always protocol[0] */
LWS_CALLBACK_GET_THREAD_ID,
LWS_CALLBACK_ESTABLISHED = 0,
LWS_CALLBACK_CLIENT_CONNECTION_ERROR = 1,
LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH = 2,
LWS_CALLBACK_CLIENT_ESTABLISHED = 3,
LWS_CALLBACK_CLOSED = 4,
LWS_CALLBACK_CLOSED_HTTP = 5,
LWS_CALLBACK_RECEIVE = 6,
LWS_CALLBACK_RECEIVE_PONG = 7,
LWS_CALLBACK_CLIENT_RECEIVE = 8,
LWS_CALLBACK_CLIENT_RECEIVE_PONG = 9,
LWS_CALLBACK_CLIENT_WRITEABLE = 10,
LWS_CALLBACK_SERVER_WRITEABLE = 11,
LWS_CALLBACK_HTTP = 12,
LWS_CALLBACK_HTTP_BODY = 13,
LWS_CALLBACK_HTTP_BODY_COMPLETION = 14,
LWS_CALLBACK_HTTP_FILE_COMPLETION = 15,
LWS_CALLBACK_HTTP_WRITEABLE = 16,
LWS_CALLBACK_FILTER_NETWORK_CONNECTION = 17,
LWS_CALLBACK_FILTER_HTTP_CONNECTION = 18,
LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED = 19,
LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION = 20,
LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS = 21,
LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS = 22,
LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION = 23,
LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER = 24,
LWS_CALLBACK_CONFIRM_EXTENSION_OKAY = 25,
LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED = 26,
LWS_CALLBACK_PROTOCOL_INIT = 27,
LWS_CALLBACK_PROTOCOL_DESTROY = 28,
LWS_CALLBACK_WSI_CREATE /* always protocol[0] */ = 29,
LWS_CALLBACK_WSI_DESTROY /* always protocol[0] */ = 30,
LWS_CALLBACK_GET_THREAD_ID = 31,
/* external poll() management support */
LWS_CALLBACK_ADD_POLL_FD,
LWS_CALLBACK_DEL_POLL_FD,
LWS_CALLBACK_CHANGE_MODE_POLL_FD,
LWS_CALLBACK_LOCK_POLL,
LWS_CALLBACK_UNLOCK_POLL,
LWS_CALLBACK_ADD_POLL_FD = 32,
LWS_CALLBACK_DEL_POLL_FD = 33,
LWS_CALLBACK_CHANGE_MODE_POLL_FD = 34,
LWS_CALLBACK_LOCK_POLL = 35,
LWS_CALLBACK_UNLOCK_POLL = 36,
LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY = 37,
/****** add new things just above ---^ ******/
LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY,
LWS_CALLBACK_USER = 1000, /* user code can use any including / above */
};
@ -402,50 +414,62 @@ struct lws_pollargs {
int prev_events; // the previous event mask
};
/*
* NOTE: These public enums are part of the abi. If you want to add one,
* add it at where specified so existing users are unaffected.
*/
enum lws_extension_callback_reasons {
LWS_EXT_CALLBACK_SERVER_CONTEXT_CONSTRUCT,
LWS_EXT_CALLBACK_CLIENT_CONTEXT_CONSTRUCT,
LWS_EXT_CALLBACK_SERVER_CONTEXT_DESTRUCT,
LWS_EXT_CALLBACK_CLIENT_CONTEXT_DESTRUCT,
LWS_EXT_CALLBACK_CONSTRUCT,
LWS_EXT_CALLBACK_CLIENT_CONSTRUCT,
LWS_EXT_CALLBACK_CHECK_OK_TO_REALLY_CLOSE,
LWS_EXT_CALLBACK_CHECK_OK_TO_PROPOSE_EXTENSION,
LWS_EXT_CALLBACK_DESTROY,
LWS_EXT_CALLBACK_DESTROY_ANY_WSI_CLOSING,
LWS_EXT_CALLBACK_ANY_WSI_ESTABLISHED,
LWS_EXT_CALLBACK_PACKET_RX_PREPARSE,
LWS_EXT_CALLBACK_PACKET_TX_PRESEND,
LWS_EXT_CALLBACK_PACKET_TX_DO_SEND,
LWS_EXT_CALLBACK_HANDSHAKE_REPLY_TX,
LWS_EXT_CALLBACK_FLUSH_PENDING_TX,
LWS_EXT_CALLBACK_EXTENDED_PAYLOAD_RX,
LWS_EXT_CALLBACK_CAN_PROXY_CLIENT_CONNECTION,
LWS_EXT_CALLBACK_1HZ,
LWS_EXT_CALLBACK_REQUEST_ON_WRITEABLE,
LWS_EXT_CALLBACK_IS_WRITEABLE,
LWS_EXT_CALLBACK_PAYLOAD_TX,
LWS_EXT_CALLBACK_PAYLOAD_RX,
LWS_EXT_CALLBACK_SERVER_CONTEXT_CONSTRUCT = 0,
LWS_EXT_CALLBACK_CLIENT_CONTEXT_CONSTRUCT = 1,
LWS_EXT_CALLBACK_SERVER_CONTEXT_DESTRUCT = 2,
LWS_EXT_CALLBACK_CLIENT_CONTEXT_DESTRUCT = 3,
LWS_EXT_CALLBACK_CONSTRUCT = 4,
LWS_EXT_CALLBACK_CLIENT_CONSTRUCT = 5,
LWS_EXT_CALLBACK_CHECK_OK_TO_REALLY_CLOSE = 6,
LWS_EXT_CALLBACK_CHECK_OK_TO_PROPOSE_EXTENSION = 7,
LWS_EXT_CALLBACK_DESTROY = 8,
LWS_EXT_CALLBACK_DESTROY_ANY_WSI_CLOSING = 9,
LWS_EXT_CALLBACK_ANY_WSI_ESTABLISHED = 10,
LWS_EXT_CALLBACK_PACKET_RX_PREPARSE = 11,
LWS_EXT_CALLBACK_PACKET_TX_PRESEND = 12,
LWS_EXT_CALLBACK_PACKET_TX_DO_SEND = 13,
LWS_EXT_CALLBACK_HANDSHAKE_REPLY_TX = 14,
LWS_EXT_CALLBACK_FLUSH_PENDING_TX = 15,
LWS_EXT_CALLBACK_EXTENDED_PAYLOAD_RX = 16,
LWS_EXT_CALLBACK_CAN_PROXY_CLIENT_CONNECTION = 17,
LWS_EXT_CALLBACK_1HZ = 18,
LWS_EXT_CALLBACK_REQUEST_ON_WRITEABLE = 19,
LWS_EXT_CALLBACK_IS_WRITEABLE = 20,
LWS_EXT_CALLBACK_PAYLOAD_TX = 21,
LWS_EXT_CALLBACK_PAYLOAD_RX = 22,
/****** add new things just above ---^ ******/
};
/*
* NOTE: These public enums are part of the abi. If you want to add one,
* add it at where specified so existing users are unaffected.
*/
enum lws_write_protocol {
LWS_WRITE_TEXT,
LWS_WRITE_BINARY,
LWS_WRITE_CONTINUATION,
LWS_WRITE_HTTP,
LWS_WRITE_TEXT = 0,
LWS_WRITE_BINARY = 1,
LWS_WRITE_CONTINUATION = 2,
LWS_WRITE_HTTP = 3,
/* special 04+ opcodes */
LWS_WRITE_CLOSE,
LWS_WRITE_PING,
LWS_WRITE_PONG,
LWS_WRITE_CLOSE = 4,
LWS_WRITE_PING = 5,
LWS_WRITE_PONG = 6,
/* Same as write_http but we know this write ends the transaction */
LWS_WRITE_HTTP_FINAL,
LWS_WRITE_HTTP_FINAL = 7,
/* HTTP2 */
LWS_WRITE_HTTP_HEADERS,
LWS_WRITE_HTTP_HEADERS = 8,
/****** add new things just above ---^ ******/
/* flags */
@ -474,102 +498,107 @@ struct lws_tokens {
* don't forget to update test server header dump accordingly
*
* these have to be kept in sync with lextable.h / minilex.c
*
* NOTE: These public enums are part of the abi. If you want to add one,
* add it at where specified so existing users are unaffected.
*/
enum lws_token_indexes {
WSI_TOKEN_GET_URI,
WSI_TOKEN_POST_URI,
WSI_TOKEN_OPTIONS_URI,
WSI_TOKEN_HOST,
WSI_TOKEN_CONNECTION,
WSI_TOKEN_UPGRADE,
WSI_TOKEN_ORIGIN,
WSI_TOKEN_DRAFT,
WSI_TOKEN_CHALLENGE,
WSI_TOKEN_EXTENSIONS,
WSI_TOKEN_KEY1,
WSI_TOKEN_KEY2,
WSI_TOKEN_PROTOCOL,
WSI_TOKEN_ACCEPT,
WSI_TOKEN_NONCE,
WSI_TOKEN_HTTP,
WSI_TOKEN_HTTP2_SETTINGS,
WSI_TOKEN_HTTP_ACCEPT,
WSI_TOKEN_HTTP_AC_REQUEST_HEADERS,
WSI_TOKEN_HTTP_IF_MODIFIED_SINCE,
WSI_TOKEN_HTTP_IF_NONE_MATCH,
WSI_TOKEN_HTTP_ACCEPT_ENCODING,
WSI_TOKEN_HTTP_ACCEPT_LANGUAGE,
WSI_TOKEN_HTTP_PRAGMA,
WSI_TOKEN_HTTP_CACHE_CONTROL,
WSI_TOKEN_HTTP_AUTHORIZATION,
WSI_TOKEN_HTTP_COOKIE,
WSI_TOKEN_HTTP_CONTENT_LENGTH,
WSI_TOKEN_HTTP_CONTENT_TYPE,
WSI_TOKEN_HTTP_DATE,
WSI_TOKEN_HTTP_RANGE,
WSI_TOKEN_HTTP_REFERER,
WSI_TOKEN_KEY,
WSI_TOKEN_VERSION,
WSI_TOKEN_SWORIGIN,
WSI_TOKEN_GET_URI = 0,
WSI_TOKEN_POST_URI = 1,
WSI_TOKEN_OPTIONS_URI = 2,
WSI_TOKEN_HOST = 3,
WSI_TOKEN_CONNECTION = 4,
WSI_TOKEN_UPGRADE = 5,
WSI_TOKEN_ORIGIN = 6,
WSI_TOKEN_DRAFT = 7,
WSI_TOKEN_CHALLENGE = 8,
WSI_TOKEN_EXTENSIONS = 9,
WSI_TOKEN_KEY1 = 10,
WSI_TOKEN_KEY2 = 11,
WSI_TOKEN_PROTOCOL = 12,
WSI_TOKEN_ACCEPT = 13,
WSI_TOKEN_NONCE = 14,
WSI_TOKEN_HTTP = 15,
WSI_TOKEN_HTTP2_SETTINGS = 16,
WSI_TOKEN_HTTP_ACCEPT = 17,
WSI_TOKEN_HTTP_AC_REQUEST_HEADERS = 18,
WSI_TOKEN_HTTP_IF_MODIFIED_SINCE = 19,
WSI_TOKEN_HTTP_IF_NONE_MATCH = 20,
WSI_TOKEN_HTTP_ACCEPT_ENCODING = 21,
WSI_TOKEN_HTTP_ACCEPT_LANGUAGE = 22,
WSI_TOKEN_HTTP_PRAGMA = 23,
WSI_TOKEN_HTTP_CACHE_CONTROL = 24,
WSI_TOKEN_HTTP_AUTHORIZATION = 25,
WSI_TOKEN_HTTP_COOKIE = 26,
WSI_TOKEN_HTTP_CONTENT_LENGTH = 27,
WSI_TOKEN_HTTP_CONTENT_TYPE = 28,
WSI_TOKEN_HTTP_DATE = 29,
WSI_TOKEN_HTTP_RANGE = 30,
WSI_TOKEN_HTTP_REFERER = 31,
WSI_TOKEN_KEY = 32,
WSI_TOKEN_VERSION = 33,
WSI_TOKEN_SWORIGIN = 34,
WSI_TOKEN_HTTP_COLON_AUTHORITY,
WSI_TOKEN_HTTP_COLON_METHOD,
WSI_TOKEN_HTTP_COLON_PATH,
WSI_TOKEN_HTTP_COLON_SCHEME,
WSI_TOKEN_HTTP_COLON_STATUS,
WSI_TOKEN_HTTP_COLON_AUTHORITY = 35,
WSI_TOKEN_HTTP_COLON_METHOD = 36,
WSI_TOKEN_HTTP_COLON_PATH = 37,
WSI_TOKEN_HTTP_COLON_SCHEME = 38,
WSI_TOKEN_HTTP_COLON_STATUS = 39,
WSI_TOKEN_HTTP_ACCEPT_CHARSET,
WSI_TOKEN_HTTP_ACCEPT_RANGES,
WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN,
WSI_TOKEN_HTTP_AGE,
WSI_TOKEN_HTTP_ALLOW,
WSI_TOKEN_HTTP_CONTENT_DISPOSITION,
WSI_TOKEN_HTTP_CONTENT_ENCODING,
WSI_TOKEN_HTTP_CONTENT_LANGUAGE,
WSI_TOKEN_HTTP_CONTENT_LOCATION,
WSI_TOKEN_HTTP_CONTENT_RANGE,
WSI_TOKEN_HTTP_ETAG,
WSI_TOKEN_HTTP_EXPECT,
WSI_TOKEN_HTTP_EXPIRES,
WSI_TOKEN_HTTP_FROM,
WSI_TOKEN_HTTP_IF_MATCH,
WSI_TOKEN_HTTP_IF_RANGE,
WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE,
WSI_TOKEN_HTTP_LAST_MODIFIED,
WSI_TOKEN_HTTP_LINK,
WSI_TOKEN_HTTP_LOCATION,
WSI_TOKEN_HTTP_MAX_FORWARDS,
WSI_TOKEN_HTTP_PROXY_AUTHENTICATE,
WSI_TOKEN_HTTP_PROXY_AUTHORIZATION,
WSI_TOKEN_HTTP_REFRESH,
WSI_TOKEN_HTTP_RETRY_AFTER,
WSI_TOKEN_HTTP_SERVER,
WSI_TOKEN_HTTP_SET_COOKIE,
WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY,
WSI_TOKEN_HTTP_TRANSFER_ENCODING,
WSI_TOKEN_HTTP_USER_AGENT,
WSI_TOKEN_HTTP_VARY,
WSI_TOKEN_HTTP_VIA,
WSI_TOKEN_HTTP_WWW_AUTHENTICATE,
WSI_TOKEN_HTTP_ACCEPT_CHARSET = 40,
WSI_TOKEN_HTTP_ACCEPT_RANGES = 41,
WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN = 42,
WSI_TOKEN_HTTP_AGE = 43,
WSI_TOKEN_HTTP_ALLOW = 44,
WSI_TOKEN_HTTP_CONTENT_DISPOSITION = 45,
WSI_TOKEN_HTTP_CONTENT_ENCODING = 46,
WSI_TOKEN_HTTP_CONTENT_LANGUAGE = 47,
WSI_TOKEN_HTTP_CONTENT_LOCATION = 48,
WSI_TOKEN_HTTP_CONTENT_RANGE = 49,
WSI_TOKEN_HTTP_ETAG = 50,
WSI_TOKEN_HTTP_EXPECT = 51,
WSI_TOKEN_HTTP_EXPIRES = 52,
WSI_TOKEN_HTTP_FROM = 53,
WSI_TOKEN_HTTP_IF_MATCH = 54,
WSI_TOKEN_HTTP_IF_RANGE = 55,
WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE = 56,
WSI_TOKEN_HTTP_LAST_MODIFIED = 57,
WSI_TOKEN_HTTP_LINK = 58,
WSI_TOKEN_HTTP_LOCATION = 59,
WSI_TOKEN_HTTP_MAX_FORWARDS = 60,
WSI_TOKEN_HTTP_PROXY_AUTHENTICATE = 61,
WSI_TOKEN_HTTP_PROXY_AUTHORIZATION = 62,
WSI_TOKEN_HTTP_REFRESH = 63,
WSI_TOKEN_HTTP_RETRY_AFTER = 64,
WSI_TOKEN_HTTP_SERVER = 65,
WSI_TOKEN_HTTP_SET_COOKIE = 66,
WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY = 67,
WSI_TOKEN_HTTP_TRANSFER_ENCODING = 68,
WSI_TOKEN_HTTP_USER_AGENT = 69,
WSI_TOKEN_HTTP_VARY = 70,
WSI_TOKEN_HTTP_VIA = 71,
WSI_TOKEN_HTTP_WWW_AUTHENTICATE = 72,
WSI_TOKEN_PROXY,
WSI_TOKEN_PATCH_URI,
WSI_TOKEN_PUT_URI,
WSI_TOKEN_DELETE_URI,
WSI_TOKEN_PATCH_URI = 73,
WSI_TOKEN_PUT_URI = 74,
WSI_TOKEN_DELETE_URI = 75,
WSI_TOKEN_HTTP_URI_ARGS,
WSI_TOKEN_HTTP_URI_ARGS = 76,
/* use token storage to stash these */
_WSI_TOKEN_CLIENT_SENT_PROTOCOLS,
_WSI_TOKEN_CLIENT_PEER_ADDRESS,
_WSI_TOKEN_CLIENT_URI,
_WSI_TOKEN_CLIENT_HOST,
_WSI_TOKEN_CLIENT_ORIGIN,
_WSI_TOKEN_CLIENT_SENT_PROTOCOLS = 77,
_WSI_TOKEN_CLIENT_PEER_ADDRESS = 78,
_WSI_TOKEN_CLIENT_URI = 79,
_WSI_TOKEN_CLIENT_HOST = 80,
_WSI_TOKEN_CLIENT_ORIGIN = 81,
/****** add new things just above ---^ ******/
/* always last real token index*/
WSI_TOKEN_COUNT,
/* parser state additions */
WSI_TOKEN_NAME_PART,
WSI_TOKEN_SKIPPING,
@ -578,7 +607,7 @@ enum lws_token_indexes {
WSI_INIT_TOKEN_MUXURL,
};
struct lws_token_limits {
struct lws_token_limits {//
unsigned short token_limit[WSI_TOKEN_COUNT];
};
@ -671,6 +700,10 @@ struct lws_token_limits {
(e.g., the server certificate can't be verified).
*/
/*
* NOTE: These public enums are part of the abi. If you want to add one,
* add it at where specified so existing users are unaffected.
*/
enum lws_close_status {
LWS_CLOSE_STATUS_NOSTATUS = 0,
LWS_CLOSE_STATUS_NORMAL = 1000,
@ -686,6 +719,8 @@ enum lws_close_status {
LWS_CLOSE_STATUS_EXTENSION_REQUIRED = 1010,
LWS_CLOSE_STATUS_UNEXPECTED_CONDITION = 1011,
LWS_CLOSE_STATUS_TLS_FAILURE = 1015,
/****** add new things just above ---^ ******/
LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY = 9999,
};
@ -1334,20 +1369,26 @@ lws_service_fd(struct lws_context *context,
LWS_VISIBLE LWS_EXTERN void *
lws_context_user(struct lws_context *context);
/*
* NOTE: These public enums are part of the abi. If you want to add one,
* add it at where specified so existing users are unaffected.
*/
enum pending_timeout {
NO_PENDING_TIMEOUT = 0,
PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE,
PENDING_TIMEOUT_AWAITING_CONNECT_RESPONSE,
PENDING_TIMEOUT_ESTABLISH_WITH_SERVER,
PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE,
PENDING_TIMEOUT_AWAITING_PING,
PENDING_TIMEOUT_CLOSE_ACK,
PENDING_TIMEOUT_AWAITING_EXTENSION_CONNECT_RESPONSE,
PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE,
PENDING_TIMEOUT_SSL_ACCEPT,
PENDING_TIMEOUT_HTTP_CONTENT,
PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND,
PENDING_FLUSH_STORED_SEND_BEFORE_CLOSE,
NO_PENDING_TIMEOUT = 0,
PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE = 1,
PENDING_TIMEOUT_AWAITING_CONNECT_RESPONSE = 2,
PENDING_TIMEOUT_ESTABLISH_WITH_SERVER = 3,
PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE = 4,
PENDING_TIMEOUT_AWAITING_PING = 5,
PENDING_TIMEOUT_CLOSE_ACK = 6,
PENDING_TIMEOUT_AWAITING_EXTENSION_CONNECT_RESPONSE = 7,
PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE = 8,
PENDING_TIMEOUT_SSL_ACCEPT = 9,
PENDING_TIMEOUT_HTTP_CONTENT = 10,
PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND = 11,
PENDING_FLUSH_STORED_SEND_BEFORE_CLOSE = 12,
/****** add new things just above ---^ ******/
};
LWS_VISIBLE LWS_EXTERN void