25 #if defined(LWS_WITH_SPAWN)
27 #if defined(WIN32) || defined(_WIN32)
30 #include <sys/times.h>
34 #if defined(__OpenBSD__)
35 #include <sys/siginfo.h>
57 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
58 lws_buflist_append_segment(
struct lws_buflist **head,
const uint8_t *buf,
70 LWS_VISIBLE LWS_EXTERN size_t
71 lws_buflist_next_segment_len(
struct lws_buflist **head, uint8_t **buf);
88 LWS_VISIBLE LWS_EXTERN size_t
89 lws_buflist_use_segment(
struct lws_buflist **head, size_t len);
98 LWS_VISIBLE LWS_EXTERN size_t
99 lws_buflist_total_len(
struct lws_buflist **head);
112 LWS_VISIBLE LWS_EXTERN
int
132 LWS_VISIBLE LWS_EXTERN
int
153 LWS_VISIBLE LWS_EXTERN
int
155 size_t len,
char *frag_first,
char *frag_fin);
165 LWS_VISIBLE LWS_EXTERN
void
178 LWS_VISIBLE LWS_EXTERN
void
204 struct lws_ss_handle;
209 struct lws_ss_handle *
h;
210 struct lws_buflist *
bl;
227 LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t
228 lws_flow_feed(lws_flow_t *flow);
238 LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t
239 lws_flow_req(lws_flow_t *flow);
250 #define lws_ptr_diff(head, tail)
251 ((int)((char *)(head) - (char *)(tail)))
253 #define lws_ptr_diff_size_t(head, tail)
254 ((size_t)(ssize_t)((char *)(head) - (char *)(tail)))
267 LWS_VISIBLE LWS_EXTERN
int
268 lws_snprintf(
char *str, size_t size,
const char *format, ...) LWS_FORMAT(3);
280 LWS_VISIBLE LWS_EXTERN
char *
287 #define lws_strnncpy(dest, src, size1, destsize)
288 lws_strncpy(dest, src, (size_t)(size1 + 1
) < (size_t)(destsize) ?
289 (size_t)(size1 + 1
) : (size_t)(destsize))
304 LWS_VISIBLE LWS_EXTERN
const char *
305 lws_nstrstr(
const char *buf, size_t len,
const char *name, size_t nl);
329 LWS_VISIBLE LWS_EXTERN
const char *
349 LWS_VISIBLE LWS_EXTERN
int
369 LWS_VISIBLE LWS_EXTERN
int
388 LWS_VISIBLE LWS_EXTERN
int
402 LWS_VISIBLE LWS_EXTERN
void
418 LWS_VISIBLE LWS_EXTERN
int
434 LWS_VISIBLE LWS_EXTERN
int
447 LWS_VISIBLE LWS_EXTERN size_t
448 lws_get_random(
struct lws_context *context,
void *buf, size_t len);
456 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
457 lws_daemonize(
const char *_lock_path);
463 LWS_VISIBLE LWS_EXTERN
const char * LWS_WARN_UNUSED_RESULT
464 lws_get_library_version(
void);
472 LWS_VISIBLE LWS_EXTERN
void *
481 LWS_VISIBLE LWS_EXTERN
int
494 LWS_VISIBLE LWS_EXTERN
void
519 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
520 lws_parse_uri(
char *p,
const char **prot,
const char **ads,
int *port,
539 LWS_VISIBLE LWS_EXTERN
const char *
554 LWS_VISIBLE LWS_EXTERN
void
561 LWS_VISIBLE LWS_EXTERN
unsigned long
567 LWS_VISIBLE LWS_EXTERN lws_usec_t
579 LWS_VISIBLE LWS_EXTERN
struct lws_context * LWS_WARN_UNUSED_RESULT
580 lws_get_context(
const struct lws *wsi);
591 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
592 lws_get_vhost_listen_port(
struct lws_vhost *vhost);
603 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
604 lws_get_count_threads(
struct lws_context *context);
613 LWS_VISIBLE LWS_EXTERN
struct lws * LWS_WARN_UNUSED_RESULT
614 lws_get_parent(
const struct lws *wsi);
622 LWS_VISIBLE LWS_EXTERN
struct lws * LWS_WARN_UNUSED_RESULT
623 lws_get_child(
const struct lws *wsi);
637 LWS_VISIBLE LWS_EXTERN
void
647 LWS_VISIBLE LWS_EXTERN
const struct lws_udp * LWS_WARN_UNUSED_RESULT
648 lws_get_udp(
const struct lws *wsi);
650 LWS_VISIBLE LWS_EXTERN
void *
653 LWS_VISIBLE LWS_EXTERN
void
656 LWS_VISIBLE LWS_EXTERN
void *
659 LWS_VISIBLE LWS_EXTERN
void
662 LWS_VISIBLE LWS_EXTERN
int
665 LWS_VISIBLE LWS_EXTERN
void
668 LWS_VISIBLE LWS_EXTERN
int
671 LWS_VISIBLE LWS_EXTERN
unsigned char *
684 LWS_VISIBLE LWS_EXTERN
694 LWS_VISIBLE LWS_EXTERN
void
734 LWS_VISIBLE LWS_EXTERN
int
746 LWS_VISIBLE LWS_EXTERN
void
769 LWS_VISIBLE LWS_EXTERN size_t
770 lws_remaining_packet_payload(
struct lws *wsi);
772 #if defined(LWS_WITH_DIR)
783 } lws_dir_obj_type_t;
785 struct lws_dir_entry {
787 lws_dir_obj_type_t type;
791 lws_dir_callback_function(
const char *dirpath,
void *user,
792 struct lws_dir_entry *lde);
806 LWS_VISIBLE LWS_EXTERN
int
807 lws_dir(
const char *dirpath,
void *user, lws_dir_callback_function cb);
820 LWS_VISIBLE LWS_EXTERN
int
821 lws_dir_rm_rf_cb(
const char *dirpath,
void *user,
struct lws_dir_entry *lde);
830 typedef int (*lws_dir_glob_cb_t)(
void *data,
const char *path);
832 typedef struct lws_dir_glob {
834 lws_dir_glob_cb_t cb;
852 LWS_VISIBLE LWS_EXTERN
int
853 lws_dir_glob_cb(
const char *dirpath,
void *user,
struct lws_dir_entry *lde);
880 LWS_VISIBLE LWS_EXTERN
int
889 LWS_VISIBLE LWS_EXTERN
int
896 LWS_VISIBLE LWS_EXTERN
int
913 LWS_VISIBLE LWS_EXTERN
int
915 const uint8_t *skid, size_t skid_len,
916 const uint8_t **prpder, size_t *prder_len);
928 LWS_VISIBLE LWS_EXTERN
int
941 #if defined(LWS_WITH_TLS) && !defined(LWS_WITH_MBEDTLS)
948 LWS_VISIBLE LWS_EXTERN SSL*
949 lws_get_ssl(
struct lws *wsi);
952 LWS_VISIBLE LWS_EXTERN
void
958 } lws_humanize_unit_t;
960 LWS_VISIBLE
extern const lws_humanize_unit_t humanize_schema_si[7];
961 LWS_VISIBLE
extern const lws_humanize_unit_t humanize_schema_si_bytes[7];
962 LWS_VISIBLE
extern const lws_humanize_unit_t humanize_schema_us[8];
966 lws_assert_fourcc(uint32_t fourcc, uint32_t expected);
968 #define lws_assert_fourcc(_a, _b) do { } while (0
);
992 LWS_VISIBLE LWS_EXTERN
int
994 const lws_humanize_unit_t *schema);
996 LWS_VISIBLE LWS_EXTERN
void
999 LWS_VISIBLE LWS_EXTERN
void
1002 LWS_VISIBLE LWS_EXTERN
void
1005 LWS_VISIBLE LWS_EXTERN uint16_t
1006 lws_ser_ru16be(
const uint8_t *b);
1008 LWS_VISIBLE LWS_EXTERN uint32_t
1009 lws_ser_ru32be(
const uint8_t *b);
1011 LWS_VISIBLE LWS_EXTERN uint64_t
1012 lws_ser_ru64be(
const uint8_t *b);
1014 LWS_VISIBLE LWS_EXTERN
int
1017 LWS_VISIBLE LWS_EXTERN
int
1022 #if defined(LWS_WITH_SPAWN)
1025 struct lws_spawn_piped;
1028 struct _lws_siginfo_t {
1031 typedef struct _lws_siginfo_t siginfo_t;
1034 typedef void (*lsp_cb_t)(
void *opaque, lws_usec_t *accounting, siginfo_t *si,
1055 struct lws_spawn_piped_info {
1056 struct lws_dll2_owner *owner;
1057 struct lws_vhost *vh;
1058 struct lws *opt_parent;
1060 const char *
const *exec_array;
1061 const char **env_array;
1062 const char *protocol_name;
1063 const char *chroot_path;
1066 struct lws_spawn_piped **plsp;
1072 lws_usec_t timeout_us;
1076 const struct lws_role_ops *ops;
1078 uint8_t disable_ctrlc;
1102 LWS_VISIBLE LWS_EXTERN
struct lws_spawn_piped *
1103 lws_spawn_piped(
const struct lws_spawn_piped_info *lspi);
1112 LWS_VISIBLE LWS_EXTERN
int
1113 lws_spawn_piped_kill_child_process(
struct lws_spawn_piped *lsp);
1128 LWS_VISIBLE LWS_EXTERN
void
1129 lws_spawn_stdwsi_closed(
struct lws_spawn_piped *lsp,
struct lws *wsi);
1141 LWS_VISIBLE LWS_EXTERN
int
1142 lws_spawn_get_stdfd(
struct lws *wsi);
1154 #if defined(__linux__
)
1155 const char *layers[4];
1192 LWS_VISIBLE LWS_EXTERN
int
1207 LWS_VISIBLE LWS_EXTERN
int
1210 #define LWS_MINILEX_FAIL -1
1211 #define LWS_MINILEX_CONTINUE 0
1212 #define LWS_MINILEX_MATCH 1
1240 LWS_VISIBLE LWS_EXTERN
int
1249 LWS_VISIBLE LWS_EXTERN
unsigned int