 |
libwebsockets
Lightweight C library for HTML5 websockets
|
25 #if defined(LWS_WITH_SPAWN)
27 #if defined(WIN32) || defined(_WIN32)
30 #include <sys/times.h>
53 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
66 LWS_VISIBLE LWS_EXTERN
size_t
84 LWS_VISIBLE LWS_EXTERN
size_t
94 LWS_VISIBLE LWS_EXTERN
size_t
108 LWS_VISIBLE LWS_EXTERN
int
120 LWS_VISIBLE LWS_EXTERN
void
133 LWS_VISIBLE LWS_EXTERN
void
145 #define lws_ptr_diff(head, tail) \
146 ((int)((char *)(head) - (char *)(tail)))
159 LWS_VISIBLE LWS_EXTERN
int
160 lws_snprintf(
char *str,
size_t size,
const char *format, ...) LWS_FORMAT(3);
172 LWS_VISIBLE LWS_EXTERN
char *
179 #define lws_strnncpy(dest, src, size1, destsize) \
180 lws_strncpy(dest, src, (size_t)(size1 + 1) < (size_t)(destsize) ? \
181 (size_t)(size1 + 1) : (size_t)(destsize))
199 LWS_VISIBLE LWS_EXTERN
int
215 LWS_VISIBLE LWS_EXTERN
int
216 lws_timingsafe_bcmp(
const void *a,
const void *b, uint32_t len);
228 LWS_VISIBLE LWS_EXTERN
size_t
237 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
244 LWS_VISIBLE LWS_EXTERN
const char * LWS_WARN_UNUSED_RESULT
253 LWS_VISIBLE LWS_EXTERN
void *
266 LWS_VISIBLE LWS_EXTERN
void
291 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
311 LWS_VISIBLE LWS_EXTERN
const char *
326 LWS_VISIBLE LWS_EXTERN
void
333 LWS_VISIBLE LWS_EXTERN
unsigned long
339 LWS_VISIBLE LWS_EXTERN lws_usec_t
351 LWS_VISIBLE LWS_EXTERN
struct lws_context * LWS_WARN_UNUSED_RESULT
363 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
375 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
385 LWS_VISIBLE LWS_EXTERN
struct lws * LWS_WARN_UNUSED_RESULT
394 LWS_VISIBLE LWS_EXTERN
struct lws * LWS_WARN_UNUSED_RESULT
409 LWS_VISIBLE LWS_EXTERN
void
419 LWS_VISIBLE LWS_EXTERN
const struct lws_udp * LWS_WARN_UNUSED_RESULT
422 LWS_VISIBLE LWS_EXTERN
void *
423 lws_get_opaque_parent_data(
const struct lws *wsi);
425 LWS_VISIBLE LWS_EXTERN
void
426 lws_set_opaque_parent_data(
struct lws *wsi,
void *data);
428 LWS_VISIBLE LWS_EXTERN
void *
429 lws_get_opaque_user_data(
const struct lws *wsi);
431 LWS_VISIBLE LWS_EXTERN
void
432 lws_set_opaque_user_data(
struct lws *wsi,
void *data);
434 LWS_VISIBLE LWS_EXTERN
int
435 lws_get_child_pending_on_writable(
const struct lws *wsi);
437 LWS_VISIBLE LWS_EXTERN
void
438 lws_clear_child_pending_on_writable(
struct lws *wsi);
440 LWS_VISIBLE LWS_EXTERN
int
441 lws_get_close_length(
struct lws *wsi);
443 LWS_VISIBLE LWS_EXTERN
unsigned char *
444 lws_get_close_payload(
struct lws *wsi);
456 LWS_VISIBLE LWS_EXTERN
466 LWS_VISIBLE LWS_EXTERN
void
474 LWS_RXFLOW_REASON_USER_BOOL = (1 << 0),
475 LWS_RXFLOW_REASON_HTTP_RXBUFFER = (1 << 6),
476 LWS_RXFLOW_REASON_H2_PPS_PENDING = (1 << 7),
478 LWS_RXFLOW_REASON_APPLIES = (1 << 14),
479 LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT = (1 << 13),
480 LWS_RXFLOW_REASON_APPLIES_ENABLE = LWS_RXFLOW_REASON_APPLIES |
481 LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT,
482 LWS_RXFLOW_REASON_APPLIES_DISABLE = LWS_RXFLOW_REASON_APPLIES,
483 LWS_RXFLOW_REASON_FLAG_PROCESS_NOW = (1 << 12),
506 LWS_VISIBLE LWS_EXTERN
int
518 LWS_VISIBLE LWS_EXTERN
void
541 LWS_VISIBLE LWS_EXTERN
size_t
544 #if defined(LWS_WITH_DIR)
555 } lws_dir_obj_type_t;
557 struct lws_dir_entry {
559 lws_dir_obj_type_t type;
563 lws_dir_callback_function(
const char *dirpath,
void *user,
564 struct lws_dir_entry *lde);
578 LWS_VISIBLE LWS_EXTERN
int
579 lws_dir(
const char *dirpath,
void *user, lws_dir_callback_function cb);
605 LWS_VISIBLE LWS_EXTERN
int
614 LWS_VISIBLE LWS_EXTERN
int
621 LWS_VISIBLE LWS_EXTERN
int
634 LWS_VISIBLE LWS_EXTERN
int
647 #if defined(LWS_WITH_TLS) && !defined(LWS_WITH_MBEDTLS)
654 LWS_VISIBLE LWS_EXTERN SSL*
655 lws_get_ssl(
struct lws *wsi);
658 LWS_VISIBLE LWS_EXTERN
void
659 lws_explicit_bzero(
void *p,
size_t len);
691 LWS_VISIBLE LWS_EXTERN
int
695 LWS_VISIBLE LWS_EXTERN
void
696 lws_ser_wu16be(uint8_t *b, uint16_t u);
698 LWS_VISIBLE LWS_EXTERN
void
699 lws_ser_wu32be(uint8_t *b, uint32_t u32);
701 LWS_VISIBLE LWS_EXTERN
void
702 lws_ser_wu64be(uint8_t *b, uint64_t u64);
704 LWS_VISIBLE LWS_EXTERN uint16_t
705 lws_ser_ru16be(
const uint8_t *b);
707 LWS_VISIBLE LWS_EXTERN uint32_t
708 lws_ser_ru32be(
const uint8_t *b);
710 LWS_VISIBLE LWS_EXTERN uint64_t
711 lws_ser_ru64be(
const uint8_t *b);
713 LWS_VISIBLE LWS_EXTERN
int
714 lws_vbi_encode(uint64_t value,
void *buf);
716 LWS_VISIBLE LWS_EXTERN
int
717 lws_vbi_decode(
const void *buf, uint64_t *value,
size_t len);
721 #if defined(LWS_WITH_SPAWN)
724 struct lws_spawn_piped;
726 typedef void (*lsp_cb_t)(
void *opaque, lws_usec_t *accounting, siginfo_t *si,
747 struct lws_spawn_piped_info {
748 struct lws_dll2_owner *owner;
749 struct lws_vhost *vh;
750 struct lws *opt_parent;
752 const char *
const *exec_array;
754 const char *protocol_name;
755 const char *chroot_path;
758 struct lws_spawn_piped **plsp;
764 lws_usec_t timeout_us;
768 const struct lws_role_ops *ops;
770 uint8_t disable_ctrlc;
794 LWS_VISIBLE LWS_EXTERN
struct lws_spawn_piped *
795 lws_spawn_piped(
const struct lws_spawn_piped_info *lspi);
804 LWS_VISIBLE LWS_EXTERN
int
805 lws_spawn_piped_kill_child_process(
struct lws_spawn_piped *lsp);
819 LWS_VISIBLE LWS_EXTERN
void
820 lws_spawn_stdwsi_closed(
struct lws_spawn_piped *lsp);
832 LWS_VISIBLE LWS_EXTERN
int
833 lws_spawn_get_stdfd(
struct lws *wsi);
838 const char *layers_path;
839 const char *overlay_path;
845 #if defined(__linux__)
846 const char *layers[4];
883 LWS_VISIBLE LWS_EXTERN
int
898 LWS_VISIBLE LWS_EXTERN
int
size_t lws_get_allocated_heap(void)
LWS_VISIBLE LWS_EXTERN const char * lws_cmdline_option(int argc, const char **argv, const char *val)
Definition: lws-misc.h:661
LWS_VISIBLE LWS_EXTERN void lws_set_wsi_user(struct lws *wsi, void *user)
LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_get_child(const struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_get_count_threads(struct lws_context *context)
LWS_VISIBLE LWS_EXTERN size_t lws_buflist_total_len(struct lws_buflist **head)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_daemonize(const char *_lock_path)
LWS_VISIBLE LWS_EXTERN void lws_buflist_describe(struct lws_buflist **head, void *id, const char *reason)
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_WARN_UNUSED_RESULT lws_get_library_version(void)
LWS_VISIBLE LWS_EXTERN void lws_rx_flow_allow_all_protocol(const struct lws_context *context, const struct lws_protocols *protocol)
Definition: lws-context-vhost.h:244
LWS_VISIBLE LWS_EXTERN int lws_rx_flow_control(struct lws *wsi, int enable)
LWS_VISIBLE LWS_EXTERN int lws_get_tsi(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_buflist_linear_copy(struct lws_buflist **head, size_t ofs, uint8_t *buf, size_t len)
LWS_VISIBLE LWS_EXTERN int lws_is_cgi(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_open(const char *__file, int __oflag,...)
LWS_VISIBLE LWS_EXTERN size_t lws_buflist_use_segment(struct lws_buflist **head, size_t len)
LWS_VISIBLE LWS_EXTERN void * lws_wsi_user(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_get_parent(const struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_snprintf(char *str, size_t size, const char *format,...) LWS_FORMAT(3)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_buflist_append_segment(struct lws_buflist **head, const uint8_t *buf, size_t len)
LWS_VISIBLE LWS_EXTERN size_t lws_remaining_packet_payload(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_hex_to_byte_array(const char *h, uint8_t *dest, int max)
LWS_VISIBLE LWS_EXTERN size_t lws_buflist_next_segment_len(struct lws_buflist **head, uint8_t **buf)
LWS_VISIBLE LWS_EXTERN void lws_get_effective_uid_gid(struct lws_context *context, int *uid, int *gid)
LWS_VISIBLE LWS_EXTERN lws_usec_t lws_now_usecs(void)
LWS_VISIBLE LWS_EXTERN char * lws_strncpy(char *dest, const char *src, size_t size)
Definition: lws-protocols-plugins.h:44
LWS_VISIBLE LWS_EXTERN void lws_cmdline_option_handle_builtin(int argc, const char **argv, struct lws_context_creation_info *info)
LWS_VISIBLE LWS_EXTERN struct lws * lws_get_network_wsi(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 size_t lws_get_random(struct lws_context *context, void *buf, size_t len)
Definition: lws-misc.h:837
LWS_VISIBLE LWS_EXTERN int lws_is_ssl(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_humanize(char *buf, int len, uint64_t value, const lws_humanize_unit_t *schema)
LWS_VISIBLE LWS_EXTERN void lws_buflist_destroy_all_segments(struct lws_buflist **head)
Definition: lws-misc.h:637
LWS_VISIBLE LWS_EXTERN struct lws_context *LWS_WARN_UNUSED_RESULT lws_get_context(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 unsigned long lws_now_secs(void)
LWS_VISIBLE LWS_EXTERN void lws_set_allocator(void *(*realloc)(void *ptr, size_t size, const char *reason))