43 #define lws_start_foreach_ll(type, it, start)\
58 #define lws_end_foreach_ll(it, nxt) \
78 #define lws_start_foreach_ll_safe(type, it, start, nxt)\
82 type next_##it = it->nxt;
94 #define lws_end_foreach_ll_safe(it) \
115 #define lws_start_foreach_llp(type, it, start)\
117 type it = &(start); \
120 #define lws_start_foreach_llp_safe(type, it, start, nxt)\
122 type it = &(start); \
125 next = &((*(it))->nxt); \
137 #define lws_end_foreach_llp(it, nxt) \
138 it = &(*(it))->nxt; \
142 #define lws_end_foreach_llp_safe(it) \
147 #define lws_ll_fwd_insert(\
152 ___new_object->___m_list = ___list_head; \
153 ___list_head = ___new_object; \
156 #define lws_ll_fwd_remove(\
162 lws_start_foreach_llp(___type **, ___ppss, ___list_head) { \
163 if (*___ppss == ___target) { \
164 *___ppss = ___target->___m_list; \
167 } lws_end_foreach_llp(___ppss, ___m_list); \
174 #if defined (LWS_WITH_DEPRECATED_LWS_DLL)
183 struct lws_dll *prev;
184 struct lws_dll *next;
192 #define lws_dll_add_front lws_dll_add_head
194 LWS_VISIBLE LWS_EXTERN
void
195 lws_dll_add_head(
struct lws_dll *d,
struct lws_dll *phead);
197 LWS_VISIBLE LWS_EXTERN
void
198 lws_dll_add_tail(
struct lws_dll *d,
struct lws_dll *phead);
200 LWS_VISIBLE LWS_EXTERN
void
201 lws_dll_insert(
struct lws_dll *d,
struct lws_dll *target,
202 struct lws_dll *phead,
int before);
204 static LWS_INLINE
struct lws_dll *
205 lws_dll_get_head(
struct lws_dll *phead) {
return phead->next; }
207 static LWS_INLINE
struct lws_dll *
208 lws_dll_get_tail(
struct lws_dll *phead) {
return phead->prev; }
215 LWS_VISIBLE LWS_EXTERN
void
216 lws_dll_remove(
struct lws_dll *d) LWS_WARN_DEPRECATED;
218 LWS_VISIBLE LWS_EXTERN
void
219 lws_dll_remove_track_tail(
struct lws_dll *d,
struct lws_dll *phead);
223 LWS_VISIBLE LWS_EXTERN
int
224 lws_dll_foreach_safe(
struct lws_dll *phead,
void *user,
225 int (*cb)(
struct lws_dll *d,
void *user));
227 #define lws_dll_is_detached(___dll, __head) \
228 (!(___dll)->prev && !(___dll)->next && (__head)->prev != (___dll))
266 static LWS_INLINE
int
267 lws_dll2_is_detached(
const struct lws_dll2 *d) {
return !d->owner; }
273 lws_dll2_get_head(
struct lws_dll2_owner *owner) {
return owner->head; }
276 lws_dll2_get_tail(
struct lws_dll2_owner *owner) {
return owner->tail; }
278 LWS_VISIBLE LWS_EXTERN
void
281 LWS_VISIBLE LWS_EXTERN
void
284 LWS_VISIBLE LWS_EXTERN
void
285 lws_dll2_remove(
struct lws_dll2 *d);
287 LWS_VISIBLE LWS_EXTERN
int
289 int (*cb)(
struct lws_dll2 *d,
void *user));
291 LWS_VISIBLE LWS_EXTERN
void
294 LWS_VISIBLE LWS_EXTERN
void
297 LWS_VISIBLE LWS_EXTERN
void
300 LWS_VISIBLE LWS_EXTERN
void
306 lws_dll2_describe(
struct lws_dll2_owner *owner,
const char *desc);
308 #define lws_dll2_describe(x, y)
317 #define lws_start_foreach_dll_safe(___type, ___it, ___tmp, ___start) \
319 ___type ___it = ___start; \
321 ___type ___tmp = (___it)->next;
323 #define lws_end_foreach_dll_safe(___it, ___tmp) \
328 #define lws_start_foreach_dll(___type, ___it, ___start) \
330 ___type ___it = ___start; \
333 #define lws_end_foreach_dll(___it) \
334 ___it = (___it)->next; \
350 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
363 LWS_VISIBLE LWS_EXTERN
size_t
381 LWS_VISIBLE LWS_EXTERN
int
392 LWS_VISIBLE LWS_EXTERN
void
396 lws_buflist_describe(
struct lws_buflist **head,
void *
id);
407 #define lws_ptr_diff(head, tail) \
408 ((int)((char *)(head) - (char *)(tail)))
421 LWS_VISIBLE LWS_EXTERN
int
422 lws_snprintf(
char *str,
size_t size,
const char *format, ...) LWS_FORMAT(3);
434 LWS_VISIBLE LWS_EXTERN
char *
453 LWS_VISIBLE LWS_EXTERN
int
469 LWS_VISIBLE LWS_EXTERN
int
470 lws_timingsafe_bcmp(const
void *a, const
void *b, uint32_t len);
482 LWS_VISIBLE LWS_EXTERN
int
491 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
498 LWS_VISIBLE LWS_EXTERN const
char * LWS_WARN_UNUSED_RESULT
507 LWS_VISIBLE LWS_EXTERN
void *
520 LWS_VISIBLE LWS_EXTERN
void
545 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
565 LWS_VISIBLE LWS_EXTERN const
char *
571 LWS_VISIBLE LWS_EXTERN
unsigned long
577 LWS_VISIBLE LWS_EXTERN lws_usec_t
589 LWS_VISIBLE LWS_EXTERN struct lws_context * LWS_WARN_UNUSED_RESULT
601 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
613 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
623 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
632 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
647 LWS_VISIBLE LWS_EXTERN
void
657 LWS_VISIBLE LWS_EXTERN const struct
lws_udp * LWS_WARN_UNUSED_RESULT
660 LWS_VISIBLE LWS_EXTERN
void *
661 lws_get_opaque_parent_data(const struct lws *wsi);
663 LWS_VISIBLE LWS_EXTERN
void
664 lws_set_opaque_parent_data(struct lws *wsi,
void *data);
666 LWS_VISIBLE LWS_EXTERN
void *
667 lws_get_opaque_user_data(const struct lws *wsi);
669 LWS_VISIBLE LWS_EXTERN
void
670 lws_set_opaque_user_data(struct lws *wsi,
void *data);
672 LWS_VISIBLE LWS_EXTERN
int
673 lws_get_child_pending_on_writable(const struct lws *wsi);
675 LWS_VISIBLE LWS_EXTERN
void
676 lws_clear_child_pending_on_writable(struct lws *wsi);
678 LWS_VISIBLE LWS_EXTERN
int
679 lws_get_close_length(struct lws *wsi);
681 LWS_VISIBLE LWS_EXTERN
unsigned char *
682 lws_get_close_payload(struct lws *wsi);
694 LWS_VISIBLE LWS_EXTERN
704 LWS_VISIBLE LWS_EXTERN
void
712 LWS_RXFLOW_REASON_USER_BOOL = (1 << 0),
713 LWS_RXFLOW_REASON_HTTP_RXBUFFER = (1 << 6),
714 LWS_RXFLOW_REASON_H2_PPS_PENDING = (1 << 7),
716 LWS_RXFLOW_REASON_APPLIES = (1 << 14),
717 LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT = (1 << 13),
718 LWS_RXFLOW_REASON_APPLIES_ENABLE = LWS_RXFLOW_REASON_APPLIES |
719 LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT,
720 LWS_RXFLOW_REASON_APPLIES_DISABLE = LWS_RXFLOW_REASON_APPLIES,
721 LWS_RXFLOW_REASON_FLAG_PROCESS_NOW = (1 << 12),
744 LWS_VISIBLE LWS_EXTERN
int
756 LWS_VISIBLE LWS_EXTERN
void
779 LWS_VISIBLE LWS_EXTERN
size_t
782 #if defined(LWS_WITH_DIR)
793 } lws_dir_obj_type_t;
795 struct lws_dir_entry {
797 lws_dir_obj_type_t type;
801 lws_dir_callback_function(
const char *dirpath,
void *user,
802 struct lws_dir_entry *lde);
816 LWS_VISIBLE LWS_EXTERN
int
817 lws_dir(
const char *dirpath,
void *user, lws_dir_callback_function cb);
845 LWS_VISIBLE LWS_EXTERN
int
852 LWS_VISIBLE LWS_EXTERN
int
865 LWS_VISIBLE LWS_EXTERN
int
878 #if defined(LWS_WITH_TLS) && !defined(LWS_WITH_MBEDTLS)
885 LWS_VISIBLE LWS_EXTERN SSL*
886 lws_get_ssl(
struct lws *wsi);
889 LWS_VISIBLE LWS_EXTERN
void
890 lws_explicit_bzero(
void *p,
size_t len);
922 LWS_VISIBLE LWS_EXTERN
int
LWS_VISIBLE LWS_EXTERN int lws_hex_to_byte_array(const char *h, uint8_t *dest, int max)
LWS_VISIBLE LWS_EXTERN struct lws_context *LWS_WARN_UNUSED_RESULT lws_get_context(const struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_open(const char *__file, int __oflag,...)
LWS_VISIBLE LWS_EXTERN lws_usec_t lws_now_usecs(void)
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 int lws_buflist_use_segment(struct lws_buflist **head, size_t len)
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_is_ssl(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN unsigned long lws_now_secs(void)
LWS_VISIBLE LWS_EXTERN void lws_get_effective_uid_gid(struct lws_context *context, int *uid, int *gid)
LWS_VISIBLE LWS_EXTERN int lws_is_cgi(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 int lws_get_random(struct lws_context *context, void *buf, int len)
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_buflist_next_segment_len(struct lws_buflist **head, uint8_t **buf)
size_t lws_get_allocated_heap(void)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_get_count_threads(struct lws_context *context)
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_remaining_packet_payload(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN const char * lws_cmdline_option(int argc, const char **argv, const char *val)
LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_get_parent(const struct lws *wsi)
LWS_VISIBLE LWS_EXTERN void lws_set_wsi_user(struct lws *wsi, void *user)
LWS_VISIBLE LWS_EXTERN int lws_humanize(char *buf, int len, uint64_t value, const lws_humanize_unit_t *schema)
LWS_VISIBLE LWS_EXTERN struct lws * lws_get_network_wsi(struct lws *wsi)
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 void * lws_wsi_user(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN const char *LWS_WARN_UNUSED_RESULT lws_get_library_version(void)
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_daemonize(const char *_lock_path)
LWS_VISIBLE LWS_EXTERN void lws_set_allocator(void *(*realloc)(void *ptr, size_t size, const char *reason))
LWS_VISIBLE LWS_EXTERN int lws_rx_flow_control(struct lws *wsi, int enable)
LWS_VISIBLE LWS_EXTERN void lws_buflist_destroy_all_segments(struct lws_buflist **head)
Definition: lws-misc.h:259
Definition: lws-misc.h:253
Definition: lws-misc.h:892
Definition: lws-protocols-plugins.h:43
Definition: lws-adopt.h:82
Definition: lws-misc.h:868