27 #ifndef LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C 
   28 #define LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C 
   42 #include "lws_config.h" 
   53 #define LWS_US_PER_SEC ((lws_usec_t)1000000) 
   54 #define LWS_MS_PER_SEC ((lws_usec_t)1000) 
   55 #define LWS_US_PER_MS ((lws_usec_t)1000) 
   56 #define LWS_NS_PER_US ((lws_usec_t)1000) 
   59 #define LWS_MI (LWS_KI * 1024) 
   60 #define LWS_GI (LWS_MI * 1024) 
   61 #define LWS_TI ((uint64_t)LWS_GI * 1024) 
   62 #define LWS_PI ((uint64_t)LWS_TI * 1024) 
   64 #define LWS_US_TO_MS(x) ((x + (LWS_US_PER_MS / 2)) / LWS_US_PER_MS) 
   66 #if defined(LWS_HAS_INTPTR_T) 
   68 #define lws_intptr_t intptr_t 
   70 typedef unsigned long long lws_intptr_t;
 
   73 #if defined(WIN32) || defined(_WIN32) 
   74 #ifndef WIN32_LEAN_AND_MEAN 
   75 #define WIN32_LEAN_AND_MEAN 
   86 #define _O_RDONLY       0x0000 
   87 #define O_RDONLY        _O_RDONLY 
   90 #define LWS_INLINE __inline 
   92 #define LWS_WARN_UNUSED_RESULT 
   93 #define LWS_WARN_DEPRECATED 
   94 #define LWS_FORMAT(string_index) 
   96 #if !defined(LWS_EXTERN) 
   99 #define LWS_EXTERN extern __declspec(dllexport) 
  101 #define LWS_EXTERN extern __declspec(dllimport) 
  106 #define LWS_INVALID_FILE INVALID_HANDLE_VALUE 
  107 #define LWS_SOCK_INVALID (INVALID_SOCKET) 
  108 #define LWS_O_RDONLY _O_RDONLY 
  109 #define LWS_O_WRONLY _O_WRONLY 
  110 #define LWS_O_CREAT _O_CREAT 
  111 #define LWS_O_TRUNC _O_TRUNC 
  114 #define __func__ __FUNCTION__ 
  119 #if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) 
  120 #include <sys/capability.h> 
  123 #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__QNX__) || defined(__OpenBSD__) 
  124 #include <sys/socket.h> 
  125 #include <netinet/in.h> 
  128 #define LWS_INLINE inline 
  129 #define LWS_O_RDONLY O_RDONLY 
  130 #define LWS_O_WRONLY O_WRONLY 
  131 #define LWS_O_CREAT O_CREAT 
  132 #define LWS_O_TRUNC O_TRUNC 
  134 #if !defined(LWS_PLAT_OPTEE) && !defined(OPTEE_TA) && !defined(LWS_PLAT_FREERTOS) 
  137 #define LWS_INVALID_FILE -1 
  138 #define LWS_SOCK_INVALID (-1) 
  140 #define getdtablesize() (30) 
  141 #if defined(LWS_PLAT_FREERTOS) 
  142 #define LWS_INVALID_FILE NULL 
  143 #define LWS_SOCK_INVALID (-1) 
  145 #define LWS_INVALID_FILE NULL 
  146 #define LWS_SOCK_INVALID (-1) 
  150 #if defined(__FreeBSD__) 
  151 #include <sys/signal.h> 
  154 #if defined(__GNUC__) 
  157 #if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) 
  158 #define LWS_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) 
  160 #define LWS_WARN_UNUSED_RESULT 
  163 #define LWS_VISIBLE __attribute__((visibility("default")))
 
  164 #define LWS_WARN_DEPRECATED __attribute__ ((deprecated)) 
  165 #define LWS_FORMAT(string_index) __attribute__ ((format(printf, string_index, string_index+1))) 
  168 #define LWS_WARN_UNUSED_RESULT 
  169 #define LWS_WARN_DEPRECATED 
  170 #define LWS_FORMAT(string_index) 
  173 #if defined(__ANDROID__) 
  174 #include <netinet/in.h> 
  181 #define LWS_EXTERN extern 
  187 #if !defined(LWS_PLAT_OPTEE) 
  188 #include <sys/time.h> 
  193 #if defined(LWS_WITH_LIBUV_INTERNAL) 
  196 #ifdef LWS_HAVE_UV_VERSION_H 
  197 #include <uv-version.h> 
  200 #ifdef LWS_HAVE_NEW_UV_VERSION_H 
  201 #include <uv/version.h> 
  205 #if defined(LWS_WITH_TLS) 
  208 #ifdef USE_OLD_CYASSL 
  214 #include <IDE/WIN/user_settings.h> 
  215 #include <cyassl/ctaocrypt/settings.h> 
  217 #include <cyassl/options.h> 
  219 #include <cyassl/openssl/ssl.h> 
  220 #include <cyassl/error-ssl.h> 
  228 #include <IDE/WIN/user_settings.h> 
  229 #include <wolfssl/wolfcrypt/settings.h> 
  231 #include <wolfssl/options.h> 
  233 #include <wolfssl/openssl/ssl.h> 
  234 #include <wolfssl/error-ssl.h> 
  237 #if defined(LWS_WITH_MBEDTLS) 
  238 #if defined(LWS_PLAT_FREERTOS) 
  240 #if !defined(LWS_AMAZON_RTOS) 
  242 #undef MBEDTLS_CONFIG_FILE 
  243 #define MBEDTLS_CONFIG_FILE <mbedtls/esp_config.h> 
  246 #if defined(LWS_WITH_TLS) 
  247 #include <mbedtls/ssl.h> 
  248 #include <mbedtls/entropy.h> 
  249 #include <mbedtls/ctr_drbg.h> 
  252 #include <openssl/ssl.h> 
  253 #if !defined(LWS_WITH_MBEDTLS) 
  254 #include <openssl/err.h> 
  271 #define lws_pthread_mutex(name) pthread_mutex_t name; 
  273 static LWS_INLINE 
void 
  274 lws_pthread_mutex_init(pthread_mutex_t *lock)
 
  276         pthread_mutex_init(lock, NULL);
 
  279 static LWS_INLINE 
void 
  280 lws_pthread_mutex_destroy(pthread_mutex_t *lock)
 
  282         pthread_mutex_destroy(lock);
 
  285 static LWS_INLINE 
void 
  286 lws_pthread_mutex_lock(pthread_mutex_t *lock)
 
  288         pthread_mutex_lock(lock);
 
  291 static LWS_INLINE 
void 
  292 lws_pthread_mutex_unlock(pthread_mutex_t *lock)
 
  294         pthread_mutex_unlock(lock);
 
  298 #define lws_pthread_mutex(name) 
  299 #define lws_pthread_mutex_init(_a) 
  300 #define lws_pthread_mutex_destroy(_a) 
  301 #define lws_pthread_mutex_lock(_a) 
  302 #define lws_pthread_mutex_unlock(_a) 
  306 #define CONTEXT_PORT_NO_LISTEN -1 
  307 #define CONTEXT_PORT_NO_LISTEN_SERVER -2 
  309 #include <libwebsockets/lws-logs.h> 
  314 #ifndef lws_container_of 
  315 #define lws_container_of(P,T,M) ((T *)((char *)(P) - offsetof(T, M))) 
  317 #define LWS_ALIGN_TO(x, bou) x += ((bou) - ((x) % (bou))) % (bou) 
  323 #define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_ARG 
  326 #define LWS_FEATURE_PROTOCOLS_HAS_ID_FIELD 
  329 #define LWS_FEATURE_PROTOCOLS_HAS_PEER_WRITE_ALLOWANCE 
  332 #define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_LEN 
  335 #define LWS_FEATURE_FOPS 
  339 #if !defined(LWS_WIN32_HANDLE_TYPES) 
  340 typedef SOCKET lws_sockfd_type;
 
  341 typedef HANDLE lws_filefd_type;
 
  348         uint8_t write_blocked;
 
  350 #define LWS_POLLHUP (FD_CLOSE) 
  351 #define LWS_POLLIN (FD_READ | FD_ACCEPT) 
  352 #define LWS_POLLOUT (FD_WRITE) 
  357 #if defined(LWS_PLAT_FREERTOS) 
  358 #include <libwebsockets/lws-freertos.h> 
  360 typedef int lws_sockfd_type;
 
  361 typedef int lws_filefd_type;
 
  364 #if defined(LWS_PLAT_OPTEE) 
  368         unsigned int    tv_usec;
 
  370 #if defined(LWS_WITH_NETWORK) 
  372 #define lws_pollfd pollfd 
  376 int gettimeofday(
struct timeval *tv, 
struct timezone *tz);
 
  383 typedef unsigned short sa_family_t;
 
  384 typedef unsigned short in_port_t;
 
  385 typedef uint32_t socklen_t;
 
  387 #include <libwebsockets/lws-optee.h> 
  389 #if !defined(TEE_SE_READER_NAME_MAX) 
  395                socklen_t        ai_addrlen;
 
  396                struct sockaddr *ai_addr;
 
  398                struct addrinfo *ai_next;
 
  402 ssize_t recv(
int sockfd, 
void *buf, 
size_t len, 
int flags);
 
  403 ssize_t send(
int sockfd, 
const void *buf, 
size_t len, 
int flags);
 
  404 ssize_t read(
int fd, 
void *buf, 
size_t count);
 
  405 int getsockopt(
int sockfd, 
int level, 
int optname,
 
  406                       void *optval, socklen_t *optlen);
 
  407        int setsockopt(
int sockfd, 
int level, 
int optname,
 
  408                       const void *optval, socklen_t optlen);
 
  409 int connect(
int sockfd, 
const struct sockaddr *addr,
 
  414 uint16_t ntohs(uint16_t netshort);
 
  415 uint16_t htons(uint16_t hostshort);
 
  417 int bind(
int sockfd, 
const struct sockaddr *addr,
 
  421 #define  MSG_NOSIGNAL 0x4000 
  424 #define EWOULDBLOCK     EAGAIN 
  425 #define EADDRINUSE      98       
  431 #define SOCK_STREAM     1 
  433 # define AI_PASSIVE     0x0001 
  434 #define IPPROTO_UDP     17 
  439 #define EINPROGRESS     115 
  440 int shutdown(
int sockfd, 
int how);
 
  442 int atoi(
const char *nptr);
 
  443 long long atoll(
const char *nptr);
 
  445 int socket(
int domain, 
int type, 
int protocol);
 
  446        int getaddrinfo(
const char *node, 
const char *service,
 
  447                        const struct addrinfo *hints,
 
  448                        struct addrinfo **res);
 
  450        void freeaddrinfo(
struct addrinfo *res);
 
  452 #if !defined(TEE_SE_READER_NAME_MAX) 
  461 int poll(
struct pollfd *fds, 
int nfds, 
int timeout);
 
  463 #define LWS_POLLHUP (0x18) 
  464 #define LWS_POLLIN (1) 
  465 #define LWS_POLLOUT (4) 
  471 #define lws_pollfd pollfd 
  472 #define LWS_POLLHUP (POLLHUP | POLLERR) 
  473 #define LWS_POLLIN (POLLIN) 
  474 #define LWS_POLLOUT (POLLOUT) 
  479 #if (defined(WIN32) || defined(_WIN32)) && !defined(__MINGW32__) 
  481 #define ssize_t SSIZE_T 
  484 #if defined(WIN32) && defined(LWS_HAVE__STAT32I64) 
  485 #include <sys/types.h> 
  486 #include <sys/stat.h> 
  489 #if defined(LWS_HAVE_STDINT_H) 
  492 #if defined(WIN32) || defined(_WIN32) 
  494 typedef __int64 int64_t;
 
  495 typedef unsigned __int64 uint64_t;
 
  496 typedef __int32 int32_t;
 
  497 typedef unsigned __int32 uint32_t;
 
  498 typedef __int16 int16_t;
 
  499 typedef unsigned __int16 uint16_t;
 
  500 typedef unsigned __int8 uint8_t;
 
  502 typedef unsigned int uint32_t;
 
  503 typedef unsigned short uint16_t;
 
  504 typedef unsigned char uint8_t;
 
  508 typedef int64_t lws_usec_t;
 
  509 typedef unsigned long long lws_filepos_t;
 
  510 typedef long long lws_fileofs_t;
 
  511 typedef uint32_t lws_fop_flags_t;
 
  513 #define lws_concat_temp(_t, _l) (_t + sizeof(_t) - _l) 
  514 #define lws_concat_used(_t, _l) (sizeof(_t) - _l) 
  532 #include <libwebsockets/lws-dll2.h> 
  533 #include <libwebsockets/lws-timeout-timer.h> 
  534 #if defined(LWS_WITH_SYS_SMD) 
  535 #include <libwebsockets/lws-smd.h> 
  537 #include <libwebsockets/lws-state.h> 
  538 #include <libwebsockets/lws-retry.h> 
  539 #include <libwebsockets/lws-adopt.h> 
  540 #include <libwebsockets/lws-network-helper.h> 
  541 #include <libwebsockets/lws-system.h> 
  542 #include <libwebsockets/lws-detailed-latency.h> 
  543 #include <libwebsockets/lws-ws-close.h> 
  544 #include <libwebsockets/lws-callbacks.h> 
  545 #include <libwebsockets/lws-ws-state.h> 
  546 #include <libwebsockets/lws-ws-ext.h> 
  547 #include <libwebsockets/lws-protocols-plugins.h> 
  549 #include <libwebsockets/lws-context-vhost.h> 
  551 #if defined(LWS_ROLE_MQTT) 
  552 #include <libwebsockets/lws-mqtt.h> 
  554 #include <libwebsockets/lws-client.h> 
  555 #include <libwebsockets/lws-http.h> 
  556 #include <libwebsockets/lws-spa.h> 
  557 #include <libwebsockets/lws-purify.h> 
  558 #include <libwebsockets/lws-misc.h> 
  559 #include <libwebsockets/lws-dsh.h> 
  560 #include <libwebsockets/lws-service.h> 
  561 #include <libwebsockets/lws-write.h> 
  562 #include <libwebsockets/lws-writeable.h> 
  563 #include <libwebsockets/lws-ring.h> 
  564 #include <libwebsockets/lws-sha1-base64.h> 
  565 #include <libwebsockets/lws-x509.h> 
  566 #include <libwebsockets/lws-cgi.h> 
  567 #if defined(LWS_WITH_FILE_OPS) 
  568 #include <libwebsockets/lws-vfs.h> 
  570 #include <libwebsockets/lws-lejp.h> 
  571 #include <libwebsockets/lws-stats.h> 
  572 #include <libwebsockets/lws-struct.h> 
  573 #include <libwebsockets/lws-threadpool.h> 
  574 #include <libwebsockets/lws-tokenize.h> 
  575 #include <libwebsockets/lws-lwsac.h> 
  576 #include <libwebsockets/lws-fts.h> 
  577 #include <libwebsockets/lws-diskcache.h> 
  578 #include <libwebsockets/lws-sequencer.h> 
  579 #include <libwebsockets/lws-secure-streams.h> 
  580 #include <libwebsockets/lws-secure-streams-policy.h> 
  581 #include <libwebsockets/lws-secure-streams-client.h> 
  583 #if !defined(LWS_PLAT_FREERTOS) 
  584 #include <libwebsockets/abstract/abstract.h> 
  586 #include <libwebsockets/lws-test-sequencer.h> 
  588 #include <libwebsockets/lws-async-dns.h> 
  590 #if defined(LWS_WITH_TLS) 
  592 #if defined(LWS_WITH_MBEDTLS) 
  593 #include <mbedtls/md5.h> 
  594 #include <mbedtls/sha1.h> 
  595 #include <mbedtls/sha256.h> 
  596 #include <mbedtls/sha512.h> 
  599 #include <libwebsockets/lws-gencrypto.h> 
  600 #include <libwebsockets/lws-genhash.h> 
  601 #include <libwebsockets/lws-genrsa.h> 
  602 #include <libwebsockets/lws-genaes.h> 
  603 #include <libwebsockets/lws-genec.h> 
  605 #include <libwebsockets/lws-jwk.h> 
  606 #include <libwebsockets/lws-jose.h> 
  607 #include <libwebsockets/lws-jws.h> 
  608 #include <libwebsockets/lws-jwe.h> 
  612 #include <libwebsockets/lws-eventlib-exports.h> 
  613 #include <libwebsockets/lws-i2c.h> 
  614 #include <libwebsockets/lws-spi.h> 
  615 #include <libwebsockets/lws-gpio.h> 
  616 #include <libwebsockets/lws-bb-i2c.h> 
  617 #include <libwebsockets/lws-bb-spi.h> 
  618 #include <libwebsockets/lws-button.h> 
  619 #include <libwebsockets/lws-led.h> 
  620 #include <libwebsockets/lws-pwm.h> 
  621 #include <libwebsockets/lws-display.h> 
  622 #include <libwebsockets/lws-ssd1306-i2c.h> 
  623 #include <libwebsockets/lws-ili9341-spi.h> 
  624 #include <libwebsockets/lws-settings.h> 
  625 #include <libwebsockets/lws-netdev.h> 
Definition: lws-ws-ext.h:139
Definition: libwebsockets.h:518
int events
Definition: libwebsockets.h:520
int prev_events
Definition: libwebsockets.h:521
lws_sockfd_type fd
Definition: libwebsockets.h:519
Definition: lws-protocols-plugins.h:44
Definition: lws-http.h:368
Definition: lws-http.h:204