|
libwebsockets
Lightweight C library for HTML5 websockets
|
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); \
184 LWS_VISIBLE LWS_EXTERN
void
187 LWS_VISIBLE LWS_EXTERN
void
188 lws_dll_remove(
struct lws_dll *d);
195 #define lws_dll_is_null(___dll) (!(___dll)->prev && !(___dll)->next)
197 static LWS_INLINE
void
203 static LWS_INLINE
void
206 lws_dll_remove((
struct lws_dll *)_a);
215 #define lws_start_foreach_dll_safe(___type, ___it, ___tmp, ___start) \
217 ___type ___it = ___start; \
219 ___type ___tmp = (___it)->next;
221 #define lws_end_foreach_dll_safe(___it, ___tmp) \
226 #define lws_start_foreach_dll(___type, ___it, ___start) \
228 ___type ___it = ___start; \
231 #define lws_end_foreach_dll(___it) \
232 ___it = (___it)->next; \
248 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
261 LWS_VISIBLE LWS_EXTERN
size_t
278 LWS_VISIBLE LWS_EXTERN
int
288 LWS_VISIBLE LWS_EXTERN
void
292 lws_buflist_describe(
struct lws_buflist **head,
void *
id);
303 #define lws_ptr_diff(head, tail) \
304 ((int)((char *)(head) - (char *)(tail)))
317 LWS_VISIBLE LWS_EXTERN
int
318 lws_snprintf(
char *str,
size_t size,
const char *format, ...) LWS_FORMAT(3);
330 LWS_VISIBLE LWS_EXTERN
char *
331 lws_strncpy(
char *dest, const
char *src,
size_t size);
344 LWS_VISIBLE LWS_EXTERN
int
353 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
360 LWS_VISIBLE LWS_EXTERN const
char * LWS_WARN_UNUSED_RESULT
369 LWS_VISIBLE LWS_EXTERN
void *
382 LWS_VISIBLE LWS_EXTERN
void
407 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
408 lws_parse_uri(
char *p, const
char **prot, const
char **ads,
int *port,
427 LWS_VISIBLE LWS_EXTERN const
char *
433 LWS_VISIBLE LWS_EXTERN
unsigned long
439 LWS_VISIBLE LWS_EXTERN lws_usec_t
459 LWS_VISIBLE LWS_EXTERN
int
471 LWS_VISIBLE LWS_EXTERN struct lws_context * LWS_WARN_UNUSED_RESULT
483 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
495 LWS_VISIBLE LWS_EXTERN
int LWS_WARN_UNUSED_RESULT
505 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
514 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
529 LWS_VISIBLE LWS_EXTERN
void
539 LWS_VISIBLE LWS_EXTERN const struct
lws_udp * LWS_WARN_UNUSED_RESULT
542 LWS_VISIBLE LWS_EXTERN
void *
543 lws_get_opaque_parent_data(const struct lws *wsi);
545 LWS_VISIBLE LWS_EXTERN
void
546 lws_set_opaque_parent_data(struct lws *wsi,
void *data);
548 LWS_VISIBLE LWS_EXTERN
int
549 lws_get_child_pending_on_writable(const struct lws *wsi);
551 LWS_VISIBLE LWS_EXTERN
void
552 lws_clear_child_pending_on_writable(struct lws *wsi);
554 LWS_VISIBLE LWS_EXTERN
int
555 lws_get_close_length(struct lws *wsi);
557 LWS_VISIBLE LWS_EXTERN
unsigned char *
558 lws_get_close_payload(struct lws *wsi);
570 LWS_VISIBLE LWS_EXTERN
580 LWS_VISIBLE LWS_EXTERN
void
588 LWS_RXFLOW_REASON_USER_BOOL = (1 << 0),
589 LWS_RXFLOW_REASON_HTTP_RXBUFFER = (1 << 6),
590 LWS_RXFLOW_REASON_H2_PPS_PENDING = (1 << 7),
592 LWS_RXFLOW_REASON_APPLIES = (1 << 14),
593 LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT = (1 << 13),
594 LWS_RXFLOW_REASON_APPLIES_ENABLE = LWS_RXFLOW_REASON_APPLIES |
595 LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT,
596 LWS_RXFLOW_REASON_APPLIES_DISABLE = LWS_RXFLOW_REASON_APPLIES,
597 LWS_RXFLOW_REASON_FLAG_PROCESS_NOW = (1 << 12),
620 LWS_VISIBLE LWS_EXTERN
int
632 LWS_VISIBLE LWS_EXTERN
void
655 LWS_VISIBLE LWS_EXTERN
size_t
668 LWS_VISIBLE LWS_EXTERN
int
674 LWS_VISIBLE LWS_EXTERN
int
688 LWS_VISIBLE LWS_EXTERN
int
689 lws_open(
const char *__file,
int __oflag, ...);
701 #if defined(LWS_WITH_TLS) && !defined(LWS_WITH_MBEDTLS)
708 LWS_VISIBLE LWS_EXTERN SSL*
709 lws_get_ssl(
struct lws *wsi);
746 enum lwsgs_smtp_states {
765 char email_smtp_ip[32];
767 char email_from[100];
770 unsigned int max_content_size;
775 int (*on_next)(
struct lws_email *email);
780 int (*on_sent)(
struct lws_email *email);
785 int (*on_get_body)(
struct lws_email *email,
char *buf,
int len);
792 uv_timer_t timeout_email;
793 enum lwsgs_smtp_states estate;
794 uv_connect_t email_connect_req;
795 uv_tcp_t email_client;
796 time_t email_connect_started;
810 LWS_VISIBLE LWS_EXTERN
int
811 lws_email_init(
struct lws_email *email, uv_loop_t *loop,
int max_content);
821 LWS_VISIBLE LWS_EXTERN
void
822 lws_email_check(
struct lws_email *email);
830 LWS_VISIBLE LWS_EXTERN
void
831 lws_email_destroy(
struct lws_email *email);
LWS_VISIBLE LWS_EXTERN int lws_compare_time_t(struct lws_context *context, time_t t1, time_t t2)
Definition: lws-misc.h:174
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 int LWS_WARN_UNUSED_RESULT lws_daemonize(const char *_lock_path)
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 void lws_rx_flow_allow_all_protocol(const struct lws_context *context, const struct lws_protocols *protocol)
LWS_VISIBLE const LWS_EXTERN char *LWS_WARN_UNUSED_RESULT lws_get_library_version(void)
LWS_VISIBLE const LWS_EXTERN char * lws_cmdline_option(int argc, const char **argv, const char *val)
Definition: lws-misc.h:190
LWS_VISIBLE LWS_EXTERN int lws_rx_flow_control(struct lws *wsi, int enable)
Definition: lws-adopt.h:81
LWS_VISIBLE LWS_EXTERN int lws_buflist_use_segment(struct lws_buflist **head, 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 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 int lws_get_random(struct lws_context *context, void *buf, int len)
LWS_VISIBLE LWS_EXTERN size_t lws_remaining_packet_payload(struct lws *wsi)
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:43
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 int lws_is_ssl(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN void lws_buflist_destroy_all_segments(struct lws_buflist **head)
Definition: lws-misc.h:691
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))