libwebsockets
Lightweight C library for HTML5 websockets
libwebsockets.h File Reference

Go to the source code of this file.

Data Structures

struct  lws_pollfd
 
struct  pollfd
 
struct  timer_mapping
 
struct  lws_group_member
 
struct  lws_esp32
 
struct  lws_esp32_image
 
struct  lws_pollargs
 
struct  lws_ssl_info
 
struct  lws_acme_cert_aging_args
 
struct  lws_genhash_ctx
 
struct  lws_genhmac_ctx
 
struct  lws_genrsa_ctx
 
struct  lws_genrsa_element
 
struct  lws_genrsa_elements
 
struct  lws_jwk
 
struct  lws_ext_options
 
struct  lws_ext_option_arg
 
struct  lws_extension
 
struct  lws_protocols
 
struct  lws_plugin_capability
 
struct  lws_plugin
 
struct  lwsgw_hash_bin
 
struct  lwsgw_hash
 
struct  lws_session_info
 
struct  lws_gs_event_args
 
struct  lws_context_creation_info
 
struct  lws_protocol_vhost_options
 
struct  lws_http_mount
 
struct  lws_client_connect_info
 
struct  lws_process_html_args
 
struct  lws_process_html_state
 
struct  lws_tokens
 
struct  lws_token_limits
 
struct  lws_write_passthru
 
union  lws_sock_file_fd_type
 
struct  lws_udp
 
struct  lws_dll
 
struct  lws_dll_lws
 
struct  lws_wifi_scan
 
union  lws_tls_cert_info_results
 
struct  lws_cgi_args
 
struct  lws_fop_fd
 
struct  lws_fops_index
 
struct  lws_plat_file_ops
 
struct  lws_email
 
struct  _lejp_stack
 
struct  lejp_ctx
 

Typedefs

typedef unsigned long long lws_intptr_t
 
typedef int64_t lws_usec_t
 
typedef SOCKET lws_sockfd_type
 
typedef HANDLE lws_filefd_type
 
typedef TimerHandle_t uv_timer_t
 
typedef void uv_cb_t(uv_timer_t *)
 
typedef void * uv_handle_t
 
typedef void(* lws_cb_scan_done) (uint16_t count, wifi_ap_record_t *recs, void *arg)
 
typedef unsigned __int32 uint32_t
 
typedef unsigned __int16 uint16_t
 
typedef unsigned __int8 uint8_t
 
typedef unsigned long long lws_filepos_t
 
typedef long long lws_fileofs_t
 
typedef uint32_t lws_fop_flags_t
 
typedef int lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len)
 
typedef int lws_extension_callback_function(struct lws_context *context, const struct lws_extension *ext, struct lws *wsi, enum lws_extension_callback_reasons reason, void *user, void *in, size_t len)
 
typedef int(* lws_plugin_init_func) (struct lws_context *, struct lws_plugin_capability *)
 
typedef int(* lws_plugin_destroy_func) (struct lws_context *)
 
typedef int(* lws_reload_func) (void)
 
typedef const char *(* lws_process_html_state_cb) (void *data, int index)
 
typedef int(* lws_spa_fileupload_cb) (void *data, const char *name, const char *filename, char *buf, int len, enum lws_spa_fileupload_states state)
 
typedef struct lws_fop_fdlws_fop_fd_t
 
typedef signed char(* lejp_callback) (struct lejp_ctx *ctx, char reason)
 

Enumerations

enum  lws_log_levels {
  LLL_ERR = 1 << 0, LLL_WARN = 1 << 1, LLL_NOTICE = 1 << 2, LLL_INFO = 1 << 3,
  LLL_DEBUG = 1 << 4, LLL_PARSER = 1 << 5, LLL_HEADER = 1 << 6, LLL_EXT = 1 << 7,
  LLL_CLIENT = 1 << 8, LLL_LATENCY = 1 << 9, LLL_USER = 1 << 10, LLL_COUNT = 11
}
 
enum  genled_state {
  LWSESP32_GENLED__INIT, LWSESP32_GENLED__LOST_NETWORK, LWSESP32_GENLED__NO_NETWORK, LWSESP32_GENLED__CONN_AP,
  LWSESP32_GENLED__GOT_IP, LWSESP32_GENLED__OK
}
 
enum  lws_close_status {
  LWS_CLOSE_STATUS_NOSTATUS = 0, LWS_CLOSE_STATUS_NORMAL = 1000, LWS_CLOSE_STATUS_GOINGAWAY = 1001, LWS_CLOSE_STATUS_PROTOCOL_ERR = 1002,
  LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE = 1003, LWS_CLOSE_STATUS_RESERVED = 1004, LWS_CLOSE_STATUS_NO_STATUS = 1005, LWS_CLOSE_STATUS_ABNORMAL_CLOSE = 1006,
  LWS_CLOSE_STATUS_INVALID_PAYLOAD = 1007, LWS_CLOSE_STATUS_POLICY_VIOLATION = 1008, LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE = 1009, LWS_CLOSE_STATUS_EXTENSION_REQUIRED = 1010,
  LWS_CLOSE_STATUS_UNEXPECTED_CONDITION = 1011, LWS_CLOSE_STATUS_TLS_FAILURE = 1015, LWS_CLOSE_STATUS_CLIENT_TRANSACTION_DONE = 2000, LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY = 9999
}
 
enum  lws_cert_update_state {
  LWS_CUS_IDLE, LWS_CUS_STARTING, LWS_CUS_SUCCESS, LWS_CUS_FAILED,
  LWS_CUS_CREATE_KEYS, LWS_CUS_REG, LWS_CUS_AUTH, LWS_CUS_CHALLENGE,
  LWS_CUS_CREATE_REQ, LWS_CUS_REQ, LWS_CUS_CONFIRM, LWS_CUS_ISSUE
}
 
enum  {
  LWS_TLS_REQ_ELEMENT_COUNTRY, LWS_TLS_REQ_ELEMENT_STATE, LWS_TLS_REQ_ELEMENT_LOCALITY, LWS_TLS_REQ_ELEMENT_ORGANIZATION,
  LWS_TLS_REQ_ELEMENT_COMMON_NAME, LWS_TLS_REQ_ELEMENT_EMAIL, LWS_TLS_REQ_ELEMENT_COUNT, LWS_TLS_SET_DIR_URL = LWS_TLS_REQ_ELEMENT_COUNT,
  LWS_TLS_SET_AUTH_PATH, LWS_TLS_SET_CERT_PATH, LWS_TLS_SET_KEY_PATH, LWS_TLS_TOTAL_COUNT
}
 
enum  lws_callback_reasons {
  LWS_CALLBACK_PROTOCOL_INIT = 27, LWS_CALLBACK_PROTOCOL_DESTROY = 28, LWS_CALLBACK_WSI_CREATE = 29, LWS_CALLBACK_WSI_DESTROY = 30,
  LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49, LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50, 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_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY = 37, LWS_CALLBACK_SSL_INFO = 67, LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION = 58,
  LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED = 19, 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_CLOSED_HTTP = 5, LWS_CALLBACK_FILTER_HTTP_CONNECTION = 18,
  LWS_CALLBACK_ADD_HEADERS = 53, LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51, LWS_CALLBACK_PROCESS_HTML = 52, LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44,
  LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45, LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48, LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46, LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47,
  LWS_CALLBACK_CLIENT_HTTP_WRITEABLE = 57, LWS_CALLBACK_ESTABLISHED = 0, LWS_CALLBACK_CLOSED = 4, LWS_CALLBACK_SERVER_WRITEABLE = 11,
  LWS_CALLBACK_RECEIVE = 6, LWS_CALLBACK_RECEIVE_PONG = 7, LWS_CALLBACK_WS_PEER_INITIATED_CLOSE = 38, LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION = 20,
  LWS_CALLBACK_CONFIRM_EXTENSION_OKAY = 25, LWS_CALLBACK_CLIENT_CONNECTION_ERROR = 1, LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH = 2, LWS_CALLBACK_CLIENT_ESTABLISHED = 3,
  LWS_CALLBACK_CLIENT_CLOSED = 75, LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER = 24, LWS_CALLBACK_CLIENT_RECEIVE = 8, LWS_CALLBACK_CLIENT_RECEIVE_PONG = 9,
  LWS_CALLBACK_CLIENT_WRITEABLE = 10, LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED = 26, LWS_CALLBACK_WS_EXT_DEFAULTS = 39, LWS_CALLBACK_FILTER_NETWORK_CONNECTION = 17,
  LWS_CALLBACK_GET_THREAD_ID = 31, 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_CGI = 40, LWS_CALLBACK_CGI_TERMINATED = 41,
  LWS_CALLBACK_CGI_STDIN_DATA = 42, LWS_CALLBACK_CGI_STDIN_COMPLETED = 43, LWS_CALLBACK_CGI_PROCESS_ATTACH = 70, LWS_CALLBACK_SESSION_INFO = 54,
  LWS_CALLBACK_GS_EVENT = 55, LWS_CALLBACK_HTTP_PMO = 56, LWS_CALLBACK_RAW_RX = 59, LWS_CALLBACK_RAW_CLOSE = 60,
  LWS_CALLBACK_RAW_WRITEABLE = 61, LWS_CALLBACK_RAW_ADOPT = 62, LWS_CALLBACK_RAW_ADOPT_FILE = 63, LWS_CALLBACK_RAW_RX_FILE = 64,
  LWS_CALLBACK_RAW_WRITEABLE_FILE = 65, LWS_CALLBACK_RAW_CLOSE_FILE = 66, LWS_CALLBACK_TIMER = 73, LWS_CALLBACK_EVENT_WAIT_CANCELLED = 71,
  LWS_CALLBACK_CHILD_CLOSING = 69, LWS_CALLBACK_CHILD_WRITE_VIA_PARENT = 68, LWS_CALLBACK_VHOST_CERT_AGING = 72, LWS_CALLBACK_VHOST_CERT_UPDATE = 74,
  LWS_CALLBACK_USER = 1000
}
 
enum  lws_genhash_types { LWS_GENHASH_TYPE_SHA1, LWS_GENHASH_TYPE_SHA256, LWS_GENHASH_TYPE_SHA384, LWS_GENHASH_TYPE_SHA512 }
 
enum  lws_genhmac_types { LWS_GENHMAC_TYPE_SHA256, LWS_GENHMAC_TYPE_SHA384, LWS_GENHMAC_TYPE_SHA512 }
 
enum  enum_jwk_tok {
  JWK_KEY_E, JWK_KEY_N, JWK_KEY_D, JWK_KEY_P,
  JWK_KEY_Q, JWK_KEY_DP, JWK_KEY_DQ, JWK_KEY_QI,
  JWK_KTY, JWK_KEY
}
 
enum  lws_extension_callback_reasons {
  LWS_EXT_CB_CONSTRUCT = 4, LWS_EXT_CB_CLIENT_CONSTRUCT = 5, LWS_EXT_CB_DESTROY = 8, LWS_EXT_CB_PACKET_TX_PRESEND = 12,
  LWS_EXT_CB_PAYLOAD_TX = 21, LWS_EXT_CB_PAYLOAD_RX = 22, LWS_EXT_CB_OPTION_DEFAULT = 23, LWS_EXT_CB_OPTION_SET = 24,
  LWS_EXT_CB_OPTION_CONFIRM = 25, LWS_EXT_CB_NAMED_OPTION_SET = 26
}
 
enum  lws_ext_options_types { EXTARG_NONE, EXTARG_DEC, EXTARG_OPT_DEC }
 
enum  lwsgs_auth_bits { LWSGS_AUTH_LOGGED_IN = 1, LWSGS_AUTH_ADMIN = 2, LWSGS_AUTH_VERIFIED = 4, LWSGS_AUTH_FORGOT_FLOW = 8 }
 
enum  lws_gs_event { LWSGSE_CREATED, LWSGSE_DELETED }
 
enum  lws_context_options {
  LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT, LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME = (1 << 2), LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT, LWS_SERVER_OPTION_LIBEV = (1 << 4),
  LWS_SERVER_OPTION_DISABLE_IPV6 = (1 << 5), LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS = (1 << 6), LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED = (1 << 7), LWS_SERVER_OPTION_VALIDATE_UTF8 = (1 << 8),
  LWS_SERVER_OPTION_SSL_ECDH, LWS_SERVER_OPTION_LIBUV = (1 << 10), LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS, LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT = (1 << 12),
  LWS_SERVER_OPTION_EXPLICIT_VHOSTS = (1 << 13), LWS_SERVER_OPTION_UNIX_SOCK = (1 << 14), LWS_SERVER_OPTION_STS = (1 << 15), LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY = (1 << 16),
  LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE = (1 << 17), LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN = (1 << 18), LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN = (1 << 19), LWS_SERVER_OPTION_FALLBACK_TO_RAW = (1 << 20),
  LWS_SERVER_OPTION_LIBEVENT = (1 << 21), LWS_SERVER_OPTION_ONLY_RAW = (1 << 22), LWS_SERVER_OPTION_ALLOW_LISTEN_SHARE = (1 << 23), LWS_SERVER_OPTION_CREATE_VHOST_SSL_CTX = (1 << 24),
  LWS_SERVER_OPTION_SKIP_PROTOCOL_INIT = (1 << 25), LWS_SERVER_OPTION_IGNORE_MISSING_CERT = (1 << 26)
}
 
enum  lws_mount_protocols {
  LWSMPRO_HTTP = 0, LWSMPRO_HTTPS = 1, LWSMPRO_FILE = 2, LWSMPRO_CGI = 3,
  LWSMPRO_REDIR_HTTP = 4, LWSMPRO_REDIR_HTTPS = 5, LWSMPRO_CALLBACK = 6
}
 
enum  lws_client_connect_ssl_connection_flags {
  LCCSCF_USE_SSL = (1 << 0), LCCSCF_ALLOW_SELFSIGNED = (1 << 1), LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 << 2), LCCSCF_ALLOW_EXPIRED = (1 << 3),
  LCCSCF_PIPELINE = (1 << 16)
}
 
enum  http_status {
  HTTP_STATUS_CONTINUE = 100, HTTP_STATUS_OK = 200, HTTP_STATUS_NO_CONTENT = 204, HTTP_STATUS_PARTIAL_CONTENT = 206,
  HTTP_STATUS_MOVED_PERMANENTLY = 301, HTTP_STATUS_FOUND = 302, HTTP_STATUS_SEE_OTHER = 303, HTTP_STATUS_NOT_MODIFIED = 304,
  HTTP_STATUS_BAD_REQUEST = 400, HTTP_STATUS_UNAUTHORIZED, HTTP_STATUS_PAYMENT_REQUIRED, HTTP_STATUS_FORBIDDEN,
  HTTP_STATUS_NOT_FOUND, HTTP_STATUS_METHOD_NOT_ALLOWED, HTTP_STATUS_NOT_ACCEPTABLE, HTTP_STATUS_PROXY_AUTH_REQUIRED,
  HTTP_STATUS_REQUEST_TIMEOUT, HTTP_STATUS_CONFLICT, HTTP_STATUS_GONE, HTTP_STATUS_LENGTH_REQUIRED,
  HTTP_STATUS_PRECONDITION_FAILED, HTTP_STATUS_REQ_ENTITY_TOO_LARGE, HTTP_STATUS_REQ_URI_TOO_LONG, HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE,
  HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE, HTTP_STATUS_EXPECTATION_FAILED, HTTP_STATUS_INTERNAL_SERVER_ERROR = 500, HTTP_STATUS_NOT_IMPLEMENTED,
  HTTP_STATUS_BAD_GATEWAY, HTTP_STATUS_SERVICE_UNAVAILABLE, HTTP_STATUS_GATEWAY_TIMEOUT, HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED
}
 
enum  lws_token_indexes {
  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 = 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 = 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_PATCH_URI = 73, WSI_TOKEN_PUT_URI = 74, WSI_TOKEN_DELETE_URI = 75,
  WSI_TOKEN_HTTP_URI_ARGS = 76, WSI_TOKEN_PROXY = 77, WSI_TOKEN_HTTP_X_REAL_IP = 78, WSI_TOKEN_HTTP1_0 = 79,
  WSI_TOKEN_X_FORWARDED_FOR = 80, WSI_TOKEN_CONNECT = 81, WSI_TOKEN_HEAD_URI = 82, WSI_TOKEN_TE = 83,
  WSI_TOKEN_REPLAY_NONCE = 84, WSI_TOKEN_COLON_PROTOCOL = 85, WSI_TOKEN_X_AUTH_TOKEN = 86, _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_METHOD, _WSI_TOKEN_CLIENT_IFACE, _WSI_TOKEN_CLIENT_ALPN, WSI_TOKEN_COUNT,
  WSI_TOKEN_NAME_PART, WSI_TOKEN_SKIPPING, WSI_TOKEN_SKIPPING_SAW_CR, WSI_PARSING_COMPLETE,
  WSI_INIT_TOKEN_MUXURL
}
 
enum  lws_spa_fileupload_states { LWS_UFS_CONTENT, LWS_UFS_FINAL_CONTENT, LWS_UFS_OPEN }
 
enum  pending_timeout {
  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_UNUSED1 = 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, PENDING_TIMEOUT_SHUTDOWN_FLUSH = 13, PENDING_TIMEOUT_CGI = 14, PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE = 15,
  PENDING_TIMEOUT_WS_PONG_CHECK_SEND_PING = 16, PENDING_TIMEOUT_WS_PONG_CHECK_GET_PONG = 17, PENDING_TIMEOUT_CLIENT_ISSUE_PAYLOAD = 18, PENDING_TIMEOUT_AWAITING_SOCKS_GREETING_REPLY = 19,
  PENDING_TIMEOUT_AWAITING_SOCKS_CONNECT_REPLY = 20, PENDING_TIMEOUT_AWAITING_SOCKS_AUTH_REPLY = 21, PENDING_TIMEOUT_KILLED_BY_SSL_INFO = 22, PENDING_TIMEOUT_KILLED_BY_PARENT = 23,
  PENDING_TIMEOUT_CLOSE_SEND = 24, PENDING_TIMEOUT_HOLDING_AH = 25, PENDING_TIMEOUT_UDP_IDLE = 26, PENDING_TIMEOUT_CLIENT_CONN_IDLE = 27,
  PENDING_TIMEOUT_LAGGING = 28, PENDING_TIMEOUT_USER_REASON_BASE = 1000
}
 
enum  lws_write_protocol {
  LWS_WRITE_TEXT = 0, LWS_WRITE_BINARY = 1, LWS_WRITE_CONTINUATION = 2, LWS_WRITE_HTTP = 3,
  LWS_WRITE_PING = 5, LWS_WRITE_PONG = 6, LWS_WRITE_HTTP_FINAL = 7, LWS_WRITE_HTTP_HEADERS = 8,
  LWS_WRITE_HTTP_HEADERS_CONTINUATION = 9, LWS_WRITE_NO_FIN = 0x40, LWS_WRITE_H2_STREAM_END = 0x80, LWS_WRITE_CLIENT_IGNORE_XOR_MASK = 0x80
}
 
enum  {
  LWS_RXFLOW_REASON_USER_BOOL = (1 << 0), LWS_RXFLOW_REASON_HTTP_RXBUFFER = (1 << 6), LWS_RXFLOW_REASON_H2_PPS_PENDING = (1 << 7), LWS_RXFLOW_REASON_APPLIES = (1 << 14),
  LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT = (1 << 13), LWS_RXFLOW_REASON_APPLIES_ENABLE, LWS_RXFLOW_REASON_APPLIES_DISABLE = LWS_RXFLOW_REASON_APPLIES, LWS_RXFLOW_REASON_FLAG_PROCESS_NOW = (1 << 12)
}
 
enum  lws_adoption_type {
  LWS_ADOPT_RAW_FILE_DESC = 0, LWS_ADOPT_HTTP = 1, LWS_ADOPT_SOCKET = 2, LWS_ADOPT_ALLOW_SSL = 4,
  LWS_ADOPT_WS_PARENTIO = 8, LWS_ADOPT_FLAG_UDP = 16, LWS_ADOPT_RAW_SOCKET_UDP = LWS_ADOPT_SOCKET | LWS_ADOPT_FLAG_UDP
}
 
enum  lws_tls_cert_info {
  LWS_TLS_CERT_INFO_VALIDITY_FROM, LWS_TLS_CERT_INFO_VALIDITY_TO, LWS_TLS_CERT_INFO_COMMON_NAME, LWS_TLS_CERT_INFO_ISSUER_NAME,
  LWS_TLS_CERT_INFO_USAGE, LWS_TLS_CERT_INFO_VERIFIED, LWS_TLS_CERT_INFO_OPAQUE_PUBLIC_KEY
}
 
enum  lws_enum_stdinouterr { LWS_STDIN = 0, LWS_STDOUT = 1, LWS_STDERR = 2 }
 
enum  lws_cgi_hdr_state {
  LCHS_HEADER, LCHS_CR1, LCHS_LF1, LCHS_CR2,
  LCHS_LF2, LHCS_RESPONSE, LHCS_DUMP_HEADERS, LHCS_PAYLOAD,
  LCHS_SINGLE_0A
}
 
enum  lwsgs_smtp_states {
  LGSSMTP_IDLE, LGSSMTP_CONNECTING, LGSSMTP_CONNECTED, LGSSMTP_SENT_HELO,
  LGSSMTP_SENT_FROM, LGSSMTP_SENT_TO, LGSSMTP_SENT_DATA, LGSSMTP_SENT_BODY,
  LGSSMTP_SENT_QUIT
}
 
enum  lejp_states {
  LEJP_IDLE = 0, LEJP_MEMBERS = 1, LEJP_M_P = 2, LEJP_MP_STRING = LEJP_FLAG_WS_KEEP | 3,
  LEJP_MP_STRING_ESC = LEJP_FLAG_WS_KEEP | 4, LEJP_MP_STRING_ESC_U1 = LEJP_FLAG_WS_KEEP | 5, LEJP_MP_STRING_ESC_U2 = LEJP_FLAG_WS_KEEP | 6, LEJP_MP_STRING_ESC_U3 = LEJP_FLAG_WS_KEEP | 7,
  LEJP_MP_STRING_ESC_U4 = LEJP_FLAG_WS_KEEP | 8, LEJP_MP_DELIM = 9, LEJP_MP_VALUE = 10, LEJP_MP_VALUE_NUM_INT = LEJP_FLAG_WS_KEEP | 11,
  LEJP_MP_VALUE_NUM_EXP = LEJP_FLAG_WS_KEEP | 12, LEJP_MP_VALUE_TOK = LEJP_FLAG_WS_KEEP | 13, LEJP_MP_COMMA_OR_END = 14, LEJP_MP_ARRAY_END = 15
}
 
enum  lejp_reasons {
  LEJP_CONTINUE = -1, LEJP_REJECT_IDLE_NO_BRACE = -2, LEJP_REJECT_MEMBERS_NO_CLOSE = -3, LEJP_REJECT_MP_NO_OPEN_QUOTE = -4,
  LEJP_REJECT_MP_STRING_UNDERRUN = -5, LEJP_REJECT_MP_ILLEGAL_CTRL = -6, LEJP_REJECT_MP_STRING_ESC_ILLEGAL_ESC = -7, LEJP_REJECT_ILLEGAL_HEX = -8,
  LEJP_REJECT_MP_DELIM_MISSING_COLON = -9, LEJP_REJECT_MP_DELIM_BAD_VALUE_START = -10, LEJP_REJECT_MP_VAL_NUM_INT_NO_FRAC = -11, LEJP_REJECT_MP_VAL_NUM_FORMAT = -12,
  LEJP_REJECT_MP_VAL_NUM_EXP_BAD_EXP = -13, LEJP_REJECT_MP_VAL_TOK_UNKNOWN = -14, LEJP_REJECT_MP_C_OR_E_UNDERF = -15, LEJP_REJECT_MP_C_OR_E_NOTARRAY = -16,
  LEJP_REJECT_MP_ARRAY_END_MISSING = -17, LEJP_REJECT_STACK_OVERFLOW = -18, LEJP_REJECT_MP_DELIM_ISTACK = -19, LEJP_REJECT_NUM_TOO_LONG = -20,
  LEJP_REJECT_MP_C_OR_E_NEITHER = -21, LEJP_REJECT_UNKNOWN = -22, LEJP_REJECT_CALLBACK = -23
}
 
enum  lejp_callbacks {
  LEJPCB_CONSTRUCTED = 0, LEJPCB_DESTRUCTED = 1, LEJPCB_START = 2, LEJPCB_COMPLETE = 3,
  LEJPCB_FAILED = 4, LEJPCB_PAIR_NAME = 5, LEJPCB_VAL_TRUE = LEJP_FLAG_CB_IS_VALUE | 6, LEJPCB_VAL_FALSE = LEJP_FLAG_CB_IS_VALUE | 7,
  LEJPCB_VAL_NULL = LEJP_FLAG_CB_IS_VALUE | 8, LEJPCB_VAL_NUM_INT = LEJP_FLAG_CB_IS_VALUE | 9, LEJPCB_VAL_NUM_FLOAT = LEJP_FLAG_CB_IS_VALUE | 10, LEJPCB_VAL_STR_START = 11,
  LEJPCB_VAL_STR_CHUNK = LEJP_FLAG_CB_IS_VALUE | 12, LEJPCB_VAL_STR_END = LEJP_FLAG_CB_IS_VALUE | 13, LEJPCB_ARRAY_START = 14, LEJPCB_ARRAY_END = 15,
  LEJPCB_OBJECT_START = 16, LEJPCB_OBJECT_END = 17
}
 
enum  num_flags { LEJP_SEEN_MINUS = (1 << 0), LEJP_SEEN_POINT = (1 << 1), LEJP_SEEN_POST_POINT = (1 << 2), LEJP_SEEN_EXP = (1 << 3) }
 
enum  {
  LWSSTATS_C_CONNECTIONS, LWSSTATS_C_API_CLOSE, LWSSTATS_C_API_READ, LWSSTATS_C_API_LWS_WRITE,
  LWSSTATS_C_API_WRITE, LWSSTATS_C_WRITE_PARTIALS, LWSSTATS_C_WRITEABLE_CB_REQ, LWSSTATS_C_WRITEABLE_CB_EFF_REQ,
  LWSSTATS_C_WRITEABLE_CB, LWSSTATS_C_SSL_CONNECTIONS_FAILED, LWSSTATS_C_SSL_CONNECTIONS_ACCEPTED, LWSSTATS_C_SSL_CONNECTIONS_ACCEPT_SPIN,
  LWSSTATS_C_SSL_CONNS_HAD_RX, LWSSTATS_C_TIMEOUTS, LWSSTATS_C_SERVICE_ENTRY, LWSSTATS_B_READ,
  LWSSTATS_B_WRITE, LWSSTATS_B_PARTIALS_ACCEPTED_PARTS, LWSSTATS_MS_SSL_CONNECTIONS_ACCEPTED_DELAY, LWSSTATS_MS_WRITABLE_DELAY,
  LWSSTATS_MS_WORST_WRITABLE_DELAY, LWSSTATS_MS_SSL_RX_DELAY, LWSSTATS_C_PEER_LIMIT_AH_DENIED, LWSSTATS_C_PEER_LIMIT_WSI_DENIED,
  LWSSTATS_SIZE
}
 

Functions

LWS_VISIBLE LWS_EXTERN void _lws_log (int filter, const char *format,...) LWS_FORMAT(2)
 
LWS_VISIBLE LWS_EXTERN void _lws_logv (int filter, const char *format, va_list vl)
 
LWS_VISIBLE LWS_EXTERN int lwsl_timestamp (int level, char *p, int len)
 
LWS_VISIBLE LWS_EXTERN void lwsl_hexdump_level (int level, const void *vbuf, size_t len)
 
LWS_VISIBLE LWS_EXTERN void lwsl_hexdump (const void *buf, size_t len)
 
LWS_VISIBLE LWS_EXTERN void lws_set_log_level (int level, void(*log_emit_function)(int level, const char *line))
 
LWS_VISIBLE LWS_EXTERN void lwsl_emit_syslog (int level, const char *line)
 
LWS_VISIBLE LWS_EXTERN int lwsl_visible (int level)
 
void esp32_uvtimer_cb (TimerHandle_t t)
 
void lws_esp32_identify_physical_device (void)
 
esp_err_t lws_esp32_event_passthru (void *ctx, system_event_t *event)
 
void lws_esp32_wlan_config (void)
 
void lws_esp32_wlan_start_ap (void)
 
void lws_esp32_wlan_start_station (void)
 
void lws_esp32_set_creation_defaults (struct lws_context_creation_info *info)
 
struct lws_context * lws_esp32_init (struct lws_context_creation_info *, struct lws_vhost **pvh)
 
int lws_esp32_wlan_nvs_get (int retry)
 
esp_err_t lws_nvs_set_str (nvs_handle handle, const char *key, const char *value)
 
void lws_esp32_restart_guided (uint32_t type)
 
const esp_partition_t * lws_esp_ota_get_boot_partition (void)
 
int lws_esp32_get_image_info (const esp_partition_t *part, struct lws_esp32_image *i, char *json, int json_len)
 
int lws_esp32_leds_network_indication (void)
 
uint32_t lws_esp32_get_reboot_type (void)
 
uint16_t lws_esp32_sine_interp (int n)
 
void lws_esp32_leds_timer_cb (TimerHandle_t th)
 
LWS_VISIBLE LWS_EXTERN void lws_close_reason (struct lws *wsi, enum lws_close_status status, unsigned char *buf, size_t len)
 
LWS_VISIBLE LWS_EXTERN size_t LWS_WARN_UNUSED_RESULT lws_genhash_size (enum lws_genhash_types type)
 
LWS_VISIBLE LWS_EXTERN size_t LWS_WARN_UNUSED_RESULT lws_genhmac_size (enum lws_genhmac_types type)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_genhash_init (struct lws_genhash_ctx *ctx, enum lws_genhash_types type)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_genhash_update (struct lws_genhash_ctx *ctx, const void *in, size_t len)
 
LWS_VISIBLE LWS_EXTERN int lws_genhash_destroy (struct lws_genhash_ctx *ctx, void *result)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_genhmac_init (struct lws_genhmac_ctx *ctx, enum lws_genhmac_types type, const uint8_t *key, size_t key_len)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_genhmac_update (struct lws_genhmac_ctx *ctx, const void *in, size_t len)
 
LWS_VISIBLE LWS_EXTERN int lws_genhmac_destroy (struct lws_genhmac_ctx *ctx, void *result)
 
LWS_VISIBLE LWS_EXTERN void lws_jwk_destroy_genrsa_elements (struct lws_genrsa_elements *el)
 
LWS_VISIBLE LWS_EXTERN int lws_genrsa_create (struct lws_genrsa_ctx *ctx, struct lws_genrsa_elements *el)
 
LWS_VISIBLE LWS_EXTERN int lws_genrsa_new_keypair (struct lws_context *context, struct lws_genrsa_ctx *ctx, struct lws_genrsa_elements *el, int bits)
 
LWS_VISIBLE LWS_EXTERN int lws_genrsa_public_decrypt (struct lws_genrsa_ctx *ctx, const uint8_t *in, size_t in_len, uint8_t *out, size_t out_max)
 
LWS_VISIBLE LWS_EXTERN int lws_genrsa_public_verify (struct lws_genrsa_ctx *ctx, const uint8_t *in, enum lws_genhash_types hash_type, const uint8_t *sig, size_t sig_len)
 
LWS_VISIBLE LWS_EXTERN int lws_genrsa_public_sign (struct lws_genrsa_ctx *ctx, const uint8_t *in, enum lws_genhash_types hash_type, uint8_t *sig, size_t sig_len)
 
LWS_VISIBLE LWS_EXTERN void lws_genrsa_destroy (struct lws_genrsa_ctx *ctx)
 
LWS_VISIBLE LWS_EXTERN int lws_genrsa_render_pkey_asn1 (struct lws_genrsa_ctx *ctx, int _private, uint8_t *pkey_asn1, size_t pkey_asn1_len)
 
LWS_VISIBLE LWS_EXTERN int lws_jwk_import (struct lws_jwk *s, const char *in, size_t len)
 
LWS_VISIBLE LWS_EXTERN void lws_jwk_destroy (struct lws_jwk *s)
 
LWS_VISIBLE LWS_EXTERN int lws_jwk_export (struct lws_jwk *s, int _private, char *p, size_t len)
 
LWS_VISIBLE int lws_jwk_load (struct lws_jwk *s, const char *filename)
 
LWS_VISIBLE int lws_jwk_save (struct lws_jwk *s, const char *filename)
 
LWS_VISIBLE int lws_jwk_rfc7638_fingerprint (struct lws_jwk *s, char *digest32)
 
LWS_VISIBLE LWS_EXTERN int lws_jws_confirm_sig (const char *in, size_t len, struct lws_jwk *jwk)
 
LWS_VISIBLE LWS_EXTERN int lws_jws_sign_from_b64 (const char *b64_hdr, size_t hdr_len, const char *b64_pay, size_t pay_len, char *b64_sig, size_t sig_len, enum lws_genhash_types hash_type, struct lws_jwk *jwk)
 
LWS_VISIBLE LWS_EXTERN int lws_jws_create_packet (struct lws_jwk *jwk, const char *payload, size_t len, const char *nonce, char *out, size_t out_len)
 
LWS_VISIBLE LWS_EXTERN int lws_jws_base64_enc (const char *in, size_t in_len, char *out, size_t out_max)
 
LWS_VISIBLE LWS_EXTERN int lws_set_extension_option (struct lws *wsi, const char *ext_name, const char *opt_name, const char *opt_val)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_ext_parse_options (const struct lws_extension *ext, struct lws *wsi, void *ext_user, const struct lws_ext_options *opts, const char *o, int len)
 
LWS_EXTERN int lws_extension_callback_pm_deflate (struct lws_context *context, const struct lws_extension *ext, struct lws *wsi, enum lws_extension_callback_reasons reason, void *user, void *in, size_t len)
 
LWS_VISIBLE LWS_EXTERN const struct lws_protocolslws_vhost_name_to_protocol (struct lws_vhost *vh, const char *name)
 
LWS_VISIBLE LWS_EXTERN const struct lws_protocolslws_get_protocol (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN const struct lws_protocolslws_protocol_get (struct lws *wsi) LWS_WARN_DEPRECATED
 
LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_zalloc (struct lws_vhost *vhost, const struct lws_protocols *prot, int size)
 
LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_get (struct lws_vhost *vhost, const struct lws_protocols *prot)
 
LWS_VISIBLE LWS_EXTERN void * lws_adjust_protocol_psds (struct lws *wsi, size_t new_size)
 
LWS_VISIBLE LWS_EXTERN int lws_finalize_startup (struct lws_context *context)
 
LWS_VISIBLE LWS_EXTERN const struct lws_protocol_vhost_optionslws_pvo_search (const struct lws_protocol_vhost_options *pvo, const char *name)
 
LWS_VISIBLE LWS_EXTERN int lws_protocol_init (struct lws_context *context)
 
LWS_VISIBLE LWS_EXTERN struct lws_context * lws_create_context (const struct lws_context_creation_info *info)
 
LWS_VISIBLE LWS_EXTERN void lws_context_destroy (struct lws_context *context)
 
LWS_VISIBLE LWS_EXTERN void lws_context_deprecate (struct lws_context *context, lws_reload_func cb)
 
LWS_VISIBLE LWS_EXTERN int lws_context_is_deprecated (struct lws_context *context)
 
LWS_VISIBLE LWS_EXTERN int lws_set_proxy (struct lws_vhost *vhost, const char *proxy)
 
LWS_VISIBLE LWS_EXTERN int lws_set_socks (struct lws_vhost *vhost, const char *socks)
 
LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_create_vhost (struct lws_context *context, const struct lws_context_creation_info *info)
 
LWS_VISIBLE LWS_EXTERN void lws_vhost_destroy (struct lws_vhost *vh)
 
LWS_VISIBLE LWS_EXTERN int lwsws_get_config_globals (struct lws_context_creation_info *info, const char *d, char **config_strings, int *len)
 
LWS_VISIBLE LWS_EXTERN int lwsws_get_config_vhosts (struct lws_context *context, struct lws_context_creation_info *info, const char *d, char **config_strings, int *len)
 
LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_vhost_get (struct lws *wsi) LWS_WARN_DEPRECATED
 
LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_get_vhost (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN const char * lws_get_vhost_name (struct lws_vhost *vhost)
 
LWS_VISIBLE LWS_EXTERN int lws_get_vhost_port (struct lws_vhost *vhost)
 
LWS_VISIBLE LWS_EXTERN void * lws_get_vhost_user (struct lws_vhost *vhost)
 
LWS_VISIBLE LWS_EXTERN const char * lws_get_vhost_iface (struct lws_vhost *vhost)
 
LWS_VISIBLE LWS_EXTERN int lws_json_dump_vhost (const struct lws_vhost *vh, char *buf, int len)
 
LWS_VISIBLE LWS_EXTERN int lws_json_dump_context (const struct lws_context *context, char *buf, int len, int hide_vhosts)
 
LWS_VISIBLE LWS_EXTERN void * lws_vhost_user (struct lws_vhost *vhost)
 
LWS_VISIBLE LWS_EXTERN void * lws_context_user (struct lws_context *context)
 
LWS_VISIBLE LWS_EXTERN struct lws * lws_client_connect_via_info (struct lws_client_connect_info *ccinfo)
 
LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_client_connect (struct lws_context *clients, const char *address, int port, int ssl_connection, const char *path, const char *host, const char *origin, const char *protocol, int ietf_version_or_minus_one) LWS_WARN_DEPRECATED
 
LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_client_connect_extended (struct lws_context *clients, const char *address, int port, int ssl_connection, const char *path, const char *host, const char *origin, const char *protocol, int ietf_version_or_minus_one, void *userdata) LWS_WARN_DEPRECATED
 
LWS_VISIBLE LWS_EXTERN int lws_init_vhost_client_ssl (const struct lws_context_creation_info *info, struct lws_vhost *vhost)
 
LWS_VISIBLE LWS_EXTERN int lws_http_client_read (struct lws *wsi, char **buf, int *len)
 
LWS_VISIBLE LWS_EXTERN unsigned int lws_http_client_http_response (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN void lws_client_http_body_pending (struct lws *wsi, int something_left_to_send)
 
LWS_VISIBLE LWS_EXTERN int lws_service (struct lws_context *context, int timeout_ms)
 
LWS_VISIBLE LWS_EXTERN int lws_service_tsi (struct lws_context *context, int timeout_ms, int tsi)
 
LWS_VISIBLE LWS_EXTERN void lws_cancel_service_pt (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN void lws_cancel_service (struct lws_context *context)
 
LWS_VISIBLE LWS_EXTERN int lws_service_fd (struct lws_context *context, struct lws_pollfd *pollfd)
 
LWS_VISIBLE LWS_EXTERN int lws_service_fd_tsi (struct lws_context *context, struct lws_pollfd *pollfd, int tsi)
 
LWS_VISIBLE LWS_EXTERN int lws_service_adjust_timeout (struct lws_context *context, int timeout_ms, int tsi)
 
LWS_VISIBLE LWS_EXTERN int lws_handle_POLLOUT_event (struct lws *wsi, struct lws_pollfd *pollfd)
 
LWS_VISIBLE LWS_EXTERN const char * lws_get_mimetype (const char *file, const struct lws_http_mount *m)
 
LWS_VISIBLE LWS_EXTERN int lws_serve_http_file (struct lws *wsi, const char *file, const char *content_type, const char *other_headers, int other_headers_len)
 
LWS_VISIBLE LWS_EXTERN int lws_serve_http_file_fragment (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int lws_chunked_html_process (struct lws_process_html_args *args, struct lws_process_html_state *s)
 
LWS_VISIBLE LWS_EXTERN const unsigned char * lws_token_to_string (enum lws_token_indexes token)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_hdr_total_length (struct lws *wsi, enum lws_token_indexes h)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_hdr_fragment_length (struct lws *wsi, enum lws_token_indexes h, int frag_idx)
 
LWS_VISIBLE LWS_EXTERN int lws_hdr_copy (struct lws *wsi, char *dest, int len, enum lws_token_indexes h)
 
LWS_VISIBLE LWS_EXTERN int lws_hdr_copy_fragment (struct lws *wsi, char *dest, int len, enum lws_token_indexes h, int frag_idx)
 
LWS_VISIBLE LWS_EXTERN const char * lws_get_urlarg_by_name (struct lws *wsi, const char *name, char *buf, int len)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_status (struct lws *wsi, unsigned int code, unsigned char **p, unsigned char *end)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_by_name (struct lws *wsi, const unsigned char *name, const unsigned char *value, int length, unsigned char **p, unsigned char *end)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_by_token (struct lws *wsi, enum lws_token_indexes token, const unsigned char *value, int length, unsigned char **p, unsigned char *end)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_content_length (struct lws *wsi, lws_filepos_t content_length, unsigned char **p, unsigned char *end)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_finalize_http_header (struct lws *wsi, unsigned char **p, unsigned char *end)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_finalize_write_http_header (struct lws *wsi, unsigned char *start, unsigned char **p, unsigned char *end)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_common_headers (struct lws *wsi, unsigned int code, const char *content_type, lws_filepos_t content_len, unsigned char **p, unsigned char *end)
 
LWS_VISIBLE LWS_EXTERN struct lws_spa * lws_spa_create (struct lws *wsi, const char *const *param_names, int count_params, int max_storage, lws_spa_fileupload_cb opt_cb, void *opt_data)
 
LWS_VISIBLE LWS_EXTERN int lws_spa_process (struct lws_spa *spa, const char *in, int len)
 
LWS_VISIBLE LWS_EXTERN int lws_spa_finalize (struct lws_spa *spa)
 
LWS_VISIBLE LWS_EXTERN int lws_spa_get_length (struct lws_spa *spa, int n)
 
LWS_VISIBLE LWS_EXTERN const char * lws_spa_get_string (struct lws_spa *spa, int n)
 
LWS_VISIBLE LWS_EXTERN int lws_spa_destroy (struct lws_spa *spa)
 
LWS_VISIBLE LWS_EXTERN const char * lws_urlencode (char *escaped, const char *string, int len)
 
LWS_VISIBLE LWS_EXTERN int lws_urldecode (char *string, const char *escaped, int len)
 
LWS_VISIBLE LWS_EXTERN int lws_return_http_status (struct lws *wsi, unsigned int code, const char *html_body)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_http_redirect (struct lws *wsi, int code, const unsigned char *loc, int len, unsigned char **p, unsigned char *end)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_http_transaction_completed (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN const char * lws_sql_purify (char *escaped, const char *string, int len)
 
LWS_VISIBLE LWS_EXTERN const char * lws_json_purify (char *escaped, const char *string, int len)
 
LWS_VISIBLE LWS_EXTERN void lws_filename_purify_inplace (char *filename)
 
LWS_VISIBLE LWS_EXTERN int lws_plat_write_cert (struct lws_vhost *vhost, int is_key, int fd, void *buf, int len)
 
LWS_VISIBLE LWS_EXTERN int lws_plat_write_file (const char *filename, void *buf, int len)
 
LWS_VISIBLE LWS_EXTERN int lws_plat_read_file (const char *filename, void *buf, int len)
 
LWS_VISIBLE LWS_EXTERN int lws_plat_recommended_rsa_bits (void)
 
LWS_VISIBLE LWS_EXTERN uv_loop_t * lws_uv_getloop (struct lws_context *context, int tsi)
 
LWS_VISIBLE LWS_EXTERN void lws_libuv_static_refcount_add (uv_handle_t *, struct lws_context *context)
 
LWS_VISIBLE LWS_EXTERN void lws_libuv_static_refcount_del (uv_handle_t *)
 
LWS_VISIBLE LWS_EXTERN void lws_set_timeout (struct lws *wsi, enum pending_timeout reason, int secs)
 
LWS_VISIBLE LWS_EXTERN void lws_set_timer_usecs (struct lws *wsi, lws_usec_t usecs)
 
LWS_VISIBLE LWS_EXTERN int lws_timed_callback_vh_protocol (struct lws_vhost *vh, const struct lws_protocols *prot, int reason, int secs)
 
LWS_VISIBLE LWS_EXTERN int lws_write (struct lws *wsi, unsigned char *buf, size_t len, enum lws_write_protocol protocol)
 
LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable_all_protocol (const struct lws_context *context, const struct lws_protocols *protocol)
 
LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable_all_protocol_vhost (const struct lws_vhost *vhost, const struct lws_protocols *protocol)
 
LWS_VISIBLE LWS_EXTERN int lws_callback_all_protocol (struct lws_context *context, const struct lws_protocols *protocol, int reason)
 
LWS_VISIBLE LWS_EXTERN int lws_callback_all_protocol_vhost (struct lws_vhost *vh, const struct lws_protocols *protocol, int reason) LWS_WARN_DEPRECATED
 
LWS_VISIBLE int lws_callback_all_protocol_vhost_args (struct lws_vhost *vh, const struct lws_protocols *protocol, int reason, void *argp, size_t len)
 
LWS_VISIBLE LWS_EXTERN int lws_callback_vhost_protocols (struct lws *wsi, int reason, void *in, int len) LWS_WARN_DEPRECATED
 
LWS_VISIBLE LWS_EXTERN int lws_callback_vhost_protocols_vhost (struct lws_vhost *vh, int reason, void *in, size_t len)
 
LWS_VISIBLE LWS_EXTERN int lws_callback_http_dummy (struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len)
 
LWS_VISIBLE LWS_EXTERN lws_sockfd_type lws_get_socket_fd (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN lws_fileofs_t lws_get_peer_write_allowance (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int lws_rx_flow_control (struct lws *wsi, int enable)
 
LWS_VISIBLE LWS_EXTERN void lws_rx_flow_allow_all_protocol (const struct lws_context *context, const struct lws_protocols *protocol)
 
LWS_VISIBLE LWS_EXTERN size_t lws_remaining_packet_payload (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN struct lws * lws_adopt_socket (struct lws_context *context, lws_sockfd_type accept_fd)
 
LWS_VISIBLE LWS_EXTERN struct lws * lws_adopt_socket_vhost (struct lws_vhost *vh, lws_sockfd_type accept_fd)
 
LWS_VISIBLE LWS_EXTERN struct lws * lws_adopt_descriptor_vhost (struct lws_vhost *vh, lws_adoption_type type, lws_sock_file_fd_type fd, const char *vh_prot_name, struct lws *parent)
 
LWS_VISIBLE LWS_EXTERN struct lws * lws_adopt_socket_readbuf (struct lws_context *context, lws_sockfd_type accept_fd, const char *readbuf, size_t len)
 
LWS_VISIBLE LWS_EXTERN struct lws * lws_adopt_socket_vhost_readbuf (struct lws_vhost *vhost, lws_sockfd_type accept_fd, const char *readbuf, size_t len)
 
LWS_VISIBLE LWS_EXTERN struct lws * lws_create_adopt_udp (struct lws_vhost *vhost, int port, int flags, const char *protocol_name, struct lws *parent_wsi)
 
LWS_VISIBLE LWS_EXTERN const char *LWS_WARN_UNUSED_RESULT lws_canonical_hostname (struct lws_context *context)
 
LWS_VISIBLE LWS_EXTERN void lws_get_peer_addresses (struct lws *wsi, lws_sockfd_type fd, char *name, int name_len, char *rip, int rip_len)
 
LWS_VISIBLE LWS_EXTERN const char * lws_get_peer_simple (struct lws *wsi, char *name, int namelen)
 
LWS_VISIBLE LWS_EXTERN int lws_interface_to_sa (int ipv6, const char *ifname, struct sockaddr_in *addr, size_t addrlen)
 
LWS_VISIBLE LWS_EXTERN void lws_dll_add_front (struct lws_dll *d, struct lws_dll *phead)
 
LWS_VISIBLE LWS_EXTERN void lws_dll_remove (struct lws_dll *d)
 
LWS_VISIBLE LWS_EXTERN int lws_buflist_append_segment (struct lws_buflist **head, const uint8_t *buf, size_t len)
 
LWS_VISIBLE LWS_EXTERN size_t lws_buflist_next_segment_len (struct lws_buflist **head, uint8_t **buf)
 
LWS_VISIBLE LWS_EXTERN int lws_buflist_use_segment (struct lws_buflist **head, size_t len)
 
LWS_VISIBLE LWS_EXTERN void lws_buflist_destroy_all_segments (struct lws_buflist **head)
 
void lws_buflist_describe (struct lws_buflist **head, void *id)
 
LWS_VISIBLE LWS_EXTERN int lws_snprintf (char *str, size_t size, const char *format,...) LWS_FORMAT(3)
 
LWS_VISIBLE LWS_EXTERN char * lws_strncpy (char *dest, const char *src, size_t size)
 
LWS_VISIBLE LWS_EXTERN int lws_get_random (struct lws_context *context, void *buf, int len)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_daemonize (const char *_lock_path)
 
LWS_VISIBLE LWS_EXTERN const char *LWS_WARN_UNUSED_RESULT lws_get_library_version (void)
 
LWS_VISIBLE LWS_EXTERN void * lws_wsi_user (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN void lws_set_wsi_user (struct lws *wsi, void *user)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_parse_uri (char *p, const char **prot, const char **ads, int *port, const char **path)
 
LWS_VISIBLE LWS_EXTERN const char * lws_cmdline_option (int argc, const char **argv, const char *val)
 
LWS_VISIBLE LWS_EXTERN unsigned long lws_now_secs (void)
 
LWS_VISIBLE LWS_EXTERN int lws_compare_time_t (struct lws_context *context, time_t t1, time_t t2)
 
LWS_VISIBLE LWS_EXTERN struct lws_context *LWS_WARN_UNUSED_RESULT lws_get_context (const struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_get_vhost_listen_port (struct lws_vhost *vhost)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_get_count_threads (struct lws_context *context)
 
LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_get_parent (const struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_get_child (const struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN const struct lws_udp *LWS_WARN_UNUSED_RESULT lws_get_udp (const struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN void lws_set_parent_carries_io (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN void * lws_get_opaque_parent_data (const struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN void lws_set_opaque_parent_data (struct lws *wsi, void *data)
 
LWS_VISIBLE LWS_EXTERN int lws_get_child_pending_on_writable (const struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN void lws_clear_child_pending_on_writable (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int lws_get_close_length (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN unsigned char * lws_get_close_payload (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN struct lws * lws_get_network_wsi (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN void lws_set_allocator (void *(*realloc)(void *ptr, size_t size, const char *reason))
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_send_pipe_choked (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int lws_is_final_fragment (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int lws_is_first_fragment (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN unsigned char lws_get_reserved_bits (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_partial_buffered (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_frame_is_binary (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int lws_is_ssl (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int lws_is_cgi (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN SSL * lws_get_ssl (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int lws_tls_peer_cert_info (struct lws *wsi, enum lws_tls_cert_info type, union lws_tls_cert_info_results *buf, size_t len)
 
LWS_VISIBLE LWS_EXTERN int lws_tls_vhost_cert_info (struct lws_vhost *vhost, enum lws_tls_cert_info type, union lws_tls_cert_info_results *buf, size_t len)
 
LWS_VISIBLE LWS_EXTERN int lws_tls_acme_sni_cert_create (struct lws_vhost *vhost, const char *san_a, const char *san_b)
 
LWS_VISIBLE LWS_EXTERN int lws_tls_acme_sni_csr_create (struct lws_context *context, const char *elements[], uint8_t *csr, size_t csr_len, char **privkey_pem, size_t *privkey_len)
 
LWS_VISIBLE LWS_EXTERN int lws_tls_cert_updated (struct lws_context *context, const char *certpath, const char *keypath, const char *mem_cert, size_t len_mem_cert, const char *mem_privkey, size_t len_mem_privkey)
 
LWS_VISIBLE LWS_EXTERN struct lws_ring * lws_ring_create (size_t element_len, size_t count, void(*destroy_element)(void *element))
 
LWS_VISIBLE LWS_EXTERN void lws_ring_destroy (struct lws_ring *ring)
 
LWS_VISIBLE LWS_EXTERN size_t lws_ring_get_count_free_elements (struct lws_ring *ring)
 
LWS_VISIBLE LWS_EXTERN size_t lws_ring_get_count_waiting_elements (struct lws_ring *ring, uint32_t *tail)
 
LWS_VISIBLE LWS_EXTERN size_t lws_ring_insert (struct lws_ring *ring, const void *src, size_t max_count)
 
LWS_VISIBLE LWS_EXTERN size_t lws_ring_consume (struct lws_ring *ring, uint32_t *tail, void *dest, size_t max_count)
 
LWS_VISIBLE LWS_EXTERN const void * lws_ring_get_element (struct lws_ring *ring, uint32_t *tail)
 
LWS_VISIBLE LWS_EXTERN void lws_ring_update_oldest_tail (struct lws_ring *ring, uint32_t tail)
 
LWS_VISIBLE LWS_EXTERN uint32_t lws_ring_get_oldest_tail (struct lws_ring *ring)
 
LWS_VISIBLE LWS_EXTERN int lws_ring_next_linear_insert_range (struct lws_ring *ring, void **start, size_t *bytes)
 
LWS_VISIBLE LWS_EXTERN void lws_ring_bump_head (struct lws_ring *ring, size_t bytes)
 
LWS_VISIBLE LWS_EXTERN void lws_ring_dump (struct lws_ring *ring, uint32_t *tail)
 
LWS_VISIBLE LWS_EXTERN unsigned char * lws_SHA1 (const unsigned char *d, size_t n, unsigned char *md)
 
LWS_VISIBLE LWS_EXTERN int lws_b64_encode_string (const char *in, int in_len, char *out, int out_size)
 
LWS_VISIBLE LWS_EXTERN int lws_b64_encode_string_url (const char *in, int in_len, char *out, int out_size)
 
LWS_VISIBLE LWS_EXTERN int lws_b64_decode_string (const char *in, char *out, int out_size)
 
LWS_VISIBLE LWS_EXTERN int lws_b64_decode_string_len (const char *in, int in_len, char *out, int out_size)
 
LWS_VISIBLE LWS_EXTERN int lws_cgi (struct lws *wsi, const char *const *exec_array, int script_uri_path_len, int timeout_secs, const struct lws_protocol_vhost_options *mp_cgienv)
 
LWS_VISIBLE LWS_EXTERN int lws_cgi_write_split_stdout_headers (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN int lws_cgi_kill (struct lws *wsi)
 
LWS_VISIBLE LWS_EXTERN struct lws * lws_cgi_get_stdwsi (struct lws *wsi, enum lws_enum_stdinouterr ch)
 
LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops *LWS_WARN_UNUSED_RESULT lws_get_fops (struct lws_context *context)
 
LWS_VISIBLE LWS_EXTERN void lws_set_fops (struct lws_context *context, const struct lws_plat_file_ops *fops)
 
LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT lws_vfs_tell (lws_fop_fd_t fop_fd)
 
LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT lws_vfs_get_length (lws_fop_fd_t fop_fd)
 
LWS_VISIBLE LWS_EXTERN uint32_t LWS_WARN_UNUSED_RESULT lws_vfs_get_mod_time (lws_fop_fd_t fop_fd)
 
LWS_VISIBLE LWS_EXTERN lws_fileofs_t lws_vfs_file_seek_set (lws_fop_fd_t fop_fd, lws_fileofs_t offset)
 
LWS_VISIBLE LWS_EXTERN lws_fileofs_t lws_vfs_file_seek_end (lws_fop_fd_t fop_fd, lws_fileofs_t offset)
 
LWS_VISIBLE LWS_EXTERN lws_fop_fd_t LWS_WARN_UNUSED_RESULT lws_vfs_file_open (const struct lws_plat_file_ops *fops, const char *vfs_path, lws_fop_flags_t *flags)
 
LWS_VISIBLE LWS_EXTERN lws_fop_fd_t _lws_plat_file_open (const struct lws_plat_file_ops *fops, const char *filename, const char *vpath, lws_fop_flags_t *flags)
 
LWS_VISIBLE LWS_EXTERN int _lws_plat_file_close (lws_fop_fd_t *fop_fd)
 
LWS_VISIBLE LWS_EXTERN lws_fileofs_t _lws_plat_file_seek_cur (lws_fop_fd_t fop_fd, lws_fileofs_t offset)
 
LWS_VISIBLE LWS_EXTERN int _lws_plat_file_read (lws_fop_fd_t fop_fd, lws_filepos_t *amount, uint8_t *buf, lws_filepos_t len)
 
LWS_VISIBLE LWS_EXTERN int _lws_plat_file_write (lws_fop_fd_t fop_fd, lws_filepos_t *amount, uint8_t *buf, lws_filepos_t len)
 
LWS_VISIBLE LWS_EXTERN int lws_alloc_vfs_file (struct lws_context *context, const char *filename, uint8_t **buf, lws_filepos_t *amount)
 
LWS_VISIBLE LWS_EXTERN int lws_email_init (struct lws_email *email, uv_loop_t *loop, int max_content)
 
LWS_VISIBLE LWS_EXTERN void lws_email_check (struct lws_email *email)
 
LWS_VISIBLE LWS_EXTERN void lws_email_destroy (struct lws_email *email)
 
LWS_EXTERN signed char _lejp_callback (struct lejp_ctx *ctx, char reason)
 
LWS_VISIBLE LWS_EXTERN void lejp_construct (struct lejp_ctx *ctx, signed char(*callback)(struct lejp_ctx *ctx, char reason), void *user, const char *const *paths, unsigned char paths_count)
 
LWS_VISIBLE LWS_EXTERN void lejp_destruct (struct lejp_ctx *ctx)
 
LWS_VISIBLE LWS_EXTERN int lejp_parse (struct lejp_ctx *ctx, const unsigned char *json, int len)
 
LWS_VISIBLE LWS_EXTERN void lejp_change_callback (struct lejp_ctx *ctx, signed char(*callback)(struct lejp_ctx *ctx, char reason))
 
LWS_VISIBLE LWS_EXTERN int lejp_get_wildcard (struct lejp_ctx *ctx, int wildcard, char *dest, int len)
 
LWS_VISIBLE LWS_EXTERN uint64_t lws_stats_get (struct lws_context *context, int index)
 
LWS_VISIBLE LWS_EXTERN void lws_stats_log_dump (struct lws_context *context)
 

Variables

struct lws_esp32 lws_esp32
 
struct lws_plat_file_ops fops_zip
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
LWSSTATS_C_CONNECTIONS 

count incoming connections

LWSSTATS_C_API_CLOSE 

count calls to close api

LWSSTATS_C_API_READ 

count calls to read from socket api

LWSSTATS_C_API_LWS_WRITE 

count calls to lws_write API

LWSSTATS_C_API_WRITE 

count calls to write API

LWSSTATS_C_WRITE_PARTIALS 

count of partial writes

LWSSTATS_C_WRITEABLE_CB_REQ 

count of writable callback requests

LWSSTATS_C_WRITEABLE_CB_EFF_REQ 

count of effective writable callback requests

LWSSTATS_C_WRITEABLE_CB 

count of writable callbacks

LWSSTATS_C_SSL_CONNECTIONS_FAILED 

count of failed SSL connections

LWSSTATS_C_SSL_CONNECTIONS_ACCEPTED 

count of accepted SSL connections

LWSSTATS_C_SSL_CONNECTIONS_ACCEPT_SPIN 

count of SSL_accept() attempts

LWSSTATS_C_SSL_CONNS_HAD_RX 

count of accepted SSL conns that have had some RX

LWSSTATS_C_TIMEOUTS 

count of timed-out connections

LWSSTATS_C_SERVICE_ENTRY 

count of entries to lws service loop

LWSSTATS_B_READ 

aggregate bytes read

LWSSTATS_B_WRITE 

aggregate bytes written

LWSSTATS_B_PARTIALS_ACCEPTED_PARTS 

aggreate of size of accepted write data from new partials

LWSSTATS_MS_SSL_CONNECTIONS_ACCEPTED_DELAY 

aggregate delay in accepting connection

LWSSTATS_MS_WRITABLE_DELAY 

aggregate delay between asking for writable and getting cb

LWSSTATS_MS_WORST_WRITABLE_DELAY 

single worst delay between asking for writable and getting cb

LWSSTATS_MS_SSL_RX_DELAY 

aggregate delay between ssl accept complete and first RX

LWSSTATS_C_PEER_LIMIT_AH_DENIED 

number of times we would have given an ah but for the peer limit

LWSSTATS_C_PEER_LIMIT_WSI_DENIED 

number of times we would have given a wsi but for the peer limit

7298  {
7314  LWSSTATS_B_READ,
7324  /* Add new things just above here ---^
7325  * This is part of the ABI, don't needlessly break compatibility */
7326  LWSSTATS_SIZE
7327 };
Definition: libwebsockets.h:7312
Definition: libwebsockets.h:7306
Definition: libwebsockets.h:7301
Definition: libwebsockets.h:7321
Definition: libwebsockets.h:7314
Definition: libwebsockets.h:7309
Definition: libwebsockets.h:7311
Definition: libwebsockets.h:7317
Definition: libwebsockets.h:7300
Definition: libwebsockets.h:7304
Definition: libwebsockets.h:7316
Definition: libwebsockets.h:7322
Definition: libwebsockets.h:7303
Definition: libwebsockets.h:7302
Definition: libwebsockets.h:7310
Definition: libwebsockets.h:7319
Definition: libwebsockets.h:7318
Definition: libwebsockets.h:7315
Definition: libwebsockets.h:7307
Definition: libwebsockets.h:7320
Definition: libwebsockets.h:7308
Definition: libwebsockets.h:7313
Definition: libwebsockets.h:7299
Definition: libwebsockets.h:7305

Function Documentation

◆ lws_cgi()

LWS_VISIBLE LWS_EXTERN int lws_cgi ( struct lws *  wsi,
const char *const *  exec_array,
int  script_uri_path_len,
int  timeout_secs,
const struct lws_protocol_vhost_options mp_cgienv 
)

lws_cgi: spawn network-connected cgi process

Parameters
wsiconnection to own the process
exec_arrayarray of "exec-name" "arg1" ... "argn" NULL
script_uri_path_lenhow many chars on the left of the uri are the path to the cgi, or -1 to spawn without URL-related env vars
timeout_secsseconds script should be allowed to run
mp_cgienvpvo list with per-vhost cgi options to put in env

◆ lws_cgi_get_stdwsi()

LWS_VISIBLE LWS_EXTERN struct lws* lws_cgi_get_stdwsi ( struct lws *  wsi,
enum lws_enum_stdinouterr  ch 
)

lws_cgi_get_stdwsi: get wsi for stdin, stdout, or stderr

Parameters
wsiparent wsi that has cgi
chwhich of LWS_STDIN, LWS_STDOUT or LWS_STDERR

◆ lws_cgi_kill()

LWS_VISIBLE LWS_EXTERN int lws_cgi_kill ( struct lws *  wsi)

lws_cgi_kill: terminate cgi process associated with wsi

Parameters
wsiconnection to own the process

◆ lws_cgi_write_split_stdout_headers()

LWS_VISIBLE LWS_EXTERN int lws_cgi_write_split_stdout_headers ( struct lws *  wsi)

lws_cgi_write_split_stdout_headers: write cgi output accounting for header part

Parameters
wsiconnection to own the process

◆ lws_remaining_packet_payload()

LWS_VISIBLE LWS_EXTERN size_t lws_remaining_packet_payload ( struct lws *  wsi)

lws_remaining_packet_payload() - Bytes to come before "overall" rx fragment is complete

Parameters
wsiWebsocket instance (available from user callback)

This tracks how many bytes are left in the current ws fragment, according to the ws length given in the fragment header.

If the message was in a single fragment, and there is no compression, this is the same as "how much data is left to read for this message".

However, if the message is being sent in multiple fragments, this will reflect the unread amount of the current fragment, not the message. With ws, it is legal to not know the length of the message before it completes.

Additionally if the message is sent via the negotiated permessage-deflate extension, this number only tells the amount of compressed data left to be read, since that is the only information available at the ws layer.

◆ lws_rx_flow_allow_all_protocol()

LWS_VISIBLE LWS_EXTERN void lws_rx_flow_allow_all_protocol ( const struct lws_context *  context,
const struct lws_protocols protocol 
)

lws_rx_flow_allow_all_protocol() - Allow all connections with this protocol to receive

When the user server code realizes it can accept more input, it can call this to have the RX flow restriction removed from all connections using the given protocol.

Parameters
contextlws_context
protocolall connections using this protocol will be allowed to receive

◆ lws_rx_flow_control()

LWS_VISIBLE LWS_EXTERN int lws_rx_flow_control ( struct lws *  wsi,
int  enable 
)

lws_rx_flow_control() - Enable and disable socket servicing for received packets.

If the output side of a server process becomes choked, this allows flow control for the input side.

Parameters
wsiWebsocket connection instance to get callback for
enable0 = disable read servicing for this connection, 1 = enable

If you need more than one additive reason for rxflow control, you can give iLWS_RXFLOW_REASON_APPLIES_ENABLE or _DISABLE together with one or more of b5..b0 set to idicate which bits to enable or disable. If any bits are enabled, rx on the connection is suppressed.

LWS_RXFLOW_REASON_FLAG_PROCESS_NOW flag may also be given to force any change in rxflowbstatus to benapplied immediately, this should be used when you are changing a wsi flow control state from outside a callback on that wsi.