libwebsockets
Lightweight C library for HTML5 websockets
lws-context-vhost.h
1 /*
2  * libwebsockets - small server side websockets and web server implementation
3  *
4  * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com>
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to
8  * deal in the Software without restriction, including without limitation the
9  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10  * sell copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in
14  * all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22  * IN THE SOFTWARE.
23  */
24 
38 
40 /*
41  * NOTE: These public enums are part of the abi. If you want to add one,
42  * add it at where specified so existing users are unaffected.
43  */
44 
45 
46 #define LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT ((1ll << 1) | \
47  (1ll << 12))
48 
51 #define LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME (1ll << 2)
52 
53 #define LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT ((1ll << 3) | \
54  (1ll << 12))
55 
61 #define LWS_SERVER_OPTION_LIBEV (1ll << 4)
62 
63 #define LWS_SERVER_OPTION_DISABLE_IPV6 (1ll << 5)
64 
65 #define LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS (1ll << 6)
66 
68 #define LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED (1ll << 7)
69 
70 #define LWS_SERVER_OPTION_VALIDATE_UTF8 (1ll << 8)
71 
72 #define LWS_SERVER_OPTION_SSL_ECDH ((1ll << 9) | \
73  (1ll << 12))
74 
75 #define LWS_SERVER_OPTION_LIBUV (1ll << 10)
76 
77 #define LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS ((1ll << 11) |\
78  (1ll << 12))
79 
88 #define LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT (1ll << 12)
89 
90 #define LWS_SERVER_OPTION_EXPLICIT_VHOSTS (1ll << 13)
91 
93 #define LWS_SERVER_OPTION_UNIX_SOCK (1ll << 14)
94 
95 #define LWS_SERVER_OPTION_STS (1ll << 15)
96 
98 #define LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY (1ll << 16)
99 
100 #define LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE (1ll << 17)
101 
102 #define LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN (1ll << 18)
103 
108 #define LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN (1ll << 19)
109 
115 #define LWS_SERVER_OPTION_FALLBACK_TO_RAW /* use below name */ (1ll << 20)
116 #define LWS_SERVER_OPTION_FALLBACK_TO_APPLY_LISTEN_ACCEPT_CONFIG (1ll << 20)
117 
129 #define LWS_SERVER_OPTION_LIBEVENT (1ll << 21)
130 
132 #define LWS_SERVER_OPTION_ONLY_RAW /* Use below name instead */ (1ll << 22)
133 #define LWS_SERVER_OPTION_ADOPT_APPLY_LISTEN_ACCEPT_CONFIG (1ll << 22)
134 
146 #define LWS_SERVER_OPTION_ALLOW_LISTEN_SHARE (1ll << 23)
147 
152 #define LWS_SERVER_OPTION_CREATE_VHOST_SSL_CTX (1ll << 24)
153 
159 #define LWS_SERVER_OPTION_SKIP_PROTOCOL_INIT (1ll << 25)
160 
164 #define LWS_SERVER_OPTION_IGNORE_MISSING_CERT (1ll << 26)
165 
170 #define LWS_SERVER_OPTION_VHOST_UPG_STRICT_HOST_CHECK (1ll << 27)
171 
181 #define LWS_SERVER_OPTION_HTTP_HEADERS_SECURITY_BEST_PRACTICES_ENFORCE (1ll << 28)
182 
198 #define LWS_SERVER_OPTION_ALLOW_HTTP_ON_HTTPS_LISTENER (1ll << 29)
199 
206 #define LWS_SERVER_OPTION_FAIL_UPON_UNABLE_TO_BIND (1ll << 30)
207 
211 #define LWS_SERVER_OPTION_H2_JUST_FIX_WINDOW_UPDATE_OVERFLOW (1ll << 31)
212 
215 #define LWS_SERVER_OPTION_VH_H2_HALF_CLOSED_LONG_POLL (1ll << 32)
216 
221 #define LWS_SERVER_OPTION_GLIB (1ll << 33)
222 
224  /****** add new things just above ---^ ******/
225 
226 
227 #define lws_check_opt(c, f) ((((uint64_t)c) & ((uint64_t)f)) == ((uint64_t)f))
228 
229 struct lws_plat_file_ops;
230 struct lws_ss_policy;
231 struct lws_ss_plugin;
232 
233 typedef int (*lws_context_ready_cb_t)(struct lws_context *context);
234 
245  int port;
254  const char *iface;
261  const struct lws_protocols *protocols;
267  const struct lws_extension *extensions;
278  const char *ssl_cert_filepath;
304  const char *ssl_ca_filepath;
313  const char *ssl_cipher_list;
323  const char *http_proxy_address;
327  unsigned int http_proxy_port;
329  int gid;
332  int uid;
335  uint64_t options;
337  void *user;
346  int ka_time;
356 #if defined(LWS_WITH_TLS) && !defined(LWS_WITH_MBEDTLS)
357  SSL_CTX *provided_client_ssl_ctx;
362 #else /* maintain structure layout either way */
364 #endif
365 
366  unsigned short max_http_header_data;
369  unsigned short max_http_header_pool;
377  unsigned int count_threads;
379  unsigned int fd_limit_per_thread;
395  unsigned int timeout_secs;
400  const char *ecdh_curve;
403  const char *vhost_name;
407  const char * const *plugin_dirs;
417  const char *log_filepath;
420  const struct lws_http_mount *mounts;
422  const char *server_string;
425  unsigned int pt_serv_buf_size;
431  unsigned int max_http_header_data2;
440  unsigned short ws_ping_pong_interval;
477  const void *client_ssl_cert_mem;
491  const void *client_ssl_ca_mem;
494  unsigned int client_ssl_ca_mem_len;
503  const struct lws_plat_file_ops *fops;
513  const char *socks_proxy_address;
517  unsigned int socks_proxy_port;
521 #if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP)
522  cap_value_t caps[4];
529  char count_caps;
532 #endif
550  unsigned int timeout_secs_ah_idle;
553  unsigned short ip_limit_ah;
561  unsigned short ip_limit_wsi;
568  uint32_t http2_settings[7];
574  const char *error_document_404;
578  const char *alpn;
599  void (*signal_cb)(void *event_lib_handle, int signum);
605  struct lws_context **pcontext;
611  void (*finalize)(struct lws_vhost *vh, void *arg);
620  unsigned int max_http_header_pool2;
644  const char *listen_accept_role;
653  const struct lws_protocols **pprotocols;
664  const void *server_ssl_cert_mem;
678  const void *server_ssl_ca_mem;
682  unsigned int server_ssl_ca_mem_len;
684  const char *username;
686  const char *groupname;
688  const char *unix_socket_perms;
695  det_lat_buf_cb_t detailed_latency_cb;
704  lws_state_notify_link_t * const *register_notifier_list;
714 #if defined(LWS_WITH_SECURE_STREAMS)
715  const char *pss_policies_json;
718  const struct lws_ss_plugin **pss_plugins;
721  const char *ss_proxy_bind;
726  const char *ss_proxy_address;
728  uint16_t ss_proxy_port; /* 0 = if connecting to ss proxy, do it via a
729  * Unix Domain Socket, "+@proxy.ss.lws" if ss_proxy_bind is NULL else
730  * the socket path given in ss_proxy_bind (start it with a + or +@);
731  * nonzero means connect via a tcp socket to the tcp address in
732  * ss_proxy_bind and the given port */
733 #endif
734 
735  /* Add new things just above here ---^
736  * This is part of the ABI, don't needlessly break compatibility
737  *
738  * The below is to ensure later library versions with new
739  * members added above will see 0 (default) even if the app
740  * was not built against the newer headers.
741  */
742 
743  void *_unused[2];
744 };
745 
780 LWS_VISIBLE LWS_EXTERN struct lws_context *
782 
783 
792 LWS_VISIBLE LWS_EXTERN void
793 lws_context_destroy(struct lws_context *context);
794 
795 typedef int (*lws_reload_func)(void);
796 
819 LWS_VISIBLE LWS_EXTERN void
820 lws_context_deprecate(struct lws_context *context, lws_reload_func cb);
821 
822 LWS_VISIBLE LWS_EXTERN int
823 lws_context_is_deprecated(struct lws_context *context);
824 
842 LWS_VISIBLE LWS_EXTERN int
843 lws_set_proxy(struct lws_vhost *vhost, const char *proxy);
844 
862 LWS_VISIBLE LWS_EXTERN int
863 lws_set_socks(struct lws_vhost *vhost, const char *socks);
864 
865 struct lws_vhost;
866 
876 LWS_VISIBLE LWS_EXTERN struct lws_vhost *
877 lws_create_vhost(struct lws_context *context,
878  const struct lws_context_creation_info *info);
879 
898 LWS_VISIBLE LWS_EXTERN void
899 lws_vhost_destroy(struct lws_vhost *vh);
900 
915 LWS_VISIBLE LWS_EXTERN int
917  char **config_strings, int *len);
918 
934 LWS_VISIBLE LWS_EXTERN int
935 lwsws_get_config_vhosts(struct lws_context *context,
936  struct lws_context_creation_info *info, const char *d,
937  char **config_strings, int *len);
938 
944 LWS_VISIBLE LWS_EXTERN struct lws_vhost *
945 lws_get_vhost(struct lws *wsi);
946 
952 LWS_VISIBLE LWS_EXTERN const char *
953 lws_get_vhost_name(struct lws_vhost *vhost);
954 
963 LWS_VISIBLE LWS_EXTERN struct lws_vhost *
964 lws_get_vhost_by_name(struct lws_context *context, const char *name);
965 
971 LWS_VISIBLE LWS_EXTERN int
972 lws_get_vhost_port(struct lws_vhost *vhost);
973 
979 LWS_VISIBLE LWS_EXTERN void *
980 lws_get_vhost_user(struct lws_vhost *vhost);
981 
987 LWS_VISIBLE LWS_EXTERN const char *
988 lws_get_vhost_iface(struct lws_vhost *vhost);
989 
997 LWS_VISIBLE LWS_EXTERN int
998 lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len);
999 
1010 LWS_VISIBLE LWS_EXTERN int
1011 lws_json_dump_context(const struct lws_context *context, char *buf, int len,
1012  int hide_vhosts);
1013 
1022 LWS_VISIBLE LWS_EXTERN void *
1023 lws_vhost_user(struct lws_vhost *vhost);
1024 
1034 LWS_VISIBLE LWS_EXTERN void *
1035 lws_context_user(struct lws_context *context);
1036 
1042 
1052  const char *name;
1053  const char *value;
1054 };
1055 
1068 };
1069 
1076  LWSAUTHM_BASIC_AUTH_CALLBACK = 1 << 28
1077 };
1078 
1080 #define AUTH_MODE_MASK 0xF0000000
1081 
1089  const char *mountpoint;
1091  const char *origin;
1093  const char *def;
1095  const char *protocol;
1111  unsigned int auth_mask;
1114  unsigned int cache_reusable:1;
1115  unsigned int cache_revalidate:1;
1116  unsigned int cache_intermediaries:1;
1118  unsigned char origin_protocol;
1119  unsigned char mountpoint_len;
1124  /* Add new things just above here ---^
1125  * This is part of the ABI, don't needlessly break compatibility
1126  *
1127  * The below is to ensure later library versions with new
1128  * members added above will see 0 (default) even if the app
1129  * was not built against the newer headers.
1130  */
1131 
1132  void *_unused[2];
1133 };
1134 
lws_set_proxy
LWS_VISIBLE LWS_EXTERN int lws_set_proxy(struct lws_vhost *vhost, const char *proxy)
lws_context_creation_info::max_http_header_pool
unsigned short max_http_header_pool
Definition: lws-context-vhost.h:369
lws_http_mount::cache_intermediaries
unsigned int cache_intermediaries
Definition: lws-context-vhost.h:1116
lws_context_creation_info::ssl_options_clear
long ssl_options_clear
Definition: lws-context-vhost.h:438
lws_create_context
LWS_VISIBLE LWS_EXTERN struct lws_context * lws_create_context(const struct lws_context_creation_info *info)
lws_protocol_vhost_options
Definition: lws-context-vhost.h:1049
lws_context_creation_info::ssl_private_key_filepath
const char * ssl_private_key_filepath
Definition: lws-context-vhost.h:290
lws_context_creation_info::fops
const struct lws_plat_file_ops * fops
Definition: lws-context-vhost.h:503
LWSMPRO_HTTPS
@ LWSMPRO_HTTPS
Definition: lws-context-vhost.h:1062
lws_context_creation_info::ecdh_curve
const char * ecdh_curve
Definition: lws-context-vhost.h:400
lws_context_creation_info::socks_proxy_address
const char * socks_proxy_address
Definition: lws-context-vhost.h:513
lws_context_creation_info::unix_socket_perms
const char * unix_socket_perms
Definition: lws-context-vhost.h:688
lws_protocol_vhost_options::value
const char * value
Definition: lws-context-vhost.h:1053
lws_context_creation_info::max_http_header_pool2
unsigned int max_http_header_pool2
Definition: lws-context-vhost.h:620
lws_context_creation_info::ssl_client_options_set
long ssl_client_options_set
Definition: lws-context-vhost.h:626
lws_protocol_vhost_options::name
const char * name
Definition: lws-context-vhost.h:1052
lws_context_creation_info::iface
const char * iface
Definition: lws-context-vhost.h:254
lws_context_creation_info::listen_accept_protocol
const char * listen_accept_protocol
Definition: lws-context-vhost.h:649
lws_authentication_mode
lws_authentication_mode
Definition: lws-context-vhost.h:1074
lws_context_creation_info::http_proxy_address
const char * http_proxy_address
Definition: lws-context-vhost.h:323
lws_http_mount::mount_next
const struct lws_http_mount * mount_next
Definition: lws-context-vhost.h:1087
lws_context_creation_info::ssl_cipher_list
const char * ssl_cipher_list
Definition: lws-context-vhost.h:313
lws_context_creation_info::pcontext
struct lws_context ** pcontext
Definition: lws-context-vhost.h:605
lws_context_creation_info::ip_limit_wsi
unsigned short ip_limit_wsi
Definition: lws-context-vhost.h:561
lws_get_vhost_name
LWS_VISIBLE LWS_EXTERN const char * lws_get_vhost_name(struct lws_vhost *vhost)
lws_context_creation_info::ws_ping_pong_interval
unsigned short ws_ping_pong_interval
Definition: lws-context-vhost.h:440
lws_json_dump_vhost
LWS_VISIBLE LWS_EXTERN int lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)
lws_context_creation_info::keepalive_timeout
int keepalive_timeout
Definition: lws-context-vhost.h:413
lws_context_creation_info::token_limits
const struct lws_token_limits * token_limits
Definition: lws-context-vhost.h:270
lws_http_mount::extra_mimetypes
const struct lws_protocol_vhost_options * extra_mimetypes
Definition: lws-context-vhost.h:1102
lws_context_destroy
LWS_VISIBLE LWS_EXTERN void lws_context_destroy(struct lws_context *context)
lws_context_creation_info::ip_limit_ah
unsigned short ip_limit_ah
Definition: lws-context-vhost.h:553
lws_json_dump_context
LWS_VISIBLE LWS_EXTERN int lws_json_dump_context(const struct lws_context *context, char *buf, int len, int hide_vhosts)
lws_mount_protocols
lws_mount_protocols
Definition: lws-context-vhost.h:1060
lws_http_mount::protocol
const char * protocol
Definition: lws-context-vhost.h:1095
lws_context_creation_info::client_ssl_ca_filepath
const char * client_ssl_ca_filepath
Definition: lws-context-vhost.h:489
lws_context_creation_info
Definition: lws-context-vhost.h:244
lws_context_creation_info::_unused
void * _unused[2]
Definition: lws-context-vhost.h:743
lws_context_creation_info::client_ssl_private_key_filepath
const char * client_ssl_private_key_filepath
Definition: lws-context-vhost.h:483
lws_http_mount::cache_max_age
int cache_max_age
Definition: lws-context-vhost.h:1109
lws_context_creation_info::foreign_loops
void ** foreign_loops
Definition: lws-context-vhost.h:585
lws_context_creation_info::client_ssl_cipher_list
const char * client_ssl_cipher_list
Definition: lws-context-vhost.h:498
lws_context_creation_info::reject_service_keywords
const struct lws_protocol_vhost_options * reject_service_keywords
Definition: lws-context-vhost.h:456
LWSMPRO_CGI
@ LWSMPRO_CGI
Definition: lws-context-vhost.h:1064
lws_protocol_vhost_options::next
const struct lws_protocol_vhost_options * next
Definition: lws-context-vhost.h:1050
lws_context_creation_info::port
int port
Definition: lws-context-vhost.h:245
lws_http_mount::def
const char * def
Definition: lws-context-vhost.h:1093
lws_extension
Definition: lws-ws-ext.h:139
lws_http_mount::origin_protocol
unsigned char origin_protocol
Definition: lws-context-vhost.h:1118
lws_context_creation_info::server_ssl_private_key_mem
const void * server_ssl_private_key_mem
Definition: lws-context-vhost.h:671
lws_context_creation_info::protocols
const struct lws_protocols * protocols
Definition: lws-context-vhost.h:261
lws_context_creation_info::mounts
const struct lws_http_mount * mounts
Definition: lws-context-vhost.h:420
lws_context_creation_info::detailed_latency_cb
det_lat_buf_cb_t detailed_latency_cb
Definition: lws-context-vhost.h:695
lws_http_mount::mountpoint_len
unsigned char mountpoint_len
Definition: lws-context-vhost.h:1119
lws_context_creation_info::extensions
const struct lws_extension * extensions
Definition: lws-context-vhost.h:267
lws_context_creation_info::plugin_dirs
const char *const * plugin_dirs
Definition: lws-context-vhost.h:407
lws_system_ops
Definition: lws-system.h:121
lws_context_creation_info::ka_interval
int ka_interval
Definition: lws-context-vhost.h:353
LWSMPRO_CALLBACK
@ LWSMPRO_CALLBACK
Definition: lws-context-vhost.h:1067
lws_http_mount::cgienv
const struct lws_protocol_vhost_options * cgienv
Definition: lws-context-vhost.h:1098
lws_context_deprecate
LWS_VISIBLE LWS_EXTERN void lws_context_deprecate(struct lws_context *context, lws_reload_func cb)
lws_context_creation_info::simultaneous_ssl_restriction
int simultaneous_ssl_restriction
Definition: lws-context-vhost.h:510
lws_context_creation_info::user
void * user
Definition: lws-context-vhost.h:337
lws_context_creation_info::log_filepath
const char * log_filepath
Definition: lws-context-vhost.h:417
lws_context_creation_info::client_ssl_private_key_password
const char * client_ssl_private_key_password
Definition: lws-context-vhost.h:471
lws_context_creation_info::system_ops
const lws_system_ops_t * system_ops
Definition: lws-context-vhost.h:692
lws_context_creation_info::server_ssl_cert_mem
const void * server_ssl_cert_mem
Definition: lws-context-vhost.h:664
lws_create_vhost
LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_create_vhost(struct lws_context *context, const struct lws_context_creation_info *info)
lws_context_creation_info::alpn
const char * alpn
Definition: lws-context-vhost.h:578
lws_http_mount::cache_revalidate
unsigned int cache_revalidate
Definition: lws-context-vhost.h:1115
lws_context_creation_info::count_threads
unsigned int count_threads
Definition: lws-context-vhost.h:377
lws_context_creation_info::pvo
const struct lws_protocol_vhost_options * pvo
Definition: lws-context-vhost.h:410
lws_get_vhost_port
LWS_VISIBLE LWS_EXTERN int lws_get_vhost_port(struct lws_vhost *vhost)
lws_context_creation_info::external_baggage_free_on_destroy
void * external_baggage_free_on_destroy
Definition: lws-context-vhost.h:463
lws_context_creation_info::error_document_404
const char * error_document_404
Definition: lws-context-vhost.h:574
lws_http_mount::cache_reusable
unsigned int cache_reusable
Definition: lws-context-vhost.h:1114
lws_http_mount::cgi_timeout
int cgi_timeout
Definition: lws-context-vhost.h:1107
lws_context_creation_info::udp_loss_sim_rx_pc
uint8_t udp_loss_sim_rx_pc
Definition: lws-context-vhost.h:711
lws_context_creation_info::uid
int uid
Definition: lws-context-vhost.h:332
LWSMPRO_HTTP
@ LWSMPRO_HTTP
Definition: lws-context-vhost.h:1061
LWSMPRO_REDIR_HTTP
@ LWSMPRO_REDIR_HTTP
Definition: lws-context-vhost.h:1065
lws_context_creation_info::udp_loss_sim_tx_pc
uint8_t udp_loss_sim_tx_pc
Definition: lws-context-vhost.h:708
LWSAUTHM_BASIC_AUTH_CALLBACK
@ LWSAUTHM_BASIC_AUTH_CALLBACK
Definition: lws-context-vhost.h:1076
lws_context_creation_info::vhost_name
const char * vhost_name
Definition: lws-context-vhost.h:403
lws_context_creation_info::finalize
void(* finalize)(struct lws_vhost *vh, void *arg)
Definition: lws-context-vhost.h:611
lws_context_creation_info::server_ssl_cert_mem_len
unsigned int server_ssl_cert_mem_len
Definition: lws-context-vhost.h:668
lws_context_creation_info::provided_client_ssl_ctx
void * provided_client_ssl_ctx
Definition: lws-context-vhost.h:363
lws_context_creation_info::client_ssl_cert_mem_len
unsigned int client_ssl_cert_mem_len
Definition: lws-context-vhost.h:480
lws_context_creation_info::fd_limit_per_thread
unsigned int fd_limit_per_thread
Definition: lws-context-vhost.h:379
lws_plat_file_ops
Definition: lws-vfs.h:95
lws_context_creation_info::pt_serv_buf_size
unsigned int pt_serv_buf_size
Definition: lws-context-vhost.h:425
lws_context_creation_info::ssl_options_set
long ssl_options_set
Definition: lws-context-vhost.h:436
lwsws_get_config_vhosts
LWS_VISIBLE LWS_EXTERN int lwsws_get_config_vhosts(struct lws_context *context, struct lws_context_creation_info *info, const char *d, char **config_strings, int *len)
lws_context_creation_info::client_ssl_cert_filepath
const char * client_ssl_cert_filepath
Definition: lws-context-vhost.h:474
lws_context_creation_info::listen_accept_role
const char * listen_accept_role
Definition: lws-context-vhost.h:644
lws_get_vhost
LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_get_vhost(struct lws *wsi)
lwsws_get_config_globals
LWS_VISIBLE LWS_EXTERN int lwsws_get_config_globals(struct lws_context_creation_info *info, const char *d, char **config_strings, int *len)
lws_vhost_user
LWS_VISIBLE LWS_EXTERN void * lws_vhost_user(struct lws_vhost *vhost)
lws_context_creation_info::ka_probes
int ka_probes
Definition: lws-context-vhost.h:349
lws_protocols
Definition: lws-protocols-plugins.h:44
lws_protocol_vhost_options::options
const struct lws_protocol_vhost_options * options
Definition: lws-context-vhost.h:1051
lws_http_mount::mountpoint
const char * mountpoint
Definition: lws-context-vhost.h:1089
lws_context_creation_info::timeout_secs
unsigned int timeout_secs
Definition: lws-context-vhost.h:395
lws_context_creation_info::server_string
const char * server_string
Definition: lws-context-vhost.h:422
lws_retry_bo
Definition: lws-retry.h:25
lws_http_mount::origin
const char * origin
Definition: lws-context-vhost.h:1091
lws_context_creation_info::client_tls_1_3_plus_cipher_list
const char * client_tls_1_3_plus_cipher_list
Definition: lws-context-vhost.h:638
lws_get_vhost_by_name
LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_get_vhost_by_name(struct lws_context *context, const char *name)
lws_context_creation_info::signal_cb
void(* signal_cb)(void *event_lib_handle, int signum)
Definition: lws-context-vhost.h:599
lws_context_creation_info::options
uint64_t options
Definition: lws-context-vhost.h:335
lws_context_creation_info::client_ssl_ca_mem
const void * client_ssl_ca_mem
Definition: lws-context-vhost.h:491
lws_context_creation_info::register_notifier_list
lws_state_notify_link_t *const * register_notifier_list
Definition: lws-context-vhost.h:704
lws_http_mount::_unused
void * _unused[2]
Definition: lws-context-vhost.h:1132
lws_context_creation_info::ssl_info_event_mask
int ssl_info_event_mask
Definition: lws-context-vhost.h:544
lws_context_creation_info::max_http_header_data
unsigned short max_http_header_data
Definition: lws-context-vhost.h:366
lws_http_mount::interpret
const struct lws_protocol_vhost_options * interpret
Definition: lws-context-vhost.h:1104
lws_context_creation_info::server_ssl_ca_mem
const void * server_ssl_ca_mem
Definition: lws-context-vhost.h:678
lws_context_creation_info::ssl_ca_filepath
const char * ssl_ca_filepath
Definition: lws-context-vhost.h:304
lws_context_creation_info::http_proxy_port
unsigned int http_proxy_port
Definition: lws-context-vhost.h:327
lws_context_creation_info::timeout_secs_ah_idle
unsigned int timeout_secs_ah_idle
Definition: lws-context-vhost.h:550
lws_context_creation_info::client_ssl_ca_mem_len
unsigned int client_ssl_ca_mem_len
Definition: lws-context-vhost.h:494
lws_vhost_destroy
LWS_VISIBLE LWS_EXTERN void lws_vhost_destroy(struct lws_vhost *vh)
lws_context_creation_info::pprotocols
const struct lws_protocols ** pprotocols
Definition: lws-context-vhost.h:653
lws_context_creation_info::detailed_latency_filepath
const char * detailed_latency_filepath
Definition: lws-context-vhost.h:698
lws_context_creation_info::http2_settings
uint32_t http2_settings[7]
Definition: lws-context-vhost.h:568
LWSMPRO_FILE
@ LWSMPRO_FILE
Definition: lws-context-vhost.h:1063
lws_context_creation_info::ssl_private_key_password
const char * ssl_private_key_password
Definition: lws-context-vhost.h:273
lws_http_mount::basic_auth_login_file
const char * basic_auth_login_file
Definition: lws-context-vhost.h:1121
lws_context_creation_info::gid
int gid
Definition: lws-context-vhost.h:329
lws_http_mount
Definition: lws-context-vhost.h:1086
lws_context_creation_info::ssl_client_options_clear
long ssl_client_options_clear
Definition: lws-context-vhost.h:628
lws_token_limits
Definition: lws-http.h:368
lws_context_creation_info::headers
const struct lws_protocol_vhost_options * headers
Definition: lws-context-vhost.h:452
lws_context_creation_info::max_http_header_data2
unsigned int max_http_header_data2
Definition: lws-context-vhost.h:431
lws_context_creation_info::socks_proxy_port
unsigned int socks_proxy_port
Definition: lws-context-vhost.h:517
lws_context_creation_info::server_ssl_private_key_mem_len
unsigned int server_ssl_private_key_mem_len
Definition: lws-context-vhost.h:676
lws_get_vhost_iface
LWS_VISIBLE LWS_EXTERN const char * lws_get_vhost_iface(struct lws_vhost *vhost)
lws_context_creation_info::tls1_3_plus_cipher_list
const char * tls1_3_plus_cipher_list
Definition: lws-context-vhost.h:631
lws_context_creation_info::client_ssl_cert_mem
const void * client_ssl_cert_mem
Definition: lws-context-vhost.h:477
lws_get_vhost_user
LWS_VISIBLE LWS_EXTERN void * lws_get_vhost_user(struct lws_vhost *vhost)
lws_set_socks
LWS_VISIBLE LWS_EXTERN int lws_set_socks(struct lws_vhost *vhost, const char *socks)
lws_context_creation_info::retry_and_idle_policy
const lws_retry_bo_t * retry_and_idle_policy
Definition: lws-context-vhost.h:700
lws_context_user
LWS_VISIBLE LWS_EXTERN void * lws_context_user(struct lws_context *context)
lws_http_mount::auth_mask
unsigned int auth_mask
Definition: lws-context-vhost.h:1111
lws_context_creation_info::bind_iface
int bind_iface
Definition: lws-context-vhost.h:533
lws_context_creation_info::username
const char * username
Definition: lws-context-vhost.h:684
lws_context_creation_info::groupname
const char * groupname
Definition: lws-context-vhost.h:686
LWSAUTHM_DEFAULT
@ LWSAUTHM_DEFAULT
Definition: lws-context-vhost.h:1075
LWSMPRO_REDIR_HTTPS
@ LWSMPRO_REDIR_HTTPS
Definition: lws-context-vhost.h:1066
lws_context_creation_info::ssl_cert_filepath
const char * ssl_cert_filepath
Definition: lws-context-vhost.h:278
lws_context_creation_info::finalize_arg
void * finalize_arg
Definition: lws-context-vhost.h:616
lws_context_creation_info::ka_time
int ka_time
Definition: lws-context-vhost.h:346
lws_context_creation_info::server_ssl_ca_mem_len
unsigned int server_ssl_ca_mem_len
Definition: lws-context-vhost.h:682