diff --git a/CMakeLists.txt b/CMakeLists.txt index 7567a19be84e8efcf82bcd19c51bc72049cd47ea..1df48fbc9c3758f42909356ebdde8c5ac98fff5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -113,6 +113,7 @@ option(LWS_PLAT_OPTEE "Build for OPTEE" OFF) option(LWS_WITH_NO_LOGS "Disable all logging from being compiled in" OFF) option(LWS_STATIC_PIC "Build the static version of the library with position-independent code" OFF) option(LWS_WITH_RANGES "Support http ranges (RFC7233)" ON) +option(LWS_FALLBACK_GETHOSTBYNAME "Also try to do dns resolution using gethostbyname if getaddrinfo fails" OFF) if (LWS_WITH_LWSWS) message(STATUS "LWS_WITH_LWSWS --> Enabling LWS_WITH_PLUGINS and LWS_WITH_LIBUV") diff --git a/doc/html/globals_func.html b/doc/html/globals_func.html index dd691c97b158f51630de9ed3264a2fcaf34f4aed..a8d221941adc1b09a03fe21ef5719747f09e23e1 100644 --- a/doc/html/globals_func.html +++ b/doc/html/globals_func.html @@ -352,7 +352,7 @@ $(document).ready(function(){initNavTree('globals_func.html','');}); : <a class="el" href="group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5">libwebsockets.h</a> </li> <li>lws_snprintf() -: <a class="el" href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">libwebsockets.h</a> +: <a class="el" href="group__misc.html#ga2163492f17db959a36967adb73d823b4">libwebsockets.h</a> </li> <li>lws_spa_create() : <a class="el" href="group__form-parsing.html#ga162f86762173a2bc8c28497941d74815">libwebsockets.h</a> diff --git a/doc/html/globals_l.html b/doc/html/globals_l.html index 2f149b84d30b9ac351ad5565bdfe4ca2889168cf..828aa51d0c855af8a9a19f10a0e0083a95f361ce 100644 --- a/doc/html/globals_l.html +++ b/doc/html/globals_l.html @@ -631,7 +631,7 @@ $(document).ready(function(){initNavTree('globals_l.html','');}); : <a class="el" href="group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5">libwebsockets.h</a> </li> <li>lws_snprintf() -: <a class="el" href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">libwebsockets.h</a> +: <a class="el" href="group__misc.html#ga2163492f17db959a36967adb73d823b4">libwebsockets.h</a> </li> <li>lws_spa_create() : <a class="el" href="group__form-parsing.html#ga162f86762173a2bc8c28497941d74815">libwebsockets.h</a> diff --git a/doc/html/group__client.html b/doc/html/group__client.html index 49fcd7f2266708887f5b7518f453cd7633b046dd..4dd343b1ded3c576e623b962439851f1001d192a 100644 --- a/doc/html/group__client.html +++ b/doc/html/group__client.html @@ -119,7 +119,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom">< <p><code>#include <<a class="el" href="libwebsockets_8h.html">lib/libwebsockets.h</a>></code></p> <p>enum lws_client_connect_ssl_connection_flags - flags that may be used with struct <a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</a> ssl_connection member to control if and how SSL checks apply to the client connection being created </p> -<div class="fragment"><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>  {</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>  LCCSCF_USE_SSL = (1 << 0),</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>  LCCSCF_ALLOW_SELFSIGNED = (1 << 1),</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>  LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 << 2),</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>  LCCSCF_ALLOW_EXPIRED = (1 << 3)</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> };</div></div><!-- fragment --> +<div class="fragment"><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>  {</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>  LCCSCF_USE_SSL = (1 << 0),</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>  LCCSCF_ALLOW_SELFSIGNED = (1 << 1),</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>  LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 << 2),</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>  LCCSCF_ALLOW_EXPIRED = (1 << 3)</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span> };</div></div><!-- fragment --> </div> </div> <h2 class="groupheader">Function Documentation</h2> diff --git a/doc/html/group__context-and-vhost.html b/doc/html/group__context-and-vhost.html index 2b08340d5300c587dfbb1dd2504bbc0ddb29a9d5..36a83f3940eb010e5d3365e6ac12be1ead133042 100644 --- a/doc/html/group__context-and-vhost.html +++ b/doc/html/group__context-and-vhost.html @@ -211,25 +211,25 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b <tr><td class="fieldname"><a id="gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf"></a>LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN </td><td class="fielddoc"><p>For backwards-compatibility reasons, by default lws prepends "http://" to the origin you give in the client connection info struct. If you give this flag when you create the context, only the string you give in the client connect info for .origin (if any) will be used directly. </p> </td></tr> </table> -<div class="fragment"><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>  {</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a> = (1 << 1) |</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>  (1 << 12),</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a> = (1 << 2),</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a> = (1 << 3) |</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>  (1 << 12),</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a> = (1 << 4),</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a> = (1 << 5),</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a> = (1 << 6),</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a> = (1 << 7),</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a> = (1 << 8),</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a> = (1 << 9) |</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>  (1 << 12),</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a> = (1 << 10),</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a> = (1 << 11) |</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>  (1 << 12),</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a> = (1 << 12),</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a> = (1 << 13),</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a> = (1 << 14),</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a> = (1 << 15),</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a> = (1 << 16),</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a> = (1 << 17),</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd">LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN</a> = (1 << 18),</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf">LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN</a> = (1 << 19),</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> };</div><div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1529</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1545</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd">LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1575</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1557</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1563</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1534</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1552</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1536</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1541</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1561</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1573</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1543</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1555</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1566</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1550</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1548</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf">LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1581</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1568</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1571</div></div> +<div class="fragment"><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>  {</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a> = (1 << 1) |</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>  (1 << 12),</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a> = (1 << 2),</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a> = (1 << 3) |</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>  (1 << 12),</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a> = (1 << 4),</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a> = (1 << 5),</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a> = (1 << 6),</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a> = (1 << 7),</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a> = (1 << 8),</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a> = (1 << 9) |</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>  (1 << 12),</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a> = (1 << 10),</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a> = (1 << 11) |</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>  (1 << 12),</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a> = (1 << 12),</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a> = (1 << 13),</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a> = (1 << 14),</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a> = (1 << 15),</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a> = (1 << 16),</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a> = (1 << 17),</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd">LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN</a> = (1 << 18),</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf">LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN</a> = (1 << 19),</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> };</div><div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1531</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1547</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd">LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1577</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1559</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1565</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1536</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1554</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1538</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1543</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1563</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1575</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1545</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1557</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1568</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1552</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1550</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf">LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1583</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1570</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1573</div></div> </div><!-- fragment --> </div> </div> diff --git a/doc/html/group__extensions.html b/doc/html/group__extensions.html index 2f45b19318fc2f11023fb7d90cdea615d7c0a234..8bad1ee9b39eace3aba2e9202938f8f1ccfdee36 100644 --- a/doc/html/group__extensions.html +++ b/doc/html/group__extensions.html @@ -242,9 +242,9 @@ Functions</h2></td></tr> <tr><td class="fieldname"><a id="ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880"></a>EXTARG_OPT_DEC </td><td class="fielddoc"><p>may have an optional decimal argument </p> </td></tr> </table> -<div class="fragment"><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  {</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a>, </div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a>, </div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a> </div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> };</div><div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1133</div></div> -<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1131</div></div> -<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1132</div></div> +<div class="fragment"><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  {</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a>, </div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a>, </div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a> </div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> };</div><div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1135</div></div> +<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1133</div></div> +<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1134</div></div> </div><!-- fragment --> </div> </div> diff --git a/doc/html/group__form-parsing.html b/doc/html/group__form-parsing.html index a9e846d15b41c93296c7498c176c7605fa136d66..73ba6bd15e3262003ae9a74ba6dc4826c5c179d4 100644 --- a/doc/html/group__form-parsing.html +++ b/doc/html/group__form-parsing.html @@ -156,9 +156,9 @@ Functions</h2></td></tr> <tr><td class="fieldname"><a id="gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"></a>LWS_UFS_OPEN </td><td class="fielddoc"><p>a new file is starting to arrive </p> </td></tr> </table> -<div class="fragment"><div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>  {</div><div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,</div><div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,</div><div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="line"><a name="l02932"></a><span class="lineno"> 2932</span> };</div><div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2928</div></div> -<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2930</div></div> -<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2926</div></div> +<div class="fragment"><div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>  {</div><div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,</div><div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,</div><div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="line"><a name="l02934"></a><span class="lineno"> 2934</span> };</div><div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2930</div></div> +<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2932</div></div> +<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2928</div></div> </div><!-- fragment --> </div> </div> diff --git a/doc/html/group__generic-sessions.html b/doc/html/group__generic-sessions.html index 8e52741748a9766296fd1053b92b0ac1e87a4245..35a22191ed6931360e762cdf570354b0db89015a 100644 --- a/doc/html/group__generic-sessions.html +++ b/doc/html/group__generic-sessions.html @@ -116,8 +116,8 @@ Enumerations</h2></td></tr> <tr><td class="fieldname"><a id="ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde"></a>LWSGSE_DELETED </td><td class="fielddoc"><p>an existing user was deleted </p> </td></tr> </table> -<div class="fragment"><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>  {</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>  <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a>, </div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>  <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a> </div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> };</div><div class="ttc" id="group__generic-sessions_html_ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde"><div class="ttname"><a href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1494</div></div> -<div class="ttc" id="group__generic-sessions_html_ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308"><div class="ttname"><a href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1493</div></div> +<div class="fragment"><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>  {</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>  <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a>, </div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>  <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a> </div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> };</div><div class="ttc" id="group__generic-sessions_html_ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde"><div class="ttname"><a href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1496</div></div> +<div class="ttc" id="group__generic-sessions_html_ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308"><div class="ttname"><a href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1495</div></div> </div><!-- fragment --> </div> </div> @@ -145,10 +145,10 @@ Enumerations</h2></td></tr> <tr><td class="fieldname"><a id="gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a"></a>LWSGS_AUTH_FORGOT_FLOW </td><td class="fielddoc"><p>he just completed "forgot password" flow </p> </td></tr> </table> -<div class="fragment"><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>  {</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a> = 1, </div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a> = 2, </div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a> = 4, </div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a> = 8, </div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> };</div><div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1477</div></div> -<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1478</div></div> -<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1476</div></div> -<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1475</div></div> +<div class="fragment"><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>  {</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a> = 1, </div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a> = 2, </div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a> = 4, </div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a> = 8, </div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> };</div><div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1479</div></div> +<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1480</div></div> +<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1478</div></div> +<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1477</div></div> </div><!-- fragment --> </div> </div> diff --git a/doc/html/group__log.html b/doc/html/group__log.html index 4bea932944d678b2d49713e7df1219fa8599915b..695c2a686fe9541a4bd338c97bd19c204e4d3976 100644 --- a/doc/html/group__log.html +++ b/doc/html/group__log.html @@ -91,9 +91,9 @@ Enumerations</h2></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> -<tr class="memitem:gaf5f07837692b2f231a79da8a058288aa"><td class="memItemLeft" align="right" valign="top"><a id="gaf5f07837692b2f231a79da8a058288aa"></a> -LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><b>_lws_log</b> (int filter, const char *format,...)</td></tr> -<tr class="separator:gaf5f07837692b2f231a79da8a058288aa"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga0cdc1065ae7f003d59a3c8525acf545e"><td class="memItemLeft" align="right" valign="top"><a id="ga0cdc1065ae7f003d59a3c8525acf545e"></a> +LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><b>_lws_log</b> (int filter, const char *format,...) LWS_FORMAT(2)</td></tr> +<tr class="separator:ga0cdc1065ae7f003d59a3c8525acf545e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga74eb146969f0595e12ea835851b4588e"><td class="memItemLeft" align="right" valign="top"><a id="ga74eb146969f0595e12ea835851b4588e"></a> LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><b>_lws_logv</b> (int filter, const char *format, va_list vl)</td></tr> <tr class="separator:ga74eb146969f0595e12ea835851b4588e"><td class="memSeparator" colspan="2"> </td></tr> diff --git a/doc/html/group__misc.html b/doc/html/group__misc.html index ebc235175ff093513bb8bdf2d775e8b453b7da2b..d58442cce7cda7f8faed31394464da718dff0564 100644 --- a/doc/html/group__misc.html +++ b/doc/html/group__misc.html @@ -69,8 +69,8 @@ $(document).ready(function(){initNavTree('group__misc.html','');}); <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> -<tr class="memitem:ga9f37d0e357de2ab4170723fcdb665d21"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">lws_snprintf</a> (char *str, size_t size, const char *format,...)</td></tr> -<tr class="separator:ga9f37d0e357de2ab4170723fcdb665d21"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga2163492f17db959a36967adb73d823b4"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga2163492f17db959a36967adb73d823b4">lws_snprintf</a> (char *str, size_t size, const char *format,...) LWS_FORMAT(3)</td></tr> +<tr class="separator:ga2163492f17db959a36967adb73d823b4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga58f906c6be0ca80efd813f694569dd4a"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga58f906c6be0ca80efd813f694569dd4a">lws_get_random</a> (struct lws_context *context, void *buf, int len)</td></tr> <tr class="separator:ga58f906c6be0ca80efd813f694569dd4a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gace5171b1dbbc03ec89a98f8afdb5c9af"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">lws_daemonize</a> (const char *_lock_path)</td></tr> @@ -118,7 +118,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b </div><div class="memdoc"> <p><code>#include <<a class="el" href="libwebsockets_8h.html">lib/libwebsockets.h</a>></code></p> -<p><a class="el" href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">lws_daemonize()</a>: fill a buffer with platform random data</p> +<p><a class="el" href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">lws_daemonize()</a>: make current process run in the background</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">_lock_path</td><td>the filepath to write the lock file</td></tr> @@ -414,8 +414,8 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b </div> </div> -<a id="ga9f37d0e357de2ab4170723fcdb665d21"></a> -<h2 class="memtitle"><span class="permalink"><a href="#ga9f37d0e357de2ab4170723fcdb665d21">§ </a></span>lws_snprintf()</h2> +<a id="ga2163492f17db959a36967adb73d823b4"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga2163492f17db959a36967adb73d823b4">§ </a></span>lws_snprintf()</h2> <div class="memitem"> <div class="memproto"> @@ -453,7 +453,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b </div><div class="memdoc"> <p><code>#include <<a class="el" href="libwebsockets_8h.html">lib/libwebsockets.h</a>></code></p> -<p><a class="el" href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">lws_snprintf()</a>: snprintf that truncates the returned length too</p> +<p><a class="el" href="group__misc.html#ga2163492f17db959a36967adb73d823b4">lws_snprintf()</a>: snprintf that truncates the returned length too</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">str</td><td>destination buffer </td></tr> diff --git a/doc/html/group__misc.js b/doc/html/group__misc.js index c9fd40e1fca5f7e1dcf164be5609c2ad34ea82cd..1fac4c2c8729a4a9c365c167cf30705031082900 100644 --- a/doc/html/group__misc.js +++ b/doc/html/group__misc.js @@ -10,6 +10,6 @@ var group__misc = [ "lws_now_secs", "group__misc.html#ga33bf2635033710b25f931b57ed663e1e", null ], [ "lws_parse_uri", "group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa", null ], [ "lws_set_allocator", "group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b", null ], - [ "lws_snprintf", "group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21", null ], + [ "lws_snprintf", "group__misc.html#ga2163492f17db959a36967adb73d823b4", null ], [ "lws_wsi_user", "group__misc.html#gaa194584fff9698f3b280658f770ccd0f", null ] ]; \ No newline at end of file diff --git a/doc/html/group__sending-data.html b/doc/html/group__sending-data.html index 3e917b0c56cabddeaa85e262f31fc499115129cc..1d8c1dff093fa2e97b09f9a099c5ad9d0ac903f2 100644 --- a/doc/html/group__sending-data.html +++ b/doc/html/group__sending-data.html @@ -124,13 +124,13 @@ Functions</h2></td></tr> <tr><td class="fieldname"><a id="gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"></a>LWS_WRITE_CLIENT_IGNORE_XOR_MASK </td><td class="fielddoc"><p>client packet payload goes out on wire unmunged only useful for security tests since normal servers cannot decode the content if used </p> </td></tr> </table> -<div class="fragment"><div class="line"><a name="l03272"></a><span class="lineno"> 3272</span>  {</div><div class="line"><a name="l03273"></a><span class="lineno"> 3273</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a> = 0,</div><div class="line"><a name="l03277"></a><span class="lineno"> 3277</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a> = 1,</div><div class="line"><a name="l03280"></a><span class="lineno"> 3280</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a> = 2,</div><div class="line"><a name="l03283"></a><span class="lineno"> 3283</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a> = 3,</div><div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>  <span class="comment">/* LWS_WRITE_CLOSE is handled by lws_close_reason() */</span></div><div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>  LWS_WRITE_PING = 5,</div><div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>  LWS_WRITE_PONG = 6,</div><div class="line"><a name="l03289"></a><span class="lineno"> 3289</span> </div><div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>  <span class="comment">/* Same as write_http but we know this write ends the transaction */</span></div><div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>  LWS_WRITE_HTTP_FINAL = 7,</div><div class="line"><a name="l03292"></a><span class="lineno"> 3292</span> </div><div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>  <span class="comment">/* HTTP2 */</span></div><div class="line"><a name="l03294"></a><span class="lineno"> 3294</span> </div><div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a> = 8,</div><div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03303"></a><span class="lineno"> 3303</span> </div><div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>  <span class="comment">/* flags */</span></div><div class="line"><a name="l03305"></a><span class="lineno"> 3305</span> </div><div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,</div><div class="line"><a name="l03309"></a><span class="lineno"> 3309</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a> = 0x80</div><div class="line"><a name="l03313"></a><span class="lineno"> 3313</span> };</div><div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3283</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3306</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3273</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3277</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3309</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3280</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3295</div></div> +<div class="fragment"><div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>  {</div><div class="line"><a name="l03275"></a><span class="lineno"> 3275</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a> = 0,</div><div class="line"><a name="l03279"></a><span class="lineno"> 3279</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a> = 1,</div><div class="line"><a name="l03282"></a><span class="lineno"> 3282</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a> = 2,</div><div class="line"><a name="l03285"></a><span class="lineno"> 3285</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a> = 3,</div><div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>  <span class="comment">/* LWS_WRITE_CLOSE is handled by lws_close_reason() */</span></div><div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>  LWS_WRITE_PING = 5,</div><div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>  LWS_WRITE_PONG = 6,</div><div class="line"><a name="l03291"></a><span class="lineno"> 3291</span> </div><div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>  <span class="comment">/* Same as write_http but we know this write ends the transaction */</span></div><div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>  LWS_WRITE_HTTP_FINAL = 7,</div><div class="line"><a name="l03294"></a><span class="lineno"> 3294</span> </div><div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>  <span class="comment">/* HTTP2 */</span></div><div class="line"><a name="l03296"></a><span class="lineno"> 3296</span> </div><div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a> = 8,</div><div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03305"></a><span class="lineno"> 3305</span> </div><div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>  <span class="comment">/* flags */</span></div><div class="line"><a name="l03307"></a><span class="lineno"> 3307</span> </div><div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,</div><div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a> = 0x80</div><div class="line"><a name="l03315"></a><span class="lineno"> 3315</span> };</div><div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3285</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3308</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3275</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3279</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3311</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3282</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3297</div></div> </div><!-- fragment --> </div> </div> diff --git a/doc/html/group__smtp.html b/doc/html/group__smtp.html index 57852b716b2acfab7419fa0aa8e5517df6ac22d3..509d6e52e7cbed9d3b0974515d3aea661b9f0666 100644 --- a/doc/html/group__smtp.html +++ b/doc/html/group__smtp.html @@ -149,15 +149,15 @@ Functions</h2></td></tr> <tr><td class="fieldname"><a id="gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5"></a>LGSSMTP_SENT_QUIT </td><td class="fielddoc"><p>sent the session quit </p> </td></tr> </table> -<div class="fragment"><div class="line"><a name="l04280"></a><span class="lineno"> 4280</span>  {</div><div class="line"><a name="l04281"></a><span class="lineno"> 4281</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l04282"></a><span class="lineno"> 4282</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l04283"></a><span class="lineno"> 4283</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l04284"></a><span class="lineno"> 4284</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l04285"></a><span class="lineno"> 4285</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l04286"></a><span class="lineno"> 4286</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l04287"></a><span class="lineno"> 4287</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l04288"></a><span class="lineno"> 4288</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l04289"></a><span class="lineno"> 4289</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l04290"></a><span class="lineno"> 4290</span> };</div><div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4283</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4288</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4281</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4282</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4286</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4285</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4289</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4284</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4287</div></div> +<div class="fragment"><div class="line"><a name="l04282"></a><span class="lineno"> 4282</span>  {</div><div class="line"><a name="l04283"></a><span class="lineno"> 4283</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l04284"></a><span class="lineno"> 4284</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l04285"></a><span class="lineno"> 4285</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l04286"></a><span class="lineno"> 4286</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l04287"></a><span class="lineno"> 4287</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l04288"></a><span class="lineno"> 4288</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l04289"></a><span class="lineno"> 4289</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l04290"></a><span class="lineno"> 4290</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l04291"></a><span class="lineno"> 4291</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l04292"></a><span class="lineno"> 4292</span> };</div><div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4285</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4290</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4283</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4284</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4288</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4287</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4291</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4286</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4289</div></div> </div><!-- fragment --> </div> </div> diff --git a/doc/html/group__usercb.html b/doc/html/group__usercb.html index d4c20a4b05b26bbbe9e61030f1f435f58d783525..555425a673d76ac6dd5bb044298e4ccfbd0b97ca 100644 --- a/doc/html/group__usercb.html +++ b/doc/html/group__usercb.html @@ -348,49 +348,49 @@ Enumerations</h2></td></tr> <tr><td class="fieldname"><a id="ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a"></a>LWS_CALLBACK_USER </td><td class="fielddoc"><p>user code can use any including / above without fear of clashes </p> </td></tr> </table> -<div class="fragment"><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a> = 0,</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a> = 1,</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a> = 2,</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a> = 3,</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a> = 4,</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a> = 5,</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a> = 6,</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a> = 7,</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a> = 8,</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a> = 9,</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a> = 10,</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a> = 11,</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a> = 12,</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a> = 13,</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a> = 14,</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a> = 15,</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a> = 16,</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a> = 17,</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a> = 18,</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a> = 19,</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a> = 20,</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a> = 21,</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a> = 22,</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a> = 23,</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a> = 24,</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a> = 25,</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a> = 26,</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a> = 27,</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a> = 28,</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a> = 29,</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a> = 30,</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a> = 31,</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <span class="comment">/* external poll() management support */</span></div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a> = 32,</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a> = 33,</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a> = 34,</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a> = 35,</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a> = 36,</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a> = 37,</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a> = 38,</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  LWS_CALLBACK_WS_EXT_DEFAULTS = 39,</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  LWS_CALLBACK_CGI = 40,</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  LWS_CALLBACK_CGI_TERMINATED = 41,</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  LWS_CALLBACK_CGI_STDIN_DATA = 42,</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  LWS_CALLBACK_CGI_STDIN_COMPLETED = 43,</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44,</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45,</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46,</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47,</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48,</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49,</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50,</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51,</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  LWS_CALLBACK_PROCESS_HTML = 52,</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  LWS_CALLBACK_ADD_HEADERS = 53,</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  LWS_CALLBACK_SESSION_INFO = 54,</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  LWS_CALLBACK_GS_EVENT = 55,</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a> = 56,</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6">LWS_CALLBACK_CLIENT_HTTP_WRITEABLE</a> = 57,</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b">LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION</a> = 58,</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> </div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000,</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> };</div><div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:775</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:903</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:818</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:901</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:806</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:752</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:786</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:927</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:873</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:766</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:964</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:956</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:953</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:884</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:727</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:905</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:893</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:724</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:911</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:717</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:798</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:896</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:933</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:773</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:769</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:669</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:831</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:737</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:771</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1009</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:849</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:735</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:740</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6">LWS_CALLBACK_CLIENT_HTTP_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1014</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:825</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:673</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:750</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1056</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b">LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1023</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:729</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:731</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:742</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:941</div></div> +<div class="fragment"><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  {</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a> = 0,</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a> = 1,</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a> = 2,</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a> = 3,</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a> = 4,</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a> = 5,</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a> = 6,</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a> = 7,</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a> = 8,</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a> = 9,</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a> = 10,</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a> = 11,</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a> = 12,</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a> = 13,</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a> = 14,</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a> = 15,</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a> = 16,</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a> = 17,</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a> = 18,</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a> = 19,</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a> = 20,</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a> = 21,</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a> = 22,</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a> = 23,</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a> = 24,</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a> = 25,</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a> = 26,</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a> = 27,</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a> = 28,</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a> = 29,</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a> = 30,</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a> = 31,</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <span class="comment">/* external poll() management support */</span></div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a> = 32,</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a> = 33,</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a> = 34,</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a> = 35,</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a> = 36,</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a> = 37,</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a> = 38,</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  LWS_CALLBACK_WS_EXT_DEFAULTS = 39,</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  LWS_CALLBACK_CGI = 40,</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  LWS_CALLBACK_CGI_TERMINATED = 41,</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  LWS_CALLBACK_CGI_STDIN_DATA = 42,</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  LWS_CALLBACK_CGI_STDIN_COMPLETED = 43,</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44,</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45,</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46,</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47,</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48,</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49,</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50,</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51,</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  LWS_CALLBACK_PROCESS_HTML = 52,</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  LWS_CALLBACK_ADD_HEADERS = 53,</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  LWS_CALLBACK_SESSION_INFO = 54,</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  LWS_CALLBACK_GS_EVENT = 55,</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a> = 56,</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6">LWS_CALLBACK_CLIENT_HTTP_WRITEABLE</a> = 57,</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b">LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION</a> = 58,</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> </div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000,</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> };</div><div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:777</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:905</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:820</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:903</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:808</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:754</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:788</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:929</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:875</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:768</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:966</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:958</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:955</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:886</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:729</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:907</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:895</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:726</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:913</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:719</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:800</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:898</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:935</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:775</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:771</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:671</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:833</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:739</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:773</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1011</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:851</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:737</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:742</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6">LWS_CALLBACK_CLIENT_HTTP_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1016</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:827</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:675</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:752</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1058</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b">LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1025</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:731</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:733</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:744</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:943</div></div> </div><!-- fragment --> </div> </div> diff --git a/doc/html/group__vhost-mounts.html b/doc/html/group__vhost-mounts.html index da1a7ced855070ec72dcd5af48a7b31e13b42296..9d90c4cae61e3b1ef93790b8df79bbf6c538e1a6 100644 --- a/doc/html/group__vhost-mounts.html +++ b/doc/html/group__vhost-mounts.html @@ -123,13 +123,13 @@ Enumerations</h2></td></tr> <tr><td class="fieldname"><a id="gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"></a>LWSMPRO_CALLBACK </td><td class="fielddoc"><p>hand by named protocol's callback </p> </td></tr> </table> -<div class="fragment"><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>  {</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a> = 0, </div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a> = 1, </div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a> = 2, </div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a> = 3, </div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a> = 4, </div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a> = 5, </div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a> = 6, </div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> };</div><div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2008</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2006</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2007</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2009</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2010</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2005</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2011</div></div> +<div class="fragment"><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>  {</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a> = 0, </div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a> = 1, </div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a> = 2, </div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a> = 3, </div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a> = 4, </div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a> = 5, </div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a> = 6, </div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span> };</div><div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2010</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2008</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2009</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2011</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2012</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2007</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2013</div></div> </div><!-- fragment --> </div> </div> diff --git a/doc/html/group__wsclose.html b/doc/html/group__wsclose.html index e415d46b9773506fda33d2f37d8bb02678327914..6d4782b10a80bd947799ec81bc66ace2bd6fd2e7 100644 --- a/doc/html/group__wsclose.html +++ b/doc/html/group__wsclose.html @@ -144,19 +144,19 @@ Functions</h2></td></tr> <tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390"></a>LWS_CLOSE_STATUS_TLS_FAILURE </td><td class="fielddoc"><p>1015 is a reserved value and MUST NOT be set as a status code in a Close control frame by an endpoint. It is designated for use in applications expecting a status code to indicate that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified). </p> </td></tr> </table> -<div class="fragment"><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  {</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  LWS_CLOSE_STATUS_NOSTATUS = 0,</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a> = 1000,</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a> = 1001,</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a> = 1002,</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a> = 1003,</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a> = 1004,</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a> = 1005,</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a> = 1006,</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a> = 1007,</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a> = 1008,</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a> = 1009,</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a> = 1010,</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a> = 1011,</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a> = 1015,</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span> </div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY = 9999,</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> };</div><div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:587</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:598</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:614</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:566</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:592</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:576</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:581</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:563</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:602</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:560</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:569</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:574</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:610</div></div> +<div class="fragment"><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  LWS_CLOSE_STATUS_NOSTATUS = 0,</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a> = 1000,</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a> = 1001,</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a> = 1002,</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a> = 1003,</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a> = 1004,</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a> = 1005,</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a> = 1006,</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a> = 1007,</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a> = 1008,</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a> = 1009,</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a> = 1010,</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a> = 1011,</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a> = 1015,</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY = 9999,</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span> };</div><div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:589</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:600</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:616</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:568</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:594</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:578</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:583</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:565</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:604</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:562</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:571</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:576</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:612</div></div> </div><!-- fragment --> </div> </div> diff --git a/doc/html/libwebsockets_8h.html b/doc/html/libwebsockets_8h.html index f501bf0c99707c84a3b91b8796ff8379d9dc6515..b519f34ea5d2ced304b8b833990318f5c580b39a 100644 --- a/doc/html/libwebsockets_8h.html +++ b/doc/html/libwebsockets_8h.html @@ -634,9 +634,9 @@ Enumerations</h2></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> -<tr class="memitem:gaf5f07837692b2f231a79da8a058288aa"><td class="memItemLeft" align="right" valign="top"> -LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><b>_lws_log</b> (int filter, const char *format,...)</td></tr> -<tr class="separator:gaf5f07837692b2f231a79da8a058288aa"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga0cdc1065ae7f003d59a3c8525acf545e"><td class="memItemLeft" align="right" valign="top"> +LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><b>_lws_log</b> (int filter, const char *format,...) LWS_FORMAT(2)</td></tr> +<tr class="separator:ga0cdc1065ae7f003d59a3c8525acf545e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga74eb146969f0595e12ea835851b4588e"><td class="memItemLeft" align="right" valign="top"> LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><b>_lws_logv</b> (int filter, const char *format, va_list vl)</td></tr> <tr class="separator:ga74eb146969f0595e12ea835851b4588e"><td class="memSeparator" colspan="2"> </td></tr> @@ -666,9 +666,9 @@ lws_sockfd_type </td><td class="memItemRight" valign="bottom"><b>esp8266_cr <tr class="memitem:a9b1bfc6f34319188d2aa40500d825bab"><td class="memItemLeft" align="right" valign="top"><a id="a9b1bfc6f34319188d2aa40500d825bab"></a> void </td><td class="memItemRight" valign="bottom"><b>esp8266_tcp_stream_accept</b> (lws_sockfd_type fd, struct lws *wsi)</td></tr> <tr class="separator:a9b1bfc6f34319188d2aa40500d825bab"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a75e9827318684877deb4189121a8cd2a"><td class="memItemLeft" align="right" valign="top"><a id="a75e9827318684877deb4189121a8cd2a"></a> -int </td><td class="memItemRight" valign="bottom"><b>ets_snprintf</b> (char *str, size_t size, const char *format,...)</td></tr> -<tr class="separator:a75e9827318684877deb4189121a8cd2a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a71451ba21aadc2fa3e25674d04c31ab7"><td class="memItemLeft" align="right" valign="top"><a id="a71451ba21aadc2fa3e25674d04c31ab7"></a> +int </td><td class="memItemRight" valign="bottom"><b>ets_snprintf</b> (char *str, size_t size, const char *format,...) LWS_FORMAT(3)</td></tr> +<tr class="separator:a71451ba21aadc2fa3e25674d04c31ab7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a863bdd5bca33bcbaa424c42fb7b2fc96"><td class="memItemLeft" align="right" valign="top"><a id="a863bdd5bca33bcbaa424c42fb7b2fc96"></a> void </td><td class="memItemRight" valign="bottom"><b>os_timer_disarm</b> (void *)</td></tr> <tr class="separator:a863bdd5bca33bcbaa424c42fb7b2fc96"><td class="memSeparator" colspan="2"> </td></tr> @@ -890,8 +890,8 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b <tr class="separator:gad01014fed09759741b6d23afccfdaacc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga869d8bdffb0f2a7ce08e3ce10d6be3d8"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8">lws_interface_to_sa</a> (int ipv6, const char *ifname, struct sockaddr_in *addr, size_t addrlen)</td></tr> <tr class="separator:ga869d8bdffb0f2a7ce08e3ce10d6be3d8"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ga9f37d0e357de2ab4170723fcdb665d21"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">lws_snprintf</a> (char *str, size_t size, const char *format,...)</td></tr> -<tr class="separator:ga9f37d0e357de2ab4170723fcdb665d21"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga2163492f17db959a36967adb73d823b4"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga2163492f17db959a36967adb73d823b4">lws_snprintf</a> (char *str, size_t size, const char *format,...) LWS_FORMAT(3)</td></tr> +<tr class="separator:ga2163492f17db959a36967adb73d823b4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga58f906c6be0ca80efd813f694569dd4a"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga58f906c6be0ca80efd813f694569dd4a">lws_get_random</a> (struct lws_context *context, void *buf, int len)</td></tr> <tr class="separator:ga58f906c6be0ca80efd813f694569dd4a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gace5171b1dbbc03ec89a98f8afdb5c9af"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">lws_daemonize</a> (const char *_lock_path)</td></tr> diff --git a/doc/html/libwebsockets_8h.js b/doc/html/libwebsockets_8h.js index 788f66df6b0977f4b559fb2c6cce59aeb0892d14..40e2577832592fb5676b559f0e9a0436c123e4c2 100644 --- a/doc/html/libwebsockets_8h.js +++ b/doc/html/libwebsockets_8h.js @@ -385,11 +385,11 @@ var libwebsockets_8h = [ "PENDING_TIMEOUT_WS_PONG_CHECK_GET_PONG", "group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a62ae208399be1f872e14843fd15f9e06", null ], [ "PENDING_TIMEOUT_CLIENT_ISSUE_PAYLOAD", "group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a8587dc22f946c45e2f38c4045479fda5", null ] ] ], - [ "_lws_log", "group__log.html#gaf5f07837692b2f231a79da8a058288aa", null ], + [ "_lws_log", "group__log.html#ga0cdc1065ae7f003d59a3c8525acf545e", null ], [ "_lws_logv", "group__log.html#ga74eb146969f0595e12ea835851b4588e", null ], [ "esp8266_create_tcp_listen_socket", "libwebsockets_8h.html#a4e877a4f0bb027d05d3a90c8e6a632de", null ], [ "esp8266_tcp_stream_accept", "libwebsockets_8h.html#a9b1bfc6f34319188d2aa40500d825bab", null ], - [ "ets_snprintf", "libwebsockets_8h.html#a75e9827318684877deb4189121a8cd2a", null ], + [ "ets_snprintf", "libwebsockets_8h.html#a71451ba21aadc2fa3e25674d04c31ab7", null ], [ "ets_timer_arm_new", "libwebsockets_8h.html#a9b878fb94f4596226c982eef4f42a607", null ], [ "lws_add_http_header_by_name", "group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8", null ], [ "lws_add_http_header_by_token", "group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1", null ], @@ -500,7 +500,7 @@ var libwebsockets_8h = [ "lws_set_proxy", "group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4", null ], [ "lws_set_timeout", "group__timeout.html#gaced9f9237f6172fed9f730a2af51345a", null ], [ "lws_SHA1", "group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5", null ], - [ "lws_snprintf", "group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21", null ], + [ "lws_snprintf", "group__misc.html#ga2163492f17db959a36967adb73d823b4", null ], [ "lws_spa_create", "group__form-parsing.html#ga162f86762173a2bc8c28497941d74815", null ], [ "lws_spa_destroy", "group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b", null ], [ "lws_spa_finalize", "group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24", null ], diff --git a/doc/html/libwebsockets_8h_source.html b/doc/html/libwebsockets_8h_source.html index b899c9cecb7b21e4f79298f461dcbd23b64ee8e9..1cc65f0fc6fbd2a53a98fbefa844089c91778d26 100644 --- a/doc/html/libwebsockets_8h_source.html +++ b/doc/html/libwebsockets_8h_source.html @@ -64,420 +64,420 @@ $(document).ready(function(){initNavTree('libwebsockets_8h_source.html','');}); <div class="title">libwebsockets.h</div> </div> </div><!--header--> <div class="contents"> -<a href="libwebsockets_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * libwebsockets - small server side websockets and web server implementation</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright (C) 2010-2016 Andy Green <andy@warmcat.com></span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * This library is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * License as published by the Free Software Foundation:</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * version 2.1 of the License.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * This library is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * Lesser General Public License for more details.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * License along with this library; if not, write to the Free Software</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * MA 02110-1301 USA</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> */</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <cstddef></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <cstdarg></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifdef MBED_OPERATORS</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "mbed-drivers/mbed.h"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "sal-iface-eth/EthernetInterface.h"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "sockets/TCPListener.h"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "sal-stack-lwip/lwipv4_init.h"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span>{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">using namespace </span><a class="code" href="namespacembed_1_1Sockets_1_1v0.html">mbed::Sockets::v0</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">struct </span>sockaddr_in;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">struct </span>lws;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classlws__conn.html"> 44</a></span> <span class="keyword">class </span><a class="code" href="classlws__conn.html">lws_conn</a> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classlws__conn.html">lws_conn</a>():</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  ts(NULL),</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  wsi(NULL),</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  writeable(1),</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  awaiting_on_writeable(0)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">void</span> set_wsi(<span class="keyword">struct</span> lws *_wsi) { wsi = _wsi; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordtype">int</span> actual_onRX(Socket *s);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">void</span> onRX(Socket *s);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordtype">void</span> onError(Socket *s, socket_error_t err);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">void</span> onDisconnect(TCPStream *s);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordtype">void</span> onSent(Socket *s, uint16_t len);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordtype">void</span> serialized_writeable(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  TCPStream *ts;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">struct </span>lws *wsi;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordtype">char</span> writeable;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordtype">char</span> awaiting_on_writeable;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> };</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classlws__conn__listener.html"> 72</a></span> <span class="keyword">class </span><a class="code" href="classlws__conn__listener.html">lws_conn_listener</a> : <a class="code" href="classlws__conn.html">lws_conn</a> {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classlws__conn__listener.html">lws_conn_listener</a>():</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  srv(SOCKET_STACK_LWIP_IPV4)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  srv.setOnError(TCPStream::ErrorHandler_t(<span class="keyword">this</span>,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  &<a class="code" href="classlws__conn__listener.html#a271ac4f8ad5770b3bc96cce5b265b72c">lws_conn_listener::onError</a>));</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordtype">void</span> start(<span class="keyword">const</span> uint16_t port); </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordtype">void</span> onRX(Socket *s); </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">void</span> onError(Socket *s, socket_error_t err); </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">void</span> onIncoming(TCPListener *s, <span class="keywordtype">void</span> *impl); </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordtype">void</span> onDisconnect(TCPStream *s); </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  TCPListener srv;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#include <stdarg.h></span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#if defined(MBED_OPERATORS) || defined(LWS_WITH_ESP8266)</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">struct </span>sockaddr_in;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#define LWS_POSIX 0</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#define LWS_POSIX 1</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#include "lws_config.h"</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor">#if defined(WIN32) || defined(_WIN32)</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#ifndef WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor">#define WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#include <winsock2.h></span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor">#include <ws2tcpip.h></span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor">#include <stddef.h></span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor">#include <basetsd.h></span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor">#ifndef _WIN32_WCE</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor">#include <fcntl.h></span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#define _O_RDONLY 0x0000</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor">#define O_RDONLY _O_RDONLY</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// Visual studio older than 2015 and WIN_CE has only _stricmp</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor">#if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE)</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor">#define strcasecmp _stricmp</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#elif !defined(__MINGW32__)</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">#define strcasecmp stricmp</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor">#define getdtablesize() 30000</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor">#define LWS_INLINE __inline</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#define LWS_VISIBLE</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor">#define LWS_WARN_DEPRECATED</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor">#ifdef LWS_DLL</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor">#ifdef LWS_INTERNAL</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor">#define LWS_EXTERN extern __declspec(dllexport)</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor">#define LWS_EXTERN extern __declspec(dllimport)</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#define LWS_EXTERN</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#define LWS_INVALID_FILE INVALID_HANDLE_VALUE</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#define LWS_O_RDONLY _O_RDONLY</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#if !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER < 1900) </span><span class="comment">/* Visual Studio 2015 already defines this in <stdio.h> */</span><span class="preprocessor"></span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor">#define lws_snprintf _snprintf</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor">#ifndef __func__</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor">#define __func__ __FUNCTION__</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor">#else </span><span class="comment">/* NOT WIN32 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor">#include <unistd.h></span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor">#if defined(__NetBSD__) || defined(__FreeBSD__)</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#include <netinet/in.h></span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor">#define LWS_INLINE inline</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor">#define LWS_O_RDONLY O_RDONLY</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor">#if !defined(MBED_OPERATORS) && !defined(LWS_WITH_ESP8266) && !defined(OPTEE_TA)</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor">#include <poll.h></span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor">#include <netdb.h></span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor">#define LWS_INVALID_FILE -1</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor">#define getdtablesize() (20)</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor">#define LWS_INVALID_FILE NULL</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#if defined(__GNUC__)</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">/* warn_unused_result attribute only supported by GCC 3.4 or later */</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor">#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor">#define LWS_WARN_UNUSED_RESULT __attribute__((warn_unused_result))</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor">#define LWS_VISIBLE __attribute__((visibility("default")))</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor">#define LWS_WARN_DEPRECATED __attribute__ ((deprecated))</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor">#define LWS_VISIBLE</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor">#define LWS_WARN_DEPRECATED</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor">#if defined(__ANDROID__)</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor">#include <unistd.h></span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor">#define getdtablesize() sysconf(_SC_OPEN_MAX)</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor">#ifdef LWS_USE_LIBEV</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor">#include <ev.h></span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBEV */</span><span class="preprocessor"></span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor">#ifdef LWS_USE_LIBUV</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor">#include <uv.h></span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor">#ifdef LWS_HAVE_UV_VERSION_H</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor">#include <uv-version.h></span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBUV */</span><span class="preprocessor"></span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor">#ifndef LWS_EXTERN</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor">#define LWS_EXTERN extern</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor">#ifdef _WIN32</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor">#define random rand</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor">#if !defined(OPTEE_TA)</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor">#include <sys/time.h></span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor">#include <unistd.h></span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor">#ifdef LWS_OPENSSL_SUPPORT</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor">#ifdef USE_WOLFSSL</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor">#ifdef USE_OLD_CYASSL</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor">#include <cyassl/openssl/ssl.h></span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor">#include <cyassl/error-ssl.h></span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor">#include <wolfssl/openssl/ssl.h></span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor">#include <wolfssl/error-ssl.h></span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor">#endif </span><span class="comment">/* not USE_OLD_CYASSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor">#if defined(LWS_USE_POLARSSL)</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor">#include <polarssl/ssl.h></span></div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html"> 238</a></span> <span class="keyword">struct </span><a class="code" href="structlws__polarssl__context.html">lws_polarssl_context</a> {</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af"> 239</a></span>  x509_crt <a class="code" href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af">ca</a>; </div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27"> 240</a></span>  x509_crt <a class="code" href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27">certificate</a>; </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270"> 241</a></span>  rsa_context <a class="code" href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270">key</a>; </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> };</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structlws__polarssl__context.html">lws_polarssl_context</a> <a class="code" href="structlws__polarssl__context.html">SSL_CTX</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="keyword">typedef</span> ssl_context SSL;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor">#if defined(LWS_USE_MBEDTLS)</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor">#include <mbedtls/ssl.h></span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor">#include <openssl/ssl.h></span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor">#include <openssl/err.h></span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor">#endif </span><span class="comment">/* not USE_MBEDTLS */</span><span class="preprocessor"></span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor">#endif </span><span class="comment">/* not USE_POLARSSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor">#endif </span><span class="comment">/* not USE_WOLFSSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor">#define CONTEXT_PORT_NO_LISTEN -1</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor">#define CONTEXT_PORT_NO_LISTEN_SERVER -2</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">enum</span> lws_log_levels {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  LLL_ERR = 1 << 0,</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  LLL_WARN = 1 << 1,</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  LLL_NOTICE = 1 << 2,</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  LLL_INFO = 1 << 3,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  LLL_DEBUG = 1 << 4,</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  LLL_PARSER = 1 << 5,</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  LLL_HEADER = 1 << 6,</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  LLL_EXT = 1 << 7,</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  LLL_CLIENT = 1 << 8,</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  LLL_LATENCY = 1 << 9,</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  LLL_USER = 1 << 10,</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  LLL_COUNT = 11 <span class="comment">/* set to count of valid flags */</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> };</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> _lws_log(<span class="keywordtype">int</span> filter, <span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> _lws_logv(<span class="keywordtype">int</span> filter, <span class="keyword">const</span> <span class="keywordtype">char</span> *format, va_list vl);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <a class="code" href="group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd">lwsl_timestamp</a>(<span class="keywordtype">int</span> level, <span class="keywordtype">char</span> *p, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="comment">/* these guys are unconditionally included */</span></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor">#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__)</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="preprocessor">#define lwsl_user(...) _lws_log(LLL_USER, __VA_ARGS__)</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor">#if !defined(LWS_WITH_NO_LOGS)</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="comment">/* notice and warn are usually included by being compiled in */</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor">#define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__)</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor">#define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__)</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="comment">/*</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="comment"> * weaker logging can be deselected by telling CMake to build in RELEASE mode</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="comment"> * that gets rid of the overhead of checking while keeping _warn and _err</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="comment"> * active</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="comment"> */</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor">#if defined(LWS_WITH_ESP8266)</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor">#undef _DEBUG</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="preprocessor">#ifdef _DEBUG</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor">#if defined(LWS_WITH_NO_LOGS)</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment">/* notice, warn and log are always compiled in */</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor">#define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__)</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor">#define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__)</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor">#define lwsl_info(...) _lws_log(LLL_INFO, __VA_ARGS__)</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor">#define lwsl_debug(...) _lws_log(LLL_DEBUG, __VA_ARGS__)</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor">#define lwsl_parser(...) _lws_log(LLL_PARSER, __VA_ARGS__)</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor">#define lwsl_header(...) _lws_log(LLL_HEADER, __VA_ARGS__)</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor">#define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__)</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor">#define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__)</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor">#define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__)</span></div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> <a class="code" href="group__log.html#ga898b1f03872ad019f507d4e35bbefa90">lwsl_hexdump</a>(<span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor">#else </span><span class="comment">/* no debug */</span><span class="preprocessor"></span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor">#if defined(LWS_WITH_NO_LOGS)</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor">#define lwsl_warn(...) do {} while(0)</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor">#define lwsl_notice(...) do {} while(0)</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor">#define lwsl_info(...) do {} while(0)</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor">#define lwsl_debug(...) do {} while(0)</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor">#define lwsl_parser(...) do {} while(0)</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor">#define lwsl_header(...) do {} while(0)</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor">#define lwsl_ext(...) do {} while(0)</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor">#define lwsl_client(...) do {} while(0)</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor">#define lwsl_latency(...) do {} while(0)</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor">#define lwsl_hexdump(a, b)</span></div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <a class="code" href="group__log.html#ga244647f9e1bf0097ccdde66d74f41e26">lws_set_log_level</a>(<span class="keywordtype">int</span> level,</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordtype">void</span> (*log_emit_function)(<span class="keywordtype">int</span> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *line));</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <a class="code" href="group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c">lwsl_emit_syslog</a>(<span class="keywordtype">int</span> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *line);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor">#include <stddef.h></span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor">#ifndef lws_container_of</span></div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor">#define lws_container_of(P,T,M) ((T *)((char *)(P) - offsetof(T, M)))</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="keyword">struct </span>lws;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor">#ifndef ARRAY_SIZE</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor">#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="comment">/* api change list for user code to test against */</span></div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor">#define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_ARG</span></div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="comment">/* the struct lws_protocols has the id field present */</span></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor">#define LWS_FEATURE_PROTOCOLS_HAS_ID_FIELD</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="comment">/* you can call lws_get_peer_write_allowance */</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor">#define LWS_FEATURE_PROTOCOLS_HAS_PEER_WRITE_ALLOWANCE</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="comment">/* extra parameter introduced in 917f43ab821 */</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor">#define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_LEN</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="comment">/* File operations stuff exists */</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor">#define LWS_FEATURE_FOPS</span></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor">#if defined(_WIN32)</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword">typedef</span> SOCKET lws_sockfd_type;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="keyword">typedef</span> HANDLE lws_filefd_type;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor">#define lws_sockfd_valid(sfd) (!!sfd)</span></div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="structlws__pollfd.html"> 421</a></span> <span class="keyword">struct </span><a class="code" href="structlws__pollfd.html">lws_pollfd</a> {</div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be"> 422</a></span>  lws_sockfd_type <a class="code" href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be">fd</a>; </div><div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9"> 423</a></span>  SHORT <a class="code" href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9">events</a>; </div><div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932"> 424</a></span>  SHORT <a class="code" href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932">revents</a>; </div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span> };</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor">#define LWS_POLLHUP (FD_CLOSE)</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor">#define LWS_POLLIN (FD_READ | FD_ACCEPT)</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor">#define LWS_POLLOUT (FD_WRITE)</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor">#if defined(MBED_OPERATORS)</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="comment">/* it's a class lws_conn * */</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> * lws_sockfd_type;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> * lws_filefd_type;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor">#define lws_sockfd_valid(sfd) (!!sfd)</span></div><div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="structpollfd.html"> 436</a></span> <span class="keyword">struct </span><a class="code" href="structpollfd.html">pollfd</a> {</div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="structpollfd.html#af084f089bdece61d177f85782d6673d0"> 437</a></span>  lws_sockfd_type <a class="code" href="structpollfd.html#af084f089bdece61d177f85782d6673d0">fd</a>; </div><div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef"> 438</a></span>  <span class="keywordtype">short</span> <a class="code" href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef">events</a>; </div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2"> 439</a></span>  <span class="keywordtype">short</span> <a class="code" href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2">revents</a>; </div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> };</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor">#define POLLIN 0x0001</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor">#define POLLPRI 0x0002</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor">#define POLLOUT 0x0004</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor">#define POLLERR 0x0008</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor">#define POLLHUP 0x0010</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor">#define POLLNVAL 0x0020</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="keyword">struct </span>lws;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keywordtype">void</span> * mbed3_create_tcp_stream_socket(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="keywordtype">void</span> mbed3_delete_tcp_stream_socket(<span class="keywordtype">void</span> *sockfd);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="keywordtype">void</span> mbed3_tcp_stream_bind(<span class="keywordtype">void</span> *sock, <span class="keywordtype">int</span> port, <span class="keyword">struct</span> lws *);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="keywordtype">void</span> mbed3_tcp_stream_accept(<span class="keywordtype">void</span> *sock, <span class="keyword">struct</span> lws *);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor">#if defined(LWS_WITH_ESP8266)</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor">#include <user_interface.h></span></div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor">#include <espconn.h></span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>espconn * lws_sockfd_type;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> * lws_filefd_type;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor">#define lws_sockfd_valid(sfd) (!!sfd)</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keyword">struct </span><a class="code" href="structpollfd.html">pollfd</a> {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  lws_sockfd_type fd; </div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordtype">short</span> events; </div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordtype">short</span> revents; </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span> };</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor">#define POLLIN 0x0001</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor">#define POLLPRI 0x0002</span></div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor">#define POLLOUT 0x0004</span></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor">#define POLLERR 0x0008</span></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor">#define POLLHUP 0x0010</span></div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor">#define POLLNVAL 0x0020</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="keyword">struct </span>lws_vhost;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> lws_sockfd_type esp8266_create_tcp_listen_socket(<span class="keyword">struct</span> lws_vhost *vh);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="keywordtype">void</span> esp8266_tcp_stream_accept(lws_sockfd_type fd, <span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor">#include <os_type.h></span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor">#include <osapi.h></span></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor">#include "ets_sys.h"</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="keywordtype">int</span> ets_snprintf(<span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor">#define snprintf ets_snprintf</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="keyword">typedef</span> os_timer_t uv_timer_t;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> uv_cb_t(uv_timer_t *);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="keywordtype">void</span> os_timer_disarm(<span class="keywordtype">void</span> *);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="keywordtype">void</span> os_timer_setfn(os_timer_t *, os_timer_func_t *, <span class="keywordtype">void</span> *);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="keywordtype">void</span> ets_timer_arm_new(os_timer_t *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="comment">//void os_timer_arm(os_timer_t *, int, int);</span></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor">#define UV_VERSION_MAJOR 1</span></div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor">#define lws_uv_getloop(a, b) (NULL)</span></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span> </div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> uv_timer_init(<span class="keywordtype">void</span> *l, uv_timer_t *t)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  (void)l;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  memset(t, 0, <span class="keyword">sizeof</span>(*t));</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  os_timer_disarm(t);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span> }</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span> </div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> uv_timer_start(uv_timer_t *t, uv_cb_t *cb, <span class="keywordtype">int</span> first, <span class="keywordtype">int</span> rep)</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> {</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  os_timer_setfn(t, (os_timer_func_t *)cb, t);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="comment">/* ms, repeat */</span></div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  os_timer_arm(t, first, !!rep);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> }</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span> </div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> uv_timer_stop(uv_timer_t *t)</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span> {</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  os_timer_disarm(t);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> }</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> lws_sockfd_type;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> lws_filefd_type;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor">#define lws_sockfd_valid(sfd) (sfd >= 0)</span></div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor">#define lws_pollfd pollfd</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor">#define LWS_POLLHUP (POLLHUP|POLLERR)</span></div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor">#define LWS_POLLIN (POLLIN)</span></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor">#define LWS_POLLOUT (POLLOUT)</span></div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div><div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="structlws__pollargs.html"> 535</a></span> <span class="keyword">struct </span><a class="code" href="structlws__pollargs.html">lws_pollargs</a> {</div><div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81"> 536</a></span>  lws_sockfd_type <a class="code" href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81">fd</a>; </div><div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6"> 537</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6">events</a>; </div><div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8"> 538</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8">prev_events</a>; </div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span> };</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="keyword">struct </span><a class="code" href="structlws__tokens.html">lws_tokens</a>;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="keyword">struct </span><a class="code" href="structlws__token__limits.html">lws_token_limits</a>;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span> </div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="comment">/*</span></div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="comment"> */</span></div><div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985"> 558</a></span> <span class="keyword">enum</span> <a class="code" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a> {</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  LWS_CLOSE_STATUS_NOSTATUS = 0,</div><div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4"> 560</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a> = 1000,</div><div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218"> 563</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a> = 1001,</div><div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98"> 566</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a> = 1002,</div><div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276"> 569</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a> = 1003,</div><div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2"> 574</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a> = 1004,</div><div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044"> 576</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a> = 1005,</div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c"> 581</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a> = 1006,</div><div class="line"><a name="l00587"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050"> 587</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a> = 1007,</div><div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5"> 592</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a> = 1008,</div><div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8"> 598</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a> = 1009,</div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e"> 602</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a> = 1010,</div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350"> 610</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a> = 1011,</div><div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390"> 614</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a> = 1015,</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span> </div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY = 9999,</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> };</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span> </div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <a class="code" href="group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262">lws_close_reason</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> <a class="code" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a> status,</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="keyword">struct </span>lws;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="keyword">struct </span>lws_context;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="comment">/* needed even with extensions disabled for create context */</span></div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a>;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span> </div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span> </div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span> </div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="comment">/*</span></div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="comment"> */</span></div><div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7"> 668</a></span> <span class="keyword">enum</span> <a class="code" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">lws_callback_reasons</a> {</div><div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439"> 669</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a> = 0,</div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8"> 673</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a> = 1,</div><div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2"> 717</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a> = 2,</div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604"> 724</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a> = 3,</div><div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8"> 727</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a> = 4,</div><div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba"> 729</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a> = 5,</div><div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c"> 731</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a> = 6,</div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738"> 735</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a> = 7,</div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1"> 737</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a> = 8,</div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9"> 740</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a> = 9,</div><div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514"> 742</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a> = 10,</div><div class="line"><a name="l00750"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc"> 750</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a> = 11,</div><div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e"> 752</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a> = 12,</div><div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae"> 766</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a> = 13,</div><div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804"> 769</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a> = 14,</div><div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587"> 771</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a> = 15,</div><div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09"> 773</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a> = 16,</div><div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6"> 775</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a> = 17,</div><div class="line"><a name="l00786"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c"> 786</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a> = 18,</div><div class="line"><a name="l00798"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3"> 798</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a> = 19,</div><div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d"> 806</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a> = 20,</div><div class="line"><a name="l00818"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c"> 818</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a> = 21,</div><div class="line"><a name="l00825"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493"> 825</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a> = 22,</div><div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac"> 831</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a> = 23,</div><div class="line"><a name="l00849"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f"> 849</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a> = 24,</div><div class="line"><a name="l00873"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e"> 873</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a> = 25,</div><div class="line"><a name="l00884"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46"> 884</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a> = 26,</div><div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49"> 893</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a> = 27,</div><div class="line"><a name="l00896"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa"> 896</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a> = 28,</div><div class="line"><a name="l00901"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01"> 901</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a> = 29,</div><div class="line"><a name="l00903"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e"> 903</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a> = 30,</div><div class="line"><a name="l00905"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34"> 905</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a> = 31,</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <span class="comment">/* external poll() management support */</span></div><div class="line"><a name="l00911"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412"> 911</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a> = 32,</div><div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768"> 927</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a> = 33,</div><div class="line"><a name="l00933"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e"> 933</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a> = 34,</div><div class="line"><a name="l00941"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428"> 941</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a> = 35,</div><div class="line"><a name="l00953"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79"> 953</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a> = 36,</div><div class="line"><a name="l00956"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b"> 956</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a> = 37,</div><div class="line"><a name="l00964"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51"> 964</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a> = 38,</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  LWS_CALLBACK_WS_EXT_DEFAULTS = 39,</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  LWS_CALLBACK_CGI = 40,</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  LWS_CALLBACK_CGI_TERMINATED = 41,</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  LWS_CALLBACK_CGI_STDIN_DATA = 42,</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  LWS_CALLBACK_CGI_STDIN_COMPLETED = 43,</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44,</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45,</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46,</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47,</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48,</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49,</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50,</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51,</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  LWS_CALLBACK_PROCESS_HTML = 52,</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  LWS_CALLBACK_ADD_HEADERS = 53,</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  LWS_CALLBACK_SESSION_INFO = 54,</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  LWS_CALLBACK_GS_EVENT = 55,</div><div class="line"><a name="l01009"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a"> 1009</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a> = 56,</div><div class="line"><a name="l01014"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6"> 1014</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6">LWS_CALLBACK_CLIENT_HTTP_WRITEABLE</a> = 57,</div><div class="line"><a name="l01023"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b"> 1023</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b">LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION</a> = 58,</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> </div><div class="line"><a name="l01056"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a"> 1056</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000,</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> };</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> </div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> </div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> </div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01078"></a><span class="lineno"><a class="line" href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f"> 1078</a></span> <a class="code" href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f">lws_callback_function</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> <a class="code" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">lws_callback_reasons</a> reason,</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <span class="keywordtype">void</span> *user, <span class="keywordtype">void</span> *in, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> </div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> </div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="comment">/*</span></div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="comment"> */</span></div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="keyword">enum</span> lws_extension_callback_reasons {</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  LWS_EXT_CB_SERVER_CONTEXT_CONSTRUCT = 0,</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  LWS_EXT_CB_CLIENT_CONTEXT_CONSTRUCT = 1,</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  LWS_EXT_CB_SERVER_CONTEXT_DESTRUCT = 2,</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  LWS_EXT_CB_CLIENT_CONTEXT_DESTRUCT = 3,</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  LWS_EXT_CB_CONSTRUCT = 4,</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  LWS_EXT_CB_CLIENT_CONSTRUCT = 5,</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  LWS_EXT_CB_CHECK_OK_TO_REALLY_CLOSE = 6,</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  LWS_EXT_CB_CHECK_OK_TO_PROPOSE_EXTENSION = 7,</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  LWS_EXT_CB_DESTROY = 8,</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  LWS_EXT_CB_DESTROY_ANY_WSI_CLOSING = 9,</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  LWS_EXT_CB_ANY_WSI_ESTABLISHED = 10,</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  LWS_EXT_CB_PACKET_RX_PREPARSE = 11,</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  LWS_EXT_CB_PACKET_TX_PRESEND = 12,</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  LWS_EXT_CB_PACKET_TX_DO_SEND = 13,</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  LWS_EXT_CB_HANDSHAKE_REPLY_TX = 14,</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  LWS_EXT_CB_FLUSH_PENDING_TX = 15,</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  LWS_EXT_CB_EXTENDED_PAYLOAD_RX = 16,</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  LWS_EXT_CB_CAN_PROXY_CLIENT_CONNECTION = 17,</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  LWS_EXT_CB_1HZ = 18,</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  LWS_EXT_CB_REQUEST_ON_WRITEABLE = 19,</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  LWS_EXT_CB_IS_WRITEABLE = 20,</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  LWS_EXT_CB_PAYLOAD_TX = 21,</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  LWS_EXT_CB_PAYLOAD_RX = 22,</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  LWS_EXT_CB_OPTION_DEFAULT = 23,</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  LWS_EXT_CB_OPTION_SET = 24,</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  LWS_EXT_CB_OPTION_CONFIRM = 25,</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  LWS_EXT_CB_NAMED_OPTION_SET = 26,</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> </div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> };</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> </div><div class="line"><a name="l01130"></a><span class="lineno"><a class="line" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e"> 1130</a></span> <span class="keyword">enum</span> <a class="code" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">lws_ext_options_types</a> {</div><div class="line"><a name="l01131"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c"> 1131</a></span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a>, </div><div class="line"><a name="l01132"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e"> 1132</a></span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a>, </div><div class="line"><a name="l01133"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880"> 1133</a></span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a> </div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> };</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> </div><div class="line"><a name="l01143"></a><span class="lineno"><a class="line" href="structlws__ext__options.html"> 1143</a></span> <span class="keyword">struct </span><a class="code" href="structlws__ext__options.html">lws_ext_options</a> {</div><div class="line"><a name="l01144"></a><span class="lineno"><a class="line" href="structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e"> 1144</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e">name</a>; </div><div class="line"><a name="l01145"></a><span class="lineno"><a class="line" href="structlws__ext__options.html#a7c4dbd62dbeba63a9d50d2306bd1cc61"> 1145</a></span>  <span class="keyword">enum</span> <a class="code" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">lws_ext_options_types</a> type; </div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> };</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> </div><div class="line"><a name="l01152"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html"> 1152</a></span> <span class="keyword">struct </span><a class="code" href="structlws__ext__option__arg.html">lws_ext_option_arg</a> {</div><div class="line"><a name="l01153"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9"> 1153</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9">option_name</a>; </div><div class="line"><a name="l01154"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f"> 1154</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f">option_index</a>; </div><div class="line"><a name="l01155"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1"> 1155</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1">start</a>; </div><div class="line"><a name="l01156"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5"> 1156</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5">len</a>; </div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> };</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> </div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01220"></a><span class="lineno"><a class="line" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0"> 1220</a></span> <a class="code" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0">lws_extension_callback_function</a>(<span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__extension.html">lws_extension</a> *ext, <span class="keyword">struct</span> lws *wsi,</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  <span class="keyword">enum</span> lws_extension_callback_reasons reason,</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  <span class="keywordtype">void</span> *user, <span class="keywordtype">void</span> *in, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> </div><div class="line"><a name="l01226"></a><span class="lineno"><a class="line" href="structlws__extension.html"> 1226</a></span> <span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a> {</div><div class="line"><a name="l01227"></a><span class="lineno"><a class="line" href="structlws__extension.html#a1e5018c883d85176f5c2152176843f9e"> 1227</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__extension.html#a1e5018c883d85176f5c2152176843f9e">name</a>; </div><div class="line"><a name="l01228"></a><span class="lineno"><a class="line" href="structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af"> 1228</a></span>  <a class="code" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0">lws_extension_callback_function</a> *<a class="code" href="structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af">callback</a>; </div><div class="line"><a name="l01229"></a><span class="lineno"><a class="line" href="structlws__extension.html#a36b06c213aedb02bf9a402651751855b"> 1229</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__extension.html#a36b06c213aedb02bf9a402651751855b">client_offer</a>; </div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> };</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> </div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <a class="code" href="group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9">lws_set_extension_option</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> *ext_name,</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *opt_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *opt_val);</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> </div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="preprocessor">#ifndef LWS_NO_EXTENSIONS</span></div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="comment">/* lws_get_internal_extensions() - DEPRECATED</span></div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment"> *</span></div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment"> * \Deprecated There is no longer a set internal extensions table. The table is provided</span></div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment"> * by user code along with application-specific settings. See the test</span></div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment"> * client and server for how to do.</span></div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment"> */</span></div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="keyword">static</span> LWS_INLINE LWS_WARN_DEPRECATED <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a> *</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> lws_get_internal_extensions(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> NULL; }</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> </div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <a class="code" href="group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b">lws_ext_parse_options</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__extension.html">lws_extension</a> *ext, <span class="keyword">struct</span> lws *wsi,</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>  <span class="keywordtype">void</span> *ext_user, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__ext__options.html">lws_ext_options</a> *opts,</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *o, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> </div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> LWS_EXTERN</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="keywordtype">int</span> <a class="code" href="group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e">lws_extension_callback_pm_deflate</a>(</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  <span class="keyword">struct</span> lws_context *context, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__extension.html">lws_extension</a> *ext,</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  <span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> lws_extension_callback_reasons reason,</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>  <span class="keywordtype">void</span> *user, <span class="keywordtype">void</span> *in, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> </div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <span class="comment">/*</span></div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <span class="comment"> * The internal exts are part of the public abi</span></div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="comment"> * If we add more extensions, publish the callback here ------v</span></div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="comment"> */</span></div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> </div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> </div><div class="line"><a name="l01316"></a><span class="lineno"><a class="line" href="structlws__protocols.html"> 1316</a></span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> {</div><div class="line"><a name="l01317"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624"> 1317</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624">name</a>;</div><div class="line"><a name="l01320"></a><span class="lineno"><a class="line" href="structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d"> 1320</a></span>  <a class="code" href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f">lws_callback_function</a> *<a class="code" href="structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d">callback</a>;</div><div class="line"><a name="l01324"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea"> 1324</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea">per_session_data_size</a>;</div><div class="line"><a name="l01329"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5"> 1329</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5">rx_buffer_size</a>;</div><div class="line"><a name="l01338"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac"> 1338</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac">id</a>;</div><div class="line"><a name="l01345"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e"> 1345</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e">user</a>; </div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> };</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> </div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="keyword">struct </span>lws_vhost;</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> </div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> *</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> <a class="code" href="group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d">lws_vhost_name_to_protocol</a>(<span class="keyword">struct</span> lws_vhost *vh, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624">name</a>);</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> </div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> *</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> <a class="code" href="group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112">lws_get_protocol</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> </div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> *</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> <a class="code" href="group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030">lws_protocol_get</a>(<span class="keyword">struct</span> lws *wsi) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> </div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <a class="code" href="group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1">lws_protocol_vh_priv_zalloc</a>(<span class="keyword">struct</span> lws_vhost *vhost, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *prot,</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>  <span class="keywordtype">int</span> size);</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> </div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <a class="code" href="group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129">lws_protocol_vh_priv_get</a>(<span class="keyword">struct</span> lws_vhost *vhost, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *prot);</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> </div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> <a class="code" href="group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43">lws_finalize_startup</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> </div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> <span class="preprocessor">#ifdef LWS_WITH_PLUGINS</span></div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> </div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <span class="comment">/* PLUGINS implies LIBUV */</span></div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> </div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> <span class="preprocessor">#define LWS_PLUGIN_API_MAGIC 180</span></div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> </div><div class="line"><a name="l01425"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html"> 1425</a></span> <span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> {</div><div class="line"><a name="l01426"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a"> 1426</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a">api_magic</a>; </div><div class="line"><a name="l01427"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033"> 1427</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> *<a class="code" href="structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033">protocols</a>; </div><div class="line"><a name="l01428"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f"> 1428</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f">count_protocols</a>; </div><div class="line"><a name="l01429"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623"> 1429</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a> *<a class="code" href="structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623">extensions</a>; </div><div class="line"><a name="l01430"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3"> 1430</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3">count_extensions</a>; </div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> };</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> </div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> <span class="keyword">typedef</span> int (*lws_plugin_init_func)(<span class="keyword">struct </span>lws_context *,</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>  <span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> *);</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="keyword">typedef</span> int (*lws_plugin_destroy_func)(<span class="keyword">struct </span>lws_context *);</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> </div><div class="line"><a name="l01438"></a><span class="lineno"><a class="line" href="structlws__plugin.html"> 1438</a></span> <span class="keyword">struct </span><a class="code" href="structlws__plugin.html">lws_plugin</a> {</div><div class="line"><a name="l01439"></a><span class="lineno"><a class="line" href="structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22"> 1439</a></span>  <span class="keyword">struct </span><a class="code" href="structlws__plugin.html">lws_plugin</a> *<a class="code" href="structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22">list</a>; </div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <span class="preprocessor">#if (UV_VERSION_MAJOR > 0)</span></div><div class="line"><a name="l01441"></a><span class="lineno"><a class="line" href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330"> 1441</a></span>  uv_lib_t <a class="code" href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330">lib</a>; </div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l01443"></a><span class="lineno"><a class="line" href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4"> 1443</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4">l</a>; </div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01445"></a><span class="lineno"><a class="line" href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105"> 1445</a></span>  <span class="keywordtype">char</span> <a class="code" href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105">name</a>[64]; </div><div class="line"><a name="l01446"></a><span class="lineno"><a class="line" href="structlws__plugin.html#ac7f1fdfe8cf8a21f8ee9720c21934a3f"> 1446</a></span>  <span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> caps; </div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> };</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> </div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> </div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> </div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> </div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> </div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> <span class="preprocessor">#define LWSGS_EMAIL_CONTENT_SIZE 16384</span></div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> </div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> <span class="comment">/* SHA-1 binary and hexified versions */</span></div><div class="line"><a name="l01469"></a><span class="lineno"><a class="line" href="structlwsgw__hash__bin.html#ac92f50d9471058525d110597a4e0de6b"> 1469</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> bin[20]; } <a class="code" href="structlwsgw__hash__bin.html">lwsgw_hash_bin</a>;</div><div class="line"><a name="l01471"></a><span class="lineno"><a class="line" href="structlwsgw__hash.html#a29435f5cf78747d4257695b0f141d164"> 1471</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="keywordtype">char</span> <span class="keywordtype">id</span>[41]; } <a class="code" href="structlwsgw__hash.html">lwsgw_hash</a>;</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> </div><div class="line"><a name="l01474"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1"> 1474</a></span> <span class="keyword">enum</span> <a class="code" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">lwsgs_auth_bits</a> {</div><div class="line"><a name="l01475"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57"> 1475</a></span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a> = 1, </div><div class="line"><a name="l01476"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf"> 1476</a></span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a> = 2, </div><div class="line"><a name="l01477"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887"> 1477</a></span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a> = 4, </div><div class="line"><a name="l01478"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a"> 1478</a></span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a> = 8, </div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> };</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> </div><div class="line"><a name="l01482"></a><span class="lineno"><a class="line" href="structlws__session__info.html"> 1482</a></span> <span class="keyword">struct </span><a class="code" href="structlws__session__info.html">lws_session_info</a> {</div><div class="line"><a name="l01483"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a3d57a70b6e7181d95a8bec429b1a7697"> 1483</a></span>  <span class="keywordtype">char</span> username[32]; </div><div class="line"><a name="l01484"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a94b813cfc6b0da4b182659de30038ad3"> 1484</a></span>  <span class="keywordtype">char</span> email[100]; </div><div class="line"><a name="l01485"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a53eed02325e8717a53297391e3e98fac"> 1485</a></span>  <span class="keywordtype">char</span> ip[72]; </div><div class="line"><a name="l01486"></a><span class="lineno"><a class="line" href="structlws__session__info.html#afb924864b70f40372920688a5c1c895e"> 1486</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__session__info.html#afb924864b70f40372920688a5c1c895e">mask</a>; </div><div class="line"><a name="l01488"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a4353b5dd19400b2b15edfd7cee1e4cd5"> 1488</a></span>  <span class="keywordtype">char</span> session[42]; </div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> };</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> </div><div class="line"><a name="l01492"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e"> 1492</a></span> <span class="keyword">enum</span> <a class="code" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">lws_gs_event</a> {</div><div class="line"><a name="l01493"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308"> 1493</a></span>  <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a>, </div><div class="line"><a name="l01494"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde"> 1494</a></span>  <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a> </div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> };</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> </div><div class="line"><a name="l01498"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html"> 1498</a></span> <span class="keyword">struct </span><a class="code" href="structlws__gs__event__args.html">lws_gs_event_args</a> {</div><div class="line"><a name="l01499"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06"> 1499</a></span>  <span class="keyword">enum</span> <a class="code" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">lws_gs_event</a> event; </div><div class="line"><a name="l01500"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b"> 1500</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b">username</a>; </div><div class="line"><a name="l01501"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463"> 1501</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463">email</a>; </div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> };</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span> </div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> </div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> </div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> </div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> <span class="comment">/*</span></div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> <span class="comment"> */</span></div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> </div><div class="line"><a name="l01528"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5"> 1528</a></span> <span class="keyword">enum</span> <a class="code" href="group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5">lws_context_options</a> {</div><div class="line"><a name="l01529"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092"> 1529</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a> = (1 << 1) |</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>  (1 << 12),</div><div class="line"><a name="l01534"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c"> 1534</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a> = (1 << 2),</div><div class="line"><a name="l01536"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d"> 1536</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a> = (1 << 3) |</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>  (1 << 12),</div><div class="line"><a name="l01541"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6"> 1541</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a> = (1 << 4),</div><div class="line"><a name="l01543"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9"> 1543</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a> = (1 << 5),</div><div class="line"><a name="l01545"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93"> 1545</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a> = (1 << 6),</div><div class="line"><a name="l01548"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc"> 1548</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a> = (1 << 7),</div><div class="line"><a name="l01550"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f"> 1550</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a> = (1 << 8),</div><div class="line"><a name="l01552"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c"> 1552</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a> = (1 << 9) |</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>  (1 << 12),</div><div class="line"><a name="l01555"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e"> 1555</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a> = (1 << 10),</div><div class="line"><a name="l01557"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada"> 1557</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a> = (1 << 11) |</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>  (1 << 12),</div><div class="line"><a name="l01561"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a"> 1561</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a> = (1 << 12),</div><div class="line"><a name="l01563"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e"> 1563</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a> = (1 << 13),</div><div class="line"><a name="l01566"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941"> 1566</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a> = (1 << 14),</div><div class="line"><a name="l01568"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016"> 1568</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a> = (1 << 15),</div><div class="line"><a name="l01571"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8"> 1571</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a> = (1 << 16),</div><div class="line"><a name="l01573"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160"> 1573</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a> = (1 << 17),</div><div class="line"><a name="l01575"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd"> 1575</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd">LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN</a> = (1 << 18),</div><div class="line"><a name="l01581"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf"> 1581</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf">LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN</a> = (1 << 19),</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> };</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> </div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> <span class="preprocessor">#define lws_check_opt(c, f) (((c) & (f)) == (f))</span></div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> </div><div class="line"><a name="l01603"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html"> 1603</a></span> <span class="keyword">struct </span><a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> {</div><div class="line"><a name="l01604"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85"> 1604</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85">port</a>;</div><div class="line"><a name="l01609"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a"> 1609</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a">iface</a>;</div><div class="line"><a name="l01616"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122"> 1616</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> *<a class="code" href="structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122">protocols</a>;</div><div class="line"><a name="l01620"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c"> 1620</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a> *<a class="code" href="structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c">extensions</a>;</div><div class="line"><a name="l01623"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29"> 1623</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__token__limits.html">lws_token_limits</a> *<a class="code" href="structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29">token_limits</a>;</div><div class="line"><a name="l01626"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54"> 1626</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54">ssl_private_key_password</a>;</div><div class="line"><a name="l01628"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103"> 1628</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103">ssl_cert_filepath</a>;</div><div class="line"><a name="l01632"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14"> 1632</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14">ssl_private_key_filepath</a>;</div><div class="line"><a name="l01638"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29"> 1638</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29">ssl_ca_filepath</a>;</div><div class="line"><a name="l01640"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb"> 1640</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb">ssl_cipher_list</a>;</div><div class="line"><a name="l01644"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3"> 1644</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3">http_proxy_address</a>;</div><div class="line"><a name="l01647"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6"> 1647</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6">http_proxy_port</a>;</div><div class="line"><a name="l01649"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03"> 1649</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03">gid</a>;</div><div class="line"><a name="l01651"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e"> 1651</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e">uid</a>;</div><div class="line"><a name="l01653"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724"> 1653</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724">options</a>;</div><div class="line"><a name="l01655"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0"> 1655</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0">user</a>;</div><div class="line"><a name="l01658"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56"> 1658</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56">ka_time</a>;</div><div class="line"><a name="l01661"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410"> 1661</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410">ka_probes</a>;</div><div class="line"><a name="l01665"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd"> 1665</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd">ka_interval</a>;</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> <span class="preprocessor">#ifdef LWS_OPENSSL_SUPPORT</span></div><div class="line"><a name="l01669"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4"> 1669</a></span>  <a class="code" href="structlws__polarssl__context.html">SSL_CTX</a> *<a class="code" href="structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4">provided_client_ssl_ctx</a>;</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> <span class="preprocessor">#else </span><span class="comment">/* maintain structure layout either way */</span><span class="preprocessor"></span></div><div class="line"><a name="l01675"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb"> 1675</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb">provided_client_ssl_ctx</a>; </div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> </div><div class="line"><a name="l01678"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948"> 1678</a></span>  <span class="keywordtype">short</span> <a class="code" href="structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948">max_http_header_data</a>;</div><div class="line"><a name="l01681"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720"> 1681</a></span>  <span class="keywordtype">short</span> <a class="code" href="structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720">max_http_header_pool</a>;</div><div class="line"><a name="l01688"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419"> 1688</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419">count_threads</a>;</div><div class="line"><a name="l01690"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646"> 1690</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646">fd_limit_per_thread</a>;</div><div class="line"><a name="l01694"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d"> 1694</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d">timeout_secs</a>;</div><div class="line"><a name="l01699"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9"> 1699</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9">ecdh_curve</a>;</div><div class="line"><a name="l01701"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9"> 1701</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9">vhost_name</a>;</div><div class="line"><a name="l01705"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251"> 1705</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> *<a class="code" href="structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251">plugin_dirs</a>;</div><div class="line"><a name="l01708"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458"> 1708</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458">pvo</a>;</div><div class="line"><a name="l01711"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6"> 1711</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6">keepalive_timeout</a>;</div><div class="line"><a name="l01714"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2"> 1714</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2">log_filepath</a>;</div><div class="line"><a name="l01717"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8"> 1717</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__http__mount.html">lws_http_mount</a> *<a class="code" href="structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8">mounts</a>;</div><div class="line"><a name="l01719"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616"> 1719</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616">server_string</a>;</div><div class="line"><a name="l01722"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209"> 1722</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209">pt_serv_buf_size</a>;</div><div class="line"><a name="l01728"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a"> 1728</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a">max_http_header_data2</a>;</div><div class="line"><a name="l01733"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d"> 1733</a></span>  <span class="keywordtype">long</span> <a class="code" href="structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d">ssl_options_set</a>;</div><div class="line"><a name="l01735"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa"> 1735</a></span>  <span class="keywordtype">long</span> <a class="code" href="structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa">ssl_options_clear</a>;</div><div class="line"><a name="l01737"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a33a1a25a7df3793f59047e20dd580078"> 1737</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="structlws__context__creation__info.html#a33a1a25a7df3793f59047e20dd580078">ws_ping_pong_interval</a>;</div><div class="line"><a name="l01749"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a8ca0ec6b8675c13849bbdcdc0d50c9a3"> 1749</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__context__creation__info.html#a8ca0ec6b8675c13849bbdcdc0d50c9a3">headers</a>;</div><div class="line"><a name="l01753"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a6b059b7ee248cba72a3a4fd6141b0b34"> 1753</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__context__creation__info.html#a6b059b7ee248cba72a3a4fd6141b0b34">reject_service_keywords</a>;</div><div class="line"><a name="l01760"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#aadbc1b141d16c1084ec4c543e7768a72"> 1760</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__context__creation__info.html#aadbc1b141d16c1084ec4c543e7768a72">external_baggage_free_on_destroy</a>;</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility</span></div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> <span class="comment"> *</span></div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> <span class="comment"> * The below is to ensure later library versions with new</span></div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> <span class="comment"> * members added above will see 0 (default) even if the app</span></div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> <span class="comment"> * was not built against the newer headers.</span></div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> <span class="comment"> */</span></div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> </div><div class="line"><a name="l01776"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#afce3b59950eca3203faa07381bbed5d7"> 1776</a></span>  <span class="keywordtype">void</span> *_unused[8]; </div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> };</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span> </div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_context *</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> <a class="code" href="group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648">lws_create_context</a>(<span class="keyword">struct</span> <a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info);</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> </div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> <a class="code" href="group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb">lws_context_destroy</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> </div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> lws_context_destroy2(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> </div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> <span class="keyword">typedef</span> int (*lws_reload_func)(void);</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span> </div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span> <a class="code" href="group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232">lws_context_deprecate</a>(<span class="keyword">struct</span> lws_context *context, lws_reload_func cb);</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span> </div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span> lws_context_is_deprecated(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span> </div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span> <a class="code" href="group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4">lws_set_proxy</a>(<span class="keyword">struct</span> lws_vhost *vhost, <span class="keyword">const</span> <span class="keywordtype">char</span> *proxy);</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span> </div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span> </div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> <span class="keyword">struct </span>lws_vhost;</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span> </div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> LWS_EXTERN LWS_VISIBLE <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span> <a class="code" href="group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c">lws_create_vhost</a>(<span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>  <span class="keyword">struct</span> <a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info);</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span> </div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span> <a class="code" href="group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73">lwsws_get_config_globals</a>(<span class="keyword">struct</span> <a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info, <span class="keyword">const</span> <span class="keywordtype">char</span> *d,</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>  <span class="keywordtype">char</span> **config_strings, <span class="keywordtype">int</span> *len);</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> </div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> <a class="code" href="group__context-and-vhost.html#ga341064721add2618ae1b29717493a212">lwsws_get_config_vhosts</a>(<span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>  <span class="keyword">struct</span> <a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info, <span class="keyword">const</span> <span class="keywordtype">char</span> *d,</div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>  <span class="keywordtype">char</span> **config_strings, <span class="keywordtype">int</span> *len);</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> </div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span> <a class="code" href="group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c">lws_vhost_get</a>(<span class="keyword">struct</span> lws *wsi) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> </div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span> <a class="code" href="group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932">lws_get_vhost</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span> </div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> <a class="code" href="group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6">lws_json_dump_vhost</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws_vhost *vh, <span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> </div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> <a class="code" href="group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135">lws_json_dump_context</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws_context *context, <span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len,</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>  <span class="keywordtype">int</span> hide_vhosts);</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> </div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span> <a class="code" href="group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da">lws_context_user</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> </div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span> </div><div class="line"><a name="l01993"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html"> 1993</a></span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> {</div><div class="line"><a name="l01994"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c"> 1994</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c">next</a>; </div><div class="line"><a name="l01995"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822"> 1995</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822">options</a>; </div><div class="line"><a name="l01996"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9"> 1996</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9">name</a>; </div><div class="line"><a name="l01997"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7"> 1997</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7">value</a>; </div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span> };</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span> </div><div class="line"><a name="l02004"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437"> 2004</a></span> <span class="keyword">enum</span> <a class="code" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437">lws_mount_protocols</a> {</div><div class="line"><a name="l02005"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0"> 2005</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a> = 0, </div><div class="line"><a name="l02006"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1"> 2006</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a> = 1, </div><div class="line"><a name="l02007"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2"> 2007</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a> = 2, </div><div class="line"><a name="l02008"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69"> 2008</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a> = 3, </div><div class="line"><a name="l02009"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970"> 2009</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a> = 4, </div><div class="line"><a name="l02010"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67"> 2010</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a> = 5, </div><div class="line"><a name="l02011"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"> 2011</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a> = 6, </div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> };</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> </div><div class="line"><a name="l02018"></a><span class="lineno"><a class="line" href="structlws__http__mount.html"> 2018</a></span> <span class="keyword">struct </span><a class="code" href="structlws__http__mount.html">lws_http_mount</a> {</div><div class="line"><a name="l02019"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a0109baf93f23c07c824c997c3533ee44"> 2019</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__http__mount.html">lws_http_mount</a> *<a class="code" href="structlws__http__mount.html#a0109baf93f23c07c824c997c3533ee44">mount_next</a>;</div><div class="line"><a name="l02021"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c"> 2021</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c">mountpoint</a>;</div><div class="line"><a name="l02023"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a"> 2023</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a">origin</a>;</div><div class="line"><a name="l02025"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4"> 2025</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4">def</a>;</div><div class="line"><a name="l02027"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b"> 2027</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b">protocol</a>;</div><div class="line"><a name="l02030"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af"> 2030</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af">cgienv</a>;</div><div class="line"><a name="l02034"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7"> 2034</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7">extra_mimetypes</a>;</div><div class="line"><a name="l02036"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773"> 2036</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773">interpret</a>;</div><div class="line"><a name="l02039"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa"> 2039</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa">cgi_timeout</a>;</div><div class="line"><a name="l02041"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146"> 2041</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146">cache_max_age</a>;</div><div class="line"><a name="l02043"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477"> 2043</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477">auth_mask</a>;</div><div class="line"><a name="l02046"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a8316dd183ffbef50419a5a4968d35d84"> 2046</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_reusable:1; </div><div class="line"><a name="l02047"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae137203040c6153694bd88a708da5395"> 2047</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_revalidate:1; </div><div class="line"><a name="l02048"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#aabec1a326780aafe11b977000983be0c"> 2048</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_intermediaries:1; </div><div class="line"><a name="l02050"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7"> 2050</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7">origin_protocol</a>; </div><div class="line"><a name="l02051"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743"> 2051</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743">mountpoint_len</a>; </div><div class="line"><a name="l02053"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a2f6c7dbc2d714b7259c67b7744d4ff98"> 2053</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__http__mount.html#a2f6c7dbc2d714b7259c67b7744d4ff98">basic_auth_login_file</a>;</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility</span></div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> <span class="comment"> *</span></div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span> <span class="comment"> * The below is to ensure later library versions with new</span></div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span> <span class="comment"> * members added above will see 0 (default) even if the app</span></div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> <span class="comment"> * was not built against the newer headers.</span></div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> <span class="comment"> */</span></div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span> </div><div class="line"><a name="l02064"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a78d58848eed7b544ae83f719abdbe4b6"> 2064</a></span>  <span class="keywordtype">void</span> *_unused[2]; </div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span> };</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span> </div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span> </div><div class="line"><a name="l02081"></a><span class="lineno"><a class="line" href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce"> 2081</a></span> <span class="keyword">enum</span> <a class="code" href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce">lws_client_connect_ssl_connection_flags</a> {</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>  LCCSCF_USE_SSL = (1 << 0),</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>  LCCSCF_ALLOW_SELFSIGNED = (1 << 1),</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>  LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 << 2),</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>  LCCSCF_ALLOW_EXPIRED = (1 << 3)</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> };</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span> </div><div class="line"><a name="l02091"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html"> 2091</a></span> <span class="keyword">struct </span><a class="code" href="structlws__client__connect__info.html">lws_client_connect_info</a> {</div><div class="line"><a name="l02092"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd"> 2092</a></span>  <span class="keyword">struct </span>lws_context *<a class="code" href="structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd">context</a>;</div><div class="line"><a name="l02094"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502"> 2094</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502">address</a>;</div><div class="line"><a name="l02096"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9"> 2096</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9">port</a>;</div><div class="line"><a name="l02098"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d"> 2098</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d">ssl_connection</a>;</div><div class="line"><a name="l02100"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185"> 2100</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185">path</a>;</div><div class="line"><a name="l02102"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7"> 2102</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7">host</a>;</div><div class="line"><a name="l02104"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c"> 2104</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c">origin</a>;</div><div class="line"><a name="l02106"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2"> 2106</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2">protocol</a>;</div><div class="line"><a name="l02108"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895"> 2108</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895">ietf_version_or_minus_one</a>;</div><div class="line"><a name="l02110"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836"> 2110</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836">userdata</a>;</div><div class="line"><a name="l02112"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aaf76f45db5b4354894bae03a4f8f65a5"> 2112</a></span>  <span class="keyword">const</span> <span class="keywordtype">void</span> *<a class="code" href="structlws__client__connect__info.html#aaf76f45db5b4354894bae03a4f8f65a5">client_exts</a>;</div><div class="line"><a name="l02114"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db"> 2114</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db">method</a>;</div><div class="line"><a name="l02117"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587"> 2117</a></span>  <span class="keyword">struct </span>lws *<a class="code" href="structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587">parent_wsi</a>;</div><div class="line"><a name="l02121"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a"> 2121</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a">uri_replace_from</a>;</div><div class="line"><a name="l02124"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3"> 2124</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3">uri_replace_to</a>;</div><div class="line"><a name="l02126"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be"> 2126</a></span>  <span class="keyword">struct </span>lws_vhost *<a class="code" href="structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be">vhost</a>;</div><div class="line"><a name="l02128"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e"> 2128</a></span>  <span class="keyword">struct </span>lws **<a class="code" href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e">pwsi</a>;</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility</span></div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span> <span class="comment"> *</span></div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span> <span class="comment"> * The below is to ensure later library versions with new</span></div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span> <span class="comment"> * members added above will see 0 (default) even if the app</span></div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span> <span class="comment"> * was not built against the newer headers.</span></div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span> <span class="comment"> */</span></div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span> </div><div class="line"><a name="l02148"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#ad47f50d1633dc5df74548606c9a66d73"> 2148</a></span>  <span class="keywordtype">void</span> *_unused[4]; </div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span> };</div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span> </div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span> <a class="code" href="group__client.html#ga0c966136905f467816307cfba6deb5fd">lws_client_connect_via_info</a>(<span class="keyword">struct</span> <a class="code" href="structlws__client__connect__info.html">lws_client_connect_info</a> * ccinfo);</div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span> </div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span> <span class="comment">/* deprecated, use lws_client_connect_via_info() */</span></div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span> <a class="code" href="group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3">lws_client_connect</a>(<span class="keyword">struct</span> lws_context *clients, <span class="keyword">const</span> <span class="keywordtype">char</span> *address,</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>  <span class="keywordtype">int</span> port, <span class="keywordtype">int</span> ssl_connection, <span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *host, <span class="keyword">const</span> <span class="keywordtype">char</span> *origin, <span class="keyword">const</span> <span class="keywordtype">char</span> *protocol,</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>  <span class="keywordtype">int</span> ietf_version_or_minus_one) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span> <span class="comment">/* deprecated, use lws_client_connect_via_info() */</span></div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span> <a class="code" href="group__client.html#gac6a8558b4410961a880241c2ac1271e2">lws_client_connect_extended</a>(<span class="keyword">struct</span> lws_context *clients, <span class="keyword">const</span> <span class="keywordtype">char</span> *address,</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>  <span class="keywordtype">int</span> port, <span class="keywordtype">int</span> ssl_connection, <span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *host, <span class="keyword">const</span> <span class="keywordtype">char</span> *origin,</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *protocol, <span class="keywordtype">int</span> ietf_version_or_minus_one,</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>  <span class="keywordtype">void</span> *userdata) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span> </div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span> <a class="code" href="group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340">lws_init_vhost_client_ssl</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info,</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>  <span class="keyword">struct</span> lws_vhost *vhost);</div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span> </div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span> lws_http_client_read(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">char</span> **buf, <span class="keywordtype">int</span> *len);</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span> </div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span></div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span> <a class="code" href="group__client.html#ga715efffc0c4e8fbf72a4293008eb2187">lws_http_client_http_response</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span> </div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span> lws_client_http_body_pending(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">int</span> something_left_to_send);</div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> </div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span> </div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span> </div><div class="line"><a name="l02322"></a><span class="lineno"> 2322</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02323"></a><span class="lineno"> 2323</span> <a class="code" href="group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8">lws_service</a>(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> timeout_ms);</div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> </div><div class="line"><a name="l02336"></a><span class="lineno"> 2336</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</span> <a class="code" href="group__service.html#ga9b3cc4473fd8848e5bbee7f310712939">lws_service_tsi</a>(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> timeout_ms, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l02338"></a><span class="lineno"> 2338</span> </div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span> <a class="code" href="group__service.html#ga29c246707997ab7a466aa709aecd2d7b">lws_cancel_service_pt</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span> </div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02369"></a><span class="lineno"> 2369</span> <a class="code" href="group__service.html#ga53e3d0801dfda7960a7249dd559e68a2">lws_cancel_service</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span> </div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02398"></a><span class="lineno"> 2398</span> <a class="code" href="group__service.html#gad82efa5466d14a9f05aa06416375b28d">lws_service_fd</a>(<span class="keyword">struct</span> lws_context *context, <span class="keyword">struct</span> <a class="code" href="structlws__pollfd.html">lws_pollfd</a> *<a class="code" href="structpollfd.html">pollfd</a>);</div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span> </div><div class="line"><a name="l02409"></a><span class="lineno"> 2409</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02410"></a><span class="lineno"> 2410</span> <a class="code" href="group__service.html#gaebf426eda371ba23642fc11d8e0ace6b">lws_service_fd_tsi</a>(<span class="keyword">struct</span> lws_context *context, <span class="keyword">struct</span> <a class="code" href="structlws__pollfd.html">lws_pollfd</a> *<a class="code" href="structpollfd.html">pollfd</a>,</div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>  <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span> </div><div class="line"><a name="l02430"></a><span class="lineno"> 2430</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02431"></a><span class="lineno"> 2431</span> <a class="code" href="group__service.html#ga4fd9d714434ca499e2b3f7dbba86f241">lws_service_adjust_timeout</a>(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> timeout_ms, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span> </div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span> <span class="comment">/* Backwards compatibility */</span></div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span> <span class="preprocessor">#define lws_plat_service_tsi lws_service_tsi</span></div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span> </div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span> </div><div class="line"><a name="l02443"></a><span class="lineno"> 2443</span> </div><div class="line"><a name="l02450"></a><span class="lineno"> 2450</span> </div><div class="line"><a name="l02462"></a><span class="lineno"> 2462</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02463"></a><span class="lineno"> 2463</span> <a class="code" href="group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c">lws_get_mimetype</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__http__mount.html">lws_http_mount</a> *m);</div><div class="line"><a name="l02464"></a><span class="lineno"> 2464</span> </div><div class="line"><a name="l02483"></a><span class="lineno"> 2483</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02484"></a><span class="lineno"> 2484</span> <a class="code" href="group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7">lws_serve_http_file</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keyword">const</span> <span class="keywordtype">char</span> *content_type,</div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *other_headers, <span class="keywordtype">int</span> other_headers_len);</div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02487"></a><span class="lineno"> 2487</span> lws_serve_http_file_fragment(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l02489"></a><span class="lineno"> 2489</span> </div><div class="line"><a name="l02500"></a><span class="lineno"> 2500</span> </div><div class="line"><a name="l02501"></a><span class="lineno"> 2501</span> <span class="keyword">enum</span> http_status {</div><div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>  HTTP_STATUS_OK = 200,</div><div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>  HTTP_STATUS_NO_CONTENT = 204,</div><div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>  HTTP_STATUS_PARTIAL_CONTENT = 206,</div><div class="line"><a name="l02505"></a><span class="lineno"> 2505</span> </div><div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>  HTTP_STATUS_MOVED_PERMANENTLY = 301,</div><div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>  HTTP_STATUS_FOUND = 302,</div><div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>  HTTP_STATUS_SEE_OTHER = 303,</div><div class="line"><a name="l02509"></a><span class="lineno"> 2509</span> </div><div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>  HTTP_STATUS_BAD_REQUEST = 400,</div><div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>  HTTP_STATUS_UNAUTHORIZED,</div><div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>  HTTP_STATUS_PAYMENT_REQUIRED,</div><div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>  HTTP_STATUS_FORBIDDEN,</div><div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>  HTTP_STATUS_NOT_FOUND,</div><div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>  HTTP_STATUS_METHOD_NOT_ALLOWED,</div><div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>  HTTP_STATUS_NOT_ACCEPTABLE,</div><div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>  HTTP_STATUS_PROXY_AUTH_REQUIRED,</div><div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>  HTTP_STATUS_REQUEST_TIMEOUT,</div><div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>  HTTP_STATUS_CONFLICT,</div><div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>  HTTP_STATUS_GONE,</div><div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>  HTTP_STATUS_LENGTH_REQUIRED,</div><div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>  HTTP_STATUS_PRECONDITION_FAILED,</div><div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>  HTTP_STATUS_REQ_ENTITY_TOO_LARGE,</div><div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>  HTTP_STATUS_REQ_URI_TOO_LONG,</div><div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>  HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE,</div><div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>  HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE,</div><div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>  HTTP_STATUS_EXPECTATION_FAILED,</div><div class="line"><a name="l02528"></a><span class="lineno"> 2528</span> </div><div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>  HTTP_STATUS_INTERNAL_SERVER_ERROR = 500,</div><div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>  HTTP_STATUS_NOT_IMPLEMENTED,</div><div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>  HTTP_STATUS_BAD_GATEWAY,</div><div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>  HTTP_STATUS_SERVICE_UNAVAILABLE,</div><div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>  HTTP_STATUS_GATEWAY_TIMEOUT,</div><div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>  HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED,</div><div class="line"><a name="l02535"></a><span class="lineno"> 2535</span> };</div><div class="line"><a name="l02536"></a><span class="lineno"> 2536</span> </div><div class="line"><a name="l02537"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html"> 2537</a></span> <span class="keyword">struct </span><a class="code" href="structlws__process__html__args.html">lws_process_html_args</a> {</div><div class="line"><a name="l02538"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14"> 2538</a></span>  <span class="keywordtype">char</span> *<a class="code" href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14">p</a>; </div><div class="line"><a name="l02539"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef"> 2539</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef">len</a>; </div><div class="line"><a name="l02540"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99"> 2540</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99">max_len</a>; </div><div class="line"><a name="l02541"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475"> 2541</a></span>  <span class="keywordtype">int</span> <span class="keyword">final</span>; </div><div class="line"><a name="l02542"></a><span class="lineno"> 2542</span> };</div><div class="line"><a name="l02543"></a><span class="lineno"> 2543</span> </div><div class="line"><a name="l02544"></a><span class="lineno"> 2544</span> <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *(*lws_process_html_state_cb)(<span class="keywordtype">void</span> *data, <span class="keywordtype">int</span> index);</div><div class="line"><a name="l02545"></a><span class="lineno"> 2545</span> </div><div class="line"><a name="l02546"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html"> 2546</a></span> <span class="keyword">struct </span><a class="code" href="structlws__process__html__state.html">lws_process_html_state</a> {</div><div class="line"><a name="l02547"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3"> 2547</a></span>  <span class="keywordtype">char</span> *<a class="code" href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3">start</a>; </div><div class="line"><a name="l02548"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a71982bc1cbd8cf876ca0f545144404eb"> 2548</a></span>  <span class="keywordtype">char</span> swallow[16]; </div><div class="line"><a name="l02549"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20"> 2549</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20">pos</a>; </div><div class="line"><a name="l02550"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5"> 2550</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5">data</a>; </div><div class="line"><a name="l02551"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077"> 2551</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> *<a class="code" href="structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077">vars</a>; </div><div class="line"><a name="l02552"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968"> 2552</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968">count_vars</a>; </div><div class="line"><a name="l02554"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644"> 2554</a></span>  lws_process_html_state_cb replace; </div><div class="line"><a name="l02555"></a><span class="lineno"> 2555</span> };</div><div class="line"><a name="l02556"></a><span class="lineno"> 2556</span> </div><div class="line"><a name="l02561"></a><span class="lineno"> 2561</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02562"></a><span class="lineno"> 2562</span> <a class="code" href="group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60">lws_chunked_html_process</a>(<span class="keyword">struct</span> <a class="code" href="structlws__process__html__args.html">lws_process_html_args</a> *args,</div><div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>  <span class="keyword">struct</span> <a class="code" href="structlws__process__html__state.html">lws_process_html_state</a> *s);</div><div class="line"><a name="l02565"></a><span class="lineno"> 2565</span> </div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</span> </div><div class="line"><a name="l02606"></a><span class="lineno"><a class="line" href="structlws__tokens.html"> 2606</a></span> <span class="keyword">struct </span><a class="code" href="structlws__tokens.html">lws_tokens</a> {</div><div class="line"><a name="l02607"></a><span class="lineno"><a class="line" href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd"> 2607</a></span>  <span class="keywordtype">char</span> *<a class="code" href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd">token</a>; </div><div class="line"><a name="l02608"></a><span class="lineno"><a class="line" href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766"> 2608</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766">token_len</a>; </div><div class="line"><a name="l02609"></a><span class="lineno"> 2609</span> };</div><div class="line"><a name="l02610"></a><span class="lineno"> 2610</span> </div><div class="line"><a name="l02611"></a><span class="lineno"> 2611</span> <span class="comment">/* enum lws_token_indexes</span></div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span> <span class="comment"> * these have to be kept in sync with lextable.h / minilex.c</span></div><div class="line"><a name="l02613"></a><span class="lineno"> 2613</span> <span class="comment"> *</span></div><div class="line"><a name="l02614"></a><span class="lineno"> 2614</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l02615"></a><span class="lineno"> 2615</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l02616"></a><span class="lineno"> 2616</span> <span class="comment"> */</span></div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</span> <span class="keyword">enum</span> lws_token_indexes {</div><div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>  WSI_TOKEN_GET_URI = 0,</div><div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>  WSI_TOKEN_POST_URI = 1,</div><div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>  WSI_TOKEN_OPTIONS_URI = 2,</div><div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>  WSI_TOKEN_HOST = 3,</div><div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>  WSI_TOKEN_CONNECTION = 4,</div><div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>  WSI_TOKEN_UPGRADE = 5,</div><div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>  WSI_TOKEN_ORIGIN = 6,</div><div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>  WSI_TOKEN_DRAFT = 7,</div><div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>  WSI_TOKEN_CHALLENGE = 8,</div><div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>  WSI_TOKEN_EXTENSIONS = 9,</div><div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>  WSI_TOKEN_KEY1 = 10,</div><div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>  WSI_TOKEN_KEY2 = 11,</div><div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>  WSI_TOKEN_PROTOCOL = 12,</div><div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>  WSI_TOKEN_ACCEPT = 13,</div><div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>  WSI_TOKEN_NONCE = 14,</div><div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>  WSI_TOKEN_HTTP = 15,</div><div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>  WSI_TOKEN_HTTP2_SETTINGS = 16,</div><div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>  WSI_TOKEN_HTTP_ACCEPT = 17,</div><div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>  WSI_TOKEN_HTTP_AC_REQUEST_HEADERS = 18,</div><div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>  WSI_TOKEN_HTTP_IF_MODIFIED_SINCE = 19,</div><div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>  WSI_TOKEN_HTTP_IF_NONE_MATCH = 20,</div><div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>  WSI_TOKEN_HTTP_ACCEPT_ENCODING = 21,</div><div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>  WSI_TOKEN_HTTP_ACCEPT_LANGUAGE = 22,</div><div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>  WSI_TOKEN_HTTP_PRAGMA = 23,</div><div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>  WSI_TOKEN_HTTP_CACHE_CONTROL = 24,</div><div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>  WSI_TOKEN_HTTP_AUTHORIZATION = 25,</div><div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>  WSI_TOKEN_HTTP_COOKIE = 26,</div><div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>  WSI_TOKEN_HTTP_CONTENT_LENGTH = 27,</div><div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>  WSI_TOKEN_HTTP_CONTENT_TYPE = 28,</div><div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>  WSI_TOKEN_HTTP_DATE = 29,</div><div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>  WSI_TOKEN_HTTP_RANGE = 30,</div><div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>  WSI_TOKEN_HTTP_REFERER = 31,</div><div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>  WSI_TOKEN_KEY = 32,</div><div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>  WSI_TOKEN_VERSION = 33,</div><div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>  WSI_TOKEN_SWORIGIN = 34,</div><div class="line"><a name="l02653"></a><span class="lineno"> 2653</span> </div><div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>  WSI_TOKEN_HTTP_COLON_AUTHORITY = 35,</div><div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>  WSI_TOKEN_HTTP_COLON_METHOD = 36,</div><div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>  WSI_TOKEN_HTTP_COLON_PATH = 37,</div><div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>  WSI_TOKEN_HTTP_COLON_SCHEME = 38,</div><div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>  WSI_TOKEN_HTTP_COLON_STATUS = 39,</div><div class="line"><a name="l02659"></a><span class="lineno"> 2659</span> </div><div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>  WSI_TOKEN_HTTP_ACCEPT_CHARSET = 40,</div><div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>  WSI_TOKEN_HTTP_ACCEPT_RANGES = 41,</div><div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>  WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN = 42,</div><div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>  WSI_TOKEN_HTTP_AGE = 43,</div><div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>  WSI_TOKEN_HTTP_ALLOW = 44,</div><div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>  WSI_TOKEN_HTTP_CONTENT_DISPOSITION = 45,</div><div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>  WSI_TOKEN_HTTP_CONTENT_ENCODING = 46,</div><div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>  WSI_TOKEN_HTTP_CONTENT_LANGUAGE = 47,</div><div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>  WSI_TOKEN_HTTP_CONTENT_LOCATION = 48,</div><div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>  WSI_TOKEN_HTTP_CONTENT_RANGE = 49,</div><div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>  WSI_TOKEN_HTTP_ETAG = 50,</div><div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>  WSI_TOKEN_HTTP_EXPECT = 51,</div><div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>  WSI_TOKEN_HTTP_EXPIRES = 52,</div><div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>  WSI_TOKEN_HTTP_FROM = 53,</div><div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>  WSI_TOKEN_HTTP_IF_MATCH = 54,</div><div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>  WSI_TOKEN_HTTP_IF_RANGE = 55,</div><div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>  WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE = 56,</div><div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>  WSI_TOKEN_HTTP_LAST_MODIFIED = 57,</div><div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>  WSI_TOKEN_HTTP_LINK = 58,</div><div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>  WSI_TOKEN_HTTP_LOCATION = 59,</div><div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>  WSI_TOKEN_HTTP_MAX_FORWARDS = 60,</div><div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>  WSI_TOKEN_HTTP_PROXY_AUTHENTICATE = 61,</div><div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>  WSI_TOKEN_HTTP_PROXY_AUTHORIZATION = 62,</div><div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>  WSI_TOKEN_HTTP_REFRESH = 63,</div><div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>  WSI_TOKEN_HTTP_RETRY_AFTER = 64,</div><div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>  WSI_TOKEN_HTTP_SERVER = 65,</div><div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>  WSI_TOKEN_HTTP_SET_COOKIE = 66,</div><div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>  WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY = 67,</div><div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>  WSI_TOKEN_HTTP_TRANSFER_ENCODING = 68,</div><div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>  WSI_TOKEN_HTTP_USER_AGENT = 69,</div><div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>  WSI_TOKEN_HTTP_VARY = 70,</div><div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>  WSI_TOKEN_HTTP_VIA = 71,</div><div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>  WSI_TOKEN_HTTP_WWW_AUTHENTICATE = 72,</div><div class="line"><a name="l02693"></a><span class="lineno"> 2693</span> </div><div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>  WSI_TOKEN_PATCH_URI = 73,</div><div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>  WSI_TOKEN_PUT_URI = 74,</div><div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>  WSI_TOKEN_DELETE_URI = 75,</div><div class="line"><a name="l02697"></a><span class="lineno"> 2697</span> </div><div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>  WSI_TOKEN_HTTP_URI_ARGS = 76,</div><div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>  WSI_TOKEN_PROXY = 77,</div><div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>  WSI_TOKEN_HTTP_X_REAL_IP = 78,</div><div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>  WSI_TOKEN_HTTP1_0 = 79,</div><div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>  WSI_TOKEN_X_FORWARDED_FOR = 80,</div><div class="line"><a name="l02703"></a><span class="lineno"> 2703</span> </div><div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l02705"></a><span class="lineno"> 2705</span> </div><div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>  <span class="comment">/* use token storage to stash these internally, not for</span></div><div class="line"><a name="l02707"></a><span class="lineno"> 2707</span> <span class="comment"> * user use */</span></div><div class="line"><a name="l02708"></a><span class="lineno"> 2708</span> </div><div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>  _WSI_TOKEN_CLIENT_SENT_PROTOCOLS,</div><div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>  _WSI_TOKEN_CLIENT_PEER_ADDRESS,</div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>  _WSI_TOKEN_CLIENT_URI,</div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>  _WSI_TOKEN_CLIENT_HOST,</div><div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>  _WSI_TOKEN_CLIENT_ORIGIN,</div><div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>  _WSI_TOKEN_CLIENT_METHOD,</div><div class="line"><a name="l02715"></a><span class="lineno"> 2715</span> </div><div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>  <span class="comment">/* always last real token index*/</span></div><div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>  WSI_TOKEN_COUNT,</div><div class="line"><a name="l02718"></a><span class="lineno"> 2718</span> </div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>  <span class="comment">/* parser state additions, no storage associated */</span></div><div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>  WSI_TOKEN_NAME_PART,</div><div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>  WSI_TOKEN_SKIPPING,</div><div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>  WSI_TOKEN_SKIPPING_SAW_CR,</div><div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>  WSI_PARSING_COMPLETE,</div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>  WSI_INIT_TOKEN_MUXURL,</div><div class="line"><a name="l02725"></a><span class="lineno"> 2725</span> };</div><div class="line"><a name="l02726"></a><span class="lineno"> 2726</span> </div><div class="line"><a name="l02727"></a><span class="lineno"><a class="line" href="structlws__token__limits.html"> 2727</a></span> <span class="keyword">struct </span><a class="code" href="structlws__token__limits.html">lws_token_limits</a> {</div><div class="line"><a name="l02728"></a><span class="lineno"><a class="line" href="structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff"> 2728</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> token_limit[WSI_TOKEN_COUNT]; </div><div class="line"><a name="l02729"></a><span class="lineno"> 2729</span> };</div><div class="line"><a name="l02730"></a><span class="lineno"> 2730</span> </div><div class="line"><a name="l02736"></a><span class="lineno"> 2736</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02737"></a><span class="lineno"> 2737</span> <a class="code" href="group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b">lws_token_to_string</a>(<span class="keyword">enum</span> lws_token_indexes token);</div><div class="line"><a name="l02738"></a><span class="lineno"> 2738</span> </div><div class="line"><a name="l02739"></a><span class="lineno"> 2739</span> </div><div class="line"><a name="l02748"></a><span class="lineno"> 2748</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02749"></a><span class="lineno"> 2749</span> <a class="code" href="group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8">lws_hdr_total_length</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> lws_token_indexes h);</div><div class="line"><a name="l02750"></a><span class="lineno"> 2750</span> </div><div class="line"><a name="l02760"></a><span class="lineno"> 2760</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02761"></a><span class="lineno"> 2761</span> <a class="code" href="group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e">lws_hdr_fragment_length</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> lws_token_indexes h, <span class="keywordtype">int</span> frag_idx);</div><div class="line"><a name="l02762"></a><span class="lineno"> 2762</span> </div><div class="line"><a name="l02776"></a><span class="lineno"> 2776</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02777"></a><span class="lineno"> 2777</span> <a class="code" href="group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77">lws_hdr_copy</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">char</span> *dest, <span class="keywordtype">int</span> len, <span class="keyword">enum</span> lws_token_indexes h);</div><div class="line"><a name="l02778"></a><span class="lineno"> 2778</span> </div><div class="line"><a name="l02796"></a><span class="lineno"> 2796</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02797"></a><span class="lineno"> 2797</span> <a class="code" href="group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9">lws_hdr_copy_fragment</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">char</span> *dest, <span class="keywordtype">int</span> len,</div><div class="line"><a name="l02798"></a><span class="lineno"> 2798</span>  <span class="keyword">enum</span> lws_token_indexes h, <span class="keywordtype">int</span> frag_idx);</div><div class="line"><a name="l02799"></a><span class="lineno"> 2799</span> </div><div class="line"><a name="l02810"></a><span class="lineno"> 2810</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02811"></a><span class="lineno"> 2811</span> <a class="code" href="group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2">lws_get_urlarg_by_name</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l02813"></a><span class="lineno"> 2813</span> </div><div class="line"><a name="l02828"></a><span class="lineno"> 2828</span> </div><div class="line"><a name="l02839"></a><span class="lineno"> 2839</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02840"></a><span class="lineno"> 2840</span> <a class="code" href="group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6">lws_add_http_header_status</a>(<span class="keyword">struct</span> lws *wsi,</div><div class="line"><a name="l02841"></a><span class="lineno"> 2841</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p,</div><div class="line"><a name="l02842"></a><span class="lineno"> 2842</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02855"></a><span class="lineno"> 2855</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02856"></a><span class="lineno"> 2856</span> <a class="code" href="group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8">lws_add_http_header_by_name</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *name,</div><div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *value, <span class="keywordtype">int</span> length,</div><div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02872"></a><span class="lineno"> 2872</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02873"></a><span class="lineno"> 2873</span> <a class="code" href="group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1">lws_add_http_header_by_token</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> lws_token_indexes token,</div><div class="line"><a name="l02874"></a><span class="lineno"> 2874</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *value, <span class="keywordtype">int</span> length,</div><div class="line"><a name="l02875"></a><span class="lineno"> 2875</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02886"></a><span class="lineno"> 2886</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02887"></a><span class="lineno"> 2887</span> <a class="code" href="group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf">lws_add_http_header_content_length</a>(<span class="keyword">struct</span> lws *wsi,</div><div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> content_length,</div><div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02899"></a><span class="lineno"> 2899</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02900"></a><span class="lineno"> 2900</span> <a class="code" href="group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b">lws_finalize_http_header</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p,</div><div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02903"></a><span class="lineno"> 2903</span> </div><div class="line"><a name="l02922"></a><span class="lineno"> 2922</span> </div><div class="line"><a name="l02925"></a><span class="lineno"><a class="line" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae"> 2925</a></span> <span class="keyword">enum</span> <a class="code" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">lws_spa_fileupload_states</a> {</div><div class="line"><a name="l02926"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f"> 2926</a></span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,</div><div class="line"><a name="l02928"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7"> 2928</a></span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,</div><div class="line"><a name="l02930"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"> 2930</a></span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="line"><a name="l02932"></a><span class="lineno"> 2932</span> };</div><div class="line"><a name="l02933"></a><span class="lineno"> 2933</span> </div><div class="line"><a name="l02947"></a><span class="lineno"><a class="line" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e"> 2947</a></span> <span class="keyword">typedef</span> int (*<a class="code" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">lws_spa_fileupload_cb</a>)(<span class="keywordtype">void</span> *data, <span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div><div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *filename, <span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len,</div><div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>  <span class="keyword">enum</span> <a class="code" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">lws_spa_fileupload_states</a> state);</div><div class="line"><a name="l02950"></a><span class="lineno"> 2950</span> </div><div class="line"><a name="l02953"></a><span class="lineno"> 2953</span> <span class="keyword">struct </span>lws_spa;</div><div class="line"><a name="l02954"></a><span class="lineno"> 2954</span> </div><div class="line"><a name="l02973"></a><span class="lineno"> 2973</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_spa *</div><div class="line"><a name="l02974"></a><span class="lineno"> 2974</span> <a class="code" href="group__form-parsing.html#ga162f86762173a2bc8c28497941d74815">lws_spa_create</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> *param_names,</div><div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>  <span class="keywordtype">int</span> count_params, <span class="keywordtype">int</span> max_storage, <a class="code" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">lws_spa_fileupload_cb</a> opt_cb,</div><div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>  <span class="keywordtype">void</span> *opt_data);</div><div class="line"><a name="l02977"></a><span class="lineno"> 2977</span> </div><div class="line"><a name="l02985"></a><span class="lineno"> 2985</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02986"></a><span class="lineno"> 2986</span> <a class="code" href="group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2">lws_spa_process</a>(<span class="keyword">struct</span> lws_spa *spa, <span class="keyword">const</span> <span class="keywordtype">char</span> *in, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l02987"></a><span class="lineno"> 2987</span> </div><div class="line"><a name="l02993"></a><span class="lineno"> 2993</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02994"></a><span class="lineno"> 2994</span> <a class="code" href="group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24">lws_spa_finalize</a>(<span class="keyword">struct</span> lws_spa *spa);</div><div class="line"><a name="l02995"></a><span class="lineno"> 2995</span> </div><div class="line"><a name="l03002"></a><span class="lineno"> 3002</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03003"></a><span class="lineno"> 3003</span> <a class="code" href="group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f">lws_spa_get_length</a>(<span class="keyword">struct</span> lws_spa *spa, <span class="keywordtype">int</span> n);</div><div class="line"><a name="l03004"></a><span class="lineno"> 3004</span> </div><div class="line"><a name="l03010"></a><span class="lineno"> 3010</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03011"></a><span class="lineno"> 3011</span> <a class="code" href="group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd">lws_spa_get_string</a>(<span class="keyword">struct</span> lws_spa *spa, <span class="keywordtype">int</span> n);</div><div class="line"><a name="l03012"></a><span class="lineno"> 3012</span> </div><div class="line"><a name="l03018"></a><span class="lineno"> 3018</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03019"></a><span class="lineno"> 3019</span> <a class="code" href="group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b">lws_spa_destroy</a>(<span class="keyword">struct</span> lws_spa *spa);</div><div class="line"><a name="l03021"></a><span class="lineno"> 3021</span> </div><div class="line"><a name="l03032"></a><span class="lineno"> 3032</span> </div><div class="line"><a name="l03043"></a><span class="lineno"> 3043</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03044"></a><span class="lineno"> 3044</span> <a class="code" href="group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7">lws_urlencode</a>(<span class="keywordtype">char</span> *escaped, <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03045"></a><span class="lineno"> 3045</span> </div><div class="line"><a name="l03046"></a><span class="lineno"> 3046</span> <span class="comment">/*</span></div><div class="line"><a name="l03047"></a><span class="lineno"> 3047</span> <span class="comment"> * URLDECODE 1 / 2</span></div><div class="line"><a name="l03048"></a><span class="lineno"> 3048</span> <span class="comment"> *</span></div><div class="line"><a name="l03049"></a><span class="lineno"> 3049</span> <span class="comment"> * This simple urldecode only operates until the first '\0' and requires the</span></div><div class="line"><a name="l03050"></a><span class="lineno"> 3050</span> <span class="comment"> * data to exist all at once</span></div><div class="line"><a name="l03051"></a><span class="lineno"> 3051</span> <span class="comment"> */</span></div><div class="line"><a name="l03064"></a><span class="lineno"> 3064</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03065"></a><span class="lineno"> 3065</span> <a class="code" href="group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3">lws_urldecode</a>(<span class="keywordtype">char</span> *<span class="keywordtype">string</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *escaped, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03067"></a><span class="lineno"> 3067</span> </div><div class="line"><a name="l03076"></a><span class="lineno"> 3076</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03077"></a><span class="lineno"> 3077</span> <a class="code" href="group__http.html#gac8a4a71240857dc6b2ed70456b6923f4">lws_return_http_status</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code,</div><div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *html_body);</div><div class="line"><a name="l03079"></a><span class="lineno"> 3079</span> </div><div class="line"><a name="l03090"></a><span class="lineno"> 3090</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03091"></a><span class="lineno"> 3091</span> <a class="code" href="group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25">lws_http_redirect</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">int</span> code, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *loc, <span class="keywordtype">int</span> len,</div><div class="line"><a name="l03092"></a><span class="lineno"> 3092</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l03093"></a><span class="lineno"> 3093</span> </div><div class="line"><a name="l03102"></a><span class="lineno"> 3102</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03103"></a><span class="lineno"> 3103</span> <a class="code" href="group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a">lws_http_transaction_completed</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03105"></a><span class="lineno"> 3105</span> </div><div class="line"><a name="l03113"></a><span class="lineno"> 3113</span> </div><div class="line"><a name="l03124"></a><span class="lineno"> 3124</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03125"></a><span class="lineno"> 3125</span> <a class="code" href="group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865">lws_sql_purify</a>(<span class="keywordtype">char</span> *escaped, <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03126"></a><span class="lineno"> 3126</span> </div><div class="line"><a name="l03137"></a><span class="lineno"> 3137</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03138"></a><span class="lineno"> 3138</span> <a class="code" href="group__pur.html#gab15187efcfa256b7c928562c182b92a3">lws_json_purify</a>(<span class="keywordtype">char</span> *escaped, <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03140"></a><span class="lineno"> 3140</span> </div><div class="line"><a name="l03147"></a><span class="lineno"> 3147</span> </div><div class="line"><a name="l03149"></a><span class="lineno"> 3149</span> <span class="preprocessor">#ifdef LWS_USE_LIBEV</span></div><div class="line"><a name="l03150"></a><span class="lineno"> 3150</span> <span class="keyword">typedef</span> void (lws_ev_signal_cb_t)(EV_P_ <span class="keyword">struct </span>ev_signal *w, <span class="keywordtype">int</span> revents);</div><div class="line"><a name="l03151"></a><span class="lineno"> 3151</span> </div><div class="line"><a name="l03152"></a><span class="lineno"> 3152</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03153"></a><span class="lineno"> 3153</span> lws_ev_sigint_cfg(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> use_ev_sigint,</div><div class="line"><a name="l03154"></a><span class="lineno"> 3154</span>  lws_ev_signal_cb_t *cb);</div><div class="line"><a name="l03155"></a><span class="lineno"> 3155</span> </div><div class="line"><a name="l03156"></a><span class="lineno"> 3156</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03157"></a><span class="lineno"> 3157</span> lws_ev_initloop(<span class="keyword">struct</span> lws_context *context, <span class="keyword">struct</span> ev_loop *loop, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l03158"></a><span class="lineno"> 3158</span> </div><div class="line"><a name="l03159"></a><span class="lineno"> 3159</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03160"></a><span class="lineno"> 3160</span> lws_ev_sigint_cb(<span class="keyword">struct</span> ev_loop *loop, <span class="keyword">struct</span> ev_signal *watcher, <span class="keywordtype">int</span> revents);</div><div class="line"><a name="l03161"></a><span class="lineno"> 3161</span> <span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBEV */</span><span class="preprocessor"></span></div><div class="line"><a name="l03162"></a><span class="lineno"> 3162</span> </div><div class="line"><a name="l03164"></a><span class="lineno"> 3164</span> </div><div class="line"><a name="l03171"></a><span class="lineno"> 3171</span> <span class="preprocessor">#ifdef LWS_USE_LIBUV</span></div><div class="line"><a name="l03173"></a><span class="lineno"> 3173</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03174"></a><span class="lineno"> 3174</span> lws_uv_sigint_cfg(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> use_uv_sigint,</div><div class="line"><a name="l03175"></a><span class="lineno"> 3175</span>  uv_signal_cb cb);</div><div class="line"><a name="l03176"></a><span class="lineno"> 3176</span> </div><div class="line"><a name="l03177"></a><span class="lineno"> 3177</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03178"></a><span class="lineno"> 3178</span> lws_libuv_run(<span class="keyword">const</span> <span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l03179"></a><span class="lineno"> 3179</span> </div><div class="line"><a name="l03180"></a><span class="lineno"> 3180</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03181"></a><span class="lineno"> 3181</span> lws_libuv_stop(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l03182"></a><span class="lineno"> 3182</span> </div><div class="line"><a name="l03183"></a><span class="lineno"> 3183</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03184"></a><span class="lineno"> 3184</span> lws_libuv_stop_without_kill(<span class="keyword">const</span> <span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l03185"></a><span class="lineno"> 3185</span> </div><div class="line"><a name="l03186"></a><span class="lineno"> 3186</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03187"></a><span class="lineno"> 3187</span> lws_uv_initloop(<span class="keyword">struct</span> lws_context *context, uv_loop_t *loop, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l03188"></a><span class="lineno"> 3188</span> </div><div class="line"><a name="l03189"></a><span class="lineno"> 3189</span> LWS_VISIBLE LWS_EXTERN uv_loop_t *</div><div class="line"><a name="l03190"></a><span class="lineno"> 3190</span> lws_uv_getloop(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l03191"></a><span class="lineno"> 3191</span> </div><div class="line"><a name="l03192"></a><span class="lineno"> 3192</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03193"></a><span class="lineno"> 3193</span> lws_uv_sigint_cb(uv_signal_t *watcher, <span class="keywordtype">int</span> signum);</div><div class="line"><a name="l03194"></a><span class="lineno"> 3194</span> <span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBUV */</span><span class="preprocessor"></span></div><div class="line"><a name="l03195"></a><span class="lineno"> 3195</span> </div><div class="line"><a name="l03202"></a><span class="lineno"> 3202</span> </div><div class="line"><a name="l03203"></a><span class="lineno"> 3203</span> <span class="comment">/*</span></div><div class="line"><a name="l03204"></a><span class="lineno"> 3204</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l03205"></a><span class="lineno"> 3205</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l03206"></a><span class="lineno"> 3206</span> <span class="comment"> */</span></div><div class="line"><a name="l03207"></a><span class="lineno"> 3207</span> <span class="keyword">enum</span> pending_timeout {</div><div class="line"><a name="l03208"></a><span class="lineno"> 3208</span>  NO_PENDING_TIMEOUT = 0,</div><div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>  PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE = 1,</div><div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>  PENDING_TIMEOUT_AWAITING_CONNECT_RESPONSE = 2,</div><div class="line"><a name="l03211"></a><span class="lineno"> 3211</span>  PENDING_TIMEOUT_ESTABLISH_WITH_SERVER = 3,</div><div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>  PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE = 4,</div><div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>  PENDING_TIMEOUT_AWAITING_PING = 5,</div><div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>  PENDING_TIMEOUT_CLOSE_ACK = 6,</div><div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>  PENDING_TIMEOUT_AWAITING_EXTENSION_CONNECT_RESPONSE = 7,</div><div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>  PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE = 8,</div><div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>  PENDING_TIMEOUT_SSL_ACCEPT = 9,</div><div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>  PENDING_TIMEOUT_HTTP_CONTENT = 10,</div><div class="line"><a name="l03219"></a><span class="lineno"> 3219</span>  PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND = 11,</div><div class="line"><a name="l03220"></a><span class="lineno"> 3220</span>  PENDING_FLUSH_STORED_SEND_BEFORE_CLOSE = 12,</div><div class="line"><a name="l03221"></a><span class="lineno"> 3221</span>  PENDING_TIMEOUT_SHUTDOWN_FLUSH = 13,</div><div class="line"><a name="l03222"></a><span class="lineno"> 3222</span>  PENDING_TIMEOUT_CGI = 14,</div><div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>  PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE = 15,</div><div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>  PENDING_TIMEOUT_WS_PONG_CHECK_SEND_PING = 16,</div><div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>  PENDING_TIMEOUT_WS_PONG_CHECK_GET_PONG = 17,</div><div class="line"><a name="l03226"></a><span class="lineno"> 3226</span>  PENDING_TIMEOUT_CLIENT_ISSUE_PAYLOAD = 18,</div><div class="line"><a name="l03227"></a><span class="lineno"> 3227</span> </div><div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03229"></a><span class="lineno"> 3229</span> };</div><div class="line"><a name="l03230"></a><span class="lineno"> 3230</span> </div><div class="line"><a name="l03240"></a><span class="lineno"> 3240</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03241"></a><span class="lineno"> 3241</span> <a class="code" href="group__timeout.html#gaced9f9237f6172fed9f730a2af51345a">lws_set_timeout</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> pending_timeout reason, <span class="keywordtype">int</span> secs);</div><div class="line"><a name="l03243"></a><span class="lineno"> 3243</span> </div><div class="line"><a name="l03249"></a><span class="lineno"> 3249</span> <span class="preprocessor">#if !defined(LWS_SIZEOFPTR)</span></div><div class="line"><a name="l03250"></a><span class="lineno"> 3250</span> <span class="preprocessor">#define LWS_SIZEOFPTR (sizeof (void *))</span></div><div class="line"><a name="l03251"></a><span class="lineno"> 3251</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03252"></a><span class="lineno"> 3252</span> <span class="preprocessor">#if !defined(u_int64_t)</span></div><div class="line"><a name="l03253"></a><span class="lineno"> 3253</span> <span class="preprocessor">#define u_int64_t unsigned long long</span></div><div class="line"><a name="l03254"></a><span class="lineno"> 3254</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03255"></a><span class="lineno"> 3255</span> </div><div class="line"><a name="l03256"></a><span class="lineno"> 3256</span> <span class="preprocessor">#if defined(__x86_64__)</span></div><div class="line"><a name="l03257"></a><span class="lineno"> 3257</span> <span class="preprocessor">#define _LWS_PAD_SIZE 16 </span><span class="comment">/* Intel recommended for best performance */</span><span class="preprocessor"></span></div><div class="line"><a name="l03258"></a><span class="lineno"> 3258</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l03259"></a><span class="lineno"> 3259</span> <span class="preprocessor">#define _LWS_PAD_SIZE LWS_SIZEOFPTR </span><span class="comment">/* Size of a pointer on the target arch */</span><span class="preprocessor"></span></div><div class="line"><a name="l03260"></a><span class="lineno"> 3260</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03261"></a><span class="lineno"> 3261</span> <span class="preprocessor">#define _LWS_PAD(n) (((n) % _LWS_PAD_SIZE) ? \</span></div><div class="line"><a name="l03262"></a><span class="lineno"> 3262</span> <span class="preprocessor"> ((n) + (_LWS_PAD_SIZE - ((n) % _LWS_PAD_SIZE))) : (n))</span></div><div class="line"><a name="l03263"></a><span class="lineno"> 3263</span> <span class="preprocessor">#define LWS_PRE _LWS_PAD(4 + 10)</span></div><div class="line"><a name="l03264"></a><span class="lineno"> 3264</span> <span class="comment">/* used prior to 1.7 and retained for backward compatibility */</span></div><div class="line"><a name="l03265"></a><span class="lineno"> 3265</span> <span class="preprocessor">#define LWS_SEND_BUFFER_PRE_PADDING LWS_PRE</span></div><div class="line"><a name="l03266"></a><span class="lineno"> 3266</span> <span class="preprocessor">#define LWS_SEND_BUFFER_POST_PADDING 0</span></div><div class="line"><a name="l03267"></a><span class="lineno"> 3267</span> </div><div class="line"><a name="l03268"></a><span class="lineno"> 3268</span> <span class="comment">/*</span></div><div class="line"><a name="l03269"></a><span class="lineno"> 3269</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l03270"></a><span class="lineno"> 3270</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l03271"></a><span class="lineno"> 3271</span> <span class="comment"> */</span></div><div class="line"><a name="l03272"></a><span class="lineno"><a class="line" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d"> 3272</a></span> <span class="keyword">enum</span> <a class="code" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a> {</div><div class="line"><a name="l03273"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db"> 3273</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a> = 0,</div><div class="line"><a name="l03277"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2"> 3277</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a> = 1,</div><div class="line"><a name="l03280"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826"> 3280</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a> = 2,</div><div class="line"><a name="l03283"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e"> 3283</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a> = 3,</div><div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>  <span class="comment">/* LWS_WRITE_CLOSE is handled by lws_close_reason() */</span></div><div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>  LWS_WRITE_PING = 5,</div><div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>  LWS_WRITE_PONG = 6,</div><div class="line"><a name="l03289"></a><span class="lineno"> 3289</span> </div><div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>  <span class="comment">/* Same as write_http but we know this write ends the transaction */</span></div><div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>  LWS_WRITE_HTTP_FINAL = 7,</div><div class="line"><a name="l03292"></a><span class="lineno"> 3292</span> </div><div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>  <span class="comment">/* HTTP2 */</span></div><div class="line"><a name="l03294"></a><span class="lineno"> 3294</span> </div><div class="line"><a name="l03295"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917"> 3295</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a> = 8,</div><div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03303"></a><span class="lineno"> 3303</span> </div><div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>  <span class="comment">/* flags */</span></div><div class="line"><a name="l03305"></a><span class="lineno"> 3305</span> </div><div class="line"><a name="l03306"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3"> 3306</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,</div><div class="line"><a name="l03309"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"> 3309</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a> = 0x80</div><div class="line"><a name="l03313"></a><span class="lineno"> 3313</span> };</div><div class="line"><a name="l03314"></a><span class="lineno"> 3314</span> </div><div class="line"><a name="l03315"></a><span class="lineno"> 3315</span> </div><div class="line"><a name="l03402"></a><span class="lineno"> 3402</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03403"></a><span class="lineno"> 3403</span> <a class="code" href="group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001">lws_write</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len,</div><div class="line"><a name="l03404"></a><span class="lineno"> 3404</span>  <span class="keyword">enum</span> <a class="code" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a> protocol);</div><div class="line"><a name="l03405"></a><span class="lineno"> 3405</span> </div><div class="line"><a name="l03406"></a><span class="lineno"> 3406</span> <span class="comment">/* helper for case where buffer may be const */</span></div><div class="line"><a name="l03407"></a><span class="lineno"> 3407</span> <span class="preprocessor">#define lws_write_http(wsi, buf, len) \</span></div><div class="line"><a name="l03408"></a><span class="lineno"> 3408</span> <span class="preprocessor"> lws_write(wsi, (unsigned char *)(buf), len, LWS_WRITE_HTTP)</span></div><div class="line"><a name="l03409"></a><span class="lineno"> 3409</span> </div><div class="line"><a name="l03429"></a><span class="lineno"> 3429</span> </div><div class="line"><a name="l03442"></a><span class="lineno"> 3442</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03443"></a><span class="lineno"> 3443</span> <a class="code" href="group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d">lws_callback_on_writable</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03444"></a><span class="lineno"> 3444</span> </div><div class="line"><a name="l03458"></a><span class="lineno"> 3458</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03459"></a><span class="lineno"> 3459</span> <a class="code" href="group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107">lws_callback_on_writable_all_protocol</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l03460"></a><span class="lineno"> 3460</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *protocol);</div><div class="line"><a name="l03461"></a><span class="lineno"> 3461</span> </div><div class="line"><a name="l03475"></a><span class="lineno"> 3475</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03476"></a><span class="lineno"> 3476</span> <a class="code" href="group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8">lws_callback_on_writable_all_protocol_vhost</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws_vhost *vhost,</div><div class="line"><a name="l03477"></a><span class="lineno"> 3477</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *protocol);</div><div class="line"><a name="l03478"></a><span class="lineno"> 3478</span> </div><div class="line"><a name="l03491"></a><span class="lineno"> 3491</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03492"></a><span class="lineno"> 3492</span> <a class="code" href="group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70">lws_callback_all_protocol</a>(<span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l03493"></a><span class="lineno"> 3493</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *protocol, <span class="keywordtype">int</span> reason);</div><div class="line"><a name="l03494"></a><span class="lineno"> 3494</span> </div><div class="line"><a name="l03507"></a><span class="lineno"> 3507</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03508"></a><span class="lineno"> 3508</span> <a class="code" href="group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053">lws_callback_all_protocol_vhost</a>(<span class="keyword">struct</span> lws_vhost *vh,</div><div class="line"><a name="l03509"></a><span class="lineno"> 3509</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *protocol, <span class="keywordtype">int</span> reason);</div><div class="line"><a name="l03510"></a><span class="lineno"> 3510</span> </div><div class="line"><a name="l03524"></a><span class="lineno"> 3524</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03525"></a><span class="lineno"> 3525</span> <a class="code" href="group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5">lws_callback_vhost_protocols</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">int</span> reason, <span class="keywordtype">void</span> *in, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03526"></a><span class="lineno"> 3526</span> </div><div class="line"><a name="l03527"></a><span class="lineno"> 3527</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03528"></a><span class="lineno"> 3528</span> lws_callback_http_dummy(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> <a class="code" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">lws_callback_reasons</a> reason,</div><div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>  <span class="keywordtype">void</span> *user, <span class="keywordtype">void</span> *in, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l03530"></a><span class="lineno"> 3530</span> </div><div class="line"><a name="l03538"></a><span class="lineno"> 3538</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03539"></a><span class="lineno"> 3539</span> <a class="code" href="group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba">lws_get_socket_fd</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03540"></a><span class="lineno"> 3540</span> </div><div class="line"><a name="l03562"></a><span class="lineno"> 3562</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">size_t</span></div><div class="line"><a name="l03563"></a><span class="lineno"> 3563</span> <a class="code" href="group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde">lws_get_peer_write_allowance</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03565"></a><span class="lineno"> 3565</span> </div><div class="line"><a name="l03576"></a><span class="lineno"> 3576</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03577"></a><span class="lineno"> 3577</span> <a class="code" href="libwebsockets_8h.html#adf4abd01e8c43f07c6e498ce13590c3e">lws_rx_flow_control</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">int</span> enable);</div><div class="line"><a name="l03578"></a><span class="lineno"> 3578</span> </div><div class="line"><a name="l03588"></a><span class="lineno"> 3588</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03589"></a><span class="lineno"> 3589</span> <a class="code" href="libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672">lws_rx_flow_allow_all_protocol</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l03590"></a><span class="lineno"> 3590</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *protocol);</div><div class="line"><a name="l03591"></a><span class="lineno"> 3591</span> </div><div class="line"><a name="l03608"></a><span class="lineno"> 3608</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">size_t</span></div><div class="line"><a name="l03609"></a><span class="lineno"> 3609</span> <a class="code" href="libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536">lws_remaining_packet_payload</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03610"></a><span class="lineno"> 3610</span> </div><div class="line"><a name="l03611"></a><span class="lineno"> 3611</span> </div><div class="line"><a name="l03620"></a><span class="lineno"> 3620</span> </div><div class="line"><a name="l03634"></a><span class="lineno"> 3634</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03635"></a><span class="lineno"> 3635</span> <a class="code" href="group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af">lws_adopt_socket</a>(<span class="keyword">struct</span> lws_context *context, lws_sockfd_type accept_fd);</div><div class="line"><a name="l03648"></a><span class="lineno"> 3648</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03649"></a><span class="lineno"> 3649</span> <a class="code" href="group__sock-adopt.html#ga18747e81ff49df2076e7cd4f131f967c">lws_adopt_socket_vhost</a>(<span class="keyword">struct</span> lws_vhost *vh, lws_sockfd_type accept_fd);</div><div class="line"><a name="l03673"></a><span class="lineno"> 3673</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03674"></a><span class="lineno"> 3674</span> <a class="code" href="group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b">lws_adopt_socket_readbuf</a>(<span class="keyword">struct</span> lws_context *context, lws_sockfd_type accept_fd,</div><div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *readbuf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l03699"></a><span class="lineno"> 3699</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03700"></a><span class="lineno"> 3700</span> <a class="code" href="group__sock-adopt.html#ga5ed5fd251ac0ed46798af341c33bf067">lws_adopt_socket_vhost_readbuf</a>(<span class="keyword">struct</span> lws_vhost *vhost, lws_sockfd_type accept_fd,</div><div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *readbuf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l03703"></a><span class="lineno"> 3703</span> </div><div class="line"><a name="l03709"></a><span class="lineno"> 3709</span> </div><div class="line"><a name="l03720"></a><span class="lineno"> 3720</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03721"></a><span class="lineno"> 3721</span> <a class="code" href="group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4">lws_canonical_hostname</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l03722"></a><span class="lineno"> 3722</span> </div><div class="line"><a name="l03737"></a><span class="lineno"> 3737</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03738"></a><span class="lineno"> 3738</span> <a class="code" href="group__net.html#ga092e5f473b3347f03ffeef8a950080f3">lws_get_peer_addresses</a>(<span class="keyword">struct</span> lws *wsi, lws_sockfd_type fd, <span class="keywordtype">char</span> *name,</div><div class="line"><a name="l03739"></a><span class="lineno"> 3739</span>  <span class="keywordtype">int</span> name_len, <span class="keywordtype">char</span> *rip, <span class="keywordtype">int</span> rip_len);</div><div class="line"><a name="l03740"></a><span class="lineno"> 3740</span> </div><div class="line"><a name="l03751"></a><span class="lineno"> 3751</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03752"></a><span class="lineno"> 3752</span> <a class="code" href="group__net.html#gad01014fed09759741b6d23afccfdaacc">lws_get_peer_simple</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> namelen);</div><div class="line"><a name="l03753"></a><span class="lineno"> 3753</span> <span class="preprocessor">#ifndef LWS_WITH_ESP8266</span></div><div class="line"><a name="l03754"></a><span class="lineno"> 3754</span> </div><div class="line"><a name="l03765"></a><span class="lineno"> 3765</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03766"></a><span class="lineno"> 3766</span> <a class="code" href="group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8">lws_interface_to_sa</a>(<span class="keywordtype">int</span> ipv6, <span class="keyword">const</span> <span class="keywordtype">char</span> *ifname, <span class="keyword">struct</span> sockaddr_in *addr,</div><div class="line"><a name="l03767"></a><span class="lineno"> 3767</span>  <span class="keywordtype">size_t</span> addrlen);</div><div class="line"><a name="l03769"></a><span class="lineno"> 3769</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03770"></a><span class="lineno"> 3770</span> </div><div class="line"><a name="l03776"></a><span class="lineno"> 3776</span> </div><div class="line"><a name="l03789"></a><span class="lineno"> 3789</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03790"></a><span class="lineno"> 3790</span> <a class="code" href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">lws_snprintf</a>(<span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...);</div><div class="line"><a name="l03791"></a><span class="lineno"> 3791</span> </div><div class="line"><a name="l03803"></a><span class="lineno"> 3803</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03804"></a><span class="lineno"> 3804</span> <a class="code" href="group__misc.html#ga58f906c6be0ca80efd813f694569dd4a">lws_get_random</a>(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">void</span> *buf, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03812"></a><span class="lineno"> 3812</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03813"></a><span class="lineno"> 3813</span> <a class="code" href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">lws_daemonize</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *_lock_path);</div><div class="line"><a name="l03819"></a><span class="lineno"> 3819</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03820"></a><span class="lineno"> 3820</span> <a class="code" href="group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0">lws_get_library_version</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l03821"></a><span class="lineno"> 3821</span> </div><div class="line"><a name="l03828"></a><span class="lineno"> 3828</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l03829"></a><span class="lineno"> 3829</span> <a class="code" href="group__misc.html#gaa194584fff9698f3b280658f770ccd0f">lws_wsi_user</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03830"></a><span class="lineno"> 3830</span> </div><div class="line"><a name="l03842"></a><span class="lineno"> 3842</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03843"></a><span class="lineno"> 3843</span> <a class="code" href="group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa">lws_parse_uri</a>(<span class="keywordtype">char</span> *p, <span class="keyword">const</span> <span class="keywordtype">char</span> **prot, <span class="keyword">const</span> <span class="keywordtype">char</span> **ads, <span class="keywordtype">int</span> *port,</div><div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> **path);</div><div class="line"><a name="l03845"></a><span class="lineno"> 3845</span> </div><div class="line"><a name="l03849"></a><span class="lineno"> 3849</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span></div><div class="line"><a name="l03850"></a><span class="lineno"> 3850</span> <a class="code" href="group__misc.html#ga33bf2635033710b25f931b57ed663e1e">lws_now_secs</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l03851"></a><span class="lineno"> 3851</span> </div><div class="line"><a name="l03861"></a><span class="lineno"> 3861</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_context * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03862"></a><span class="lineno"> 3862</span> <a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03863"></a><span class="lineno"> 3863</span> </div><div class="line"><a name="l03873"></a><span class="lineno"> 3873</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03874"></a><span class="lineno"> 3874</span> <a class="code" href="group__misc.html#ga629f48268fd1856b54b11172991b97d9">lws_get_count_threads</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l03875"></a><span class="lineno"> 3875</span> </div><div class="line"><a name="l03883"></a><span class="lineno"> 3883</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03884"></a><span class="lineno"> 3884</span> <a class="code" href="group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899">lws_get_parent</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03885"></a><span class="lineno"> 3885</span> </div><div class="line"><a name="l03892"></a><span class="lineno"> 3892</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03893"></a><span class="lineno"> 3893</span> <a class="code" href="group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234">lws_get_child</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03894"></a><span class="lineno"> 3894</span> </div><div class="line"><a name="l03895"></a><span class="lineno"> 3895</span> </div><div class="line"><a name="l03896"></a><span class="lineno"> 3896</span> <span class="comment">/*</span></div><div class="line"><a name="l03897"></a><span class="lineno"> 3897</span> <span class="comment"> * \deprecated DEPRECATED Note: this is not normally needed as a user api.</span></div><div class="line"><a name="l03898"></a><span class="lineno"> 3898</span> <span class="comment"> * It's provided in case it is</span></div><div class="line"><a name="l03899"></a><span class="lineno"> 3899</span> <span class="comment"> * useful when integrating with other app poll loop service code.</span></div><div class="line"><a name="l03900"></a><span class="lineno"> 3900</span> <span class="comment"> */</span></div><div class="line"><a name="l03901"></a><span class="lineno"> 3901</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03902"></a><span class="lineno"> 3902</span> lws_read(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l03903"></a><span class="lineno"> 3903</span> </div><div class="line"><a name="l03911"></a><span class="lineno"> 3911</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03912"></a><span class="lineno"> 3912</span> <a class="code" href="group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b">lws_set_allocator</a>(<span class="keywordtype">void</span> *(*realloc)(<span class="keywordtype">void</span> *ptr, <span class="keywordtype">size_t</span> size));</div><div class="line"><a name="l03914"></a><span class="lineno"> 3914</span> </div><div class="line"><a name="l03920"></a><span class="lineno"> 3920</span> </div><div class="line"><a name="l03927"></a><span class="lineno"> 3927</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03928"></a><span class="lineno"> 3928</span> <a class="code" href="group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421">lws_send_pipe_choked</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03929"></a><span class="lineno"> 3929</span> </div><div class="line"><a name="l03934"></a><span class="lineno"> 3934</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03935"></a><span class="lineno"> 3935</span> <a class="code" href="group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37">lws_is_final_fragment</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03936"></a><span class="lineno"> 3936</span> </div><div class="line"><a name="l03941"></a><span class="lineno"> 3941</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span></div><div class="line"><a name="l03942"></a><span class="lineno"> 3942</span> <a class="code" href="group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2">lws_get_reserved_bits</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03943"></a><span class="lineno"> 3943</span> </div><div class="line"><a name="l03960"></a><span class="lineno"> 3960</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03961"></a><span class="lineno"> 3961</span> <a class="code" href="group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85">lws_partial_buffered</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03962"></a><span class="lineno"> 3962</span> </div><div class="line"><a name="l03972"></a><span class="lineno"> 3972</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03973"></a><span class="lineno"> 3973</span> <a class="code" href="group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd">lws_frame_is_binary</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03974"></a><span class="lineno"> 3974</span> </div><div class="line"><a name="l03983"></a><span class="lineno"> 3983</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03984"></a><span class="lineno"> 3984</span> <a class="code" href="group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa">lws_is_ssl</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03989"></a><span class="lineno"> 3989</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03990"></a><span class="lineno"> 3990</span> <a class="code" href="group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1">lws_is_cgi</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03991"></a><span class="lineno"> 3991</span> </div><div class="line"><a name="l03992"></a><span class="lineno"> 3992</span> <span class="preprocessor">#ifdef LWS_OPENSSL_SUPPORT</span></div><div class="line"><a name="l03993"></a><span class="lineno"> 3993</span> </div><div class="line"><a name="l03999"></a><span class="lineno"> 3999</span> LWS_VISIBLE LWS_EXTERN SSL*</div><div class="line"><a name="l04000"></a><span class="lineno"> 4000</span> <a class="code" href="group__wsstatus.html#ga42152ffb385f9b19f4e7b04f998425de">lws_get_ssl</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l04001"></a><span class="lineno"> 4001</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04002"></a><span class="lineno"> 4002</span> </div><div class="line"><a name="l04004"></a><span class="lineno"> 4004</span> </div><div class="line"><a name="l04010"></a><span class="lineno"> 4010</span> <span class="preprocessor">#ifdef LWS_SHA1_USE_OPENSSL_NAME</span></div><div class="line"><a name="l04012"></a><span class="lineno"> 4012</span> <span class="preprocessor">#define lws_SHA1 SHA1</span></div><div class="line"><a name="l04013"></a><span class="lineno"> 4013</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04014"></a><span class="lineno"> 4014</span> </div><div class="line"><a name="l04023"></a><span class="lineno"> 4023</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l04024"></a><span class="lineno"> 4024</span> <a class="code" href="group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5">lws_SHA1</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *d, <span class="keywordtype">size_t</span> n, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *md);</div><div class="line"><a name="l04025"></a><span class="lineno"> 4025</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04026"></a><span class="lineno"> 4026</span> </div><div class="line"><a name="l04036"></a><span class="lineno"> 4036</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04037"></a><span class="lineno"> 4037</span> <a class="code" href="group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575">lws_b64_encode_string</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *in, <span class="keywordtype">int</span> in_len, <span class="keywordtype">char</span> *out, <span class="keywordtype">int</span> out_size);</div><div class="line"><a name="l04047"></a><span class="lineno"> 4047</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04048"></a><span class="lineno"> 4048</span> <a class="code" href="group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d">lws_b64_decode_string</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *in, <span class="keywordtype">char</span> *out, <span class="keywordtype">int</span> out_size);</div><div class="line"><a name="l04050"></a><span class="lineno"> 4050</span> </div><div class="line"><a name="l04051"></a><span class="lineno"> 4051</span> </div><div class="line"><a name="l04061"></a><span class="lineno"> 4061</span> <span class="preprocessor">#ifdef LWS_WITH_CGI</span></div><div class="line"><a name="l04062"></a><span class="lineno"> 4062</span> <span class="keyword">enum</span> lws_enum_stdinouterr {</div><div class="line"><a name="l04063"></a><span class="lineno"> 4063</span>  LWS_STDIN = 0,</div><div class="line"><a name="l04064"></a><span class="lineno"> 4064</span>  LWS_STDOUT = 1,</div><div class="line"><a name="l04065"></a><span class="lineno"> 4065</span>  LWS_STDERR = 2,</div><div class="line"><a name="l04066"></a><span class="lineno"> 4066</span> };</div><div class="line"><a name="l04067"></a><span class="lineno"> 4067</span> </div><div class="line"><a name="l04068"></a><span class="lineno"> 4068</span> <span class="keyword">enum</span> lws_cgi_hdr_state {</div><div class="line"><a name="l04069"></a><span class="lineno"> 4069</span>  LCHS_HEADER,</div><div class="line"><a name="l04070"></a><span class="lineno"> 4070</span>  LCHS_CR1,</div><div class="line"><a name="l04071"></a><span class="lineno"> 4071</span>  LCHS_LF1,</div><div class="line"><a name="l04072"></a><span class="lineno"> 4072</span>  LCHS_CR2,</div><div class="line"><a name="l04073"></a><span class="lineno"> 4073</span>  LCHS_LF2,</div><div class="line"><a name="l04074"></a><span class="lineno"> 4074</span>  LHCS_PAYLOAD,</div><div class="line"><a name="l04075"></a><span class="lineno"> 4075</span>  LCHS_SINGLE_0A,</div><div class="line"><a name="l04076"></a><span class="lineno"> 4076</span> };</div><div class="line"><a name="l04077"></a><span class="lineno"> 4077</span> </div><div class="line"><a name="l04078"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html"> 4078</a></span> <span class="keyword">struct </span><a class="code" href="structlws__cgi__args.html">lws_cgi_args</a> {</div><div class="line"><a name="l04079"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1"> 4079</a></span>  <span class="keyword">struct </span>lws **<a class="code" href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1">stdwsi</a>; </div><div class="line"><a name="l04080"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#adeee220b29aeacc34632c38e50f0f5a5"> 4080</a></span>  <span class="keyword">enum</span> lws_enum_stdinouterr ch; </div><div class="line"><a name="l04081"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7"> 4081</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7">data</a>; </div><div class="line"><a name="l04082"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a741c11b9aa05997ec45a3400d7fb7739"> 4082</a></span>  <span class="keyword">enum</span> lws_cgi_hdr_state hdr_state; </div><div class="line"><a name="l04083"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d"> 4083</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d">len</a>; </div><div class="line"><a name="l04084"></a><span class="lineno"> 4084</span> };</div><div class="line"><a name="l04085"></a><span class="lineno"> 4085</span> </div><div class="line"><a name="l04086"></a><span class="lineno"> 4086</span> </div><div class="line"><a name="l04096"></a><span class="lineno"> 4096</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04097"></a><span class="lineno"> 4097</span> <a class="code" href="libwebsockets_8h.html#af52923473c59e643a974d65e12290831">lws_cgi</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> *exec_array,</div><div class="line"><a name="l04098"></a><span class="lineno"> 4098</span>  <span class="keywordtype">int</span> script_uri_path_len, <span class="keywordtype">int</span> timeout_secs,</div><div class="line"><a name="l04099"></a><span class="lineno"> 4099</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *mp_cgienv);</div><div class="line"><a name="l04100"></a><span class="lineno"> 4100</span> </div><div class="line"><a name="l04106"></a><span class="lineno"> 4106</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04107"></a><span class="lineno"> 4107</span> <a class="code" href="libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2">lws_cgi_write_split_stdout_headers</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l04108"></a><span class="lineno"> 4108</span> </div><div class="line"><a name="l04114"></a><span class="lineno"> 4114</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04115"></a><span class="lineno"> 4115</span> <a class="code" href="libwebsockets_8h.html#a27bb0b3cdcd0af839c928c253b521ff4">lws_cgi_kill</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l04116"></a><span class="lineno"> 4116</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04117"></a><span class="lineno"> 4117</span> </div><div class="line"><a name="l04119"></a><span class="lineno"> 4119</span> </div><div class="line"><a name="l04136"></a><span class="lineno"> 4136</span> </div><div class="line"><a name="l04142"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html"> 4142</a></span> <span class="keyword">struct </span><a class="code" href="structlws__plat__file__ops.html">lws_plat_file_ops</a> {</div><div class="line"><a name="l04143"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32"> 4143</a></span>  lws_filefd_type (*open)(<span class="keyword">struct </span>lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> *filename,</div><div class="line"><a name="l04144"></a><span class="lineno"> 4144</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *filelen, <span class="keywordtype">int</span> flags);</div><div class="line"><a name="l04148"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b"> 4148</a></span>  int (*close)(<span class="keyword">struct </span>lws *wsi, lws_filefd_type fd);</div><div class="line"><a name="l04150"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869"> 4150</a></span>  <span class="keywordtype">unsigned</span> long (*seek_cur)(<span class="keyword">struct </span>lws *wsi, lws_filefd_type fd,</div><div class="line"><a name="l04151"></a><span class="lineno"> 4151</span>  <span class="keywordtype">long</span> offset_from_cur_pos);</div><div class="line"><a name="l04153"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40"> 4153</a></span>  int (*read)(<span class="keyword">struct </span>lws *wsi, lws_filefd_type fd, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *amount,</div><div class="line"><a name="l04154"></a><span class="lineno"> 4154</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> len);</div><div class="line"><a name="l04156"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793"> 4156</a></span>  int (*write)(<span class="keyword">struct </span>lws *wsi, lws_filefd_type fd, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *amount,</div><div class="line"><a name="l04157"></a><span class="lineno"> 4157</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> len);</div><div class="line"><a name="l04160"></a><span class="lineno"> 4160</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l04161"></a><span class="lineno"> 4161</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l04162"></a><span class="lineno"> 4162</span> };</div><div class="line"><a name="l04163"></a><span class="lineno"> 4163</span> </div><div class="line"><a name="l04169"></a><span class="lineno"> 4169</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span><a class="code" href="structlws__plat__file__ops.html">lws_plat_file_ops</a> * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l04170"></a><span class="lineno"> 4170</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l04171"></a><span class="lineno"> 4171</span> </div><div class="line"><a name="l04180"></a><span class="lineno"> 4180</span> <span class="keyword">static</span> LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l04181"></a><span class="lineno"> 4181</span> lws_plat_file_open(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> *filename,</div><div class="line"><a name="l04182"></a><span class="lineno"> 4182</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *filelen, <span class="keywordtype">int</span> flags)</div><div class="line"><a name="l04183"></a><span class="lineno"> 4183</span> {</div><div class="line"><a name="l04184"></a><span class="lineno"> 4184</span>  <span class="keywordflow">return</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(wsi))-><a class="code" href="structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32">open</a>(wsi, filename,</div><div class="line"><a name="l04185"></a><span class="lineno"> 4185</span>  filelen, flags);</div><div class="line"><a name="l04186"></a><span class="lineno"> 4186</span> }</div><div class="line"><a name="l04187"></a><span class="lineno"> 4187</span> </div><div class="line"><a name="l04194"></a><span class="lineno"> 4194</span> <span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span></div><div class="line"><a name="l04195"></a><span class="lineno"> 4195</span> lws_plat_file_close(<span class="keyword">struct</span> lws *wsi, lws_filefd_type fd)</div><div class="line"><a name="l04196"></a><span class="lineno"> 4196</span> {</div><div class="line"><a name="l04197"></a><span class="lineno"> 4197</span>  <span class="keywordflow">return</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(wsi))-><a class="code" href="structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b">close</a>(wsi, fd);</div><div class="line"><a name="l04198"></a><span class="lineno"> 4198</span> }</div><div class="line"><a name="l04199"></a><span class="lineno"> 4199</span> </div><div class="line"><a name="l04207"></a><span class="lineno"> 4207</span> <span class="keyword">static</span> LWS_INLINE <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span></div><div class="line"><a name="l04208"></a><span class="lineno"> 4208</span> lws_plat_file_seek_cur(<span class="keyword">struct</span> lws *wsi, lws_filefd_type fd, <span class="keywordtype">long</span> offset)</div><div class="line"><a name="l04209"></a><span class="lineno"> 4209</span> {</div><div class="line"><a name="l04210"></a><span class="lineno"> 4210</span>  <span class="keywordflow">return</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(wsi))-><a class="code" href="structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869">seek_cur</a>(wsi, fd, offset);</div><div class="line"><a name="l04211"></a><span class="lineno"> 4211</span> }</div><div class="line"><a name="l04221"></a><span class="lineno"> 4221</span> <span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l04222"></a><span class="lineno"> 4222</span> lws_plat_file_read(<span class="keyword">struct</span> lws *wsi, lws_filefd_type fd, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *amount,</div><div class="line"><a name="l04223"></a><span class="lineno"> 4223</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> len)</div><div class="line"><a name="l04224"></a><span class="lineno"> 4224</span> {</div><div class="line"><a name="l04225"></a><span class="lineno"> 4225</span>  <span class="keywordflow">return</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(wsi))-><a class="code" href="structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40">read</a>(wsi, fd, amount, buf,</div><div class="line"><a name="l04226"></a><span class="lineno"> 4226</span>  len);</div><div class="line"><a name="l04227"></a><span class="lineno"> 4227</span> }</div><div class="line"><a name="l04237"></a><span class="lineno"> 4237</span> <span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l04238"></a><span class="lineno"> 4238</span> lws_plat_file_write(<span class="keyword">struct</span> lws *wsi, lws_filefd_type fd, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *amount,</div><div class="line"><a name="l04239"></a><span class="lineno"> 4239</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> len)</div><div class="line"><a name="l04240"></a><span class="lineno"> 4240</span> {</div><div class="line"><a name="l04241"></a><span class="lineno"> 4241</span>  <span class="keywordflow">return</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(wsi))-><a class="code" href="structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793">write</a>(wsi, fd, amount, buf,</div><div class="line"><a name="l04242"></a><span class="lineno"> 4242</span>  len);</div><div class="line"><a name="l04243"></a><span class="lineno"> 4243</span> }</div><div class="line"><a name="l04245"></a><span class="lineno"> 4245</span> </div><div class="line"><a name="l04277"></a><span class="lineno"> 4277</span> <span class="preprocessor">#ifdef LWS_WITH_SMTP</span></div><div class="line"><a name="l04278"></a><span class="lineno"> 4278</span> </div><div class="line"><a name="l04280"></a><span class="lineno"><a class="line" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0"> 4280</a></span> <span class="keyword">enum</span> <a class="code" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">lwsgs_smtp_states</a> {</div><div class="line"><a name="l04281"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c"> 4281</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l04282"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933"> 4282</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l04283"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"> 4283</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l04284"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad"> 4284</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l04285"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab"> 4285</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l04286"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83"> 4286</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l04287"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14"> 4287</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l04288"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69"> 4288</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l04289"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5"> 4289</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l04290"></a><span class="lineno"> 4290</span> };</div><div class="line"><a name="l04291"></a><span class="lineno"> 4291</span> </div><div class="line"><a name="l04293"></a><span class="lineno"><a class="line" href="structlws__email.html"> 4293</a></span> <span class="keyword">struct </span><a class="code" href="structlws__email.html">lws_email</a> {</div><div class="line"><a name="l04294"></a><span class="lineno"><a class="line" href="structlws__email.html#add1341456045382c183f4c763bdea6bc"> 4294</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__email.html#add1341456045382c183f4c763bdea6bc">data</a>;</div><div class="line"><a name="l04296"></a><span class="lineno"><a class="line" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168"> 4296</a></span>  uv_loop_t *<a class="code" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168">loop</a>;</div><div class="line"><a name="l04299"></a><span class="lineno"><a class="line" href="structlws__email.html#a472ae23fc9fca6599e5c512bc21458d2"> 4299</a></span>  <span class="keywordtype">char</span> email_smtp_ip[32]; </div><div class="line"><a name="l04300"></a><span class="lineno"><a class="line" href="structlws__email.html#a939e5d7ee0339a16de73bde71ab4d4d9"> 4300</a></span>  <span class="keywordtype">char</span> email_helo[32]; </div><div class="line"><a name="l04301"></a><span class="lineno"><a class="line" href="structlws__email.html#af7f0ae934347d81071f63a963301f9e2"> 4301</a></span>  <span class="keywordtype">char</span> email_from[100]; </div><div class="line"><a name="l04302"></a><span class="lineno"><a class="line" href="structlws__email.html#a6453a8b92b3de6d2c2101af3edce685e"> 4302</a></span>  <span class="keywordtype">char</span> email_to[100]; </div><div class="line"><a name="l04304"></a><span class="lineno"><a class="line" href="structlws__email.html#a7bbc1964889c984b3da723c86a210e05"> 4304</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__email.html#a7bbc1964889c984b3da723c86a210e05">max_content_size</a>;</div><div class="line"><a name="l04307"></a><span class="lineno"> 4307</span>  <span class="comment">/* Fill all the callbacks before init */</span></div><div class="line"><a name="l04308"></a><span class="lineno"> 4308</span> </div><div class="line"><a name="l04309"></a><span class="lineno"><a class="line" href="structlws__email.html#ad8dc60353ee246d84dd59ec0591e9719"> 4309</a></span>  int (*on_next)(<span class="keyword">struct </span><a class="code" href="structlws__email.html">lws_email</a> *email);</div><div class="line"><a name="l04314"></a><span class="lineno"><a class="line" href="structlws__email.html#a39ef6263d58eb40cca417c8697b227d8"> 4314</a></span>  int (*<a class="code" href="structlws__email.html#a39ef6263d58eb40cca417c8697b227d8">on_sent</a>)(<span class="keyword">struct </span><a class="code" href="structlws__email.html">lws_email</a> *email);</div><div class="line"><a name="l04319"></a><span class="lineno"><a class="line" href="structlws__email.html#a2aff78c8e04db243052aa91b4d87e987"> 4319</a></span>  int (*<a class="code" href="structlws__email.html#a2aff78c8e04db243052aa91b4d87e987">on_get_body</a>)(<span class="keyword">struct </span><a class="code" href="structlws__email.html">lws_email</a> *email, <span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l04325"></a><span class="lineno"> 4325</span>  <span class="comment">/* private things */</span></div><div class="line"><a name="l04326"></a><span class="lineno"><a class="line" href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be"> 4326</a></span>  uv_timer_t <a class="code" href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be">timeout_email</a>; </div><div class="line"><a name="l04327"></a><span class="lineno"><a class="line" href="structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3"> 4327</a></span>  <span class="keyword">enum</span> <a class="code" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">lwsgs_smtp_states</a> <a class="code" href="structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3">estate</a>; </div><div class="line"><a name="l04328"></a><span class="lineno"><a class="line" href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3"> 4328</a></span>  uv_connect_t <a class="code" href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3">email_connect_req</a>; </div><div class="line"><a name="l04329"></a><span class="lineno"><a class="line" href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e"> 4329</a></span>  uv_tcp_t <a class="code" href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e">email_client</a>; </div><div class="line"><a name="l04330"></a><span class="lineno"><a class="line" href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1"> 4330</a></span>  time_t <a class="code" href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1">email_connect_started</a>; </div><div class="line"><a name="l04331"></a><span class="lineno"><a class="line" href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82"> 4331</a></span>  <span class="keywordtype">char</span> <a class="code" href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82">email_buf</a>[256]; </div><div class="line"><a name="l04332"></a><span class="lineno"><a class="line" href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed"> 4332</a></span>  <span class="keywordtype">char</span> *<a class="code" href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed">content</a>; </div><div class="line"><a name="l04333"></a><span class="lineno"> 4333</span> };</div><div class="line"><a name="l04334"></a><span class="lineno"> 4334</span> </div><div class="line"><a name="l04344"></a><span class="lineno"> 4344</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04345"></a><span class="lineno"> 4345</span> <a class="code" href="group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29">lws_email_init</a>(<span class="keyword">struct</span> <a class="code" href="structlws__email.html">lws_email</a> *email, uv_loop_t *<a class="code" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168">loop</a>, <span class="keywordtype">int</span> max_content);</div><div class="line"><a name="l04346"></a><span class="lineno"> 4346</span> </div><div class="line"><a name="l04355"></a><span class="lineno"> 4355</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l04356"></a><span class="lineno"> 4356</span> <a class="code" href="group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb">lws_email_check</a>(<span class="keyword">struct</span> <a class="code" href="structlws__email.html">lws_email</a> *email);</div><div class="line"><a name="l04364"></a><span class="lineno"> 4364</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l04365"></a><span class="lineno"> 4365</span> <a class="code" href="group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2">lws_email_destroy</a>(<span class="keyword">struct</span> <a class="code" href="structlws__email.html">lws_email</a> *email);</div><div class="line"><a name="l04366"></a><span class="lineno"> 4366</span> </div><div class="line"><a name="l04367"></a><span class="lineno"> 4367</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04368"></a><span class="lineno"> 4368</span> </div><div class="line"><a name="l04369"></a><span class="lineno"> 4369</span> </div><div class="line"><a name="l04370"></a><span class="lineno"> 4370</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l04371"></a><span class="lineno"> 4371</span> }</div><div class="line"><a name="l04372"></a><span class="lineno"> 4372</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04373"></a><span class="lineno"> 4373</span> </div><div class="line"><a name="l04374"></a><span class="lineno"> 4374</span> <span class="preprocessor">#endif</span></div><div class="ttc" id="group__form-parsing_html_gaaa482f07dad3f04b391cccf0a814e13b"><div class="ttname"><a href="group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b">lws_spa_destroy</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_spa_destroy(struct lws_spa *spa)</div></div> +<a href="libwebsockets_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * libwebsockets - small server side websockets and web server implementation</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright (C) 2010-2016 Andy Green <andy@warmcat.com></span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * This library is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * License as published by the Free Software Foundation:</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * version 2.1 of the License.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * This library is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * Lesser General Public License for more details.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * License along with this library; if not, write to the Free Software</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * MA 02110-1301 USA</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> */</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <cstddef></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <cstdarg></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifdef MBED_OPERATORS</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "mbed-drivers/mbed.h"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "sal-iface-eth/EthernetInterface.h"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "sockets/TCPListener.h"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "sal-stack-lwip/lwipv4_init.h"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span>{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">using namespace </span><a class="code" href="namespacembed_1_1Sockets_1_1v0.html">mbed::Sockets::v0</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">struct </span>sockaddr_in;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">struct </span>lws;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classlws__conn.html"> 44</a></span> <span class="keyword">class </span><a class="code" href="classlws__conn.html">lws_conn</a> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classlws__conn.html">lws_conn</a>():</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  ts(NULL),</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  wsi(NULL),</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  writeable(1),</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  awaiting_on_writeable(0)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">void</span> set_wsi(<span class="keyword">struct</span> lws *_wsi) { wsi = _wsi; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordtype">int</span> actual_onRX(Socket *s);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">void</span> onRX(Socket *s);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordtype">void</span> onError(Socket *s, socket_error_t err);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">void</span> onDisconnect(TCPStream *s);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordtype">void</span> onSent(Socket *s, uint16_t len);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordtype">void</span> serialized_writeable(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  TCPStream *ts;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">struct </span>lws *wsi;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordtype">char</span> writeable;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordtype">char</span> awaiting_on_writeable;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> };</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classlws__conn__listener.html"> 72</a></span> <span class="keyword">class </span><a class="code" href="classlws__conn__listener.html">lws_conn_listener</a> : <a class="code" href="classlws__conn.html">lws_conn</a> {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classlws__conn__listener.html">lws_conn_listener</a>():</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  srv(SOCKET_STACK_LWIP_IPV4)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  srv.setOnError(TCPStream::ErrorHandler_t(<span class="keyword">this</span>,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  &<a class="code" href="classlws__conn__listener.html#a271ac4f8ad5770b3bc96cce5b265b72c">lws_conn_listener::onError</a>));</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordtype">void</span> start(<span class="keyword">const</span> uint16_t port); </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordtype">void</span> onRX(Socket *s); </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">void</span> onError(Socket *s, socket_error_t err); </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">void</span> onIncoming(TCPListener *s, <span class="keywordtype">void</span> *impl); </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordtype">void</span> onDisconnect(TCPStream *s); </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  TCPListener srv;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> };</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#include <stdarg.h></span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#if defined(MBED_OPERATORS) || defined(LWS_WITH_ESP8266)</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">struct </span>sockaddr_in;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#define LWS_POSIX 0</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#define LWS_POSIX 1</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#include "lws_config.h"</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor">#if defined(WIN32) || defined(_WIN32)</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#ifndef WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor">#define WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#include <winsock2.h></span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor">#include <ws2tcpip.h></span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor">#include <stddef.h></span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor">#include <basetsd.h></span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor">#ifndef _WIN32_WCE</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor">#include <fcntl.h></span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#define _O_RDONLY 0x0000</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor">#define O_RDONLY _O_RDONLY</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// Visual studio older than 2015 and WIN_CE has only _stricmp</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor">#if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE)</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor">#define strcasecmp _stricmp</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#elif !defined(__MINGW32__)</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">#define strcasecmp stricmp</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor">#define getdtablesize() 30000</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor">#define LWS_INLINE __inline</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#define LWS_VISIBLE</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor">#define LWS_WARN_DEPRECATED</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor">#ifdef LWS_DLL</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor">#ifdef LWS_INTERNAL</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor">#define LWS_EXTERN extern __declspec(dllexport)</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor">#define LWS_EXTERN extern __declspec(dllimport)</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#define LWS_EXTERN</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#define LWS_INVALID_FILE INVALID_HANDLE_VALUE</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#define LWS_O_RDONLY _O_RDONLY</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#if !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER < 1900) </span><span class="comment">/* Visual Studio 2015 already defines this in <stdio.h> */</span><span class="preprocessor"></span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor">#define lws_snprintf _snprintf</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor">#ifndef __func__</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor">#define __func__ __FUNCTION__</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor">#else </span><span class="comment">/* NOT WIN32 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor">#include <unistd.h></span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor">#if defined(__NetBSD__) || defined(__FreeBSD__)</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#include <netinet/in.h></span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor">#define LWS_INLINE inline</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor">#define LWS_O_RDONLY O_RDONLY</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor">#if !defined(MBED_OPERATORS) && !defined(LWS_WITH_ESP8266) && !defined(OPTEE_TA)</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor">#include <poll.h></span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor">#include <netdb.h></span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor">#define LWS_INVALID_FILE -1</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor">#define getdtablesize() (20)</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor">#define LWS_INVALID_FILE NULL</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#if defined(__GNUC__)</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">/* warn_unused_result attribute only supported by GCC 3.4 or later */</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor">#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor">#define LWS_WARN_UNUSED_RESULT __attribute__((warn_unused_result))</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor">#define LWS_VISIBLE __attribute__((visibility("default")))</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor">#define LWS_WARN_DEPRECATED __attribute__ ((deprecated))</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor">#define LWS_FORMAT(string_index) __attribute__ ((format(printf, string_index, string_index+1)))</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor">#define LWS_VISIBLE</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor">#define LWS_WARN_DEPRECATED</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor">#define LWS_FORMAT</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor">#if defined(__ANDROID__)</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor">#include <unistd.h></span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor">#define getdtablesize() sysconf(_SC_OPEN_MAX)</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor">#ifdef LWS_USE_LIBEV</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor">#include <ev.h></span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBEV */</span><span class="preprocessor"></span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor">#ifdef LWS_USE_LIBUV</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor">#include <uv.h></span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor">#ifdef LWS_HAVE_UV_VERSION_H</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor">#include <uv-version.h></span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBUV */</span><span class="preprocessor"></span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor">#ifndef LWS_EXTERN</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor">#define LWS_EXTERN extern</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor">#ifdef _WIN32</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor">#define random rand</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor">#if !defined(OPTEE_TA)</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor">#include <sys/time.h></span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor">#include <unistd.h></span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor">#ifdef LWS_OPENSSL_SUPPORT</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor">#ifdef USE_WOLFSSL</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor">#ifdef USE_OLD_CYASSL</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor">#include <cyassl/openssl/ssl.h></span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor">#include <cyassl/error-ssl.h></span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor">#include <wolfssl/openssl/ssl.h></span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor">#include <wolfssl/error-ssl.h></span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor">#endif </span><span class="comment">/* not USE_OLD_CYASSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor">#if defined(LWS_USE_POLARSSL)</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor">#include <polarssl/ssl.h></span></div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html"> 240</a></span> <span class="keyword">struct </span><a class="code" href="structlws__polarssl__context.html">lws_polarssl_context</a> {</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af"> 241</a></span>  x509_crt <a class="code" href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af">ca</a>; </div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27"> 242</a></span>  x509_crt <a class="code" href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27">certificate</a>; </div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270"> 243</a></span>  rsa_context <a class="code" href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270">key</a>; </div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> };</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structlws__polarssl__context.html">lws_polarssl_context</a> <a class="code" href="structlws__polarssl__context.html">SSL_CTX</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keyword">typedef</span> ssl_context SSL;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor">#if defined(LWS_USE_MBEDTLS)</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor">#include <mbedtls/ssl.h></span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor">#include <openssl/ssl.h></span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor">#include <openssl/err.h></span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor">#endif </span><span class="comment">/* not USE_MBEDTLS */</span><span class="preprocessor"></span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor">#endif </span><span class="comment">/* not USE_POLARSSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor">#endif </span><span class="comment">/* not USE_WOLFSSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor">#define CONTEXT_PORT_NO_LISTEN -1</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor">#define CONTEXT_PORT_NO_LISTEN_SERVER -2</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keyword">enum</span> lws_log_levels {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  LLL_ERR = 1 << 0,</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  LLL_WARN = 1 << 1,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  LLL_NOTICE = 1 << 2,</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  LLL_INFO = 1 << 3,</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  LLL_DEBUG = 1 << 4,</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  LLL_PARSER = 1 << 5,</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  LLL_HEADER = 1 << 6,</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  LLL_EXT = 1 << 7,</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  LLL_CLIENT = 1 << 8,</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  LLL_LATENCY = 1 << 9,</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  LLL_USER = 1 << 10,</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  LLL_COUNT = 11 <span class="comment">/* set to count of valid flags */</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> };</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> _lws_log(<span class="keywordtype">int</span> filter, <span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...) LWS_FORMAT(2);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> _lws_logv(<span class="keywordtype">int</span> filter, const <span class="keywordtype">char</span> *format, va_list vl);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <a class="code" href="group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd">lwsl_timestamp</a>(<span class="keywordtype">int</span> level, <span class="keywordtype">char</span> *p, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="comment">/* these guys are unconditionally included */</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor">#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__)</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor">#define lwsl_user(...) _lws_log(LLL_USER, __VA_ARGS__)</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor">#if !defined(LWS_WITH_NO_LOGS)</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="comment">/* notice and warn are usually included by being compiled in */</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor">#define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__)</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor">#define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__)</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="comment">/*</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="comment"> * weaker logging can be deselected by telling CMake to build in RELEASE mode</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="comment"> * that gets rid of the overhead of checking while keeping _warn and _err</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="comment"> * active</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment"> */</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor">#if defined(LWS_WITH_ESP8266)</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor">#undef _DEBUG</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor">#ifdef _DEBUG</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor">#if defined(LWS_WITH_NO_LOGS)</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="comment">/* notice, warn and log are always compiled in */</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor">#define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__)</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor">#define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__)</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor">#define lwsl_info(...) _lws_log(LLL_INFO, __VA_ARGS__)</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor">#define lwsl_debug(...) _lws_log(LLL_DEBUG, __VA_ARGS__)</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor">#define lwsl_parser(...) _lws_log(LLL_PARSER, __VA_ARGS__)</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor">#define lwsl_header(...) _lws_log(LLL_HEADER, __VA_ARGS__)</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor">#define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__)</span></div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor">#define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__)</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor">#define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__)</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> <a class="code" href="group__log.html#ga898b1f03872ad019f507d4e35bbefa90">lwsl_hexdump</a>(<span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor">#else </span><span class="comment">/* no debug */</span><span class="preprocessor"></span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor">#if defined(LWS_WITH_NO_LOGS)</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor">#define lwsl_warn(...) do {} while(0)</span></div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor">#define lwsl_notice(...) do {} while(0)</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor">#define lwsl_info(...) do {} while(0)</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor">#define lwsl_debug(...) do {} while(0)</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor">#define lwsl_parser(...) do {} while(0)</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor">#define lwsl_header(...) do {} while(0)</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor">#define lwsl_ext(...) do {} while(0)</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor">#define lwsl_client(...) do {} while(0)</span></div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor">#define lwsl_latency(...) do {} while(0)</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor">#define lwsl_hexdump(a, b)</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <a class="code" href="group__log.html#ga244647f9e1bf0097ccdde66d74f41e26">lws_set_log_level</a>(<span class="keywordtype">int</span> level,</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordtype">void</span> (*log_emit_function)(<span class="keywordtype">int</span> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *line));</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <a class="code" href="group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c">lwsl_emit_syslog</a>(<span class="keywordtype">int</span> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *line);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor">#include <stddef.h></span></div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor">#ifndef lws_container_of</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor">#define lws_container_of(P,T,M) ((T *)((char *)(P) - offsetof(T, M)))</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="keyword">struct </span>lws;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor">#ifndef ARRAY_SIZE</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor">#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="comment">/* api change list for user code to test against */</span></div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor">#define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_ARG</span></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="comment">/* the struct lws_protocols has the id field present */</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor">#define LWS_FEATURE_PROTOCOLS_HAS_ID_FIELD</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="comment">/* you can call lws_get_peer_write_allowance */</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor">#define LWS_FEATURE_PROTOCOLS_HAS_PEER_WRITE_ALLOWANCE</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="comment">/* extra parameter introduced in 917f43ab821 */</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor">#define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_LEN</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> </div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="comment">/* File operations stuff exists */</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor">#define LWS_FEATURE_FOPS</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor">#if defined(_WIN32)</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="keyword">typedef</span> SOCKET lws_sockfd_type;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="keyword">typedef</span> HANDLE lws_filefd_type;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor">#define lws_sockfd_valid(sfd) (!!sfd)</span></div><div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="structlws__pollfd.html"> 423</a></span> <span class="keyword">struct </span><a class="code" href="structlws__pollfd.html">lws_pollfd</a> {</div><div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be"> 424</a></span>  lws_sockfd_type <a class="code" href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be">fd</a>; </div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9"> 425</a></span>  SHORT <a class="code" href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9">events</a>; </div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932"> 426</a></span>  SHORT <a class="code" href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932">revents</a>; </div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> };</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor">#define LWS_POLLHUP (FD_CLOSE)</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor">#define LWS_POLLIN (FD_READ | FD_ACCEPT)</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor">#define LWS_POLLOUT (FD_WRITE)</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor">#if defined(MBED_OPERATORS)</span></div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="comment">/* it's a class lws_conn * */</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> * lws_sockfd_type;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> * lws_filefd_type;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor">#define lws_sockfd_valid(sfd) (!!sfd)</span></div><div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="structpollfd.html"> 438</a></span> <span class="keyword">struct </span><a class="code" href="structpollfd.html">pollfd</a> {</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="structpollfd.html#af084f089bdece61d177f85782d6673d0"> 439</a></span>  lws_sockfd_type <a class="code" href="structpollfd.html#af084f089bdece61d177f85782d6673d0">fd</a>; </div><div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef"> 440</a></span>  <span class="keywordtype">short</span> <a class="code" href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef">events</a>; </div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2"> 441</a></span>  <span class="keywordtype">short</span> <a class="code" href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2">revents</a>; </div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> };</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor">#define POLLIN 0x0001</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor">#define POLLPRI 0x0002</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor">#define POLLOUT 0x0004</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor">#define POLLERR 0x0008</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor">#define POLLHUP 0x0010</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor">#define POLLNVAL 0x0020</span></div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keyword">struct </span>lws;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="keywordtype">void</span> * mbed3_create_tcp_stream_socket(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="keywordtype">void</span> mbed3_delete_tcp_stream_socket(<span class="keywordtype">void</span> *sockfd);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="keywordtype">void</span> mbed3_tcp_stream_bind(<span class="keywordtype">void</span> *sock, <span class="keywordtype">int</span> port, <span class="keyword">struct</span> lws *);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="keywordtype">void</span> mbed3_tcp_stream_accept(<span class="keywordtype">void</span> *sock, <span class="keyword">struct</span> lws *);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor">#if defined(LWS_WITH_ESP8266)</span></div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor">#include <user_interface.h></span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor">#include <espconn.h></span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>espconn * lws_sockfd_type;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> * lws_filefd_type;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor">#define lws_sockfd_valid(sfd) (!!sfd)</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keyword">struct </span><a class="code" href="structpollfd.html">pollfd</a> {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  lws_sockfd_type fd; </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordtype">short</span> events; </div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordtype">short</span> revents; </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> };</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor">#define POLLIN 0x0001</span></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor">#define POLLPRI 0x0002</span></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor">#define POLLOUT 0x0004</span></div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor">#define POLLERR 0x0008</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor">#define POLLHUP 0x0010</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor">#define POLLNVAL 0x0020</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="keyword">struct </span>lws_vhost;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> lws_sockfd_type esp8266_create_tcp_listen_socket(<span class="keyword">struct</span> lws_vhost *vh);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="keywordtype">void</span> esp8266_tcp_stream_accept(lws_sockfd_type fd, <span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor">#include <os_type.h></span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor">#include <osapi.h></span></div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor">#include "ets_sys.h"</span></div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> </div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="keywordtype">int</span> ets_snprintf(<span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...) LWS_FORMAT(3);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="preprocessor">#define snprintf ets_snprintf</span></div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="keyword">typedef</span> os_timer_t uv_timer_t;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> uv_cb_t(uv_timer_t *);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> </div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="keywordtype">void</span> os_timer_disarm(<span class="keywordtype">void</span> *);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="keywordtype">void</span> os_timer_setfn(os_timer_t *, os_timer_func_t *, <span class="keywordtype">void</span> *);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="keywordtype">void</span> ets_timer_arm_new(os_timer_t *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="comment">//void os_timer_arm(os_timer_t *, int, int);</span></div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor">#define UV_VERSION_MAJOR 1</span></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span> </div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor">#define lws_uv_getloop(a, b) (NULL)</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> uv_timer_init(<span class="keywordtype">void</span> *l, uv_timer_t *t)</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  (void)l;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  memset(t, 0, <span class="keyword">sizeof</span>(*t));</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  os_timer_disarm(t);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span> }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> uv_timer_start(uv_timer_t *t, uv_cb_t *cb, <span class="keywordtype">int</span> first, <span class="keywordtype">int</span> rep)</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> {</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  os_timer_setfn(t, (os_timer_func_t *)cb, t);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="comment">/* ms, repeat */</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  os_timer_arm(t, first, !!rep);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span> }</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span> </div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> uv_timer_stop(uv_timer_t *t)</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  os_timer_disarm(t);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> lws_sockfd_type;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> lws_filefd_type;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="preprocessor">#define lws_sockfd_valid(sfd) (sfd >= 0)</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor">#define lws_pollfd pollfd</span></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor">#define LWS_POLLHUP (POLLHUP|POLLERR)</span></div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor">#define LWS_POLLIN (POLLIN)</span></div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="preprocessor">#define LWS_POLLOUT (POLLOUT)</span></div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span> </div><div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="structlws__pollargs.html"> 537</a></span> <span class="keyword">struct </span><a class="code" href="structlws__pollargs.html">lws_pollargs</a> {</div><div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81"> 538</a></span>  lws_sockfd_type <a class="code" href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81">fd</a>; </div><div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6"> 539</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6">events</a>; </div><div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8"> 540</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8">prev_events</a>; </div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span> };</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="keyword">struct </span><a class="code" href="structlws__tokens.html">lws_tokens</a>;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="keyword">struct </span><a class="code" href="structlws__token__limits.html">lws_token_limits</a>;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="comment">/*</span></div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="comment"> */</span></div><div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985"> 560</a></span> <span class="keyword">enum</span> <a class="code" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a> {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  LWS_CLOSE_STATUS_NOSTATUS = 0,</div><div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4"> 562</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a> = 1000,</div><div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218"> 565</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a> = 1001,</div><div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98"> 568</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a> = 1002,</div><div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276"> 571</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a> = 1003,</div><div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2"> 576</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a> = 1004,</div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044"> 578</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a> = 1005,</div><div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c"> 583</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a> = 1006,</div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050"> 589</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a> = 1007,</div><div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5"> 594</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a> = 1008,</div><div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8"> 600</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a> = 1009,</div><div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e"> 604</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a> = 1010,</div><div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350"> 612</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a> = 1011,</div><div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390"> 616</a></span>  <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a> = 1015,</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY = 9999,</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span> };</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span> </div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <a class="code" href="group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262">lws_close_reason</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> <a class="code" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a> status,</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span> </div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="keyword">struct </span>lws;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="keyword">struct </span>lws_context;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="comment">/* needed even with extensions disabled for create context */</span></div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a>;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span> </div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span> </div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="comment">/*</span></div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="comment"> */</span></div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7"> 670</a></span> <span class="keyword">enum</span> <a class="code" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">lws_callback_reasons</a> {</div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439"> 671</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a> = 0,</div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8"> 675</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a> = 1,</div><div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2"> 719</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a> = 2,</div><div class="line"><a name="l00726"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604"> 726</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a> = 3,</div><div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8"> 729</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a> = 4,</div><div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba"> 731</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a> = 5,</div><div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c"> 733</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a> = 6,</div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738"> 737</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a> = 7,</div><div class="line"><a name="l00739"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1"> 739</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a> = 8,</div><div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9"> 742</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a> = 9,</div><div class="line"><a name="l00744"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514"> 744</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a> = 10,</div><div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc"> 752</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a> = 11,</div><div class="line"><a name="l00754"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e"> 754</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a> = 12,</div><div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae"> 768</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a> = 13,</div><div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804"> 771</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a> = 14,</div><div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587"> 773</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a> = 15,</div><div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09"> 775</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a> = 16,</div><div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6"> 777</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a> = 17,</div><div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c"> 788</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a> = 18,</div><div class="line"><a name="l00800"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3"> 800</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a> = 19,</div><div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d"> 808</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a> = 20,</div><div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c"> 820</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a> = 21,</div><div class="line"><a name="l00827"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493"> 827</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a> = 22,</div><div class="line"><a name="l00833"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac"> 833</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a> = 23,</div><div class="line"><a name="l00851"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f"> 851</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a> = 24,</div><div class="line"><a name="l00875"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e"> 875</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a> = 25,</div><div class="line"><a name="l00886"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46"> 886</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a> = 26,</div><div class="line"><a name="l00895"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49"> 895</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a> = 27,</div><div class="line"><a name="l00898"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa"> 898</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a> = 28,</div><div class="line"><a name="l00903"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01"> 903</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a> = 29,</div><div class="line"><a name="l00905"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e"> 905</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a> = 30,</div><div class="line"><a name="l00907"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34"> 907</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a> = 31,</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <span class="comment">/* external poll() management support */</span></div><div class="line"><a name="l00913"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412"> 913</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a> = 32,</div><div class="line"><a name="l00929"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768"> 929</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a> = 33,</div><div class="line"><a name="l00935"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e"> 935</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a> = 34,</div><div class="line"><a name="l00943"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428"> 943</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a> = 35,</div><div class="line"><a name="l00955"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79"> 955</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a> = 36,</div><div class="line"><a name="l00958"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b"> 958</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a> = 37,</div><div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51"> 966</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a> = 38,</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  LWS_CALLBACK_WS_EXT_DEFAULTS = 39,</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  LWS_CALLBACK_CGI = 40,</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  LWS_CALLBACK_CGI_TERMINATED = 41,</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  LWS_CALLBACK_CGI_STDIN_DATA = 42,</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  LWS_CALLBACK_CGI_STDIN_COMPLETED = 43,</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44,</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45,</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46,</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47,</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48,</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49,</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50,</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51,</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  LWS_CALLBACK_PROCESS_HTML = 52,</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  LWS_CALLBACK_ADD_HEADERS = 53,</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  LWS_CALLBACK_SESSION_INFO = 54,</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  LWS_CALLBACK_GS_EVENT = 55,</div><div class="line"><a name="l01011"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a"> 1011</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a> = 56,</div><div class="line"><a name="l01016"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6"> 1016</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6">LWS_CALLBACK_CLIENT_HTTP_WRITEABLE</a> = 57,</div><div class="line"><a name="l01025"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b"> 1025</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b">LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION</a> = 58,</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> </div><div class="line"><a name="l01058"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a"> 1058</a></span>  <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000,</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> };</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> </div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> </div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> </div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01080"></a><span class="lineno"><a class="line" href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f"> 1080</a></span> <a class="code" href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f">lws_callback_function</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> <a class="code" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">lws_callback_reasons</a> reason,</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordtype">void</span> *user, <span class="keywordtype">void</span> *in, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> </div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> </div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="comment">/*</span></div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="comment"> */</span></div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="keyword">enum</span> lws_extension_callback_reasons {</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  LWS_EXT_CB_SERVER_CONTEXT_CONSTRUCT = 0,</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  LWS_EXT_CB_CLIENT_CONTEXT_CONSTRUCT = 1,</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  LWS_EXT_CB_SERVER_CONTEXT_DESTRUCT = 2,</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  LWS_EXT_CB_CLIENT_CONTEXT_DESTRUCT = 3,</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  LWS_EXT_CB_CONSTRUCT = 4,</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  LWS_EXT_CB_CLIENT_CONSTRUCT = 5,</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  LWS_EXT_CB_CHECK_OK_TO_REALLY_CLOSE = 6,</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  LWS_EXT_CB_CHECK_OK_TO_PROPOSE_EXTENSION = 7,</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  LWS_EXT_CB_DESTROY = 8,</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  LWS_EXT_CB_DESTROY_ANY_WSI_CLOSING = 9,</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  LWS_EXT_CB_ANY_WSI_ESTABLISHED = 10,</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  LWS_EXT_CB_PACKET_RX_PREPARSE = 11,</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  LWS_EXT_CB_PACKET_TX_PRESEND = 12,</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  LWS_EXT_CB_PACKET_TX_DO_SEND = 13,</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  LWS_EXT_CB_HANDSHAKE_REPLY_TX = 14,</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  LWS_EXT_CB_FLUSH_PENDING_TX = 15,</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  LWS_EXT_CB_EXTENDED_PAYLOAD_RX = 16,</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  LWS_EXT_CB_CAN_PROXY_CLIENT_CONNECTION = 17,</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  LWS_EXT_CB_1HZ = 18,</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  LWS_EXT_CB_REQUEST_ON_WRITEABLE = 19,</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  LWS_EXT_CB_IS_WRITEABLE = 20,</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  LWS_EXT_CB_PAYLOAD_TX = 21,</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  LWS_EXT_CB_PAYLOAD_RX = 22,</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  LWS_EXT_CB_OPTION_DEFAULT = 23,</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  LWS_EXT_CB_OPTION_SET = 24,</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  LWS_EXT_CB_OPTION_CONFIRM = 25,</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  LWS_EXT_CB_NAMED_OPTION_SET = 26,</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> </div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> };</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> </div><div class="line"><a name="l01132"></a><span class="lineno"><a class="line" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e"> 1132</a></span> <span class="keyword">enum</span> <a class="code" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">lws_ext_options_types</a> {</div><div class="line"><a name="l01133"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c"> 1133</a></span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a>, </div><div class="line"><a name="l01134"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e"> 1134</a></span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a>, </div><div class="line"><a name="l01135"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880"> 1135</a></span>  <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a> </div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> };</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> </div><div class="line"><a name="l01145"></a><span class="lineno"><a class="line" href="structlws__ext__options.html"> 1145</a></span> <span class="keyword">struct </span><a class="code" href="structlws__ext__options.html">lws_ext_options</a> {</div><div class="line"><a name="l01146"></a><span class="lineno"><a class="line" href="structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e"> 1146</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e">name</a>; </div><div class="line"><a name="l01147"></a><span class="lineno"><a class="line" href="structlws__ext__options.html#a7c4dbd62dbeba63a9d50d2306bd1cc61"> 1147</a></span>  <span class="keyword">enum</span> <a class="code" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">lws_ext_options_types</a> type; </div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> };</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> </div><div class="line"><a name="l01154"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html"> 1154</a></span> <span class="keyword">struct </span><a class="code" href="structlws__ext__option__arg.html">lws_ext_option_arg</a> {</div><div class="line"><a name="l01155"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9"> 1155</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9">option_name</a>; </div><div class="line"><a name="l01156"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f"> 1156</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f">option_index</a>; </div><div class="line"><a name="l01157"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1"> 1157</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1">start</a>; </div><div class="line"><a name="l01158"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5"> 1158</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5">len</a>; </div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> };</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> </div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01222"></a><span class="lineno"><a class="line" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0"> 1222</a></span> <a class="code" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0">lws_extension_callback_function</a>(<span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__extension.html">lws_extension</a> *ext, <span class="keyword">struct</span> lws *wsi,</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>  <span class="keyword">enum</span> lws_extension_callback_reasons reason,</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>  <span class="keywordtype">void</span> *user, <span class="keywordtype">void</span> *in, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> </div><div class="line"><a name="l01228"></a><span class="lineno"><a class="line" href="structlws__extension.html"> 1228</a></span> <span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a> {</div><div class="line"><a name="l01229"></a><span class="lineno"><a class="line" href="structlws__extension.html#a1e5018c883d85176f5c2152176843f9e"> 1229</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__extension.html#a1e5018c883d85176f5c2152176843f9e">name</a>; </div><div class="line"><a name="l01230"></a><span class="lineno"><a class="line" href="structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af"> 1230</a></span>  <a class="code" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0">lws_extension_callback_function</a> *<a class="code" href="structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af">callback</a>; </div><div class="line"><a name="l01231"></a><span class="lineno"><a class="line" href="structlws__extension.html#a36b06c213aedb02bf9a402651751855b"> 1231</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__extension.html#a36b06c213aedb02bf9a402651751855b">client_offer</a>; </div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> };</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> </div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <a class="code" href="group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9">lws_set_extension_option</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> *ext_name,</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *opt_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *opt_val);</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> </div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="preprocessor">#ifndef LWS_NO_EXTENSIONS</span></div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment">/* lws_get_internal_extensions() - DEPRECATED</span></div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment"> *</span></div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment"> * \Deprecated There is no longer a set internal extensions table. The table is provided</span></div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment"> * by user code along with application-specific settings. See the test</span></div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="comment"> * client and server for how to do.</span></div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment"> */</span></div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="keyword">static</span> LWS_INLINE LWS_WARN_DEPRECATED <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a> *</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> lws_get_internal_extensions(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> NULL; }</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> </div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <a class="code" href="group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b">lws_ext_parse_options</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__extension.html">lws_extension</a> *ext, <span class="keyword">struct</span> lws *wsi,</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  <span class="keywordtype">void</span> *ext_user, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__ext__options.html">lws_ext_options</a> *opts,</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *o, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> </div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> LWS_EXTERN</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="keywordtype">int</span> <a class="code" href="group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e">lws_extension_callback_pm_deflate</a>(</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>  <span class="keyword">struct</span> lws_context *context, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__extension.html">lws_extension</a> *ext,</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  <span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> lws_extension_callback_reasons reason,</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>  <span class="keywordtype">void</span> *user, <span class="keywordtype">void</span> *in, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> </div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="comment">/*</span></div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="comment"> * The internal exts are part of the public abi</span></div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <span class="comment"> * If we add more extensions, publish the callback here ------v</span></div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment"> */</span></div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> </div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> </div><div class="line"><a name="l01318"></a><span class="lineno"><a class="line" href="structlws__protocols.html"> 1318</a></span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> {</div><div class="line"><a name="l01319"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624"> 1319</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624">name</a>;</div><div class="line"><a name="l01322"></a><span class="lineno"><a class="line" href="structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d"> 1322</a></span>  <a class="code" href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f">lws_callback_function</a> *<a class="code" href="structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d">callback</a>;</div><div class="line"><a name="l01326"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea"> 1326</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea">per_session_data_size</a>;</div><div class="line"><a name="l01331"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5"> 1331</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5">rx_buffer_size</a>;</div><div class="line"><a name="l01340"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac"> 1340</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac">id</a>;</div><div class="line"><a name="l01347"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e"> 1347</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e">user</a>; </div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> };</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> </div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <span class="keyword">struct </span>lws_vhost;</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> </div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> *</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <a class="code" href="group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d">lws_vhost_name_to_protocol</a>(<span class="keyword">struct</span> lws_vhost *vh, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624">name</a>);</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> </div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> *</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> <a class="code" href="group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112">lws_get_protocol</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> </div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> *</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <a class="code" href="group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030">lws_protocol_get</a>(<span class="keyword">struct</span> lws *wsi) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> </div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <a class="code" href="group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1">lws_protocol_vh_priv_zalloc</a>(<span class="keyword">struct</span> lws_vhost *vhost, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *prot,</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>  <span class="keywordtype">int</span> size);</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> </div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> <a class="code" href="group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129">lws_protocol_vh_priv_get</a>(<span class="keyword">struct</span> lws_vhost *vhost, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *prot);</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> </div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> <a class="code" href="group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43">lws_finalize_startup</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> </div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <span class="preprocessor">#ifdef LWS_WITH_PLUGINS</span></div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> </div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> <span class="comment">/* PLUGINS implies LIBUV */</span></div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> </div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> <span class="preprocessor">#define LWS_PLUGIN_API_MAGIC 180</span></div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> </div><div class="line"><a name="l01427"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html"> 1427</a></span> <span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> {</div><div class="line"><a name="l01428"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a"> 1428</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a">api_magic</a>; </div><div class="line"><a name="l01429"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033"> 1429</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> *<a class="code" href="structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033">protocols</a>; </div><div class="line"><a name="l01430"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f"> 1430</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f">count_protocols</a>; </div><div class="line"><a name="l01431"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623"> 1431</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a> *<a class="code" href="structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623">extensions</a>; </div><div class="line"><a name="l01432"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3"> 1432</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3">count_extensions</a>; </div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> };</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> </div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="keyword">typedef</span> int (*lws_plugin_init_func)(<span class="keyword">struct </span>lws_context *,</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  <span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> *);</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> <span class="keyword">typedef</span> int (*lws_plugin_destroy_func)(<span class="keyword">struct </span>lws_context *);</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> </div><div class="line"><a name="l01440"></a><span class="lineno"><a class="line" href="structlws__plugin.html"> 1440</a></span> <span class="keyword">struct </span><a class="code" href="structlws__plugin.html">lws_plugin</a> {</div><div class="line"><a name="l01441"></a><span class="lineno"><a class="line" href="structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22"> 1441</a></span>  <span class="keyword">struct </span><a class="code" href="structlws__plugin.html">lws_plugin</a> *<a class="code" href="structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22">list</a>; </div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> <span class="preprocessor">#if (UV_VERSION_MAJOR > 0)</span></div><div class="line"><a name="l01443"></a><span class="lineno"><a class="line" href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330"> 1443</a></span>  uv_lib_t <a class="code" href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330">lib</a>; </div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l01445"></a><span class="lineno"><a class="line" href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4"> 1445</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4">l</a>; </div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01447"></a><span class="lineno"><a class="line" href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105"> 1447</a></span>  <span class="keywordtype">char</span> <a class="code" href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105">name</a>[64]; </div><div class="line"><a name="l01448"></a><span class="lineno"><a class="line" href="structlws__plugin.html#ac7f1fdfe8cf8a21f8ee9720c21934a3f"> 1448</a></span>  <span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> caps; </div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> };</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> </div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> </div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> </div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> </div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> </div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> <span class="preprocessor">#define LWSGS_EMAIL_CONTENT_SIZE 16384</span></div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> </div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> <span class="comment">/* SHA-1 binary and hexified versions */</span></div><div class="line"><a name="l01471"></a><span class="lineno"><a class="line" href="structlwsgw__hash__bin.html#ac92f50d9471058525d110597a4e0de6b"> 1471</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> bin[20]; } <a class="code" href="structlwsgw__hash__bin.html">lwsgw_hash_bin</a>;</div><div class="line"><a name="l01473"></a><span class="lineno"><a class="line" href="structlwsgw__hash.html#a29435f5cf78747d4257695b0f141d164"> 1473</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="keywordtype">char</span> <span class="keywordtype">id</span>[41]; } <a class="code" href="structlwsgw__hash.html">lwsgw_hash</a>;</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> </div><div class="line"><a name="l01476"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1"> 1476</a></span> <span class="keyword">enum</span> <a class="code" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">lwsgs_auth_bits</a> {</div><div class="line"><a name="l01477"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57"> 1477</a></span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a> = 1, </div><div class="line"><a name="l01478"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf"> 1478</a></span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a> = 2, </div><div class="line"><a name="l01479"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887"> 1479</a></span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a> = 4, </div><div class="line"><a name="l01480"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a"> 1480</a></span>  <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a> = 8, </div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> };</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> </div><div class="line"><a name="l01484"></a><span class="lineno"><a class="line" href="structlws__session__info.html"> 1484</a></span> <span class="keyword">struct </span><a class="code" href="structlws__session__info.html">lws_session_info</a> {</div><div class="line"><a name="l01485"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a3d57a70b6e7181d95a8bec429b1a7697"> 1485</a></span>  <span class="keywordtype">char</span> username[32]; </div><div class="line"><a name="l01486"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a94b813cfc6b0da4b182659de30038ad3"> 1486</a></span>  <span class="keywordtype">char</span> email[100]; </div><div class="line"><a name="l01487"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a53eed02325e8717a53297391e3e98fac"> 1487</a></span>  <span class="keywordtype">char</span> ip[72]; </div><div class="line"><a name="l01488"></a><span class="lineno"><a class="line" href="structlws__session__info.html#afb924864b70f40372920688a5c1c895e"> 1488</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__session__info.html#afb924864b70f40372920688a5c1c895e">mask</a>; </div><div class="line"><a name="l01490"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a4353b5dd19400b2b15edfd7cee1e4cd5"> 1490</a></span>  <span class="keywordtype">char</span> session[42]; </div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> };</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> </div><div class="line"><a name="l01494"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e"> 1494</a></span> <span class="keyword">enum</span> <a class="code" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">lws_gs_event</a> {</div><div class="line"><a name="l01495"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308"> 1495</a></span>  <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a>, </div><div class="line"><a name="l01496"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde"> 1496</a></span>  <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a> </div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> };</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> </div><div class="line"><a name="l01500"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html"> 1500</a></span> <span class="keyword">struct </span><a class="code" href="structlws__gs__event__args.html">lws_gs_event_args</a> {</div><div class="line"><a name="l01501"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06"> 1501</a></span>  <span class="keyword">enum</span> <a class="code" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">lws_gs_event</a> event; </div><div class="line"><a name="l01502"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b"> 1502</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b">username</a>; </div><div class="line"><a name="l01503"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463"> 1503</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463">email</a>; </div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> };</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> </div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> </div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> </div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> </div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> <span class="comment">/*</span></div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span> <span class="comment"> */</span></div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> </div><div class="line"><a name="l01530"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5"> 1530</a></span> <span class="keyword">enum</span> <a class="code" href="group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5">lws_context_options</a> {</div><div class="line"><a name="l01531"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092"> 1531</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a> = (1 << 1) |</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>  (1 << 12),</div><div class="line"><a name="l01536"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c"> 1536</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a> = (1 << 2),</div><div class="line"><a name="l01538"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d"> 1538</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a> = (1 << 3) |</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>  (1 << 12),</div><div class="line"><a name="l01543"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6"> 1543</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a> = (1 << 4),</div><div class="line"><a name="l01545"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9"> 1545</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a> = (1 << 5),</div><div class="line"><a name="l01547"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93"> 1547</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a> = (1 << 6),</div><div class="line"><a name="l01550"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc"> 1550</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a> = (1 << 7),</div><div class="line"><a name="l01552"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f"> 1552</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a> = (1 << 8),</div><div class="line"><a name="l01554"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c"> 1554</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a> = (1 << 9) |</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>  (1 << 12),</div><div class="line"><a name="l01557"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e"> 1557</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a> = (1 << 10),</div><div class="line"><a name="l01559"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada"> 1559</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a> = (1 << 11) |</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>  (1 << 12),</div><div class="line"><a name="l01563"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a"> 1563</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a> = (1 << 12),</div><div class="line"><a name="l01565"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e"> 1565</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a> = (1 << 13),</div><div class="line"><a name="l01568"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941"> 1568</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a> = (1 << 14),</div><div class="line"><a name="l01570"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016"> 1570</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a> = (1 << 15),</div><div class="line"><a name="l01573"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8"> 1573</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a> = (1 << 16),</div><div class="line"><a name="l01575"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160"> 1575</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a> = (1 << 17),</div><div class="line"><a name="l01577"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd"> 1577</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd">LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN</a> = (1 << 18),</div><div class="line"><a name="l01583"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf"> 1583</a></span>  <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf">LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN</a> = (1 << 19),</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> };</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> </div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> <span class="preprocessor">#define lws_check_opt(c, f) (((c) & (f)) == (f))</span></div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span> </div><div class="line"><a name="l01605"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html"> 1605</a></span> <span class="keyword">struct </span><a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> {</div><div class="line"><a name="l01606"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85"> 1606</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85">port</a>;</div><div class="line"><a name="l01611"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a"> 1611</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a">iface</a>;</div><div class="line"><a name="l01618"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122"> 1618</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> *<a class="code" href="structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122">protocols</a>;</div><div class="line"><a name="l01622"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c"> 1622</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a> *<a class="code" href="structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c">extensions</a>;</div><div class="line"><a name="l01625"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29"> 1625</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__token__limits.html">lws_token_limits</a> *<a class="code" href="structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29">token_limits</a>;</div><div class="line"><a name="l01628"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54"> 1628</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54">ssl_private_key_password</a>;</div><div class="line"><a name="l01630"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103"> 1630</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103">ssl_cert_filepath</a>;</div><div class="line"><a name="l01634"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14"> 1634</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14">ssl_private_key_filepath</a>;</div><div class="line"><a name="l01640"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29"> 1640</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29">ssl_ca_filepath</a>;</div><div class="line"><a name="l01642"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb"> 1642</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb">ssl_cipher_list</a>;</div><div class="line"><a name="l01646"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3"> 1646</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3">http_proxy_address</a>;</div><div class="line"><a name="l01649"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6"> 1649</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6">http_proxy_port</a>;</div><div class="line"><a name="l01651"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03"> 1651</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03">gid</a>;</div><div class="line"><a name="l01653"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e"> 1653</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e">uid</a>;</div><div class="line"><a name="l01655"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724"> 1655</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724">options</a>;</div><div class="line"><a name="l01657"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0"> 1657</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0">user</a>;</div><div class="line"><a name="l01660"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56"> 1660</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56">ka_time</a>;</div><div class="line"><a name="l01663"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410"> 1663</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410">ka_probes</a>;</div><div class="line"><a name="l01667"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd"> 1667</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd">ka_interval</a>;</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span> <span class="preprocessor">#ifdef LWS_OPENSSL_SUPPORT</span></div><div class="line"><a name="l01671"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4"> 1671</a></span>  <a class="code" href="structlws__polarssl__context.html">SSL_CTX</a> *<a class="code" href="structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4">provided_client_ssl_ctx</a>;</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> <span class="preprocessor">#else </span><span class="comment">/* maintain structure layout either way */</span><span class="preprocessor"></span></div><div class="line"><a name="l01677"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb"> 1677</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb">provided_client_ssl_ctx</a>; </div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> </div><div class="line"><a name="l01680"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948"> 1680</a></span>  <span class="keywordtype">short</span> <a class="code" href="structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948">max_http_header_data</a>;</div><div class="line"><a name="l01683"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720"> 1683</a></span>  <span class="keywordtype">short</span> <a class="code" href="structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720">max_http_header_pool</a>;</div><div class="line"><a name="l01690"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419"> 1690</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419">count_threads</a>;</div><div class="line"><a name="l01692"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646"> 1692</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646">fd_limit_per_thread</a>;</div><div class="line"><a name="l01696"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d"> 1696</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d">timeout_secs</a>;</div><div class="line"><a name="l01701"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9"> 1701</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9">ecdh_curve</a>;</div><div class="line"><a name="l01703"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9"> 1703</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9">vhost_name</a>;</div><div class="line"><a name="l01707"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251"> 1707</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> *<a class="code" href="structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251">plugin_dirs</a>;</div><div class="line"><a name="l01710"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458"> 1710</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458">pvo</a>;</div><div class="line"><a name="l01713"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6"> 1713</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6">keepalive_timeout</a>;</div><div class="line"><a name="l01716"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2"> 1716</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2">log_filepath</a>;</div><div class="line"><a name="l01719"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8"> 1719</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__http__mount.html">lws_http_mount</a> *<a class="code" href="structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8">mounts</a>;</div><div class="line"><a name="l01721"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616"> 1721</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616">server_string</a>;</div><div class="line"><a name="l01724"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209"> 1724</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209">pt_serv_buf_size</a>;</div><div class="line"><a name="l01730"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a"> 1730</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a">max_http_header_data2</a>;</div><div class="line"><a name="l01735"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d"> 1735</a></span>  <span class="keywordtype">long</span> <a class="code" href="structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d">ssl_options_set</a>;</div><div class="line"><a name="l01737"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa"> 1737</a></span>  <span class="keywordtype">long</span> <a class="code" href="structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa">ssl_options_clear</a>;</div><div class="line"><a name="l01739"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a33a1a25a7df3793f59047e20dd580078"> 1739</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="structlws__context__creation__info.html#a33a1a25a7df3793f59047e20dd580078">ws_ping_pong_interval</a>;</div><div class="line"><a name="l01751"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a8ca0ec6b8675c13849bbdcdc0d50c9a3"> 1751</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__context__creation__info.html#a8ca0ec6b8675c13849bbdcdc0d50c9a3">headers</a>;</div><div class="line"><a name="l01755"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a6b059b7ee248cba72a3a4fd6141b0b34"> 1755</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__context__creation__info.html#a6b059b7ee248cba72a3a4fd6141b0b34">reject_service_keywords</a>;</div><div class="line"><a name="l01762"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#aadbc1b141d16c1084ec4c543e7768a72"> 1762</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__context__creation__info.html#aadbc1b141d16c1084ec4c543e7768a72">external_baggage_free_on_destroy</a>;</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility</span></div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> <span class="comment"> *</span></div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> <span class="comment"> * The below is to ensure later library versions with new</span></div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> <span class="comment"> * members added above will see 0 (default) even if the app</span></div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> <span class="comment"> * was not built against the newer headers.</span></div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> <span class="comment"> */</span></div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> </div><div class="line"><a name="l01778"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#afce3b59950eca3203faa07381bbed5d7"> 1778</a></span>  <span class="keywordtype">void</span> *_unused[8]; </div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> };</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> </div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_context *</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span> <a class="code" href="group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648">lws_create_context</a>(<span class="keyword">struct</span> <a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info);</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> </div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> <a class="code" href="group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb">lws_context_destroy</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> </div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> lws_context_destroy2(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span> </div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span> <span class="keyword">typedef</span> int (*lws_reload_func)(void);</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> </div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span> <a class="code" href="group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232">lws_context_deprecate</a>(<span class="keyword">struct</span> lws_context *context, lws_reload_func cb);</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span> </div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span> lws_context_is_deprecated(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span> </div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span> <a class="code" href="group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4">lws_set_proxy</a>(<span class="keyword">struct</span> lws_vhost *vhost, <span class="keyword">const</span> <span class="keywordtype">char</span> *proxy);</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> </div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span> </div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span> <span class="keyword">struct </span>lws_vhost;</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span> </div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span> LWS_EXTERN LWS_VISIBLE <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span> <a class="code" href="group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c">lws_create_vhost</a>(<span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>  <span class="keyword">struct</span> <a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info);</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span> </div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> <a class="code" href="group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73">lwsws_get_config_globals</a>(<span class="keyword">struct</span> <a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info, <span class="keyword">const</span> <span class="keywordtype">char</span> *d,</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>  <span class="keywordtype">char</span> **config_strings, <span class="keywordtype">int</span> *len);</div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span> </div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span> <a class="code" href="group__context-and-vhost.html#ga341064721add2618ae1b29717493a212">lwsws_get_config_vhosts</a>(<span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>  <span class="keyword">struct</span> <a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info, <span class="keyword">const</span> <span class="keywordtype">char</span> *d,</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>  <span class="keywordtype">char</span> **config_strings, <span class="keywordtype">int</span> *len);</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> </div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> <a class="code" href="group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c">lws_vhost_get</a>(<span class="keyword">struct</span> lws *wsi) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> </div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> <a class="code" href="group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932">lws_get_vhost</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span> </div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span> <a class="code" href="group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6">lws_json_dump_vhost</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws_vhost *vh, <span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> </div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> <a class="code" href="group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135">lws_json_dump_context</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws_context *context, <span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len,</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>  <span class="keywordtype">int</span> hide_vhosts);</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> </div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> <a class="code" href="group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da">lws_context_user</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span> </div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> </div><div class="line"><a name="l01995"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html"> 1995</a></span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> {</div><div class="line"><a name="l01996"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c"> 1996</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c">next</a>; </div><div class="line"><a name="l01997"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822"> 1997</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822">options</a>; </div><div class="line"><a name="l01998"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9"> 1998</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9">name</a>; </div><div class="line"><a name="l01999"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7"> 1999</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7">value</a>; </div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span> };</div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span> </div><div class="line"><a name="l02006"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437"> 2006</a></span> <span class="keyword">enum</span> <a class="code" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437">lws_mount_protocols</a> {</div><div class="line"><a name="l02007"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0"> 2007</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a> = 0, </div><div class="line"><a name="l02008"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1"> 2008</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a> = 1, </div><div class="line"><a name="l02009"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2"> 2009</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a> = 2, </div><div class="line"><a name="l02010"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69"> 2010</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a> = 3, </div><div class="line"><a name="l02011"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970"> 2011</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a> = 4, </div><div class="line"><a name="l02012"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67"> 2012</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a> = 5, </div><div class="line"><a name="l02013"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"> 2013</a></span>  <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a> = 6, </div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span> };</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span> </div><div class="line"><a name="l02020"></a><span class="lineno"><a class="line" href="structlws__http__mount.html"> 2020</a></span> <span class="keyword">struct </span><a class="code" href="structlws__http__mount.html">lws_http_mount</a> {</div><div class="line"><a name="l02021"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a0109baf93f23c07c824c997c3533ee44"> 2021</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__http__mount.html">lws_http_mount</a> *<a class="code" href="structlws__http__mount.html#a0109baf93f23c07c824c997c3533ee44">mount_next</a>;</div><div class="line"><a name="l02023"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c"> 2023</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c">mountpoint</a>;</div><div class="line"><a name="l02025"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a"> 2025</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a">origin</a>;</div><div class="line"><a name="l02027"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4"> 2027</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4">def</a>;</div><div class="line"><a name="l02029"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b"> 2029</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b">protocol</a>;</div><div class="line"><a name="l02032"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af"> 2032</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af">cgienv</a>;</div><div class="line"><a name="l02036"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7"> 2036</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7">extra_mimetypes</a>;</div><div class="line"><a name="l02038"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773"> 2038</a></span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *<a class="code" href="structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773">interpret</a>;</div><div class="line"><a name="l02041"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa"> 2041</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa">cgi_timeout</a>;</div><div class="line"><a name="l02043"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146"> 2043</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146">cache_max_age</a>;</div><div class="line"><a name="l02045"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477"> 2045</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477">auth_mask</a>;</div><div class="line"><a name="l02048"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a8316dd183ffbef50419a5a4968d35d84"> 2048</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_reusable:1; </div><div class="line"><a name="l02049"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae137203040c6153694bd88a708da5395"> 2049</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_revalidate:1; </div><div class="line"><a name="l02050"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#aabec1a326780aafe11b977000983be0c"> 2050</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_intermediaries:1; </div><div class="line"><a name="l02052"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7"> 2052</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7">origin_protocol</a>; </div><div class="line"><a name="l02053"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743"> 2053</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743">mountpoint_len</a>; </div><div class="line"><a name="l02055"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a2f6c7dbc2d714b7259c67b7744d4ff98"> 2055</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__http__mount.html#a2f6c7dbc2d714b7259c67b7744d4ff98">basic_auth_login_file</a>;</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility</span></div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span> <span class="comment"> *</span></div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> <span class="comment"> * The below is to ensure later library versions with new</span></div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> <span class="comment"> * members added above will see 0 (default) even if the app</span></div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span> <span class="comment"> * was not built against the newer headers.</span></div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span> <span class="comment"> */</span></div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span> </div><div class="line"><a name="l02066"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a78d58848eed7b544ae83f719abdbe4b6"> 2066</a></span>  <span class="keywordtype">void</span> *_unused[2]; </div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span> };</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> </div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span> </div><div class="line"><a name="l02083"></a><span class="lineno"><a class="line" href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce"> 2083</a></span> <span class="keyword">enum</span> <a class="code" href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce">lws_client_connect_ssl_connection_flags</a> {</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>  LCCSCF_USE_SSL = (1 << 0),</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>  LCCSCF_ALLOW_SELFSIGNED = (1 << 1),</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>  LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 << 2),</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>  LCCSCF_ALLOW_EXPIRED = (1 << 3)</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span> };</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span> </div><div class="line"><a name="l02093"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html"> 2093</a></span> <span class="keyword">struct </span><a class="code" href="structlws__client__connect__info.html">lws_client_connect_info</a> {</div><div class="line"><a name="l02094"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd"> 2094</a></span>  <span class="keyword">struct </span>lws_context *<a class="code" href="structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd">context</a>;</div><div class="line"><a name="l02096"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502"> 2096</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502">address</a>;</div><div class="line"><a name="l02098"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9"> 2098</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9">port</a>;</div><div class="line"><a name="l02100"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d"> 2100</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d">ssl_connection</a>;</div><div class="line"><a name="l02102"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185"> 2102</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185">path</a>;</div><div class="line"><a name="l02104"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7"> 2104</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7">host</a>;</div><div class="line"><a name="l02106"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c"> 2106</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c">origin</a>;</div><div class="line"><a name="l02108"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2"> 2108</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2">protocol</a>;</div><div class="line"><a name="l02110"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895"> 2110</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895">ietf_version_or_minus_one</a>;</div><div class="line"><a name="l02112"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836"> 2112</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836">userdata</a>;</div><div class="line"><a name="l02114"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aaf76f45db5b4354894bae03a4f8f65a5"> 2114</a></span>  <span class="keyword">const</span> <span class="keywordtype">void</span> *<a class="code" href="structlws__client__connect__info.html#aaf76f45db5b4354894bae03a4f8f65a5">client_exts</a>;</div><div class="line"><a name="l02116"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db"> 2116</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db">method</a>;</div><div class="line"><a name="l02119"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587"> 2119</a></span>  <span class="keyword">struct </span>lws *<a class="code" href="structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587">parent_wsi</a>;</div><div class="line"><a name="l02123"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a"> 2123</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a">uri_replace_from</a>;</div><div class="line"><a name="l02126"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3"> 2126</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3">uri_replace_to</a>;</div><div class="line"><a name="l02128"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be"> 2128</a></span>  <span class="keyword">struct </span>lws_vhost *<a class="code" href="structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be">vhost</a>;</div><div class="line"><a name="l02130"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e"> 2130</a></span>  <span class="keyword">struct </span>lws **<a class="code" href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e">pwsi</a>;</div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility</span></div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span> <span class="comment"> *</span></div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span> <span class="comment"> * The below is to ensure later library versions with new</span></div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span> <span class="comment"> * members added above will see 0 (default) even if the app</span></div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span> <span class="comment"> * was not built against the newer headers.</span></div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span> <span class="comment"> */</span></div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span> </div><div class="line"><a name="l02150"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#ad47f50d1633dc5df74548606c9a66d73"> 2150</a></span>  <span class="keywordtype">void</span> *_unused[4]; </div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span> };</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span> </div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span> <a class="code" href="group__client.html#ga0c966136905f467816307cfba6deb5fd">lws_client_connect_via_info</a>(<span class="keyword">struct</span> <a class="code" href="structlws__client__connect__info.html">lws_client_connect_info</a> * ccinfo);</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span> </div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span> <span class="comment">/* deprecated, use lws_client_connect_via_info() */</span></div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span> <a class="code" href="group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3">lws_client_connect</a>(<span class="keyword">struct</span> lws_context *clients, <span class="keyword">const</span> <span class="keywordtype">char</span> *address,</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>  <span class="keywordtype">int</span> port, <span class="keywordtype">int</span> ssl_connection, <span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *host, <span class="keyword">const</span> <span class="keywordtype">char</span> *origin, <span class="keyword">const</span> <span class="keywordtype">char</span> *protocol,</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>  <span class="keywordtype">int</span> ietf_version_or_minus_one) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span> <span class="comment">/* deprecated, use lws_client_connect_via_info() */</span></div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span> <a class="code" href="group__client.html#gac6a8558b4410961a880241c2ac1271e2">lws_client_connect_extended</a>(<span class="keyword">struct</span> lws_context *clients, <span class="keyword">const</span> <span class="keywordtype">char</span> *address,</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>  <span class="keywordtype">int</span> port, <span class="keywordtype">int</span> ssl_connection, <span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *host, <span class="keyword">const</span> <span class="keywordtype">char</span> *origin,</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *protocol, <span class="keywordtype">int</span> ietf_version_or_minus_one,</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>  <span class="keywordtype">void</span> *userdata) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span> </div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span> <a class="code" href="group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340">lws_init_vhost_client_ssl</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info,</div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>  <span class="keyword">struct</span> lws_vhost *vhost);</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span> </div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span> lws_http_client_read(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">char</span> **buf, <span class="keywordtype">int</span> *len);</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span> </div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span></div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span> <a class="code" href="group__client.html#ga715efffc0c4e8fbf72a4293008eb2187">lws_http_client_http_response</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span> </div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span> lws_client_http_body_pending(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">int</span> something_left_to_send);</div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span> </div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span> </div><div class="line"><a name="l02291"></a><span class="lineno"> 2291</span> </div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02325"></a><span class="lineno"> 2325</span> <a class="code" href="group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8">lws_service</a>(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> timeout_ms);</div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span> </div><div class="line"><a name="l02338"></a><span class="lineno"> 2338</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02339"></a><span class="lineno"> 2339</span> <a class="code" href="group__service.html#ga9b3cc4473fd8848e5bbee7f310712939">lws_service_tsi</a>(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> timeout_ms, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l02340"></a><span class="lineno"> 2340</span> </div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</span> <a class="code" href="group__service.html#ga29c246707997ab7a466aa709aecd2d7b">lws_cancel_service_pt</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l02358"></a><span class="lineno"> 2358</span> </div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</span> <a class="code" href="group__service.html#ga53e3d0801dfda7960a7249dd559e68a2">lws_cancel_service</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l02372"></a><span class="lineno"> 2372</span> </div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02400"></a><span class="lineno"> 2400</span> <a class="code" href="group__service.html#gad82efa5466d14a9f05aa06416375b28d">lws_service_fd</a>(<span class="keyword">struct</span> lws_context *context, <span class="keyword">struct</span> <a class="code" href="structlws__pollfd.html">lws_pollfd</a> *<a class="code" href="structpollfd.html">pollfd</a>);</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span> </div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span> <a class="code" href="group__service.html#gaebf426eda371ba23642fc11d8e0ace6b">lws_service_fd_tsi</a>(<span class="keyword">struct</span> lws_context *context, <span class="keyword">struct</span> <a class="code" href="structlws__pollfd.html">lws_pollfd</a> *<a class="code" href="structpollfd.html">pollfd</a>,</div><div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>  <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span> </div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span> <a class="code" href="group__service.html#ga4fd9d714434ca499e2b3f7dbba86f241">lws_service_adjust_timeout</a>(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> timeout_ms, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span> </div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span> <span class="comment">/* Backwards compatibility */</span></div><div class="line"><a name="l02436"></a><span class="lineno"> 2436</span> <span class="preprocessor">#define lws_plat_service_tsi lws_service_tsi</span></div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span> </div><div class="line"><a name="l02439"></a><span class="lineno"> 2439</span> </div><div class="line"><a name="l02445"></a><span class="lineno"> 2445</span> </div><div class="line"><a name="l02452"></a><span class="lineno"> 2452</span> </div><div class="line"><a name="l02464"></a><span class="lineno"> 2464</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02465"></a><span class="lineno"> 2465</span> <a class="code" href="group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c">lws_get_mimetype</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__http__mount.html">lws_http_mount</a> *m);</div><div class="line"><a name="l02466"></a><span class="lineno"> 2466</span> </div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span> <a class="code" href="group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7">lws_serve_http_file</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keyword">const</span> <span class="keywordtype">char</span> *content_type,</div><div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *other_headers, <span class="keywordtype">int</span> other_headers_len);</div><div class="line"><a name="l02488"></a><span class="lineno"> 2488</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02489"></a><span class="lineno"> 2489</span> lws_serve_http_file_fragment(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l02491"></a><span class="lineno"> 2491</span> </div><div class="line"><a name="l02502"></a><span class="lineno"> 2502</span> </div><div class="line"><a name="l02503"></a><span class="lineno"> 2503</span> <span class="keyword">enum</span> http_status {</div><div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>  HTTP_STATUS_OK = 200,</div><div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>  HTTP_STATUS_NO_CONTENT = 204,</div><div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>  HTTP_STATUS_PARTIAL_CONTENT = 206,</div><div class="line"><a name="l02507"></a><span class="lineno"> 2507</span> </div><div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>  HTTP_STATUS_MOVED_PERMANENTLY = 301,</div><div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>  HTTP_STATUS_FOUND = 302,</div><div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>  HTTP_STATUS_SEE_OTHER = 303,</div><div class="line"><a name="l02511"></a><span class="lineno"> 2511</span> </div><div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>  HTTP_STATUS_BAD_REQUEST = 400,</div><div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>  HTTP_STATUS_UNAUTHORIZED,</div><div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>  HTTP_STATUS_PAYMENT_REQUIRED,</div><div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>  HTTP_STATUS_FORBIDDEN,</div><div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>  HTTP_STATUS_NOT_FOUND,</div><div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>  HTTP_STATUS_METHOD_NOT_ALLOWED,</div><div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>  HTTP_STATUS_NOT_ACCEPTABLE,</div><div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>  HTTP_STATUS_PROXY_AUTH_REQUIRED,</div><div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>  HTTP_STATUS_REQUEST_TIMEOUT,</div><div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>  HTTP_STATUS_CONFLICT,</div><div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>  HTTP_STATUS_GONE,</div><div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>  HTTP_STATUS_LENGTH_REQUIRED,</div><div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>  HTTP_STATUS_PRECONDITION_FAILED,</div><div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>  HTTP_STATUS_REQ_ENTITY_TOO_LARGE,</div><div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>  HTTP_STATUS_REQ_URI_TOO_LONG,</div><div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>  HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE,</div><div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>  HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE,</div><div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>  HTTP_STATUS_EXPECTATION_FAILED,</div><div class="line"><a name="l02530"></a><span class="lineno"> 2530</span> </div><div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>  HTTP_STATUS_INTERNAL_SERVER_ERROR = 500,</div><div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>  HTTP_STATUS_NOT_IMPLEMENTED,</div><div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>  HTTP_STATUS_BAD_GATEWAY,</div><div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>  HTTP_STATUS_SERVICE_UNAVAILABLE,</div><div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>  HTTP_STATUS_GATEWAY_TIMEOUT,</div><div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>  HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED,</div><div class="line"><a name="l02537"></a><span class="lineno"> 2537</span> };</div><div class="line"><a name="l02538"></a><span class="lineno"> 2538</span> </div><div class="line"><a name="l02539"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html"> 2539</a></span> <span class="keyword">struct </span><a class="code" href="structlws__process__html__args.html">lws_process_html_args</a> {</div><div class="line"><a name="l02540"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14"> 2540</a></span>  <span class="keywordtype">char</span> *<a class="code" href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14">p</a>; </div><div class="line"><a name="l02541"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef"> 2541</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef">len</a>; </div><div class="line"><a name="l02542"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99"> 2542</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99">max_len</a>; </div><div class="line"><a name="l02543"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475"> 2543</a></span>  <span class="keywordtype">int</span> <span class="keyword">final</span>; </div><div class="line"><a name="l02544"></a><span class="lineno"> 2544</span> };</div><div class="line"><a name="l02545"></a><span class="lineno"> 2545</span> </div><div class="line"><a name="l02546"></a><span class="lineno"> 2546</span> <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *(*lws_process_html_state_cb)(<span class="keywordtype">void</span> *data, <span class="keywordtype">int</span> index);</div><div class="line"><a name="l02547"></a><span class="lineno"> 2547</span> </div><div class="line"><a name="l02548"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html"> 2548</a></span> <span class="keyword">struct </span><a class="code" href="structlws__process__html__state.html">lws_process_html_state</a> {</div><div class="line"><a name="l02549"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3"> 2549</a></span>  <span class="keywordtype">char</span> *<a class="code" href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3">start</a>; </div><div class="line"><a name="l02550"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a71982bc1cbd8cf876ca0f545144404eb"> 2550</a></span>  <span class="keywordtype">char</span> swallow[16]; </div><div class="line"><a name="l02551"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20"> 2551</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20">pos</a>; </div><div class="line"><a name="l02552"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5"> 2552</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5">data</a>; </div><div class="line"><a name="l02553"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077"> 2553</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> *<a class="code" href="structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077">vars</a>; </div><div class="line"><a name="l02554"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968"> 2554</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968">count_vars</a>; </div><div class="line"><a name="l02556"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644"> 2556</a></span>  lws_process_html_state_cb replace; </div><div class="line"><a name="l02557"></a><span class="lineno"> 2557</span> };</div><div class="line"><a name="l02558"></a><span class="lineno"> 2558</span> </div><div class="line"><a name="l02563"></a><span class="lineno"> 2563</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02564"></a><span class="lineno"> 2564</span> <a class="code" href="group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60">lws_chunked_html_process</a>(<span class="keyword">struct</span> <a class="code" href="structlws__process__html__args.html">lws_process_html_args</a> *args,</div><div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>  <span class="keyword">struct</span> <a class="code" href="structlws__process__html__state.html">lws_process_html_state</a> *s);</div><div class="line"><a name="l02567"></a><span class="lineno"> 2567</span> </div><div class="line"><a name="l02600"></a><span class="lineno"> 2600</span> </div><div class="line"><a name="l02608"></a><span class="lineno"><a class="line" href="structlws__tokens.html"> 2608</a></span> <span class="keyword">struct </span><a class="code" href="structlws__tokens.html">lws_tokens</a> {</div><div class="line"><a name="l02609"></a><span class="lineno"><a class="line" href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd"> 2609</a></span>  <span class="keywordtype">char</span> *<a class="code" href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd">token</a>; </div><div class="line"><a name="l02610"></a><span class="lineno"><a class="line" href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766"> 2610</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766">token_len</a>; </div><div class="line"><a name="l02611"></a><span class="lineno"> 2611</span> };</div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span> </div><div class="line"><a name="l02613"></a><span class="lineno"> 2613</span> <span class="comment">/* enum lws_token_indexes</span></div><div class="line"><a name="l02614"></a><span class="lineno"> 2614</span> <span class="comment"> * these have to be kept in sync with lextable.h / minilex.c</span></div><div class="line"><a name="l02615"></a><span class="lineno"> 2615</span> <span class="comment"> *</span></div><div class="line"><a name="l02616"></a><span class="lineno"> 2616</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l02618"></a><span class="lineno"> 2618</span> <span class="comment"> */</span></div><div class="line"><a name="l02619"></a><span class="lineno"> 2619</span> <span class="keyword">enum</span> lws_token_indexes {</div><div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>  WSI_TOKEN_GET_URI = 0,</div><div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>  WSI_TOKEN_POST_URI = 1,</div><div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>  WSI_TOKEN_OPTIONS_URI = 2,</div><div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>  WSI_TOKEN_HOST = 3,</div><div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>  WSI_TOKEN_CONNECTION = 4,</div><div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>  WSI_TOKEN_UPGRADE = 5,</div><div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>  WSI_TOKEN_ORIGIN = 6,</div><div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>  WSI_TOKEN_DRAFT = 7,</div><div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>  WSI_TOKEN_CHALLENGE = 8,</div><div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>  WSI_TOKEN_EXTENSIONS = 9,</div><div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>  WSI_TOKEN_KEY1 = 10,</div><div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>  WSI_TOKEN_KEY2 = 11,</div><div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>  WSI_TOKEN_PROTOCOL = 12,</div><div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>  WSI_TOKEN_ACCEPT = 13,</div><div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>  WSI_TOKEN_NONCE = 14,</div><div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>  WSI_TOKEN_HTTP = 15,</div><div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>  WSI_TOKEN_HTTP2_SETTINGS = 16,</div><div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>  WSI_TOKEN_HTTP_ACCEPT = 17,</div><div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>  WSI_TOKEN_HTTP_AC_REQUEST_HEADERS = 18,</div><div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>  WSI_TOKEN_HTTP_IF_MODIFIED_SINCE = 19,</div><div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>  WSI_TOKEN_HTTP_IF_NONE_MATCH = 20,</div><div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>  WSI_TOKEN_HTTP_ACCEPT_ENCODING = 21,</div><div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>  WSI_TOKEN_HTTP_ACCEPT_LANGUAGE = 22,</div><div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>  WSI_TOKEN_HTTP_PRAGMA = 23,</div><div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>  WSI_TOKEN_HTTP_CACHE_CONTROL = 24,</div><div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>  WSI_TOKEN_HTTP_AUTHORIZATION = 25,</div><div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>  WSI_TOKEN_HTTP_COOKIE = 26,</div><div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>  WSI_TOKEN_HTTP_CONTENT_LENGTH = 27,</div><div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>  WSI_TOKEN_HTTP_CONTENT_TYPE = 28,</div><div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>  WSI_TOKEN_HTTP_DATE = 29,</div><div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>  WSI_TOKEN_HTTP_RANGE = 30,</div><div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>  WSI_TOKEN_HTTP_REFERER = 31,</div><div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>  WSI_TOKEN_KEY = 32,</div><div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>  WSI_TOKEN_VERSION = 33,</div><div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>  WSI_TOKEN_SWORIGIN = 34,</div><div class="line"><a name="l02655"></a><span class="lineno"> 2655</span> </div><div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>  WSI_TOKEN_HTTP_COLON_AUTHORITY = 35,</div><div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>  WSI_TOKEN_HTTP_COLON_METHOD = 36,</div><div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>  WSI_TOKEN_HTTP_COLON_PATH = 37,</div><div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>  WSI_TOKEN_HTTP_COLON_SCHEME = 38,</div><div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>  WSI_TOKEN_HTTP_COLON_STATUS = 39,</div><div class="line"><a name="l02661"></a><span class="lineno"> 2661</span> </div><div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>  WSI_TOKEN_HTTP_ACCEPT_CHARSET = 40,</div><div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>  WSI_TOKEN_HTTP_ACCEPT_RANGES = 41,</div><div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>  WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN = 42,</div><div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>  WSI_TOKEN_HTTP_AGE = 43,</div><div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>  WSI_TOKEN_HTTP_ALLOW = 44,</div><div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>  WSI_TOKEN_HTTP_CONTENT_DISPOSITION = 45,</div><div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>  WSI_TOKEN_HTTP_CONTENT_ENCODING = 46,</div><div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>  WSI_TOKEN_HTTP_CONTENT_LANGUAGE = 47,</div><div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>  WSI_TOKEN_HTTP_CONTENT_LOCATION = 48,</div><div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>  WSI_TOKEN_HTTP_CONTENT_RANGE = 49,</div><div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>  WSI_TOKEN_HTTP_ETAG = 50,</div><div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>  WSI_TOKEN_HTTP_EXPECT = 51,</div><div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>  WSI_TOKEN_HTTP_EXPIRES = 52,</div><div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>  WSI_TOKEN_HTTP_FROM = 53,</div><div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>  WSI_TOKEN_HTTP_IF_MATCH = 54,</div><div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>  WSI_TOKEN_HTTP_IF_RANGE = 55,</div><div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>  WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE = 56,</div><div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>  WSI_TOKEN_HTTP_LAST_MODIFIED = 57,</div><div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>  WSI_TOKEN_HTTP_LINK = 58,</div><div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>  WSI_TOKEN_HTTP_LOCATION = 59,</div><div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>  WSI_TOKEN_HTTP_MAX_FORWARDS = 60,</div><div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>  WSI_TOKEN_HTTP_PROXY_AUTHENTICATE = 61,</div><div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>  WSI_TOKEN_HTTP_PROXY_AUTHORIZATION = 62,</div><div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>  WSI_TOKEN_HTTP_REFRESH = 63,</div><div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>  WSI_TOKEN_HTTP_RETRY_AFTER = 64,</div><div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>  WSI_TOKEN_HTTP_SERVER = 65,</div><div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>  WSI_TOKEN_HTTP_SET_COOKIE = 66,</div><div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>  WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY = 67,</div><div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>  WSI_TOKEN_HTTP_TRANSFER_ENCODING = 68,</div><div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>  WSI_TOKEN_HTTP_USER_AGENT = 69,</div><div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>  WSI_TOKEN_HTTP_VARY = 70,</div><div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>  WSI_TOKEN_HTTP_VIA = 71,</div><div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>  WSI_TOKEN_HTTP_WWW_AUTHENTICATE = 72,</div><div class="line"><a name="l02695"></a><span class="lineno"> 2695</span> </div><div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>  WSI_TOKEN_PATCH_URI = 73,</div><div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>  WSI_TOKEN_PUT_URI = 74,</div><div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>  WSI_TOKEN_DELETE_URI = 75,</div><div class="line"><a name="l02699"></a><span class="lineno"> 2699</span> </div><div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>  WSI_TOKEN_HTTP_URI_ARGS = 76,</div><div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>  WSI_TOKEN_PROXY = 77,</div><div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>  WSI_TOKEN_HTTP_X_REAL_IP = 78,</div><div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>  WSI_TOKEN_HTTP1_0 = 79,</div><div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>  WSI_TOKEN_X_FORWARDED_FOR = 80,</div><div class="line"><a name="l02705"></a><span class="lineno"> 2705</span> </div><div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l02707"></a><span class="lineno"> 2707</span> </div><div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>  <span class="comment">/* use token storage to stash these internally, not for</span></div><div class="line"><a name="l02709"></a><span class="lineno"> 2709</span> <span class="comment"> * user use */</span></div><div class="line"><a name="l02710"></a><span class="lineno"> 2710</span> </div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>  _WSI_TOKEN_CLIENT_SENT_PROTOCOLS,</div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>  _WSI_TOKEN_CLIENT_PEER_ADDRESS,</div><div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>  _WSI_TOKEN_CLIENT_URI,</div><div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>  _WSI_TOKEN_CLIENT_HOST,</div><div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>  _WSI_TOKEN_CLIENT_ORIGIN,</div><div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>  _WSI_TOKEN_CLIENT_METHOD,</div><div class="line"><a name="l02717"></a><span class="lineno"> 2717</span> </div><div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>  <span class="comment">/* always last real token index*/</span></div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>  WSI_TOKEN_COUNT,</div><div class="line"><a name="l02720"></a><span class="lineno"> 2720</span> </div><div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>  <span class="comment">/* parser state additions, no storage associated */</span></div><div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>  WSI_TOKEN_NAME_PART,</div><div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>  WSI_TOKEN_SKIPPING,</div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>  WSI_TOKEN_SKIPPING_SAW_CR,</div><div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>  WSI_PARSING_COMPLETE,</div><div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>  WSI_INIT_TOKEN_MUXURL,</div><div class="line"><a name="l02727"></a><span class="lineno"> 2727</span> };</div><div class="line"><a name="l02728"></a><span class="lineno"> 2728</span> </div><div class="line"><a name="l02729"></a><span class="lineno"><a class="line" href="structlws__token__limits.html"> 2729</a></span> <span class="keyword">struct </span><a class="code" href="structlws__token__limits.html">lws_token_limits</a> {</div><div class="line"><a name="l02730"></a><span class="lineno"><a class="line" href="structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff"> 2730</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> token_limit[WSI_TOKEN_COUNT]; </div><div class="line"><a name="l02731"></a><span class="lineno"> 2731</span> };</div><div class="line"><a name="l02732"></a><span class="lineno"> 2732</span> </div><div class="line"><a name="l02738"></a><span class="lineno"> 2738</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02739"></a><span class="lineno"> 2739</span> <a class="code" href="group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b">lws_token_to_string</a>(<span class="keyword">enum</span> lws_token_indexes token);</div><div class="line"><a name="l02740"></a><span class="lineno"> 2740</span> </div><div class="line"><a name="l02741"></a><span class="lineno"> 2741</span> </div><div class="line"><a name="l02750"></a><span class="lineno"> 2750</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02751"></a><span class="lineno"> 2751</span> <a class="code" href="group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8">lws_hdr_total_length</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> lws_token_indexes h);</div><div class="line"><a name="l02752"></a><span class="lineno"> 2752</span> </div><div class="line"><a name="l02762"></a><span class="lineno"> 2762</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02763"></a><span class="lineno"> 2763</span> <a class="code" href="group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e">lws_hdr_fragment_length</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> lws_token_indexes h, <span class="keywordtype">int</span> frag_idx);</div><div class="line"><a name="l02764"></a><span class="lineno"> 2764</span> </div><div class="line"><a name="l02778"></a><span class="lineno"> 2778</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02779"></a><span class="lineno"> 2779</span> <a class="code" href="group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77">lws_hdr_copy</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">char</span> *dest, <span class="keywordtype">int</span> len, <span class="keyword">enum</span> lws_token_indexes h);</div><div class="line"><a name="l02780"></a><span class="lineno"> 2780</span> </div><div class="line"><a name="l02798"></a><span class="lineno"> 2798</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02799"></a><span class="lineno"> 2799</span> <a class="code" href="group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9">lws_hdr_copy_fragment</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">char</span> *dest, <span class="keywordtype">int</span> len,</div><div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>  <span class="keyword">enum</span> lws_token_indexes h, <span class="keywordtype">int</span> frag_idx);</div><div class="line"><a name="l02801"></a><span class="lineno"> 2801</span> </div><div class="line"><a name="l02812"></a><span class="lineno"> 2812</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02813"></a><span class="lineno"> 2813</span> <a class="code" href="group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2">lws_get_urlarg_by_name</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l02815"></a><span class="lineno"> 2815</span> </div><div class="line"><a name="l02830"></a><span class="lineno"> 2830</span> </div><div class="line"><a name="l02841"></a><span class="lineno"> 2841</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02842"></a><span class="lineno"> 2842</span> <a class="code" href="group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6">lws_add_http_header_status</a>(<span class="keyword">struct</span> lws *wsi,</div><div class="line"><a name="l02843"></a><span class="lineno"> 2843</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p,</div><div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02857"></a><span class="lineno"> 2857</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02858"></a><span class="lineno"> 2858</span> <a class="code" href="group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8">lws_add_http_header_by_name</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *name,</div><div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *value, <span class="keywordtype">int</span> length,</div><div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02874"></a><span class="lineno"> 2874</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02875"></a><span class="lineno"> 2875</span> <a class="code" href="group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1">lws_add_http_header_by_token</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> lws_token_indexes token,</div><div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *value, <span class="keywordtype">int</span> length,</div><div class="line"><a name="l02877"></a><span class="lineno"> 2877</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02888"></a><span class="lineno"> 2888</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02889"></a><span class="lineno"> 2889</span> <a class="code" href="group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf">lws_add_http_header_content_length</a>(<span class="keyword">struct</span> lws *wsi,</div><div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> content_length,</div><div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02901"></a><span class="lineno"> 2901</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02902"></a><span class="lineno"> 2902</span> <a class="code" href="group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b">lws_finalize_http_header</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p,</div><div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02905"></a><span class="lineno"> 2905</span> </div><div class="line"><a name="l02924"></a><span class="lineno"> 2924</span> </div><div class="line"><a name="l02927"></a><span class="lineno"><a class="line" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae"> 2927</a></span> <span class="keyword">enum</span> <a class="code" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">lws_spa_fileupload_states</a> {</div><div class="line"><a name="l02928"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f"> 2928</a></span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,</div><div class="line"><a name="l02930"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7"> 2930</a></span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,</div><div class="line"><a name="l02932"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"> 2932</a></span>  <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="line"><a name="l02934"></a><span class="lineno"> 2934</span> };</div><div class="line"><a name="l02935"></a><span class="lineno"> 2935</span> </div><div class="line"><a name="l02949"></a><span class="lineno"><a class="line" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e"> 2949</a></span> <span class="keyword">typedef</span> int (*<a class="code" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">lws_spa_fileupload_cb</a>)(<span class="keywordtype">void</span> *data, <span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div><div class="line"><a name="l02950"></a><span class="lineno"> 2950</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *filename, <span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len,</div><div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>  <span class="keyword">enum</span> <a class="code" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">lws_spa_fileupload_states</a> state);</div><div class="line"><a name="l02952"></a><span class="lineno"> 2952</span> </div><div class="line"><a name="l02955"></a><span class="lineno"> 2955</span> <span class="keyword">struct </span>lws_spa;</div><div class="line"><a name="l02956"></a><span class="lineno"> 2956</span> </div><div class="line"><a name="l02975"></a><span class="lineno"> 2975</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_spa *</div><div class="line"><a name="l02976"></a><span class="lineno"> 2976</span> <a class="code" href="group__form-parsing.html#ga162f86762173a2bc8c28497941d74815">lws_spa_create</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> *param_names,</div><div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>  <span class="keywordtype">int</span> count_params, <span class="keywordtype">int</span> max_storage, <a class="code" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">lws_spa_fileupload_cb</a> opt_cb,</div><div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>  <span class="keywordtype">void</span> *opt_data);</div><div class="line"><a name="l02979"></a><span class="lineno"> 2979</span> </div><div class="line"><a name="l02987"></a><span class="lineno"> 2987</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02988"></a><span class="lineno"> 2988</span> <a class="code" href="group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2">lws_spa_process</a>(<span class="keyword">struct</span> lws_spa *spa, <span class="keyword">const</span> <span class="keywordtype">char</span> *in, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l02989"></a><span class="lineno"> 2989</span> </div><div class="line"><a name="l02995"></a><span class="lineno"> 2995</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02996"></a><span class="lineno"> 2996</span> <a class="code" href="group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24">lws_spa_finalize</a>(<span class="keyword">struct</span> lws_spa *spa);</div><div class="line"><a name="l02997"></a><span class="lineno"> 2997</span> </div><div class="line"><a name="l03004"></a><span class="lineno"> 3004</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03005"></a><span class="lineno"> 3005</span> <a class="code" href="group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f">lws_spa_get_length</a>(<span class="keyword">struct</span> lws_spa *spa, <span class="keywordtype">int</span> n);</div><div class="line"><a name="l03006"></a><span class="lineno"> 3006</span> </div><div class="line"><a name="l03012"></a><span class="lineno"> 3012</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03013"></a><span class="lineno"> 3013</span> <a class="code" href="group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd">lws_spa_get_string</a>(<span class="keyword">struct</span> lws_spa *spa, <span class="keywordtype">int</span> n);</div><div class="line"><a name="l03014"></a><span class="lineno"> 3014</span> </div><div class="line"><a name="l03020"></a><span class="lineno"> 3020</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03021"></a><span class="lineno"> 3021</span> <a class="code" href="group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b">lws_spa_destroy</a>(<span class="keyword">struct</span> lws_spa *spa);</div><div class="line"><a name="l03023"></a><span class="lineno"> 3023</span> </div><div class="line"><a name="l03034"></a><span class="lineno"> 3034</span> </div><div class="line"><a name="l03045"></a><span class="lineno"> 3045</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03046"></a><span class="lineno"> 3046</span> <a class="code" href="group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7">lws_urlencode</a>(<span class="keywordtype">char</span> *escaped, <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03047"></a><span class="lineno"> 3047</span> </div><div class="line"><a name="l03048"></a><span class="lineno"> 3048</span> <span class="comment">/*</span></div><div class="line"><a name="l03049"></a><span class="lineno"> 3049</span> <span class="comment"> * URLDECODE 1 / 2</span></div><div class="line"><a name="l03050"></a><span class="lineno"> 3050</span> <span class="comment"> *</span></div><div class="line"><a name="l03051"></a><span class="lineno"> 3051</span> <span class="comment"> * This simple urldecode only operates until the first '\0' and requires the</span></div><div class="line"><a name="l03052"></a><span class="lineno"> 3052</span> <span class="comment"> * data to exist all at once</span></div><div class="line"><a name="l03053"></a><span class="lineno"> 3053</span> <span class="comment"> */</span></div><div class="line"><a name="l03066"></a><span class="lineno"> 3066</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03067"></a><span class="lineno"> 3067</span> <a class="code" href="group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3">lws_urldecode</a>(<span class="keywordtype">char</span> *<span class="keywordtype">string</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *escaped, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03069"></a><span class="lineno"> 3069</span> </div><div class="line"><a name="l03078"></a><span class="lineno"> 3078</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03079"></a><span class="lineno"> 3079</span> <a class="code" href="group__http.html#gac8a4a71240857dc6b2ed70456b6923f4">lws_return_http_status</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> code,</div><div class="line"><a name="l03080"></a><span class="lineno"> 3080</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *html_body);</div><div class="line"><a name="l03081"></a><span class="lineno"> 3081</span> </div><div class="line"><a name="l03092"></a><span class="lineno"> 3092</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03093"></a><span class="lineno"> 3093</span> <a class="code" href="group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25">lws_http_redirect</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">int</span> code, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *loc, <span class="keywordtype">int</span> len,</div><div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l03095"></a><span class="lineno"> 3095</span> </div><div class="line"><a name="l03104"></a><span class="lineno"> 3104</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03105"></a><span class="lineno"> 3105</span> <a class="code" href="group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a">lws_http_transaction_completed</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03107"></a><span class="lineno"> 3107</span> </div><div class="line"><a name="l03115"></a><span class="lineno"> 3115</span> </div><div class="line"><a name="l03126"></a><span class="lineno"> 3126</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03127"></a><span class="lineno"> 3127</span> <a class="code" href="group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865">lws_sql_purify</a>(<span class="keywordtype">char</span> *escaped, <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03128"></a><span class="lineno"> 3128</span> </div><div class="line"><a name="l03139"></a><span class="lineno"> 3139</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03140"></a><span class="lineno"> 3140</span> <a class="code" href="group__pur.html#gab15187efcfa256b7c928562c182b92a3">lws_json_purify</a>(<span class="keywordtype">char</span> *escaped, <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keywordtype">string</span>, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03142"></a><span class="lineno"> 3142</span> </div><div class="line"><a name="l03149"></a><span class="lineno"> 3149</span> </div><div class="line"><a name="l03151"></a><span class="lineno"> 3151</span> <span class="preprocessor">#ifdef LWS_USE_LIBEV</span></div><div class="line"><a name="l03152"></a><span class="lineno"> 3152</span> <span class="keyword">typedef</span> void (lws_ev_signal_cb_t)(EV_P_ <span class="keyword">struct </span>ev_signal *w, <span class="keywordtype">int</span> revents);</div><div class="line"><a name="l03153"></a><span class="lineno"> 3153</span> </div><div class="line"><a name="l03154"></a><span class="lineno"> 3154</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03155"></a><span class="lineno"> 3155</span> lws_ev_sigint_cfg(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> use_ev_sigint,</div><div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>  lws_ev_signal_cb_t *cb);</div><div class="line"><a name="l03157"></a><span class="lineno"> 3157</span> </div><div class="line"><a name="l03158"></a><span class="lineno"> 3158</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03159"></a><span class="lineno"> 3159</span> lws_ev_initloop(<span class="keyword">struct</span> lws_context *context, <span class="keyword">struct</span> ev_loop *loop, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l03160"></a><span class="lineno"> 3160</span> </div><div class="line"><a name="l03161"></a><span class="lineno"> 3161</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03162"></a><span class="lineno"> 3162</span> lws_ev_sigint_cb(<span class="keyword">struct</span> ev_loop *loop, <span class="keyword">struct</span> ev_signal *watcher, <span class="keywordtype">int</span> revents);</div><div class="line"><a name="l03163"></a><span class="lineno"> 3163</span> <span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBEV */</span><span class="preprocessor"></span></div><div class="line"><a name="l03164"></a><span class="lineno"> 3164</span> </div><div class="line"><a name="l03166"></a><span class="lineno"> 3166</span> </div><div class="line"><a name="l03173"></a><span class="lineno"> 3173</span> <span class="preprocessor">#ifdef LWS_USE_LIBUV</span></div><div class="line"><a name="l03175"></a><span class="lineno"> 3175</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03176"></a><span class="lineno"> 3176</span> lws_uv_sigint_cfg(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> use_uv_sigint,</div><div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>  uv_signal_cb cb);</div><div class="line"><a name="l03178"></a><span class="lineno"> 3178</span> </div><div class="line"><a name="l03179"></a><span class="lineno"> 3179</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03180"></a><span class="lineno"> 3180</span> lws_libuv_run(<span class="keyword">const</span> <span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l03181"></a><span class="lineno"> 3181</span> </div><div class="line"><a name="l03182"></a><span class="lineno"> 3182</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03183"></a><span class="lineno"> 3183</span> lws_libuv_stop(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l03184"></a><span class="lineno"> 3184</span> </div><div class="line"><a name="l03185"></a><span class="lineno"> 3185</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03186"></a><span class="lineno"> 3186</span> lws_libuv_stop_without_kill(<span class="keyword">const</span> <span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l03187"></a><span class="lineno"> 3187</span> </div><div class="line"><a name="l03188"></a><span class="lineno"> 3188</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03189"></a><span class="lineno"> 3189</span> lws_uv_initloop(<span class="keyword">struct</span> lws_context *context, uv_loop_t *loop, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l03190"></a><span class="lineno"> 3190</span> </div><div class="line"><a name="l03191"></a><span class="lineno"> 3191</span> LWS_VISIBLE LWS_EXTERN uv_loop_t *</div><div class="line"><a name="l03192"></a><span class="lineno"> 3192</span> lws_uv_getloop(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l03193"></a><span class="lineno"> 3193</span> </div><div class="line"><a name="l03194"></a><span class="lineno"> 3194</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03195"></a><span class="lineno"> 3195</span> lws_uv_sigint_cb(uv_signal_t *watcher, <span class="keywordtype">int</span> signum);</div><div class="line"><a name="l03196"></a><span class="lineno"> 3196</span> <span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBUV */</span><span class="preprocessor"></span></div><div class="line"><a name="l03197"></a><span class="lineno"> 3197</span> </div><div class="line"><a name="l03204"></a><span class="lineno"> 3204</span> </div><div class="line"><a name="l03205"></a><span class="lineno"> 3205</span> <span class="comment">/*</span></div><div class="line"><a name="l03206"></a><span class="lineno"> 3206</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l03207"></a><span class="lineno"> 3207</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l03208"></a><span class="lineno"> 3208</span> <span class="comment"> */</span></div><div class="line"><a name="l03209"></a><span class="lineno"> 3209</span> <span class="keyword">enum</span> pending_timeout {</div><div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>  NO_PENDING_TIMEOUT = 0,</div><div class="line"><a name="l03211"></a><span class="lineno"> 3211</span>  PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE = 1,</div><div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>  PENDING_TIMEOUT_AWAITING_CONNECT_RESPONSE = 2,</div><div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>  PENDING_TIMEOUT_ESTABLISH_WITH_SERVER = 3,</div><div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>  PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE = 4,</div><div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>  PENDING_TIMEOUT_AWAITING_PING = 5,</div><div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>  PENDING_TIMEOUT_CLOSE_ACK = 6,</div><div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>  PENDING_TIMEOUT_AWAITING_EXTENSION_CONNECT_RESPONSE = 7,</div><div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>  PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE = 8,</div><div class="line"><a name="l03219"></a><span class="lineno"> 3219</span>  PENDING_TIMEOUT_SSL_ACCEPT = 9,</div><div class="line"><a name="l03220"></a><span class="lineno"> 3220</span>  PENDING_TIMEOUT_HTTP_CONTENT = 10,</div><div class="line"><a name="l03221"></a><span class="lineno"> 3221</span>  PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND = 11,</div><div class="line"><a name="l03222"></a><span class="lineno"> 3222</span>  PENDING_FLUSH_STORED_SEND_BEFORE_CLOSE = 12,</div><div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>  PENDING_TIMEOUT_SHUTDOWN_FLUSH = 13,</div><div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>  PENDING_TIMEOUT_CGI = 14,</div><div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>  PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE = 15,</div><div class="line"><a name="l03226"></a><span class="lineno"> 3226</span>  PENDING_TIMEOUT_WS_PONG_CHECK_SEND_PING = 16,</div><div class="line"><a name="l03227"></a><span class="lineno"> 3227</span>  PENDING_TIMEOUT_WS_PONG_CHECK_GET_PONG = 17,</div><div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>  PENDING_TIMEOUT_CLIENT_ISSUE_PAYLOAD = 18,</div><div class="line"><a name="l03229"></a><span class="lineno"> 3229</span> </div><div class="line"><a name="l03230"></a><span class="lineno"> 3230</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03231"></a><span class="lineno"> 3231</span> };</div><div class="line"><a name="l03232"></a><span class="lineno"> 3232</span> </div><div class="line"><a name="l03242"></a><span class="lineno"> 3242</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03243"></a><span class="lineno"> 3243</span> <a class="code" href="group__timeout.html#gaced9f9237f6172fed9f730a2af51345a">lws_set_timeout</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> pending_timeout reason, <span class="keywordtype">int</span> secs);</div><div class="line"><a name="l03245"></a><span class="lineno"> 3245</span> </div><div class="line"><a name="l03251"></a><span class="lineno"> 3251</span> <span class="preprocessor">#if !defined(LWS_SIZEOFPTR)</span></div><div class="line"><a name="l03252"></a><span class="lineno"> 3252</span> <span class="preprocessor">#define LWS_SIZEOFPTR (sizeof (void *))</span></div><div class="line"><a name="l03253"></a><span class="lineno"> 3253</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03254"></a><span class="lineno"> 3254</span> <span class="preprocessor">#if !defined(u_int64_t)</span></div><div class="line"><a name="l03255"></a><span class="lineno"> 3255</span> <span class="preprocessor">#define u_int64_t unsigned long long</span></div><div class="line"><a name="l03256"></a><span class="lineno"> 3256</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03257"></a><span class="lineno"> 3257</span> </div><div class="line"><a name="l03258"></a><span class="lineno"> 3258</span> <span class="preprocessor">#if defined(__x86_64__)</span></div><div class="line"><a name="l03259"></a><span class="lineno"> 3259</span> <span class="preprocessor">#define _LWS_PAD_SIZE 16 </span><span class="comment">/* Intel recommended for best performance */</span><span class="preprocessor"></span></div><div class="line"><a name="l03260"></a><span class="lineno"> 3260</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l03261"></a><span class="lineno"> 3261</span> <span class="preprocessor">#define _LWS_PAD_SIZE LWS_SIZEOFPTR </span><span class="comment">/* Size of a pointer on the target arch */</span><span class="preprocessor"></span></div><div class="line"><a name="l03262"></a><span class="lineno"> 3262</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03263"></a><span class="lineno"> 3263</span> <span class="preprocessor">#define _LWS_PAD(n) (((n) % _LWS_PAD_SIZE) ? \</span></div><div class="line"><a name="l03264"></a><span class="lineno"> 3264</span> <span class="preprocessor"> ((n) + (_LWS_PAD_SIZE - ((n) % _LWS_PAD_SIZE))) : (n))</span></div><div class="line"><a name="l03265"></a><span class="lineno"> 3265</span> <span class="preprocessor">#define LWS_PRE _LWS_PAD(4 + 10)</span></div><div class="line"><a name="l03266"></a><span class="lineno"> 3266</span> <span class="comment">/* used prior to 1.7 and retained for backward compatibility */</span></div><div class="line"><a name="l03267"></a><span class="lineno"> 3267</span> <span class="preprocessor">#define LWS_SEND_BUFFER_PRE_PADDING LWS_PRE</span></div><div class="line"><a name="l03268"></a><span class="lineno"> 3268</span> <span class="preprocessor">#define LWS_SEND_BUFFER_POST_PADDING 0</span></div><div class="line"><a name="l03269"></a><span class="lineno"> 3269</span> </div><div class="line"><a name="l03270"></a><span class="lineno"> 3270</span> <span class="comment">/*</span></div><div class="line"><a name="l03271"></a><span class="lineno"> 3271</span> <span class="comment"> * NOTE: These public enums are part of the abi. If you want to add one,</span></div><div class="line"><a name="l03272"></a><span class="lineno"> 3272</span> <span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l03273"></a><span class="lineno"> 3273</span> <span class="comment"> */</span></div><div class="line"><a name="l03274"></a><span class="lineno"><a class="line" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d"> 3274</a></span> <span class="keyword">enum</span> <a class="code" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a> {</div><div class="line"><a name="l03275"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db"> 3275</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a> = 0,</div><div class="line"><a name="l03279"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2"> 3279</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a> = 1,</div><div class="line"><a name="l03282"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826"> 3282</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a> = 2,</div><div class="line"><a name="l03285"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e"> 3285</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a> = 3,</div><div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>  <span class="comment">/* LWS_WRITE_CLOSE is handled by lws_close_reason() */</span></div><div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>  LWS_WRITE_PING = 5,</div><div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>  LWS_WRITE_PONG = 6,</div><div class="line"><a name="l03291"></a><span class="lineno"> 3291</span> </div><div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>  <span class="comment">/* Same as write_http but we know this write ends the transaction */</span></div><div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>  LWS_WRITE_HTTP_FINAL = 7,</div><div class="line"><a name="l03294"></a><span class="lineno"> 3294</span> </div><div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>  <span class="comment">/* HTTP2 */</span></div><div class="line"><a name="l03296"></a><span class="lineno"> 3296</span> </div><div class="line"><a name="l03297"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917"> 3297</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a> = 8,</div><div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>  <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03305"></a><span class="lineno"> 3305</span> </div><div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>  <span class="comment">/* flags */</span></div><div class="line"><a name="l03307"></a><span class="lineno"> 3307</span> </div><div class="line"><a name="l03308"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3"> 3308</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,</div><div class="line"><a name="l03311"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"> 3311</a></span>  <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a> = 0x80</div><div class="line"><a name="l03315"></a><span class="lineno"> 3315</span> };</div><div class="line"><a name="l03316"></a><span class="lineno"> 3316</span> </div><div class="line"><a name="l03317"></a><span class="lineno"> 3317</span> </div><div class="line"><a name="l03404"></a><span class="lineno"> 3404</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03405"></a><span class="lineno"> 3405</span> <a class="code" href="group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001">lws_write</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len,</div><div class="line"><a name="l03406"></a><span class="lineno"> 3406</span>  <span class="keyword">enum</span> <a class="code" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a> protocol);</div><div class="line"><a name="l03407"></a><span class="lineno"> 3407</span> </div><div class="line"><a name="l03408"></a><span class="lineno"> 3408</span> <span class="comment">/* helper for case where buffer may be const */</span></div><div class="line"><a name="l03409"></a><span class="lineno"> 3409</span> <span class="preprocessor">#define lws_write_http(wsi, buf, len) \</span></div><div class="line"><a name="l03410"></a><span class="lineno"> 3410</span> <span class="preprocessor"> lws_write(wsi, (unsigned char *)(buf), len, LWS_WRITE_HTTP)</span></div><div class="line"><a name="l03411"></a><span class="lineno"> 3411</span> </div><div class="line"><a name="l03431"></a><span class="lineno"> 3431</span> </div><div class="line"><a name="l03444"></a><span class="lineno"> 3444</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03445"></a><span class="lineno"> 3445</span> <a class="code" href="group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d">lws_callback_on_writable</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03446"></a><span class="lineno"> 3446</span> </div><div class="line"><a name="l03460"></a><span class="lineno"> 3460</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03461"></a><span class="lineno"> 3461</span> <a class="code" href="group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107">lws_callback_on_writable_all_protocol</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l03462"></a><span class="lineno"> 3462</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *protocol);</div><div class="line"><a name="l03463"></a><span class="lineno"> 3463</span> </div><div class="line"><a name="l03477"></a><span class="lineno"> 3477</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03478"></a><span class="lineno"> 3478</span> <a class="code" href="group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8">lws_callback_on_writable_all_protocol_vhost</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws_vhost *vhost,</div><div class="line"><a name="l03479"></a><span class="lineno"> 3479</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *protocol);</div><div class="line"><a name="l03480"></a><span class="lineno"> 3480</span> </div><div class="line"><a name="l03493"></a><span class="lineno"> 3493</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03494"></a><span class="lineno"> 3494</span> <a class="code" href="group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70">lws_callback_all_protocol</a>(<span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l03495"></a><span class="lineno"> 3495</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *protocol, <span class="keywordtype">int</span> reason);</div><div class="line"><a name="l03496"></a><span class="lineno"> 3496</span> </div><div class="line"><a name="l03509"></a><span class="lineno"> 3509</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03510"></a><span class="lineno"> 3510</span> <a class="code" href="group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053">lws_callback_all_protocol_vhost</a>(<span class="keyword">struct</span> lws_vhost *vh,</div><div class="line"><a name="l03511"></a><span class="lineno"> 3511</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *protocol, <span class="keywordtype">int</span> reason);</div><div class="line"><a name="l03512"></a><span class="lineno"> 3512</span> </div><div class="line"><a name="l03526"></a><span class="lineno"> 3526</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03527"></a><span class="lineno"> 3527</span> <a class="code" href="group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5">lws_callback_vhost_protocols</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">int</span> reason, <span class="keywordtype">void</span> *in, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03528"></a><span class="lineno"> 3528</span> </div><div class="line"><a name="l03529"></a><span class="lineno"> 3529</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03530"></a><span class="lineno"> 3530</span> lws_callback_http_dummy(<span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> <a class="code" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">lws_callback_reasons</a> reason,</div><div class="line"><a name="l03531"></a><span class="lineno"> 3531</span>  <span class="keywordtype">void</span> *user, <span class="keywordtype">void</span> *in, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l03532"></a><span class="lineno"> 3532</span> </div><div class="line"><a name="l03540"></a><span class="lineno"> 3540</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03541"></a><span class="lineno"> 3541</span> <a class="code" href="group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba">lws_get_socket_fd</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03542"></a><span class="lineno"> 3542</span> </div><div class="line"><a name="l03564"></a><span class="lineno"> 3564</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">size_t</span></div><div class="line"><a name="l03565"></a><span class="lineno"> 3565</span> <a class="code" href="group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde">lws_get_peer_write_allowance</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03567"></a><span class="lineno"> 3567</span> </div><div class="line"><a name="l03578"></a><span class="lineno"> 3578</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03579"></a><span class="lineno"> 3579</span> <a class="code" href="libwebsockets_8h.html#adf4abd01e8c43f07c6e498ce13590c3e">lws_rx_flow_control</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">int</span> enable);</div><div class="line"><a name="l03580"></a><span class="lineno"> 3580</span> </div><div class="line"><a name="l03590"></a><span class="lineno"> 3590</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03591"></a><span class="lineno"> 3591</span> <a class="code" href="libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672">lws_rx_flow_allow_all_protocol</a>(<span class="keyword">const</span> <span class="keyword">struct</span> lws_context *context,</div><div class="line"><a name="l03592"></a><span class="lineno"> 3592</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocols.html">lws_protocols</a> *protocol);</div><div class="line"><a name="l03593"></a><span class="lineno"> 3593</span> </div><div class="line"><a name="l03610"></a><span class="lineno"> 3610</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">size_t</span></div><div class="line"><a name="l03611"></a><span class="lineno"> 3611</span> <a class="code" href="libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536">lws_remaining_packet_payload</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l03612"></a><span class="lineno"> 3612</span> </div><div class="line"><a name="l03613"></a><span class="lineno"> 3613</span> </div><div class="line"><a name="l03622"></a><span class="lineno"> 3622</span> </div><div class="line"><a name="l03636"></a><span class="lineno"> 3636</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03637"></a><span class="lineno"> 3637</span> <a class="code" href="group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af">lws_adopt_socket</a>(<span class="keyword">struct</span> lws_context *context, lws_sockfd_type accept_fd);</div><div class="line"><a name="l03650"></a><span class="lineno"> 3650</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03651"></a><span class="lineno"> 3651</span> <a class="code" href="group__sock-adopt.html#ga18747e81ff49df2076e7cd4f131f967c">lws_adopt_socket_vhost</a>(<span class="keyword">struct</span> lws_vhost *vh, lws_sockfd_type accept_fd);</div><div class="line"><a name="l03675"></a><span class="lineno"> 3675</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03676"></a><span class="lineno"> 3676</span> <a class="code" href="group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b">lws_adopt_socket_readbuf</a>(<span class="keyword">struct</span> lws_context *context, lws_sockfd_type accept_fd,</div><div class="line"><a name="l03677"></a><span class="lineno"> 3677</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *readbuf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l03701"></a><span class="lineno"> 3701</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03702"></a><span class="lineno"> 3702</span> <a class="code" href="group__sock-adopt.html#ga5ed5fd251ac0ed46798af341c33bf067">lws_adopt_socket_vhost_readbuf</a>(<span class="keyword">struct</span> lws_vhost *vhost, lws_sockfd_type accept_fd,</div><div class="line"><a name="l03703"></a><span class="lineno"> 3703</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *readbuf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l03705"></a><span class="lineno"> 3705</span> </div><div class="line"><a name="l03711"></a><span class="lineno"> 3711</span> </div><div class="line"><a name="l03722"></a><span class="lineno"> 3722</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03723"></a><span class="lineno"> 3723</span> <a class="code" href="group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4">lws_canonical_hostname</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l03724"></a><span class="lineno"> 3724</span> </div><div class="line"><a name="l03739"></a><span class="lineno"> 3739</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03740"></a><span class="lineno"> 3740</span> <a class="code" href="group__net.html#ga092e5f473b3347f03ffeef8a950080f3">lws_get_peer_addresses</a>(<span class="keyword">struct</span> lws *wsi, lws_sockfd_type fd, <span class="keywordtype">char</span> *name,</div><div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>  <span class="keywordtype">int</span> name_len, <span class="keywordtype">char</span> *rip, <span class="keywordtype">int</span> rip_len);</div><div class="line"><a name="l03742"></a><span class="lineno"> 3742</span> </div><div class="line"><a name="l03753"></a><span class="lineno"> 3753</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03754"></a><span class="lineno"> 3754</span> <a class="code" href="group__net.html#gad01014fed09759741b6d23afccfdaacc">lws_get_peer_simple</a>(<span class="keyword">struct</span> lws *wsi, <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> namelen);</div><div class="line"><a name="l03755"></a><span class="lineno"> 3755</span> <span class="preprocessor">#ifndef LWS_WITH_ESP8266</span></div><div class="line"><a name="l03756"></a><span class="lineno"> 3756</span> </div><div class="line"><a name="l03767"></a><span class="lineno"> 3767</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03768"></a><span class="lineno"> 3768</span> <a class="code" href="group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8">lws_interface_to_sa</a>(<span class="keywordtype">int</span> ipv6, <span class="keyword">const</span> <span class="keywordtype">char</span> *ifname, <span class="keyword">struct</span> sockaddr_in *addr,</div><div class="line"><a name="l03769"></a><span class="lineno"> 3769</span>  <span class="keywordtype">size_t</span> addrlen);</div><div class="line"><a name="l03771"></a><span class="lineno"> 3771</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l03772"></a><span class="lineno"> 3772</span> </div><div class="line"><a name="l03778"></a><span class="lineno"> 3778</span> </div><div class="line"><a name="l03791"></a><span class="lineno"> 3791</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03792"></a><span class="lineno"> 3792</span> <a class="code" href="group__misc.html#ga2163492f17db959a36967adb73d823b4">lws_snprintf</a>(<span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...) LWS_FORMAT(3);</div><div class="line"><a name="l03793"></a><span class="lineno"> 3793</span> </div><div class="line"><a name="l03805"></a><span class="lineno"> 3805</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03806"></a><span class="lineno"> 3806</span> <a class="code" href="group__misc.html#ga58f906c6be0ca80efd813f694569dd4a">lws_get_random</a>(struct lws_context *context, <span class="keywordtype">void</span> *buf, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l03814"></a><span class="lineno"> 3814</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03815"></a><span class="lineno"> 3815</span> <a class="code" href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">lws_daemonize</a>(const <span class="keywordtype">char</span> *_lock_path);</div><div class="line"><a name="l03821"></a><span class="lineno"> 3821</span> LWS_VISIBLE LWS_EXTERN const <span class="keywordtype">char</span> * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03822"></a><span class="lineno"> 3822</span> <a class="code" href="group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0">lws_get_library_version</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l03823"></a><span class="lineno"> 3823</span> </div><div class="line"><a name="l03830"></a><span class="lineno"> 3830</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l03831"></a><span class="lineno"> 3831</span> <a class="code" href="group__misc.html#gaa194584fff9698f3b280658f770ccd0f">lws_wsi_user</a>(struct lws *wsi);</div><div class="line"><a name="l03832"></a><span class="lineno"> 3832</span> </div><div class="line"><a name="l03844"></a><span class="lineno"> 3844</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03845"></a><span class="lineno"> 3845</span> <a class="code" href="group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa">lws_parse_uri</a>(<span class="keywordtype">char</span> *p, const <span class="keywordtype">char</span> **prot, const <span class="keywordtype">char</span> **ads, <span class="keywordtype">int</span> *port,</div><div class="line"><a name="l03846"></a><span class="lineno"> 3846</span>  const <span class="keywordtype">char</span> **path);</div><div class="line"><a name="l03847"></a><span class="lineno"> 3847</span> </div><div class="line"><a name="l03851"></a><span class="lineno"> 3851</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span></div><div class="line"><a name="l03852"></a><span class="lineno"> 3852</span> <a class="code" href="group__misc.html#ga33bf2635033710b25f931b57ed663e1e">lws_now_secs</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l03853"></a><span class="lineno"> 3853</span> </div><div class="line"><a name="l03863"></a><span class="lineno"> 3863</span> LWS_VISIBLE LWS_EXTERN struct lws_context * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03864"></a><span class="lineno"> 3864</span> <a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(const struct lws *wsi);</div><div class="line"><a name="l03865"></a><span class="lineno"> 3865</span> </div><div class="line"><a name="l03875"></a><span class="lineno"> 3875</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03876"></a><span class="lineno"> 3876</span> <a class="code" href="group__misc.html#ga629f48268fd1856b54b11172991b97d9">lws_get_count_threads</a>(struct lws_context *context);</div><div class="line"><a name="l03877"></a><span class="lineno"> 3877</span> </div><div class="line"><a name="l03885"></a><span class="lineno"> 3885</span> LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03886"></a><span class="lineno"> 3886</span> <a class="code" href="group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899">lws_get_parent</a>(const struct lws *wsi);</div><div class="line"><a name="l03887"></a><span class="lineno"> 3887</span> </div><div class="line"><a name="l03894"></a><span class="lineno"> 3894</span> LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03895"></a><span class="lineno"> 3895</span> <a class="code" href="group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234">lws_get_child</a>(const struct lws *wsi);</div><div class="line"><a name="l03896"></a><span class="lineno"> 3896</span> </div><div class="line"><a name="l03897"></a><span class="lineno"> 3897</span> </div><div class="line"><a name="l03898"></a><span class="lineno"> 3898</span> <span class="comment">/*</span></div><div class="line"><a name="l03899"></a><span class="lineno"> 3899</span> <span class="comment"> * \deprecated DEPRECATED Note: this is not normally needed as a user api.</span></div><div class="line"><a name="l03900"></a><span class="lineno"> 3900</span> <span class="comment"> * It's provided in case it is</span></div><div class="line"><a name="l03901"></a><span class="lineno"> 3901</span> <span class="comment"> * useful when integrating with other app poll loop service code.</span></div><div class="line"><a name="l03902"></a><span class="lineno"> 3902</span> <span class="comment"> */</span></div><div class="line"><a name="l03903"></a><span class="lineno"> 3903</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03904"></a><span class="lineno"> 3904</span> lws_read(struct lws *wsi, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l03905"></a><span class="lineno"> 3905</span> </div><div class="line"><a name="l03913"></a><span class="lineno"> 3913</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03914"></a><span class="lineno"> 3914</span> <a class="code" href="group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b">lws_set_allocator</a>(<span class="keywordtype">void</span> *(*realloc)(<span class="keywordtype">void</span> *ptr, <span class="keywordtype">size_t</span> size));</div><div class="line"><a name="l03916"></a><span class="lineno"> 3916</span> </div><div class="line"><a name="l03922"></a><span class="lineno"> 3922</span> </div><div class="line"><a name="l03929"></a><span class="lineno"> 3929</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03930"></a><span class="lineno"> 3930</span> <a class="code" href="group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421">lws_send_pipe_choked</a>(struct lws *wsi);</div><div class="line"><a name="l03931"></a><span class="lineno"> 3931</span> </div><div class="line"><a name="l03936"></a><span class="lineno"> 3936</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03937"></a><span class="lineno"> 3937</span> <a class="code" href="group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37">lws_is_final_fragment</a>(struct lws *wsi);</div><div class="line"><a name="l03938"></a><span class="lineno"> 3938</span> </div><div class="line"><a name="l03943"></a><span class="lineno"> 3943</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span></div><div class="line"><a name="l03944"></a><span class="lineno"> 3944</span> <a class="code" href="group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2">lws_get_reserved_bits</a>(struct lws *wsi);</div><div class="line"><a name="l03945"></a><span class="lineno"> 3945</span> </div><div class="line"><a name="l03962"></a><span class="lineno"> 3962</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03963"></a><span class="lineno"> 3963</span> <a class="code" href="group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85">lws_partial_buffered</a>(struct lws *wsi);</div><div class="line"><a name="l03964"></a><span class="lineno"> 3964</span> </div><div class="line"><a name="l03974"></a><span class="lineno"> 3974</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03975"></a><span class="lineno"> 3975</span> <a class="code" href="group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd">lws_frame_is_binary</a>(struct lws *wsi);</div><div class="line"><a name="l03976"></a><span class="lineno"> 3976</span> </div><div class="line"><a name="l03985"></a><span class="lineno"> 3985</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03986"></a><span class="lineno"> 3986</span> <a class="code" href="group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa">lws_is_ssl</a>(struct lws *wsi);</div><div class="line"><a name="l03991"></a><span class="lineno"> 3991</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03992"></a><span class="lineno"> 3992</span> <a class="code" href="group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1">lws_is_cgi</a>(struct lws *wsi);</div><div class="line"><a name="l03993"></a><span class="lineno"> 3993</span> </div><div class="line"><a name="l03994"></a><span class="lineno"> 3994</span> <span class="preprocessor">#ifdef LWS_OPENSSL_SUPPORT</span></div><div class="line"><a name="l03995"></a><span class="lineno"> 3995</span> </div><div class="line"><a name="l04001"></a><span class="lineno"> 4001</span> LWS_VISIBLE LWS_EXTERN SSL*</div><div class="line"><a name="l04002"></a><span class="lineno"> 4002</span> <a class="code" href="group__wsstatus.html#ga42152ffb385f9b19f4e7b04f998425de">lws_get_ssl</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l04003"></a><span class="lineno"> 4003</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04004"></a><span class="lineno"> 4004</span> </div><div class="line"><a name="l04006"></a><span class="lineno"> 4006</span> </div><div class="line"><a name="l04012"></a><span class="lineno"> 4012</span> <span class="preprocessor">#ifdef LWS_SHA1_USE_OPENSSL_NAME</span></div><div class="line"><a name="l04014"></a><span class="lineno"> 4014</span> <span class="preprocessor">#define lws_SHA1 SHA1</span></div><div class="line"><a name="l04015"></a><span class="lineno"> 4015</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l04016"></a><span class="lineno"> 4016</span> </div><div class="line"><a name="l04025"></a><span class="lineno"> 4025</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l04026"></a><span class="lineno"> 4026</span> <a class="code" href="group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5">lws_SHA1</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *d, <span class="keywordtype">size_t</span> n, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *md);</div><div class="line"><a name="l04027"></a><span class="lineno"> 4027</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04028"></a><span class="lineno"> 4028</span> </div><div class="line"><a name="l04038"></a><span class="lineno"> 4038</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04039"></a><span class="lineno"> 4039</span> <a class="code" href="group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575">lws_b64_encode_string</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *in, <span class="keywordtype">int</span> in_len, <span class="keywordtype">char</span> *out, <span class="keywordtype">int</span> out_size);</div><div class="line"><a name="l04049"></a><span class="lineno"> 4049</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04050"></a><span class="lineno"> 4050</span> <a class="code" href="group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d">lws_b64_decode_string</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *in, <span class="keywordtype">char</span> *out, <span class="keywordtype">int</span> out_size);</div><div class="line"><a name="l04052"></a><span class="lineno"> 4052</span> </div><div class="line"><a name="l04053"></a><span class="lineno"> 4053</span> </div><div class="line"><a name="l04063"></a><span class="lineno"> 4063</span> <span class="preprocessor">#ifdef LWS_WITH_CGI</span></div><div class="line"><a name="l04064"></a><span class="lineno"> 4064</span> <span class="keyword">enum</span> lws_enum_stdinouterr {</div><div class="line"><a name="l04065"></a><span class="lineno"> 4065</span>  LWS_STDIN = 0,</div><div class="line"><a name="l04066"></a><span class="lineno"> 4066</span>  LWS_STDOUT = 1,</div><div class="line"><a name="l04067"></a><span class="lineno"> 4067</span>  LWS_STDERR = 2,</div><div class="line"><a name="l04068"></a><span class="lineno"> 4068</span> };</div><div class="line"><a name="l04069"></a><span class="lineno"> 4069</span> </div><div class="line"><a name="l04070"></a><span class="lineno"> 4070</span> <span class="keyword">enum</span> lws_cgi_hdr_state {</div><div class="line"><a name="l04071"></a><span class="lineno"> 4071</span>  LCHS_HEADER,</div><div class="line"><a name="l04072"></a><span class="lineno"> 4072</span>  LCHS_CR1,</div><div class="line"><a name="l04073"></a><span class="lineno"> 4073</span>  LCHS_LF1,</div><div class="line"><a name="l04074"></a><span class="lineno"> 4074</span>  LCHS_CR2,</div><div class="line"><a name="l04075"></a><span class="lineno"> 4075</span>  LCHS_LF2,</div><div class="line"><a name="l04076"></a><span class="lineno"> 4076</span>  LHCS_PAYLOAD,</div><div class="line"><a name="l04077"></a><span class="lineno"> 4077</span>  LCHS_SINGLE_0A,</div><div class="line"><a name="l04078"></a><span class="lineno"> 4078</span> };</div><div class="line"><a name="l04079"></a><span class="lineno"> 4079</span> </div><div class="line"><a name="l04080"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html"> 4080</a></span> <span class="keyword">struct </span><a class="code" href="structlws__cgi__args.html">lws_cgi_args</a> {</div><div class="line"><a name="l04081"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1"> 4081</a></span>  <span class="keyword">struct </span>lws **<a class="code" href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1">stdwsi</a>; </div><div class="line"><a name="l04082"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#adeee220b29aeacc34632c38e50f0f5a5"> 4082</a></span>  <span class="keyword">enum</span> lws_enum_stdinouterr ch; </div><div class="line"><a name="l04083"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7"> 4083</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7">data</a>; </div><div class="line"><a name="l04084"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a741c11b9aa05997ec45a3400d7fb7739"> 4084</a></span>  <span class="keyword">enum</span> lws_cgi_hdr_state hdr_state; </div><div class="line"><a name="l04085"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d"> 4085</a></span>  <span class="keywordtype">int</span> <a class="code" href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d">len</a>; </div><div class="line"><a name="l04086"></a><span class="lineno"> 4086</span> };</div><div class="line"><a name="l04087"></a><span class="lineno"> 4087</span> </div><div class="line"><a name="l04088"></a><span class="lineno"> 4088</span> </div><div class="line"><a name="l04098"></a><span class="lineno"> 4098</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04099"></a><span class="lineno"> 4099</span> <a class="code" href="libwebsockets_8h.html#af52923473c59e643a974d65e12290831">lws_cgi</a>(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> *exec_array,</div><div class="line"><a name="l04100"></a><span class="lineno"> 4100</span>  <span class="keywordtype">int</span> script_uri_path_len, <span class="keywordtype">int</span> timeout_secs,</div><div class="line"><a name="l04101"></a><span class="lineno"> 4101</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a> *mp_cgienv);</div><div class="line"><a name="l04102"></a><span class="lineno"> 4102</span> </div><div class="line"><a name="l04108"></a><span class="lineno"> 4108</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04109"></a><span class="lineno"> 4109</span> <a class="code" href="libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2">lws_cgi_write_split_stdout_headers</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l04110"></a><span class="lineno"> 4110</span> </div><div class="line"><a name="l04116"></a><span class="lineno"> 4116</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04117"></a><span class="lineno"> 4117</span> <a class="code" href="libwebsockets_8h.html#a27bb0b3cdcd0af839c928c253b521ff4">lws_cgi_kill</a>(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l04118"></a><span class="lineno"> 4118</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04119"></a><span class="lineno"> 4119</span> </div><div class="line"><a name="l04121"></a><span class="lineno"> 4121</span> </div><div class="line"><a name="l04138"></a><span class="lineno"> 4138</span> </div><div class="line"><a name="l04144"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html"> 4144</a></span> <span class="keyword">struct </span><a class="code" href="structlws__plat__file__ops.html">lws_plat_file_ops</a> {</div><div class="line"><a name="l04145"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32"> 4145</a></span>  lws_filefd_type (*open)(<span class="keyword">struct </span>lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> *filename,</div><div class="line"><a name="l04146"></a><span class="lineno"> 4146</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *filelen, <span class="keywordtype">int</span> flags);</div><div class="line"><a name="l04150"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b"> 4150</a></span>  int (*close)(<span class="keyword">struct </span>lws *wsi, lws_filefd_type fd);</div><div class="line"><a name="l04152"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869"> 4152</a></span>  <span class="keywordtype">unsigned</span> long (*seek_cur)(<span class="keyword">struct </span>lws *wsi, lws_filefd_type fd,</div><div class="line"><a name="l04153"></a><span class="lineno"> 4153</span>  <span class="keywordtype">long</span> offset_from_cur_pos);</div><div class="line"><a name="l04155"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40"> 4155</a></span>  int (*read)(<span class="keyword">struct </span>lws *wsi, lws_filefd_type fd, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *amount,</div><div class="line"><a name="l04156"></a><span class="lineno"> 4156</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> len);</div><div class="line"><a name="l04158"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793"> 4158</a></span>  int (*write)(<span class="keyword">struct </span>lws *wsi, lws_filefd_type fd, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *amount,</div><div class="line"><a name="l04159"></a><span class="lineno"> 4159</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> len);</div><div class="line"><a name="l04162"></a><span class="lineno"> 4162</span>  <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l04163"></a><span class="lineno"> 4163</span> <span class="comment"> * This is part of the ABI, don't needlessly break compatibility */</span></div><div class="line"><a name="l04164"></a><span class="lineno"> 4164</span> };</div><div class="line"><a name="l04165"></a><span class="lineno"> 4165</span> </div><div class="line"><a name="l04171"></a><span class="lineno"> 4171</span> LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span><a class="code" href="structlws__plat__file__ops.html">lws_plat_file_ops</a> * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l04172"></a><span class="lineno"> 4172</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l04173"></a><span class="lineno"> 4173</span> </div><div class="line"><a name="l04182"></a><span class="lineno"> 4182</span> <span class="keyword">static</span> LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l04183"></a><span class="lineno"> 4183</span> lws_plat_file_open(<span class="keyword">struct</span> lws *wsi, <span class="keyword">const</span> <span class="keywordtype">char</span> *filename,</div><div class="line"><a name="l04184"></a><span class="lineno"> 4184</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *filelen, <span class="keywordtype">int</span> flags)</div><div class="line"><a name="l04185"></a><span class="lineno"> 4185</span> {</div><div class="line"><a name="l04186"></a><span class="lineno"> 4186</span>  <span class="keywordflow">return</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(wsi))-><a class="code" href="structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32">open</a>(wsi, filename,</div><div class="line"><a name="l04187"></a><span class="lineno"> 4187</span>  filelen, flags);</div><div class="line"><a name="l04188"></a><span class="lineno"> 4188</span> }</div><div class="line"><a name="l04189"></a><span class="lineno"> 4189</span> </div><div class="line"><a name="l04196"></a><span class="lineno"> 4196</span> <span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span></div><div class="line"><a name="l04197"></a><span class="lineno"> 4197</span> lws_plat_file_close(<span class="keyword">struct</span> lws *wsi, lws_filefd_type fd)</div><div class="line"><a name="l04198"></a><span class="lineno"> 4198</span> {</div><div class="line"><a name="l04199"></a><span class="lineno"> 4199</span>  <span class="keywordflow">return</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(wsi))-><a class="code" href="structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b">close</a>(wsi, fd);</div><div class="line"><a name="l04200"></a><span class="lineno"> 4200</span> }</div><div class="line"><a name="l04201"></a><span class="lineno"> 4201</span> </div><div class="line"><a name="l04209"></a><span class="lineno"> 4209</span> <span class="keyword">static</span> LWS_INLINE <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span></div><div class="line"><a name="l04210"></a><span class="lineno"> 4210</span> lws_plat_file_seek_cur(<span class="keyword">struct</span> lws *wsi, lws_filefd_type fd, <span class="keywordtype">long</span> offset)</div><div class="line"><a name="l04211"></a><span class="lineno"> 4211</span> {</div><div class="line"><a name="l04212"></a><span class="lineno"> 4212</span>  <span class="keywordflow">return</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(wsi))-><a class="code" href="structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869">seek_cur</a>(wsi, fd, offset);</div><div class="line"><a name="l04213"></a><span class="lineno"> 4213</span> }</div><div class="line"><a name="l04223"></a><span class="lineno"> 4223</span> <span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l04224"></a><span class="lineno"> 4224</span> lws_plat_file_read(<span class="keyword">struct</span> lws *wsi, lws_filefd_type fd, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *amount,</div><div class="line"><a name="l04225"></a><span class="lineno"> 4225</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> len)</div><div class="line"><a name="l04226"></a><span class="lineno"> 4226</span> {</div><div class="line"><a name="l04227"></a><span class="lineno"> 4227</span>  <span class="keywordflow">return</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(wsi))-><a class="code" href="structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40">read</a>(wsi, fd, amount, buf,</div><div class="line"><a name="l04228"></a><span class="lineno"> 4228</span>  len);</div><div class="line"><a name="l04229"></a><span class="lineno"> 4229</span> }</div><div class="line"><a name="l04239"></a><span class="lineno"> 4239</span> <span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l04240"></a><span class="lineno"> 4240</span> lws_plat_file_write(<span class="keyword">struct</span> lws *wsi, lws_filefd_type fd, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *amount,</div><div class="line"><a name="l04241"></a><span class="lineno"> 4241</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> len)</div><div class="line"><a name="l04242"></a><span class="lineno"> 4242</span> {</div><div class="line"><a name="l04243"></a><span class="lineno"> 4243</span>  <span class="keywordflow">return</span> <a class="code" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a>(<a class="code" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a>(wsi))-><a class="code" href="structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793">write</a>(wsi, fd, amount, buf,</div><div class="line"><a name="l04244"></a><span class="lineno"> 4244</span>  len);</div><div class="line"><a name="l04245"></a><span class="lineno"> 4245</span> }</div><div class="line"><a name="l04247"></a><span class="lineno"> 4247</span> </div><div class="line"><a name="l04279"></a><span class="lineno"> 4279</span> <span class="preprocessor">#ifdef LWS_WITH_SMTP</span></div><div class="line"><a name="l04280"></a><span class="lineno"> 4280</span> </div><div class="line"><a name="l04282"></a><span class="lineno"><a class="line" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0"> 4282</a></span> <span class="keyword">enum</span> <a class="code" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">lwsgs_smtp_states</a> {</div><div class="line"><a name="l04283"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c"> 4283</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l04284"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933"> 4284</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l04285"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"> 4285</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l04286"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad"> 4286</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l04287"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab"> 4287</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l04288"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83"> 4288</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l04289"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14"> 4289</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l04290"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69"> 4290</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l04291"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5"> 4291</a></span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l04292"></a><span class="lineno"> 4292</span> };</div><div class="line"><a name="l04293"></a><span class="lineno"> 4293</span> </div><div class="line"><a name="l04295"></a><span class="lineno"><a class="line" href="structlws__email.html"> 4295</a></span> <span class="keyword">struct </span><a class="code" href="structlws__email.html">lws_email</a> {</div><div class="line"><a name="l04296"></a><span class="lineno"><a class="line" href="structlws__email.html#add1341456045382c183f4c763bdea6bc"> 4296</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structlws__email.html#add1341456045382c183f4c763bdea6bc">data</a>;</div><div class="line"><a name="l04298"></a><span class="lineno"><a class="line" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168"> 4298</a></span>  uv_loop_t *<a class="code" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168">loop</a>;</div><div class="line"><a name="l04301"></a><span class="lineno"><a class="line" href="structlws__email.html#a472ae23fc9fca6599e5c512bc21458d2"> 4301</a></span>  <span class="keywordtype">char</span> email_smtp_ip[32]; </div><div class="line"><a name="l04302"></a><span class="lineno"><a class="line" href="structlws__email.html#a939e5d7ee0339a16de73bde71ab4d4d9"> 4302</a></span>  <span class="keywordtype">char</span> email_helo[32]; </div><div class="line"><a name="l04303"></a><span class="lineno"><a class="line" href="structlws__email.html#af7f0ae934347d81071f63a963301f9e2"> 4303</a></span>  <span class="keywordtype">char</span> email_from[100]; </div><div class="line"><a name="l04304"></a><span class="lineno"><a class="line" href="structlws__email.html#a6453a8b92b3de6d2c2101af3edce685e"> 4304</a></span>  <span class="keywordtype">char</span> email_to[100]; </div><div class="line"><a name="l04306"></a><span class="lineno"><a class="line" href="structlws__email.html#a7bbc1964889c984b3da723c86a210e05"> 4306</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlws__email.html#a7bbc1964889c984b3da723c86a210e05">max_content_size</a>;</div><div class="line"><a name="l04309"></a><span class="lineno"> 4309</span>  <span class="comment">/* Fill all the callbacks before init */</span></div><div class="line"><a name="l04310"></a><span class="lineno"> 4310</span> </div><div class="line"><a name="l04311"></a><span class="lineno"><a class="line" href="structlws__email.html#ad8dc60353ee246d84dd59ec0591e9719"> 4311</a></span>  int (*on_next)(<span class="keyword">struct </span><a class="code" href="structlws__email.html">lws_email</a> *email);</div><div class="line"><a name="l04316"></a><span class="lineno"><a class="line" href="structlws__email.html#a39ef6263d58eb40cca417c8697b227d8"> 4316</a></span>  int (*<a class="code" href="structlws__email.html#a39ef6263d58eb40cca417c8697b227d8">on_sent</a>)(<span class="keyword">struct </span><a class="code" href="structlws__email.html">lws_email</a> *email);</div><div class="line"><a name="l04321"></a><span class="lineno"><a class="line" href="structlws__email.html#a2aff78c8e04db243052aa91b4d87e987"> 4321</a></span>  int (*<a class="code" href="structlws__email.html#a2aff78c8e04db243052aa91b4d87e987">on_get_body</a>)(<span class="keyword">struct </span><a class="code" href="structlws__email.html">lws_email</a> *email, <span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l04327"></a><span class="lineno"> 4327</span>  <span class="comment">/* private things */</span></div><div class="line"><a name="l04328"></a><span class="lineno"><a class="line" href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be"> 4328</a></span>  uv_timer_t <a class="code" href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be">timeout_email</a>; </div><div class="line"><a name="l04329"></a><span class="lineno"><a class="line" href="structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3"> 4329</a></span>  <span class="keyword">enum</span> <a class="code" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">lwsgs_smtp_states</a> <a class="code" href="structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3">estate</a>; </div><div class="line"><a name="l04330"></a><span class="lineno"><a class="line" href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3"> 4330</a></span>  uv_connect_t <a class="code" href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3">email_connect_req</a>; </div><div class="line"><a name="l04331"></a><span class="lineno"><a class="line" href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e"> 4331</a></span>  uv_tcp_t <a class="code" href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e">email_client</a>; </div><div class="line"><a name="l04332"></a><span class="lineno"><a class="line" href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1"> 4332</a></span>  time_t <a class="code" href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1">email_connect_started</a>; </div><div class="line"><a name="l04333"></a><span class="lineno"><a class="line" href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82"> 4333</a></span>  <span class="keywordtype">char</span> <a class="code" href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82">email_buf</a>[256]; </div><div class="line"><a name="l04334"></a><span class="lineno"><a class="line" href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed"> 4334</a></span>  <span class="keywordtype">char</span> *<a class="code" href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed">content</a>; </div><div class="line"><a name="l04335"></a><span class="lineno"> 4335</span> };</div><div class="line"><a name="l04336"></a><span class="lineno"> 4336</span> </div><div class="line"><a name="l04346"></a><span class="lineno"> 4346</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l04347"></a><span class="lineno"> 4347</span> <a class="code" href="group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29">lws_email_init</a>(<span class="keyword">struct</span> <a class="code" href="structlws__email.html">lws_email</a> *email, uv_loop_t *<a class="code" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168">loop</a>, <span class="keywordtype">int</span> max_content);</div><div class="line"><a name="l04348"></a><span class="lineno"> 4348</span> </div><div class="line"><a name="l04357"></a><span class="lineno"> 4357</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l04358"></a><span class="lineno"> 4358</span> <a class="code" href="group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb">lws_email_check</a>(<span class="keyword">struct</span> <a class="code" href="structlws__email.html">lws_email</a> *email);</div><div class="line"><a name="l04366"></a><span class="lineno"> 4366</span> LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l04367"></a><span class="lineno"> 4367</span> <a class="code" href="group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2">lws_email_destroy</a>(<span class="keyword">struct</span> <a class="code" href="structlws__email.html">lws_email</a> *email);</div><div class="line"><a name="l04368"></a><span class="lineno"> 4368</span> </div><div class="line"><a name="l04369"></a><span class="lineno"> 4369</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04370"></a><span class="lineno"> 4370</span> </div><div class="line"><a name="l04371"></a><span class="lineno"> 4371</span> </div><div class="line"><a name="l04372"></a><span class="lineno"> 4372</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l04373"></a><span class="lineno"> 4373</span> }</div><div class="line"><a name="l04374"></a><span class="lineno"> 4374</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l04375"></a><span class="lineno"> 4375</span> </div><div class="line"><a name="l04376"></a><span class="lineno"> 4376</span> <span class="preprocessor">#endif</span></div><div class="ttc" id="group__form-parsing_html_gaaa482f07dad3f04b391cccf0a814e13b"><div class="ttname"><a href="group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b">lws_spa_destroy</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_spa_destroy(struct lws_spa *spa)</div></div> <div class="ttc" id="group__pur_html_gab15187efcfa256b7c928562c182b92a3"><div class="ttname"><a href="group__pur.html#gab15187efcfa256b7c928562c182b92a3">lws_json_purify</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const char * lws_json_purify(char *escaped, const char *string, int len)</div></div> -<div class="ttc" id="structlws__cgi__args_html"><div class="ttname"><a href="structlws__cgi__args.html">lws_cgi_args</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4078</div></div> -<div class="ttc" id="structlws__protocols_html_a0d1d4996d81b2f5e125bcec981e461c5"><div class="ttname"><a href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5">lws_protocols::rx_buffer_size</a></div><div class="ttdeci">size_t rx_buffer_size</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1329</div></div> +<div class="ttc" id="structlws__cgi__args_html"><div class="ttname"><a href="structlws__cgi__args.html">lws_cgi_args</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4080</div></div> +<div class="ttc" id="structlws__protocols_html_a0d1d4996d81b2f5e125bcec981e461c5"><div class="ttname"><a href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5">lws_protocols::rx_buffer_size</a></div><div class="ttdeci">size_t rx_buffer_size</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1331</div></div> <div class="ttc" id="group__form-parsing_html_ga162f86762173a2bc8c28497941d74815"><div class="ttname"><a href="group__form-parsing.html#ga162f86762173a2bc8c28497941d74815">lws_spa_create</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws_spa * lws_spa_create(struct lws *wsi, const char *const *param_names, int count_params, int max_storage, lws_spa_fileupload_cb opt_cb, void *opt_data)</div></div> <div class="ttc" id="group__context-and-vhost_html_ga8db03e19a372e34ac25cf21af894a02c"><div class="ttname"><a href="group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c">lws_vhost_get</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_vhost_get(struct lws *wsi) LWS_WARN_DEPRECATED</div></div> <div class="ttc" id="namespacembed_1_1Sockets_1_1v0_html"><div class="ttname"><a href="namespacembed_1_1Sockets_1_1v0.html">v0</a></div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:775</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:903</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:777</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:905</div></div> <div class="ttc" id="group__misc_html_gace5171b1dbbc03ec89a98f8afdb5c9af"><div class="ttname"><a href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">lws_daemonize</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_daemonize(const char *_lock_path)</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2008</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3283</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4283</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2010</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3285</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4285</div></div> <div class="ttc" id="group__sock-adopt_html_gab2d045df0f81afe00891aaed312d552b"><div class="ttname"><a href="group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b">lws_adopt_socket_readbuf</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws * lws_adopt_socket_readbuf(struct lws_context *context, lws_sockfd_type accept_fd, const char *readbuf, size_t len)</div></div> -<div class="ttc" id="structlws__polarssl__context_html"><div class="ttname"><a href="structlws__polarssl__context.html">lws_polarssl_context</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:238</div></div> -<div class="ttc" id="structlws__http__mount_html_a614364c770b0bd4db464ad65cddab477"><div class="ttname"><a href="structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477">lws_http_mount::auth_mask</a></div><div class="ttdeci">unsigned int auth_mask</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2043</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3306</div></div> -<div class="ttc" id="structlws__email_html_add1341456045382c183f4c763bdea6bc"><div class="ttname"><a href="structlws__email.html#add1341456045382c183f4c763bdea6bc">lws_email::data</a></div><div class="ttdeci">void * data</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4294</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a03c305fdca809667b6a9a83b3edfd83a"><div class="ttname"><a href="structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a">lws_client_connect_info::uri_replace_from</a></div><div class="ttdeci">const char * uri_replace_from</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2121</div></div> -<div class="ttc" id="structlws__plat__file__ops_html_a1fae8330ee94649a3551e31a30809793"><div class="ttname"><a href="structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793">lws_plat_file_ops::write</a></div><div class="ttdeci">int(* write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, unsigned char *buf, unsigned long len)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4156</div></div> -<div class="ttc" id="group__usercb_html_gad62860e19975ba4c4af401c3cdb6abf7"><div class="ttname"><a href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">lws_callback_reasons</a></div><div class="ttdeci">lws_callback_reasons</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:668</div></div> +<div class="ttc" id="structlws__polarssl__context_html"><div class="ttname"><a href="structlws__polarssl__context.html">lws_polarssl_context</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:240</div></div> +<div class="ttc" id="structlws__http__mount_html_a614364c770b0bd4db464ad65cddab477"><div class="ttname"><a href="structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477">lws_http_mount::auth_mask</a></div><div class="ttdeci">unsigned int auth_mask</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2045</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3308</div></div> +<div class="ttc" id="structlws__email_html_add1341456045382c183f4c763bdea6bc"><div class="ttname"><a href="structlws__email.html#add1341456045382c183f4c763bdea6bc">lws_email::data</a></div><div class="ttdeci">void * data</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4296</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a03c305fdca809667b6a9a83b3edfd83a"><div class="ttname"><a href="structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a">lws_client_connect_info::uri_replace_from</a></div><div class="ttdeci">const char * uri_replace_from</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2123</div></div> +<div class="ttc" id="structlws__plat__file__ops_html_a1fae8330ee94649a3551e31a30809793"><div class="ttname"><a href="structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793">lws_plat_file_ops::write</a></div><div class="ttdeci">int(* write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, unsigned char *buf, unsigned long len)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4158</div></div> +<div class="ttc" id="group__usercb_html_gad62860e19975ba4c4af401c3cdb6abf7"><div class="ttname"><a href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">lws_callback_reasons</a></div><div class="ttdeci">lws_callback_reasons</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:670</div></div> <div class="ttc" id="group__HTTP-headers-read_html_gaa427cad61a9a5e3004afd65c4527b5e9"><div class="ttname"><a href="group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9">lws_hdr_copy_fragment</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_hdr_copy_fragment(struct lws *wsi, char *dest, int len, enum lws_token_indexes h, int frag_idx)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:818</div></div> -<div class="ttc" id="group__generic-sessions_html_ga7c2dc7bfb4ccb91c5d771f9e9ea237e1"><div class="ttname"><a href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">lwsgs_auth_bits</a></div><div class="ttdeci">lwsgs_auth_bits</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1474</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:820</div></div> +<div class="ttc" id="group__generic-sessions_html_ga7c2dc7bfb4ccb91c5d771f9e9ea237e1"><div class="ttname"><a href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">lwsgs_auth_bits</a></div><div class="ttdeci">lwsgs_auth_bits</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1476</div></div> <div class="ttc" id="group__wsclose_html_gaa1c863415d1783cd8de7938aa6efa262"><div class="ttname"><a href="group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262">lws_close_reason</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_close_reason(struct lws *wsi, enum lws_close_status status, unsigned char *buf, size_t len)</div></div> <div class="ttc" id="group__smtp_html_ga25298a5afc1074e13b2d5711a86432b2"><div class="ttname"><a href="group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2">lws_email_destroy</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_email_destroy(struct lws_email *email)</div></div> <div class="ttc" id="group__urlendec_html_gaa373a9c16acdd96c395af61ab915ece3"><div class="ttname"><a href="group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3">lws_urldecode</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_urldecode(char *string, const char *escaped, int len)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:901</div></div> -<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1133</div></div> -<div class="ttc" id="structlws__protocols_html_a6b632018590c2b1bbe43fbab6d5e6fac"><div class="ttname"><a href="structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac">lws_protocols::id</a></div><div class="ttdeci">unsigned int id</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1338</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:903</div></div> +<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1135</div></div> +<div class="ttc" id="structlws__protocols_html_a6b632018590c2b1bbe43fbab6d5e6fac"><div class="ttname"><a href="structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac">lws_protocols::id</a></div><div class="ttdeci">unsigned int id</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1340</div></div> <div class="ttc" id="group__HTTP-headers-read_html_ga8ade0e1ffb0da7e62b989d8d867bf6c8"><div class="ttname"><a href="group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8">lws_hdr_total_length</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_hdr_total_length(struct lws *wsi, enum lws_token_indexes h)</div></div> -<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1131</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:806</div></div> +<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1133</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:808</div></div> <div class="ttc" id="group__service_html_gaebf426eda371ba23642fc11d8e0ace6b"><div class="ttname"><a href="group__service.html#gaebf426eda371ba23642fc11d8e0ace6b">lws_service_fd_tsi</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_service_fd_tsi(struct lws_context *context, struct lws_pollfd *pollfd, int tsi)</div></div> <div class="ttc" id="group__service_html_ga4fd9d714434ca499e2b3f7dbba86f241"><div class="ttname"><a href="group__service.html#ga4fd9d714434ca499e2b3f7dbba86f241">lws_service_adjust_timeout</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_service_adjust_timeout(struct lws_context *context, int timeout_ms, int tsi)</div></div> <div class="ttc" id="group__misc_html_ga8930fe36a3f3eefe4a6a4fd499d8e899"><div class="ttname"><a href="group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899">lws_get_parent</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_get_parent(const struct lws *wsi)</div></div> <div class="ttc" id="group__callback-when-writeable_html_gac4643fe16b0940ae5b68b4ee6195cbde"><div class="ttname"><a href="group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde">lws_get_peer_write_allowance</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN size_t lws_get_peer_write_allowance(struct lws *wsi)</div></div> <div class="ttc" id="group__sock-adopt_html_ga18747e81ff49df2076e7cd4f131f967c"><div class="ttname"><a href="group__sock-adopt.html#ga18747e81ff49df2076e7cd4f131f967c">lws_adopt_socket_vhost</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws * lws_adopt_socket_vhost(struct lws_vhost *vh, lws_sockfd_type accept_fd)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:752</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:754</div></div> <div class="ttc" id="group__misc_html_gac6abfc0b2bd5b2f09281a4432bb2f5f0"><div class="ttname"><a href="group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0">lws_get_library_version</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const char *LWS_WARN_UNUSED_RESULT lws_get_library_version(void)</div></div> -<div class="ttc" id="structlws__email_html_a39ef6263d58eb40cca417c8697b227d8"><div class="ttname"><a href="structlws__email.html#a39ef6263d58eb40cca417c8697b227d8">lws_email::on_sent</a></div><div class="ttdeci">int(* on_sent)(struct lws_email *email)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4314</div></div> -<div class="ttc" id="structlwsgw__hash__bin_html"><div class="ttname"><a href="structlwsgw__hash__bin.html">lwsgw_hash_bin</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1469</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a065063b5117ecd0a59567c97f04bda2e"><div class="ttname"><a href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e">lws_client_connect_info::pwsi</a></div><div class="ttdeci">struct lws ** pwsi</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2128</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:786</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a76a8388733f114fb8fd3643874781185"><div class="ttname"><a href="structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185">lws_client_connect_info::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2100</div></div> +<div class="ttc" id="structlws__email_html_a39ef6263d58eb40cca417c8697b227d8"><div class="ttname"><a href="structlws__email.html#a39ef6263d58eb40cca417c8697b227d8">lws_email::on_sent</a></div><div class="ttdeci">int(* on_sent)(struct lws_email *email)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4316</div></div> +<div class="ttc" id="structlwsgw__hash__bin_html"><div class="ttname"><a href="structlwsgw__hash__bin.html">lwsgw_hash_bin</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1471</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a065063b5117ecd0a59567c97f04bda2e"><div class="ttname"><a href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e">lws_client_connect_info::pwsi</a></div><div class="ttdeci">struct lws ** pwsi</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2130</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:788</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a76a8388733f114fb8fd3643874781185"><div class="ttname"><a href="structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185">lws_client_connect_info::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2102</div></div> <div class="ttc" id="libwebsockets_8h_html_a72fe65e83b8bb03f904a1a256c673536"><div class="ttname"><a href="libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536">lws_remaining_packet_payload</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN size_t lws_remaining_packet_payload(struct lws *wsi)</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:587</div></div> -<div class="ttc" id="structlws__plugin__capability_html"><div class="ttname"><a href="structlws__plugin__capability.html">lws_plugin_capability</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1425</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:589</div></div> +<div class="ttc" id="structlws__plugin__capability_html"><div class="ttname"><a href="structlws__plugin__capability.html">lws_plugin_capability</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1427</div></div> <div class="ttc" id="group__extensions_html_ga6fb3e2c3dfb9d64dc87026a4e99c128b"><div class="ttname"><a href="group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b">lws_ext_parse_options</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi, void *ext_user, const struct lws_ext_options *opts, const char *o, int len)</div></div> -<div class="ttc" id="structlws__email_html_a9747ca85597788c2d118d287df47b7c1"><div class="ttname"><a href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1">lws_email::email_connect_started</a></div><div class="ttdeci">time_t email_connect_started</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4330</div></div> -<div class="ttc" id="group__wsclose_html_gae399c571df32ba532c0ca67da9284985"><div class="ttname"><a href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a></div><div class="ttdeci">lws_close_status</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:558</div></div> +<div class="ttc" id="structlws__email_html_a9747ca85597788c2d118d287df47b7c1"><div class="ttname"><a href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1">lws_email::email_connect_started</a></div><div class="ttdeci">time_t email_connect_started</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4332</div></div> +<div class="ttc" id="group__wsclose_html_gae399c571df32ba532c0ca67da9284985"><div class="ttname"><a href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a></div><div class="ttdeci">lws_close_status</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:560</div></div> <div class="ttc" id="group__callback-when-writeable_html_gacf04bbe089f47c971c6408c5efe2ac70"><div class="ttname"><a href="group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70">lws_callback_all_protocol</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_callback_all_protocol(struct lws_context *context, const struct lws_protocols *protocol, int reason)</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:598</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1529</div></div> -<div class="ttc" id="structlws__tokens_html_a855b7375d1d58516c0ecd4b60e9a7766"><div class="ttname"><a href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766">lws_tokens::token_len</a></div><div class="ttdeci">int token_len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2608</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a13ffbb0d010309669611f8c4eda7d7f8"><div class="ttname"><a href="structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8">lws_context_creation_info::mounts</a></div><div class="ttdeci">const struct lws_http_mount * mounts</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1717</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:927</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:600</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1531</div></div> +<div class="ttc" id="structlws__tokens_html_a855b7375d1d58516c0ecd4b60e9a7766"><div class="ttname"><a href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766">lws_tokens::token_len</a></div><div class="ttdeci">int token_len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2610</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a13ffbb0d010309669611f8c4eda7d7f8"><div class="ttname"><a href="structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8">lws_context_creation_info::mounts</a></div><div class="ttdeci">const struct lws_http_mount * mounts</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1719</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:929</div></div> <div class="ttc" id="group__misc_html_ga0af4f7d2dd375aeedcfa7eb0e1101c4b"><div class="ttname"><a href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws_context *LWS_WARN_UNUSED_RESULT lws_get_context(const struct lws *wsi)</div></div> -<div class="ttc" id="structlws__protocol__vhost__options_html_a0640a92513c70ee6b9b295a9ad1658e7"><div class="ttname"><a href="structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7">lws_protocol_vhost_options::value</a></div><div class="ttdeci">const char * value</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1997</div></div> -<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2928</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4288</div></div> -<div class="ttc" id="structlws__gs__event__args_html_a2bec693d8a43730d487004a44326178b"><div class="ttname"><a href="structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b">lws_gs_event_args::username</a></div><div class="ttdeci">const char * username</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1500</div></div> +<div class="ttc" id="structlws__protocol__vhost__options_html_a0640a92513c70ee6b9b295a9ad1658e7"><div class="ttname"><a href="structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7">lws_protocol_vhost_options::value</a></div><div class="ttdeci">const char * value</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1999</div></div> +<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2930</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4290</div></div> +<div class="ttc" id="structlws__gs__event__args_html_a2bec693d8a43730d487004a44326178b"><div class="ttname"><a href="structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b">lws_gs_event_args::username</a></div><div class="ttdeci">const char * username</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1502</div></div> <div class="ttc" id="group__client_html_ga0c966136905f467816307cfba6deb5fd"><div class="ttname"><a href="group__client.html#ga0c966136905f467816307cfba6deb5fd">lws_client_connect_via_info</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws * lws_client_connect_via_info(struct lws_client_connect_info *ccinfo)</div></div> -<div class="ttc" id="structlws__http__mount_html_a05347d92c3d379809564bd4f3eab259b"><div class="ttname"><a href="structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b">lws_http_mount::protocol</a></div><div class="ttdeci">const char * protocol</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2027</div></div> -<div class="ttc" id="structlws__cgi__args_html_a4ccc1058e7e914a26eef31ab2ad46aa1"><div class="ttname"><a href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1">lws_cgi_args::stdwsi</a></div><div class="ttdeci">struct lws ** stdwsi</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4079</div></div> +<div class="ttc" id="structlws__http__mount_html_a05347d92c3d379809564bd4f3eab259b"><div class="ttname"><a href="structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b">lws_http_mount::protocol</a></div><div class="ttdeci">const char * protocol</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2029</div></div> +<div class="ttc" id="structlws__cgi__args_html_a4ccc1058e7e914a26eef31ab2ad46aa1"><div class="ttname"><a href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1">lws_cgi_args::stdwsi</a></div><div class="ttdeci">struct lws ** stdwsi</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4081</div></div> <div class="ttc" id="group__context-and-vhost_html_ga94e6cc2223c4eec316b13bcebc3628b6"><div class="ttname"><a href="group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6">lws_json_dump_vhost</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:873</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:875</div></div> <div class="ttc" id="group__httpft_html_gab4da87a4800413f15e7aba649fb1d77c"><div class="ttname"><a href="group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c">lws_get_mimetype</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const char * lws_get_mimetype(const char *file, const struct lws_http_mount *m)</div></div> -<div class="ttc" id="structlwsgw__hash_html"><div class="ttname"><a href="structlwsgw__hash.html">lwsgw_hash</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1471</div></div> -<div class="ttc" id="structlws__http__mount_html_a4283e30ea89d27ae7d061ad760d1d146"><div class="ttname"><a href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146">lws_http_mount::cache_max_age</a></div><div class="ttdeci">int cache_max_age</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2041</div></div> -<div class="ttc" id="structlws__context__creation__info_html_adb0bc0b28cd7d90ab306723d8ffa96fa"><div class="ttname"><a href="structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa">lws_context_creation_info::ssl_options_clear</a></div><div class="ttdeci">long ssl_options_clear</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1735</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:766</div></div> -<div class="ttc" id="structlws__context__creation__info_html"><div class="ttname"><a href="structlws__context__creation__info.html">lws_context_creation_info</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1603</div></div> +<div class="ttc" id="structlwsgw__hash_html"><div class="ttname"><a href="structlwsgw__hash.html">lwsgw_hash</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1473</div></div> +<div class="ttc" id="structlws__http__mount_html_a4283e30ea89d27ae7d061ad760d1d146"><div class="ttname"><a href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146">lws_http_mount::cache_max_age</a></div><div class="ttdeci">int cache_max_age</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2043</div></div> +<div class="ttc" id="structlws__context__creation__info_html_adb0bc0b28cd7d90ab306723d8ffa96fa"><div class="ttname"><a href="structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa">lws_context_creation_info::ssl_options_clear</a></div><div class="ttdeci">long ssl_options_clear</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1737</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:768</div></div> +<div class="ttc" id="structlws__context__creation__info_html"><div class="ttname"><a href="structlws__context__creation__info.html">lws_context_creation_info</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1605</div></div> <div class="ttc" id="group__context-and-vhost_html_ga8ee0314028755f1ddfa9428e09b4fddb"><div class="ttname"><a href="group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb">lws_context_destroy</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_context_destroy(struct lws_context *context)</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:614</div></div> -<div class="ttc" id="structlws__process__html__state_html_af0732884ef891e24fe5fa237ebaa21a3"><div class="ttname"><a href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3">lws_process_html_state::start</a></div><div class="ttdeci">char * start</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2547</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:616</div></div> +<div class="ttc" id="structlws__process__html__state_html_af0732884ef891e24fe5fa237ebaa21a3"><div class="ttname"><a href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3">lws_process_html_state::start</a></div><div class="ttdeci">char * start</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2549</div></div> +<div class="ttc" id="group__misc_html_ga2163492f17db959a36967adb73d823b4"><div class="ttname"><a href="group__misc.html#ga2163492f17db959a36967adb73d823b4">lws_snprintf</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_snprintf(char *str, size_t size, const char *format,...) LWS_FORMAT(3)</div></div> <div class="ttc" id="group__misc_html_gab321ed812f46f6dc7ef9e3ca6f00cf1b"><div class="ttname"><a href="group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b">lws_set_allocator</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_set_allocator(void *(*realloc)(void *ptr, size_t size))</div></div> -<div class="ttc" id="structlws__protocols_html_acabf94c1a9bfe7be0387fbb0e0c56b2d"><div class="ttname"><a href="structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d">lws_protocols::callback</a></div><div class="ttdeci">lws_callback_function * callback</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1320</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3273</div></div> +<div class="ttc" id="structlws__protocols_html_acabf94c1a9bfe7be0387fbb0e0c56b2d"><div class="ttname"><a href="structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d">lws_protocols::callback</a></div><div class="ttdeci">lws_callback_function * callback</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1322</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3275</div></div> <div class="ttc" id="group__context-and-vhost_html_ga1863f0a15ab9da0f07be7bd66230d232"><div class="ttname"><a href="group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232">lws_context_deprecate</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_context_deprecate(struct lws_context *context, lws_reload_func cb)</div></div> <div class="ttc" id="group__callback-when-writeable_html_gaa709e02a10558753c851e58f1e2c16ba"><div class="ttname"><a href="group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba">lws_get_socket_fd</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_get_socket_fd(struct lws *wsi)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:964</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:956</div></div> -<div class="ttc" id="structlws__client__connect__info_html_aba35adfb74845a5fd0c3dc141cbdddd2"><div class="ttname"><a href="structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2">lws_client_connect_info::protocol</a></div><div class="ttdeci">const char * protocol</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2106</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:953</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a57f88c0745adbd1d6b9b619b8de30209"><div class="ttname"><a href="structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209">lws_context_creation_info::pt_serv_buf_size</a></div><div class="ttdeci">unsigned int pt_serv_buf_size</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1722</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:966</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:958</div></div> +<div class="ttc" id="structlws__client__connect__info_html_aba35adfb74845a5fd0c3dc141cbdddd2"><div class="ttname"><a href="structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2">lws_client_connect_info::protocol</a></div><div class="ttdeci">const char * protocol</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2108</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:955</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a57f88c0745adbd1d6b9b619b8de30209"><div class="ttname"><a href="structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209">lws_context_creation_info::pt_serv_buf_size</a></div><div class="ttdeci">unsigned int pt_serv_buf_size</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1724</div></div> <div class="ttc" id="group__sock-adopt_html_gabe71b7462afb21c767bdc67334f305af"><div class="ttname"><a href="group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af">lws_adopt_socket</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws * lws_adopt_socket(struct lws_context *context, lws_sockfd_type accept_fd)</div></div> -<div class="ttc" id="structlws__process__html__args_html_a754513f2311241cabb0cd1c90d7307ef"><div class="ttname"><a href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef">lws_process_html_args::len</a></div><div class="ttdeci">int len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2539</div></div> -<div class="ttc" id="structlws__context__creation__info_html_ac583ce92b8e1c949cb6fef6bfe713d56"><div class="ttname"><a href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56">lws_context_creation_info::ka_time</a></div><div class="ttdeci">int ka_time</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1658</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1545</div></div> +<div class="ttc" id="structlws__process__html__args_html_a754513f2311241cabb0cd1c90d7307ef"><div class="ttname"><a href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef">lws_process_html_args::len</a></div><div class="ttdeci">int len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2541</div></div> +<div class="ttc" id="structlws__context__creation__info_html_ac583ce92b8e1c949cb6fef6bfe713d56"><div class="ttname"><a href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56">lws_context_creation_info::ka_time</a></div><div class="ttdeci">int ka_time</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1660</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1547</div></div> <div class="ttc" id="group__callback-when-writeable_html_gabbe4655c7eeb3eb1671b2323ec6b3107"><div class="ttname"><a href="group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107">lws_callback_on_writable_all_protocol</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable_all_protocol(const struct lws_context *context, const struct lws_protocols *protocol)</div></div> <div class="ttc" id="group__log_html_ga244647f9e1bf0097ccdde66d74f41e26"><div class="ttname"><a href="group__log.html#ga244647f9e1bf0097ccdde66d74f41e26">lws_set_log_level</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_set_log_level(int level, void(*log_emit_function)(int level, const char *line))</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a33a1a25a7df3793f59047e20dd580078"><div class="ttname"><a href="structlws__context__creation__info.html#a33a1a25a7df3793f59047e20dd580078">lws_context_creation_info::ws_ping_pong_interval</a></div><div class="ttdeci">unsigned short ws_ping_pong_interval</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1737</div></div> -<div class="ttc" id="structlws__plugin__capability_html_abcf51db969522fdda9aaf902e65739d3"><div class="ttname"><a href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3">lws_plugin_capability::count_extensions</a></div><div class="ttdeci">int count_extensions</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1430</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3277</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a1af124d81c3c22a46d39387c5bc3d6b9"><div class="ttname"><a href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9">lws_client_connect_info::port</a></div><div class="ttdeci">int port</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2096</div></div> -<div class="ttc" id="structlws__client__connect__info_html_afe999d133cc240a0bfd02aade0514cfd"><div class="ttname"><a href="structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd">lws_client_connect_info::context</a></div><div class="ttdeci">struct lws_context * context</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2092</div></div> -<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1477</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a69abb5aeed755750b9755e5c91db6895"><div class="ttname"><a href="structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895">lws_client_connect_info::ietf_version_or_minus_one</a></div><div class="ttdeci">int ietf_version_or_minus_one</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2108</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a33a1a25a7df3793f59047e20dd580078"><div class="ttname"><a href="structlws__context__creation__info.html#a33a1a25a7df3793f59047e20dd580078">lws_context_creation_info::ws_ping_pong_interval</a></div><div class="ttdeci">unsigned short ws_ping_pong_interval</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1739</div></div> +<div class="ttc" id="structlws__plugin__capability_html_abcf51db969522fdda9aaf902e65739d3"><div class="ttname"><a href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3">lws_plugin_capability::count_extensions</a></div><div class="ttdeci">int count_extensions</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1432</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3279</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a1af124d81c3c22a46d39387c5bc3d6b9"><div class="ttname"><a href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9">lws_client_connect_info::port</a></div><div class="ttdeci">int port</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2098</div></div> +<div class="ttc" id="structlws__client__connect__info_html_afe999d133cc240a0bfd02aade0514cfd"><div class="ttname"><a href="structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd">lws_client_connect_info::context</a></div><div class="ttdeci">struct lws_context * context</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2094</div></div> +<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1479</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a69abb5aeed755750b9755e5c91db6895"><div class="ttname"><a href="structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895">lws_client_connect_info::ietf_version_or_minus_one</a></div><div class="ttdeci">int ietf_version_or_minus_one</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2110</div></div> <div class="ttc" id="group__callback-when-writeable_html_ga13c984d8c5a44a745fd02bc2fba36053"><div class="ttname"><a href="group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053">lws_callback_all_protocol_vhost</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_callback_all_protocol_vhost(struct lws_vhost *vh, const struct lws_protocols *protocol, int reason)</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4281</div></div> -<div class="ttc" id="structlws__protocol__vhost__options_html"><div class="ttname"><a href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1993</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4283</div></div> +<div class="ttc" id="structlws__protocol__vhost__options_html"><div class="ttname"><a href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1995</div></div> <div class="ttc" id="group__callback-when-writeable_html_ga941caaa468bc507b1cae52275f58800d"><div class="ttname"><a href="group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d">lws_callback_on_writable</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable(struct lws *wsi)</div></div> -<div class="ttc" id="structlws__process__html__state_html_a3b113e00c03a2fded51b1c85ff5bf077"><div class="ttname"><a href="structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077">lws_process_html_state::vars</a></div><div class="ttdeci">const char *const * vars</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2551</div></div> +<div class="ttc" id="structlws__process__html__state_html_a3b113e00c03a2fded51b1c85ff5bf077"><div class="ttname"><a href="structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077">lws_process_html_state::vars</a></div><div class="ttdeci">const char *const * vars</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2553</div></div> <div class="ttc" id="group__wsstatus_html_ga42152ffb385f9b19f4e7b04f998425de"><div class="ttname"><a href="group__wsstatus.html#ga42152ffb385f9b19f4e7b04f998425de">lws_get_ssl</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN SSL * lws_get_ssl(struct lws *wsi)</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:566</div></div> -<div class="ttc" id="structlws__client__connect__info_html"><div class="ttname"><a href="structlws__client__connect__info.html">lws_client_connect_info</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2091</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd">LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1575</div></div> -<div class="ttc" id="group__extensions_html_gaae7169b2cd346b34fa33d0250db2afd0"><div class="ttname"><a href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0">lws_extension_callback_function</a></div><div class="ttdeci">int lws_extension_callback_function(struct lws_context *context, const struct lws_extension *ext, struct lws *wsi, enum lws_extension_callback_reasons reason, void *user, void *in, size_t len)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1220</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:884</div></div> -<div class="ttc" id="structlws__ext__option__arg_html_af37f0b6caa7735af51a1ac12b68d5bc5"><div class="ttname"><a href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5">lws_ext_option_arg::len</a></div><div class="ttdeci">int len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1156</div></div> -<div class="ttc" id="structlws__http__mount_html"><div class="ttname"><a href="structlws__http__mount.html">lws_http_mount</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2018</div></div> -<div class="ttc" id="structlws__http__mount_html_ae90d1efe7178199fad39de2926902ee4"><div class="ttname"><a href="structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4">lws_http_mount::def</a></div><div class="ttdeci">const char * def</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2025</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:727</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1557</div></div> -<div class="ttc" id="group__context-and-vhost_html_ga41c2d763f78cc248df3b9f8645dbd2a5"><div class="ttname"><a href="group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5">lws_context_options</a></div><div class="ttdeci">lws_context_options</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1528</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:905</div></div> -<div class="ttc" id="group__generic-sessions_html_ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde"><div class="ttname"><a href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1494</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1563</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:893</div></div> -<div class="ttc" id="structlws__ext__option__arg_html_a0a320c56b79271b8f059eeaad9423ac9"><div class="ttname"><a href="structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9">lws_ext_option_arg::option_name</a></div><div class="ttdeci">const char * option_name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1153</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2006</div></div> -<div class="ttc" id="structlws__pollargs_html_af14a48ef4e78128aef9a76902b104a81"><div class="ttname"><a href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81">lws_pollargs::fd</a></div><div class="ttdeci">lws_sockfd_type fd</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:536</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:568</div></div> +<div class="ttc" id="structlws__client__connect__info_html"><div class="ttname"><a href="structlws__client__connect__info.html">lws_client_connect_info</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2093</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd">LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1577</div></div> +<div class="ttc" id="group__extensions_html_gaae7169b2cd346b34fa33d0250db2afd0"><div class="ttname"><a href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0">lws_extension_callback_function</a></div><div class="ttdeci">int lws_extension_callback_function(struct lws_context *context, const struct lws_extension *ext, struct lws *wsi, enum lws_extension_callback_reasons reason, void *user, void *in, size_t len)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1222</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:886</div></div> +<div class="ttc" id="structlws__ext__option__arg_html_af37f0b6caa7735af51a1ac12b68d5bc5"><div class="ttname"><a href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5">lws_ext_option_arg::len</a></div><div class="ttdeci">int len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1158</div></div> +<div class="ttc" id="structlws__http__mount_html"><div class="ttname"><a href="structlws__http__mount.html">lws_http_mount</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2020</div></div> +<div class="ttc" id="structlws__http__mount_html_ae90d1efe7178199fad39de2926902ee4"><div class="ttname"><a href="structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4">lws_http_mount::def</a></div><div class="ttdeci">const char * def</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2027</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:729</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1559</div></div> +<div class="ttc" id="group__context-and-vhost_html_ga41c2d763f78cc248df3b9f8645dbd2a5"><div class="ttname"><a href="group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5">lws_context_options</a></div><div class="ttdeci">lws_context_options</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1530</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:907</div></div> +<div class="ttc" id="group__generic-sessions_html_ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde"><div class="ttname"><a href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1496</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1565</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:895</div></div> +<div class="ttc" id="structlws__ext__option__arg_html_a0a320c56b79271b8f059eeaad9423ac9"><div class="ttname"><a href="structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9">lws_ext_option_arg::option_name</a></div><div class="ttdeci">const char * option_name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1155</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2008</div></div> +<div class="ttc" id="structlws__pollargs_html_af14a48ef4e78128aef9a76902b104a81"><div class="ttname"><a href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81">lws_pollargs::fd</a></div><div class="ttdeci">lws_sockfd_type fd</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:538</div></div> <div class="ttc" id="group__context-and-vhost_html_ga1dce5453d72a2037051aba5410e18135"><div class="ttname"><a href="group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135">lws_json_dump_context</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_json_dump_context(const struct lws_context *context, char *buf, int len, int hide_vhosts)</div></div> -<div class="ttc" id="structlws__context__creation__info_html_af3fb447be15c4fcb01d3285a6678ab54"><div class="ttname"><a href="structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54">lws_context_creation_info::ssl_private_key_password</a></div><div class="ttdeci">const char * ssl_private_key_password</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1626</div></div> -<div class="ttc" id="structpollfd_html_ac9b2f2c5b1f9a7487eb57e67cd4960ef"><div class="ttname"><a href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef">pollfd::events</a></div><div class="ttdeci">short events</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:438</div></div> -<div class="ttc" id="structlws__plugin_html"><div class="ttname"><a href="structlws__plugin.html">lws_plugin</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1438</div></div> -<div class="ttc" id="structlws__plugin__capability_html_a7936f0eb93d79dea76b903d0f8a5f623"><div class="ttname"><a href="structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623">lws_plugin_capability::extensions</a></div><div class="ttdeci">const struct lws_extension * extensions</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1429</div></div> -<div class="ttc" id="structlws__http__mount_html_a0109baf93f23c07c824c997c3533ee44"><div class="ttname"><a href="structlws__http__mount.html#a0109baf93f23c07c824c997c3533ee44">lws_http_mount::mount_next</a></div><div class="ttdeci">const struct lws_http_mount * mount_next</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2019</div></div> +<div class="ttc" id="structlws__context__creation__info_html_af3fb447be15c4fcb01d3285a6678ab54"><div class="ttname"><a href="structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54">lws_context_creation_info::ssl_private_key_password</a></div><div class="ttdeci">const char * ssl_private_key_password</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1628</div></div> +<div class="ttc" id="structpollfd_html_ac9b2f2c5b1f9a7487eb57e67cd4960ef"><div class="ttname"><a href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef">pollfd::events</a></div><div class="ttdeci">short events</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:440</div></div> +<div class="ttc" id="structlws__plugin_html"><div class="ttname"><a href="structlws__plugin.html">lws_plugin</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1440</div></div> +<div class="ttc" id="structlws__plugin__capability_html_a7936f0eb93d79dea76b903d0f8a5f623"><div class="ttname"><a href="structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623">lws_plugin_capability::extensions</a></div><div class="ttdeci">const struct lws_extension * extensions</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1431</div></div> +<div class="ttc" id="structlws__http__mount_html_a0109baf93f23c07c824c997c3533ee44"><div class="ttname"><a href="structlws__http__mount.html#a0109baf93f23c07c824c997c3533ee44">lws_http_mount::mount_next</a></div><div class="ttdeci">const struct lws_http_mount * mount_next</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2021</div></div> <div class="ttc" id="group__timeout_html_gaced9f9237f6172fed9f730a2af51345a"><div class="ttname"><a href="group__timeout.html#gaced9f9237f6172fed9f730a2af51345a">lws_set_timeout</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_set_timeout(struct lws *wsi, enum pending_timeout reason, int secs)</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a9831b9f9ab54a1aec4bb15324f1c3836"><div class="ttname"><a href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836">lws_client_connect_info::userdata</a></div><div class="ttdeci">void * userdata</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2110</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:724</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:911</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a9831b9f9ab54a1aec4bb15324f1c3836"><div class="ttname"><a href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836">lws_client_connect_info::userdata</a></div><div class="ttdeci">void * userdata</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2112</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:726</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:913</div></div> <div class="ttc" id="group__service_html_ga9b3cc4473fd8848e5bbee7f310712939"><div class="ttname"><a href="group__service.html#ga9b3cc4473fd8848e5bbee7f310712939">lws_service_tsi</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_service_tsi(struct lws_context *context, int timeout_ms, int tsi)</div></div> -<div class="ttc" id="structlws__cgi__args_html_a8ac842084688c02f3f94694ef700d8f7"><div class="ttname"><a href="structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7">lws_cgi_args::data</a></div><div class="ttdeci">unsigned char * data</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4081</div></div> -<div class="ttc" id="structlws__http__mount_html_a4437423df85ee3dbcae0e15974c89ec7"><div class="ttname"><a href="structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7">lws_http_mount::extra_mimetypes</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * extra_mimetypes</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2034</div></div> +<div class="ttc" id="structlws__cgi__args_html_a8ac842084688c02f3f94694ef700d8f7"><div class="ttname"><a href="structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7">lws_cgi_args::data</a></div><div class="ttdeci">unsigned char * data</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4083</div></div> +<div class="ttc" id="structlws__http__mount_html_a4437423df85ee3dbcae0e15974c89ec7"><div class="ttname"><a href="structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7">lws_http_mount::extra_mimetypes</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * extra_mimetypes</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2036</div></div> <div class="ttc" id="group__HTTP-headers-create_html_ga4887605ff2242a54db3a7fa01f6f864b"><div class="ttname"><a href="group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b">lws_finalize_http_header</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_finalize_http_header(struct lws *wsi, unsigned char **p, unsigned char *end)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:717</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:719</div></div> <div class="ttc" id="group__urlendec_html_gabc2888476e50e001c875c1a8abf455b7"><div class="ttname"><a href="group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7">lws_urlencode</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const char * lws_urlencode(char *escaped, const char *string, int len)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:798</div></div> -<div class="ttc" id="structlws__email_html_ab5fbf121195a8e67509c78a42cfbe168"><div class="ttname"><a href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168">lws_email::loop</a></div><div class="ttdeci">uv_loop_t * loop</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4296</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:896</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:800</div></div> +<div class="ttc" id="structlws__email_html_ab5fbf121195a8e67509c78a42cfbe168"><div class="ttname"><a href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168">lws_email::loop</a></div><div class="ttdeci">uv_loop_t * loop</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4298</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:898</div></div> <div class="ttc" id="classlws__conn__listener_html"><div class="ttname"><a href="classlws__conn__listener.html">lws_conn_listener</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:72</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3309</div></div> -<div class="ttc" id="structlws__process__html__state_html_a53234f2948812c7208a256f9f5b23c20"><div class="ttname"><a href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20">lws_process_html_state::pos</a></div><div class="ttdeci">int pos</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2549</div></div> -<div class="ttc" id="structlws__plugin_html_a65dffd68fd267ce17b988790d1d35f22"><div class="ttname"><a href="structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22">lws_plugin::list</a></div><div class="ttdeci">struct lws_plugin * list</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1439</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3311</div></div> +<div class="ttc" id="structlws__process__html__state_html_a53234f2948812c7208a256f9f5b23c20"><div class="ttname"><a href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20">lws_process_html_state::pos</a></div><div class="ttdeci">int pos</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2551</div></div> +<div class="ttc" id="structlws__plugin_html_a65dffd68fd267ce17b988790d1d35f22"><div class="ttname"><a href="structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22">lws_plugin::list</a></div><div class="ttdeci">struct lws_plugin * list</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1441</div></div> <div class="ttc" id="group__client_html_gac6a8558b4410961a880241c2ac1271e2"><div class="ttname"><a href="group__client.html#gac6a8558b4410961a880241c2ac1271e2">lws_client_connect_extended</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_client_connect_extended(struct lws_context *clients, const char *address, int port, int ssl_connection, const char *path, const char *host, const char *origin, const char *protocol, int ietf_version_or_minus_one, void *userdata) LWS_WARN_DEPRECATED</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a0cdfd3c484689ba6f0f2cc91b38ce948"><div class="ttname"><a href="structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948">lws_context_creation_info::max_http_header_data</a></div><div class="ttdeci">short max_http_header_data</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1678</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a0cdfd3c484689ba6f0f2cc91b38ce948"><div class="ttname"><a href="structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948">lws_context_creation_info::max_http_header_data</a></div><div class="ttdeci">short max_http_header_data</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1680</div></div> <div class="ttc" id="group__form-parsing_html_ga9ad9ebf5ea1a7108415ed7e04cb231d2"><div class="ttname"><a href="group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2">lws_spa_process</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_spa_process(struct lws_spa *spa, const char *in, int len)</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a0e790dda6202604f73a03b6149bc12bb"><div class="ttname"><a href="structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb">lws_context_creation_info::provided_client_ssl_ctx</a></div><div class="ttdeci">void * provided_client_ssl_ctx</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1675</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a0e790dda6202604f73a03b6149bc12bb"><div class="ttname"><a href="structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb">lws_context_creation_info::provided_client_ssl_ctx</a></div><div class="ttdeci">void * provided_client_ssl_ctx</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1677</div></div> <div class="ttc" id="group__context-and-vhost_html_ga06e77ce2916f8bc9826ef8d9d68e3932"><div class="ttname"><a href="group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932">lws_get_vhost</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_get_vhost(struct lws *wsi)</div></div> <div class="ttc" id="classlws__conn_html"><div class="ttname"><a href="classlws__conn.html">lws_conn</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:44</div></div> <div class="ttc" id="group__log_html_gab7c0fc936cc9f1eb58e2bb234c15147c"><div class="ttname"><a href="group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c">lwsl_emit_syslog</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lwsl_emit_syslog(int level, const char *line)</div></div> -<div class="ttc" id="structlws__plugin__capability_html_a6a4d9d01e770f378ddadc77b37522033"><div class="ttname"><a href="structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033">lws_plugin_capability::protocols</a></div><div class="ttdeci">const struct lws_protocols * protocols</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1427</div></div> -<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1132</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a3baab4285c679fbe027c2504621d7410"><div class="ttname"><a href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410">lws_context_creation_info::ka_probes</a></div><div class="ttdeci">int ka_probes</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1661</div></div> +<div class="ttc" id="structlws__plugin__capability_html_a6a4d9d01e770f378ddadc77b37522033"><div class="ttname"><a href="structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033">lws_plugin_capability::protocols</a></div><div class="ttdeci">const struct lws_protocols * protocols</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1429</div></div> +<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1134</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a3baab4285c679fbe027c2504621d7410"><div class="ttname"><a href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410">lws_context_creation_info::ka_probes</a></div><div class="ttdeci">int ka_probes</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1663</div></div> <div class="ttc" id="classlws__conn__listener_html_a271ac4f8ad5770b3bc96cce5b265b72c"><div class="ttname"><a href="classlws__conn__listener.html#a271ac4f8ad5770b3bc96cce5b265b72c">lws_conn_listener::onError</a></div><div class="ttdeci">void onError(Socket *s, socket_error_t err)</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a8595f83e64147cb687b6418cf500dd4c"><div class="ttname"><a href="structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c">lws_client_connect_info::origin</a></div><div class="ttdeci">const char * origin</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2104</div></div> -<div class="ttc" id="structlws__pollfd_html_ae7cecfe7511c59d4a3a44f876d030932"><div class="ttname"><a href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932">lws_pollfd::revents</a></div><div class="ttdeci">SHORT revents</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:424</div></div> -<div class="ttc" id="structlws__client__connect__info_html_aa9e8e3da4e783a0651b0dea62c2dd1db"><div class="ttname"><a href="structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db">lws_client_connect_info::method</a></div><div class="ttdeci">const char * method</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2114</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a8595f83e64147cb687b6418cf500dd4c"><div class="ttname"><a href="structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c">lws_client_connect_info::origin</a></div><div class="ttdeci">const char * origin</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2106</div></div> +<div class="ttc" id="structlws__pollfd_html_ae7cecfe7511c59d4a3a44f876d030932"><div class="ttname"><a href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932">lws_pollfd::revents</a></div><div class="ttdeci">SHORT revents</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:426</div></div> +<div class="ttc" id="structlws__client__connect__info_html_aa9e8e3da4e783a0651b0dea62c2dd1db"><div class="ttname"><a href="structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db">lws_client_connect_info::method</a></div><div class="ttdeci">const char * method</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2116</div></div> <div class="ttc" id="group__form-parsing_html_ga2da476217166da02704b90d3a8d4f3cd"><div class="ttname"><a href="group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd">lws_spa_get_string</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const char * lws_spa_get_string(struct lws_spa *spa, int n)</div></div> -<div class="ttc" id="structlws__extension_html"><div class="ttname"><a href="structlws__extension.html">lws_extension</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1226</div></div> +<div class="ttc" id="structlws__extension_html"><div class="ttname"><a href="structlws__extension.html">lws_extension</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1228</div></div> <div class="ttc" id="group__callback-when-writeable_html_ga8570860e191b62db264f2bac67354ea8"><div class="ttname"><a href="group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8">lws_callback_on_writable_all_protocol_vhost</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable_all_protocol_vhost(const struct lws_vhost *vhost, const struct lws_protocols *protocol)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:933</div></div> -<div class="ttc" id="structlws__http__mount_html_a6a9b1492a0b9749e39bd19932717a0b7"><div class="ttname"><a href="structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7">lws_http_mount::origin_protocol</a></div><div class="ttdeci">unsigned char origin_protocol</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2050</div></div> -<div class="ttc" id="structlws__context__creation__info_html_ad0e95ba721f7bd2b676719f8093c23a2"><div class="ttname"><a href="structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2">lws_context_creation_info::log_filepath</a></div><div class="ttdeci">const char * log_filepath</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1714</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:773</div></div> -<div class="ttc" id="structlws__email_html_a7bbc1964889c984b3da723c86a210e05"><div class="ttname"><a href="structlws__email.html#a7bbc1964889c984b3da723c86a210e05">lws_email::max_content_size</a></div><div class="ttdeci">unsigned int max_content_size</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4304</div></div> -<div class="ttc" id="structlws__ext__option__arg_html_af57fffcfa253dfa8d98681ac1fb1785f"><div class="ttname"><a href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f">lws_ext_option_arg::option_index</a></div><div class="ttdeci">int option_index</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1154</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:935</div></div> +<div class="ttc" id="structlws__http__mount_html_a6a9b1492a0b9749e39bd19932717a0b7"><div class="ttname"><a href="structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7">lws_http_mount::origin_protocol</a></div><div class="ttdeci">unsigned char origin_protocol</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2052</div></div> +<div class="ttc" id="structlws__context__creation__info_html_ad0e95ba721f7bd2b676719f8093c23a2"><div class="ttname"><a href="structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2">lws_context_creation_info::log_filepath</a></div><div class="ttdeci">const char * log_filepath</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1716</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:775</div></div> +<div class="ttc" id="structlws__email_html_a7bbc1964889c984b3da723c86a210e05"><div class="ttname"><a href="structlws__email.html#a7bbc1964889c984b3da723c86a210e05">lws_email::max_content_size</a></div><div class="ttdeci">unsigned int max_content_size</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4306</div></div> +<div class="ttc" id="structlws__ext__option__arg_html_af57fffcfa253dfa8d98681ac1fb1785f"><div class="ttname"><a href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f">lws_ext_option_arg::option_index</a></div><div class="ttdeci">int option_index</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1156</div></div> <div class="ttc" id="group__misc_html_gacae4d7b6a8d22e4c2d82ff8b12c1e234"><div class="ttname"><a href="group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234">lws_get_child</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_get_child(const struct lws *wsi)</div></div> <div class="ttc" id="group__HTTP-headers-create_html_gaf74adb761b22566ad70004882712dce1"><div class="ttname"><a href="group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1">lws_add_http_header_by_token</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_by_token(struct lws *wsi, enum lws_token_indexes token, const unsigned char *value, int length, unsigned char **p, unsigned char *end)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:769</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a9959ba103d3d2484e559a9f7879eebe3"><div class="ttname"><a href="structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3">lws_client_connect_info::uri_replace_to</a></div><div class="ttdeci">const char * uri_replace_to</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2124</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a6843a60e1050b10db9d98d7eeb45f587"><div class="ttname"><a href="structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587">lws_client_connect_info::parent_wsi</a></div><div class="ttdeci">struct lws * parent_wsi</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2117</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:771</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a9959ba103d3d2484e559a9f7879eebe3"><div class="ttname"><a href="structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3">lws_client_connect_info::uri_replace_to</a></div><div class="ttdeci">const char * uri_replace_to</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2126</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a6843a60e1050b10db9d98d7eeb45f587"><div class="ttname"><a href="structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587">lws_client_connect_info::parent_wsi</a></div><div class="ttdeci">struct lws * parent_wsi</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2119</div></div> <div class="ttc" id="group__sha_html_ga66316e6a5a0644a09d5a10e919dfdd8d"><div class="ttname"><a href="group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d">lws_b64_decode_string</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_b64_decode_string(const char *in, char *out, int out_size)</div></div> -<div class="ttc" id="structlws__email_html_ac6115d3cbef2e8bac62cc00895bf5fd3"><div class="ttname"><a href="structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3">lws_email::estate</a></div><div class="ttdeci">enum lwsgs_smtp_states estate</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4327</div></div> +<div class="ttc" id="structlws__email_html_ac6115d3cbef2e8bac62cc00895bf5fd3"><div class="ttname"><a href="structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3">lws_email::estate</a></div><div class="ttdeci">enum lwsgs_smtp_states estate</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4329</div></div> <div class="ttc" id="group__form-parsing_html_ga83835bf250ee3d4a60f36a182f2b8d24"><div class="ttname"><a href="group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24">lws_spa_finalize</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_spa_finalize(struct lws_spa *spa)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:669</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:671</div></div> <div class="ttc" id="group__misc_html_ga629f48268fd1856b54b11172991b97d9"><div class="ttname"><a href="group__misc.html#ga629f48268fd1856b54b11172991b97d9">lws_get_count_threads</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_get_count_threads(struct lws_context *context)</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a8122cfc0810bafe51edb3ba6bf9a1251"><div class="ttname"><a href="structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251">lws_context_creation_info::plugin_dirs</a></div><div class="ttdeci">const char *const * plugin_dirs</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1705</div></div> -<div class="ttc" id="structlws__plugin_html_af4ac8fcb79e10e0c2d960e1804d98105"><div class="ttname"><a href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105">lws_plugin::name</a></div><div class="ttdeci">char name[64]</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1445</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a8122cfc0810bafe51edb3ba6bf9a1251"><div class="ttname"><a href="structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251">lws_context_creation_info::plugin_dirs</a></div><div class="ttdeci">const char *const * plugin_dirs</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1707</div></div> +<div class="ttc" id="structlws__plugin_html_af4ac8fcb79e10e0c2d960e1804d98105"><div class="ttname"><a href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105">lws_plugin::name</a></div><div class="ttdeci">char name[64]</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1447</div></div> <div class="ttc" id="group__HTTP-headers-read_html_ga594f3d0ece5b09c2ccf9f98ea533bb4e"><div class="ttname"><a href="group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e">lws_hdr_fragment_length</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_hdr_fragment_length(struct lws *wsi, enum lws_token_indexes h, int frag_idx)</div></div> <div class="ttc" id="libwebsockets_8h_html_a27bb0b3cdcd0af839c928c253b521ff4"><div class="ttname"><a href="libwebsockets_8h.html#a27bb0b3cdcd0af839c928c253b521ff4">lws_cgi_kill</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_cgi_kill(struct lws *wsi)</div></div> -<div class="ttc" id="structlws__email_html_a8f34ec0643a817be67ef4276aeb7fb82"><div class="ttname"><a href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82">lws_email::email_buf</a></div><div class="ttdeci">char email_buf[256]</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4331</div></div> +<div class="ttc" id="structlws__email_html_a8f34ec0643a817be67ef4276aeb7fb82"><div class="ttname"><a href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82">lws_email::email_buf</a></div><div class="ttdeci">char email_buf[256]</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4333</div></div> <div class="ttc" id="group__wsstatus_html_ga26a140623d202dd2bf2004deb6994baa"><div class="ttname"><a href="group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa">lws_is_ssl</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_is_ssl(struct lws *wsi)</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1534</div></div> -<div class="ttc" id="structlws__plat__file__ops_html_a034ec96f2fbaf52b4aa3e82d20795f7b"><div class="ttname"><a href="structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b">lws_plat_file_ops::close</a></div><div class="ttdeci">int(* close)(struct lws *wsi, lws_filefd_type fd)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4148</div></div> -<div class="ttc" id="structlws__plugin_html_af9e1042dc1de5b9d202c2f5fd1834330"><div class="ttname"><a href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330">lws_plugin::lib</a></div><div class="ttdeci">uv_lib_t lib</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1441</div></div> -<div class="ttc" id="structlws__polarssl__context_html_ae7e11c9129ff71c7ee71b3b2e320ff27"><div class="ttname"><a href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27">lws_polarssl_context::certificate</a></div><div class="ttdeci">x509_crt certificate</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:240</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1536</div></div> +<div class="ttc" id="structlws__plat__file__ops_html_a034ec96f2fbaf52b4aa3e82d20795f7b"><div class="ttname"><a href="structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b">lws_plat_file_ops::close</a></div><div class="ttdeci">int(* close)(struct lws *wsi, lws_filefd_type fd)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4150</div></div> +<div class="ttc" id="structlws__plugin_html_af9e1042dc1de5b9d202c2f5fd1834330"><div class="ttname"><a href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330">lws_plugin::lib</a></div><div class="ttdeci">uv_lib_t lib</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1443</div></div> +<div class="ttc" id="structlws__polarssl__context_html_ae7e11c9129ff71c7ee71b3b2e320ff27"><div class="ttname"><a href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27">lws_polarssl_context::certificate</a></div><div class="ttdeci">x509_crt certificate</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:242</div></div> <div class="ttc" id="group__net_html_ga092e5f473b3347f03ffeef8a950080f3"><div class="ttname"><a href="group__net.html#ga092e5f473b3347f03ffeef8a950080f3">lws_get_peer_addresses</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_get_peer_addresses(struct lws *wsi, lws_sockfd_type fd, char *name, int name_len, char *rip, int rip_len)</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4282</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4284</div></div> <div class="ttc" id="group__wsstatus_html_ga4ad226d5e01024b4046f4a5a37199aa1"><div class="ttname"><a href="group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1">lws_is_cgi</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_is_cgi(struct lws *wsi)</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a9862297827639238a7a0b4054c3ddf3d"><div class="ttname"><a href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d">lws_client_connect_info::ssl_connection</a></div><div class="ttdeci">int ssl_connection</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2098</div></div> -<div class="ttc" id="group__generic-sessions_html_ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308"><div class="ttname"><a href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1493</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a1654d41bea6fb2f619b57e6a264b26a4"><div class="ttname"><a href="structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4">lws_context_creation_info::provided_client_ssl_ctx</a></div><div class="ttdeci">SSL_CTX * provided_client_ssl_ctx</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1669</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a9862297827639238a7a0b4054c3ddf3d"><div class="ttname"><a href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d">lws_client_connect_info::ssl_connection</a></div><div class="ttdeci">int ssl_connection</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2100</div></div> +<div class="ttc" id="group__generic-sessions_html_ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308"><div class="ttname"><a href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1495</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a1654d41bea6fb2f619b57e6a264b26a4"><div class="ttname"><a href="structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4">lws_context_creation_info::provided_client_ssl_ctx</a></div><div class="ttdeci">SSL_CTX * provided_client_ssl_ctx</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1671</div></div> <div class="ttc" id="libwebsockets_8h_html_adf4abd01e8c43f07c6e498ce13590c3e"><div class="ttname"><a href="libwebsockets_8h.html#adf4abd01e8c43f07c6e498ce13590c3e">lws_rx_flow_control</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_rx_flow_control(struct lws *wsi, int enable)</div></div> -<div class="ttc" id="structlws__process__html__args_html"><div class="ttname"><a href="structlws__process__html__args.html">lws_process_html_args</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2537</div></div> +<div class="ttc" id="structlws__process__html__args_html"><div class="ttname"><a href="structlws__process__html__args.html">lws_process_html_args</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2539</div></div> <div class="ttc" id="group__fops_html_gac08aef64c4c34647ed699b24759b6b0e"><div class="ttname"><a href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops *LWS_WARN_UNUSED_RESULT lws_get_fops(struct lws_context *context)</div></div> -<div class="ttc" id="structlws__pollargs_html"><div class="ttname"><a href="structlws__pollargs.html">lws_pollargs</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:535</div></div> -<div class="ttc" id="structlws__http__mount_html_ae7b5c0f4c5408061e6ea3a8d281f45af"><div class="ttname"><a href="structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af">lws_http_mount::cgienv</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * cgienv</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2030</div></div> -<div class="ttc" id="structlws__protocol__vhost__options_html_acf9db77f8eb64cd4e314be9b43d8a8b9"><div class="ttname"><a href="structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9">lws_protocol_vhost_options::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1996</div></div> -<div class="ttc" id="structlws__http__mount_html_ac8489b60b8f969eb19c9abbdeac90743"><div class="ttname"><a href="structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743">lws_http_mount::mountpoint_len</a></div><div class="ttdeci">unsigned char mountpoint_len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2051</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3280</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1552</div></div> -<div class="ttc" id="structlws__pollfd_html_a714cf5ca90b41926117fdde9fa6542be"><div class="ttname"><a href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be">lws_pollfd::fd</a></div><div class="ttdeci">lws_sockfd_type fd</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:422</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2007</div></div> +<div class="ttc" id="structlws__pollargs_html"><div class="ttname"><a href="structlws__pollargs.html">lws_pollargs</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:537</div></div> +<div class="ttc" id="structlws__http__mount_html_ae7b5c0f4c5408061e6ea3a8d281f45af"><div class="ttname"><a href="structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af">lws_http_mount::cgienv</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * cgienv</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2032</div></div> +<div class="ttc" id="structlws__protocol__vhost__options_html_acf9db77f8eb64cd4e314be9b43d8a8b9"><div class="ttname"><a href="structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9">lws_protocol_vhost_options::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1998</div></div> +<div class="ttc" id="structlws__http__mount_html_ac8489b60b8f969eb19c9abbdeac90743"><div class="ttname"><a href="structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743">lws_http_mount::mountpoint_len</a></div><div class="ttdeci">unsigned char mountpoint_len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2053</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3282</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1554</div></div> +<div class="ttc" id="structlws__pollfd_html_a714cf5ca90b41926117fdde9fa6542be"><div class="ttname"><a href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be">lws_pollfd::fd</a></div><div class="ttdeci">lws_sockfd_type fd</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:424</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2009</div></div> <div class="ttc" id="group__wsstatus_html_ga08e9ee165fca503fd9427d55cfecac37"><div class="ttname"><a href="group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37">lws_is_final_fragment</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_is_final_fragment(struct lws *wsi)</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a4a3d1155fc52f5048b481884f6fb947c"><div class="ttname"><a href="structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c">lws_context_creation_info::extensions</a></div><div class="ttdeci">const struct lws_extension * extensions</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1620</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1536</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a4a3d1155fc52f5048b481884f6fb947c"><div class="ttname"><a href="structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c">lws_context_creation_info::extensions</a></div><div class="ttdeci">const struct lws_extension * extensions</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1622</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1538</div></div> <div class="ttc" id="group__Protocols-and-Plugins_html_gaec0c0477288ff3f83aff38d357b883d1"><div class="ttname"><a href="group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1">lws_protocol_vh_priv_zalloc</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, const struct lws_protocols *prot, int size)</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1541</div></div> -<div class="ttc" id="group__extensions_html_gacc9f55936dc165257a2e1f7d47bce89e"><div class="ttname"><a href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">lws_ext_options_types</a></div><div class="ttdeci">lws_ext_options_types</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1130</div></div> -<div class="ttc" id="structlws__context__creation__info_html_abb90ffb3e6d6db2db20f529d61bd9122"><div class="ttname"><a href="structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122">lws_context_creation_info::protocols</a></div><div class="ttdeci">const struct lws_protocols * protocols</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1616</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1543</div></div> +<div class="ttc" id="group__extensions_html_gacc9f55936dc165257a2e1f7d47bce89e"><div class="ttname"><a href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">lws_ext_options_types</a></div><div class="ttdeci">lws_ext_options_types</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1132</div></div> +<div class="ttc" id="structlws__context__creation__info_html_abb90ffb3e6d6db2db20f529d61bd9122"><div class="ttname"><a href="structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122">lws_context_creation_info::protocols</a></div><div class="ttdeci">const struct lws_protocols * protocols</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1618</div></div> <div class="ttc" id="group__context-and-vhost_html_ga98d88c9080fd89c37114363a6474ea73"><div class="ttname"><a href="group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73">lwsws_get_config_globals</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lwsws_get_config_globals(struct lws_context_creation_info *info, const char *d, char **config_strings, int *len)</div></div> <div class="ttc" id="group__misc_html_gaa194584fff9698f3b280658f770ccd0f"><div class="ttname"><a href="group__misc.html#gaa194584fff9698f3b280658f770ccd0f">lws_wsi_user</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void * lws_wsi_user(struct lws *wsi)</div></div> <div class="ttc" id="group__misc_html_ga33bf2635033710b25f931b57ed663e1e"><div class="ttname"><a href="group__misc.html#ga33bf2635033710b25f931b57ed663e1e">lws_now_secs</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN unsigned long lws_now_secs(void)</div></div> <div class="ttc" id="group__net_html_gad01014fed09759741b6d23afccfdaacc"><div class="ttname"><a href="group__net.html#gad01014fed09759741b6d23afccfdaacc">lws_get_peer_simple</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const char * lws_get_peer_simple(struct lws *wsi, char *name, int namelen)</div></div> -<div class="ttc" id="structlws__ext__option__arg_html_a0b1f7b30c3ceaf5f1bf9d105c24568d1"><div class="ttname"><a href="structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1">lws_ext_option_arg::start</a></div><div class="ttdeci">const char * start</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1155</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a3e1516fd7fed26bfa77c0246ed26c2eb"><div class="ttname"><a href="structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb">lws_context_creation_info::ssl_cipher_list</a></div><div class="ttdeci">const char * ssl_cipher_list</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1640</div></div> +<div class="ttc" id="structlws__ext__option__arg_html_a0b1f7b30c3ceaf5f1bf9d105c24568d1"><div class="ttname"><a href="structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1">lws_ext_option_arg::start</a></div><div class="ttdeci">const char * start</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1157</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a3e1516fd7fed26bfa77c0246ed26c2eb"><div class="ttname"><a href="structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb">lws_context_creation_info::ssl_cipher_list</a></div><div class="ttdeci">const char * ssl_cipher_list</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1642</div></div> <div class="ttc" id="group__HTTP-headers-create_html_ga2b36bf44405755ff51c1939303b995a8"><div class="ttname"><a href="group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8">lws_add_http_header_by_name</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_by_name(struct lws *wsi, const unsigned char *name, const unsigned char *value, int length, unsigned char **p, unsigned char *end)</div></div> -<div class="ttc" id="structlws__http__mount_html_aa2391bfcada0b7a290b3c6651f64586c"><div class="ttname"><a href="structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c">lws_http_mount::mountpoint</a></div><div class="ttdeci">const char * mountpoint</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2021</div></div> -<div class="ttc" id="structlws__context__creation__info_html_aef917c0b23976a264d2474901b4f5aa3"><div class="ttname"><a href="structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3">lws_context_creation_info::http_proxy_address</a></div><div class="ttdeci">const char * http_proxy_address</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1644</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:831</div></div> -<div class="ttc" id="structlws__polarssl__context_html_a919c33af37aab170f828d954de1fa270"><div class="ttname"><a href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270">lws_polarssl_context::key</a></div><div class="ttdeci">rsa_context key</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:241</div></div> -<div class="ttc" id="structlws__context__creation__info_html_ac62b0f0e8e402412ba5011d15c244103"><div class="ttname"><a href="structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103">lws_context_creation_info::ssl_cert_filepath</a></div><div class="ttdeci">const char * ssl_cert_filepath</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1628</div></div> -<div class="ttc" id="structlws__context__creation__info_html_afa5d4e7d9f86b58a1c6fac14f0a5f5f9"><div class="ttname"><a href="structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9">lws_context_creation_info::ecdh_curve</a></div><div class="ttdeci">const char * ecdh_curve</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1699</div></div> -<div class="ttc" id="structlws__http__mount_html_a4a7239d6d4c03986e6e1a72abb6c83aa"><div class="ttname"><a href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa">lws_http_mount::cgi_timeout</a></div><div class="ttdeci">int cgi_timeout</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2039</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2009</div></div> -<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1478</div></div> -<div class="ttc" id="structpollfd_html"><div class="ttname"><a href="structpollfd.html">pollfd</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:436</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:592</div></div> +<div class="ttc" id="structlws__http__mount_html_aa2391bfcada0b7a290b3c6651f64586c"><div class="ttname"><a href="structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c">lws_http_mount::mountpoint</a></div><div class="ttdeci">const char * mountpoint</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2023</div></div> +<div class="ttc" id="structlws__context__creation__info_html_aef917c0b23976a264d2474901b4f5aa3"><div class="ttname"><a href="structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3">lws_context_creation_info::http_proxy_address</a></div><div class="ttdeci">const char * http_proxy_address</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1646</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:833</div></div> +<div class="ttc" id="structlws__polarssl__context_html_a919c33af37aab170f828d954de1fa270"><div class="ttname"><a href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270">lws_polarssl_context::key</a></div><div class="ttdeci">rsa_context key</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:243</div></div> +<div class="ttc" id="structlws__context__creation__info_html_ac62b0f0e8e402412ba5011d15c244103"><div class="ttname"><a href="structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103">lws_context_creation_info::ssl_cert_filepath</a></div><div class="ttdeci">const char * ssl_cert_filepath</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1630</div></div> +<div class="ttc" id="structlws__context__creation__info_html_afa5d4e7d9f86b58a1c6fac14f0a5f5f9"><div class="ttname"><a href="structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9">lws_context_creation_info::ecdh_curve</a></div><div class="ttdeci">const char * ecdh_curve</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1701</div></div> +<div class="ttc" id="structlws__http__mount_html_a4a7239d6d4c03986e6e1a72abb6c83aa"><div class="ttname"><a href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa">lws_http_mount::cgi_timeout</a></div><div class="ttdeci">int cgi_timeout</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2041</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2011</div></div> +<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1480</div></div> +<div class="ttc" id="structpollfd_html"><div class="ttname"><a href="structpollfd.html">pollfd</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:438</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:594</div></div> <div class="ttc" id="group__wsstatus_html_ga3df5045656dfb6b0e63a38de2dca79d2"><div class="ttname"><a href="group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2">lws_get_reserved_bits</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN unsigned char lws_get_reserved_bits(struct lws *wsi)</div></div> <div class="ttc" id="group__sha_html_ga7b09ab74646266f0b555103b3bb8dfe5"><div class="ttname"><a href="group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5">lws_SHA1</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN unsigned char * lws_SHA1(const unsigned char *d, size_t n, unsigned char *md)</div></div> <div class="ttc" id="group__HTTP-headers-read_html_ga2c0597b2ef1d2cee35736c338bcbd17b"><div class="ttname"><a href="group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b">lws_token_to_string</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const unsigned char * lws_token_to_string(enum lws_token_indexes token)</div></div> <div class="ttc" id="group__extensions_html_gae0e24e1768f83a7fb07896ce975704b9"><div class="ttname"><a href="group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9">lws_set_extension_option</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_set_extension_option(struct lws *wsi, const char *ext_name, const char *opt_name, const char *opt_val)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:737</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:739</div></div> <div class="ttc" id="libwebsockets_8h_html_af52923473c59e643a974d65e12290831"><div class="ttname"><a href="libwebsockets_8h.html#af52923473c59e643a974d65e12290831">lws_cgi</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_cgi(struct lws *wsi, const char *const *exec_array, int script_uri_path_len, int timeout_secs, const struct lws_protocol_vhost_options *mp_cgienv)</div></div> <div class="ttc" id="group__client_html_ga4af0a20108a95e8b6d94dd4d80055ff3"><div class="ttname"><a href="group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3">lws_client_connect</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_client_connect(struct lws_context *clients, const char *address, int port, int ssl_connection, const char *path, const char *host, const char *origin, const char *protocol, int ietf_version_or_minus_one) LWS_WARN_DEPRECATED</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:771</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:773</div></div> <div class="ttc" id="group__context-and-vhost_html_ga341064721add2618ae1b29717493a212"><div class="ttname"><a href="group__context-and-vhost.html#ga341064721add2618ae1b29717493a212">lwsws_get_config_vhosts</a></div><div class="ttdeci">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)</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1561</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1563</div></div> <div class="ttc" id="group__log_html_ga42e39775c6b69b7251bdbf5a2cdd5dcd"><div class="ttname"><a href="group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd">lwsl_timestamp</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lwsl_timestamp(int level, char *p, int len)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1009</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1573</div></div> -<div class="ttc" id="structlws__email_html_a77723e2f2b940b1c879ef5e1cd88c2be"><div class="ttname"><a href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be">lws_email::timeout_email</a></div><div class="ttdeci">uv_timer_t timeout_email</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4326</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1543</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a0b154e79abc1167ba4ac3539f4af6720"><div class="ttname"><a href="structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720">lws_context_creation_info::max_http_header_pool</a></div><div class="ttdeci">short max_http_header_pool</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1681</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1011</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1575</div></div> +<div class="ttc" id="structlws__email_html_a77723e2f2b940b1c879ef5e1cd88c2be"><div class="ttname"><a href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be">lws_email::timeout_email</a></div><div class="ttdeci">uv_timer_t timeout_email</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4328</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1545</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a0b154e79abc1167ba4ac3539f4af6720"><div class="ttname"><a href="structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720">lws_context_creation_info::max_http_header_pool</a></div><div class="ttdeci">short max_http_header_pool</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1683</div></div> <div class="ttc" id="group__html-chunked-substitution_html_ga643073f918c0a7016b690aae9793fd60"><div class="ttname"><a href="group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60">lws_chunked_html_process</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_chunked_html_process(struct lws_process_html_args *args, struct lws_process_html_state *s)</div></div> -<div class="ttc" id="structlws__process__html__args_html_a11859d8bedd379fbf64543b25c65fe14"><div class="ttname"><a href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14">lws_process_html_args::p</a></div><div class="ttdeci">char * p</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2538</div></div> -<div class="ttc" id="structlws__polarssl__context_html_a1872f2ea24878d807ae20ca8513674af"><div class="ttname"><a href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af">lws_polarssl_context::ca</a></div><div class="ttdeci">x509_crt ca</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:239</div></div> -<div class="ttc" id="structlws__protocols_html_a9bbd85f591ffb4259711cb5acbb05bea"><div class="ttname"><a href="structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea">lws_protocols::per_session_data_size</a></div><div class="ttdeci">size_t per_session_data_size</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1324</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:576</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a6b059b7ee248cba72a3a4fd6141b0b34"><div class="ttname"><a href="structlws__context__creation__info.html#a6b059b7ee248cba72a3a4fd6141b0b34">lws_context_creation_info::reject_service_keywords</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * reject_service_keywords</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1753</div></div> -<div class="ttc" id="group__smtp_html_ga116be79bf44f9dc2a97f46e051fe4dc0"><div class="ttname"><a href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">lwsgs_smtp_states</a></div><div class="ttdeci">lwsgs_smtp_states</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4280</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1555</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:849</div></div> -<div class="ttc" id="group__misc_html_ga9f37d0e357de2ab4170723fcdb665d21"><div class="ttname"><a href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">lws_snprintf</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_snprintf(char *str, size_t size, const char *format,...)</div></div> +<div class="ttc" id="structlws__process__html__args_html_a11859d8bedd379fbf64543b25c65fe14"><div class="ttname"><a href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14">lws_process_html_args::p</a></div><div class="ttdeci">char * p</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2540</div></div> +<div class="ttc" id="structlws__polarssl__context_html_a1872f2ea24878d807ae20ca8513674af"><div class="ttname"><a href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af">lws_polarssl_context::ca</a></div><div class="ttdeci">x509_crt ca</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:241</div></div> +<div class="ttc" id="structlws__protocols_html_a9bbd85f591ffb4259711cb5acbb05bea"><div class="ttname"><a href="structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea">lws_protocols::per_session_data_size</a></div><div class="ttdeci">size_t per_session_data_size</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1326</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:578</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a6b059b7ee248cba72a3a4fd6141b0b34"><div class="ttname"><a href="structlws__context__creation__info.html#a6b059b7ee248cba72a3a4fd6141b0b34">lws_context_creation_info::reject_service_keywords</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * reject_service_keywords</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1755</div></div> +<div class="ttc" id="group__smtp_html_ga116be79bf44f9dc2a97f46e051fe4dc0"><div class="ttname"><a href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">lwsgs_smtp_states</a></div><div class="ttdeci">lwsgs_smtp_states</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4282</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1557</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:851</div></div> <div class="ttc" id="group__sock-adopt_html_ga5ed5fd251ac0ed46798af341c33bf067"><div class="ttname"><a href="group__sock-adopt.html#ga5ed5fd251ac0ed46798af341c33bf067">lws_adopt_socket_vhost_readbuf</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws * lws_adopt_socket_vhost_readbuf(struct lws_vhost *vhost, lws_sockfd_type accept_fd, const char *readbuf, size_t len)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:735</div></div> -<div class="ttc" id="structlws__protocols_html"><div class="ttname"><a href="structlws__protocols.html">lws_protocols</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1316</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:581</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:737</div></div> +<div class="ttc" id="structlws__protocols_html"><div class="ttname"><a href="structlws__protocols.html">lws_protocols</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1318</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:583</div></div> <div class="ttc" id="group__http_html_ga8fbf01e473ac421fc33ad9f8da8b8a25"><div class="ttname"><a href="group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25">lws_http_redirect</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_http_redirect(struct lws *wsi, int code, const unsigned char *loc, int len, unsigned char **p, unsigned char *end)</div></div> -<div class="ttc" id="structlws__context__creation__info_html_ae52f3237e144e9ddcab5e2cf91d1e419"><div class="ttname"><a href="structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419">lws_context_creation_info::count_threads</a></div><div class="ttdeci">unsigned int count_threads</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1688</div></div> -<div class="ttc" id="structlws__gs__event__args_html_acd17e4f9f91f7f9a8f0fbf0744a3a463"><div class="ttname"><a href="structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463">lws_gs_event_args::email</a></div><div class="ttdeci">const char * email</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1501</div></div> +<div class="ttc" id="structlws__context__creation__info_html_ae52f3237e144e9ddcab5e2cf91d1e419"><div class="ttname"><a href="structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419">lws_context_creation_info::count_threads</a></div><div class="ttdeci">unsigned int count_threads</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1690</div></div> +<div class="ttc" id="structlws__gs__event__args_html_acd17e4f9f91f7f9a8f0fbf0744a3a463"><div class="ttname"><a href="structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463">lws_gs_event_args::email</a></div><div class="ttdeci">const char * email</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1503</div></div> <div class="ttc" id="group__misc_html_ga58f906c6be0ca80efd813f694569dd4a"><div class="ttname"><a href="group__misc.html#ga58f906c6be0ca80efd813f694569dd4a">lws_get_random</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_get_random(struct lws_context *context, void *buf, int len)</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:563</div></div> -<div class="ttc" id="structlws__email_html_a5f53d4c5a1e34b0dcaa8787e2eabb1b3"><div class="ttname"><a href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3">lws_email::email_connect_req</a></div><div class="ttdeci">uv_connect_t email_connect_req</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4328</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a137a9b9de4f6a7993fed8746d551e616"><div class="ttname"><a href="structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616">lws_context_creation_info::server_string</a></div><div class="ttdeci">const char * server_string</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1719</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1566</div></div> -<div class="ttc" id="structlws__pollfd_html_ac393db6fc7fb6ed8fe7ca20936908ee9"><div class="ttname"><a href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9">lws_pollfd::events</a></div><div class="ttdeci">SHORT events</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:423</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:740</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1550</div></div> -<div class="ttc" id="structlws__context__creation__info_html_ad50db098a208f045f7811207d2bee4b9"><div class="ttname"><a href="structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9">lws_context_creation_info::vhost_name</a></div><div class="ttdeci">const char * vhost_name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1701</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2010</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:565</div></div> +<div class="ttc" id="structlws__email_html_a5f53d4c5a1e34b0dcaa8787e2eabb1b3"><div class="ttname"><a href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3">lws_email::email_connect_req</a></div><div class="ttdeci">uv_connect_t email_connect_req</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4330</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a137a9b9de4f6a7993fed8746d551e616"><div class="ttname"><a href="structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616">lws_context_creation_info::server_string</a></div><div class="ttdeci">const char * server_string</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1721</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1568</div></div> +<div class="ttc" id="structlws__pollfd_html_ac393db6fc7fb6ed8fe7ca20936908ee9"><div class="ttname"><a href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9">lws_pollfd::events</a></div><div class="ttdeci">SHORT events</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:425</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:742</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1552</div></div> +<div class="ttc" id="structlws__context__creation__info_html_ad50db098a208f045f7811207d2bee4b9"><div class="ttname"><a href="structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9">lws_context_creation_info::vhost_name</a></div><div class="ttdeci">const char * vhost_name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1703</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2012</div></div> <div class="ttc" id="group__Protocols-and-Plugins_html_ga72ad550786ca7976463589d347e62112"><div class="ttname"><a href="group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112">lws_get_protocol</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const struct lws_protocols * lws_get_protocol(struct lws *wsi)</div></div> -<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1476</div></div> -<div class="ttc" id="structlws__gs__event__args_html"><div class="ttname"><a href="structlws__gs__event__args.html">lws_gs_event_args</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1498</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a45e63e24c88289e0c8352377ef4d3646"><div class="ttname"><a href="structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646">lws_context_creation_info::fd_limit_per_thread</a></div><div class="ttdeci">unsigned int fd_limit_per_thread</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1690</div></div> +<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1478</div></div> +<div class="ttc" id="structlws__gs__event__args_html"><div class="ttname"><a href="structlws__gs__event__args.html">lws_gs_event_args</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1500</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a45e63e24c88289e0c8352377ef4d3646"><div class="ttname"><a href="structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646">lws_context_creation_info::fd_limit_per_thread</a></div><div class="ttdeci">unsigned int fd_limit_per_thread</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1692</div></div> <div class="ttc" id="libwebsockets_8h_html_a5326d3402af8429a166dd991dc65c4a2"><div class="ttname"><a href="libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2">lws_cgi_write_split_stdout_headers</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_cgi_write_split_stdout_headers(struct lws *wsi)</div></div> -<div class="ttc" id="group__generic-sessions_html_gaa93946b3d921072209d5cd8cdfa5332e"><div class="ttname"><a href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">lws_gs_event</a></div><div class="ttdeci">lws_gs_event</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1492</div></div> +<div class="ttc" id="group__generic-sessions_html_gaa93946b3d921072209d5cd8cdfa5332e"><div class="ttname"><a href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">lws_gs_event</a></div><div class="ttdeci">lws_gs_event</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1494</div></div> <div class="ttc" id="group__Protocols-and-Plugins_html_ga106b37ae9c247e84d191ab09441adc43"><div class="ttname"><a href="group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43">lws_finalize_startup</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_finalize_startup(struct lws_context *context)</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a381342a398883d6204955ff3c1849ddd"><div class="ttname"><a href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd">lws_context_creation_info::ka_interval</a></div><div class="ttdeci">int ka_interval</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1665</div></div> -<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1475</div></div> -<div class="ttc" id="structlws__context__creation__info_html_ac105b4180008cb3e672d57beead8382e"><div class="ttname"><a href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e">lws_context_creation_info::uid</a></div><div class="ttdeci">int uid</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1651</div></div> -<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2930</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a381342a398883d6204955ff3c1849ddd"><div class="ttname"><a href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd">lws_context_creation_info::ka_interval</a></div><div class="ttdeci">int ka_interval</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1667</div></div> +<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1477</div></div> +<div class="ttc" id="structlws__context__creation__info_html_ac105b4180008cb3e672d57beead8382e"><div class="ttname"><a href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e">lws_context_creation_info::uid</a></div><div class="ttdeci">int uid</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1653</div></div> +<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2932</div></div> <div class="ttc" id="group__sha_html_gaf39765e4a3b413efb65e4698b2ec3575"><div class="ttname"><a href="group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575">lws_b64_encode_string</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_b64_encode_string(const char *in, int in_len, char *out, int out_size)</div></div> <div class="ttc" id="group__context-and-vhost_html_gaeb12f934bfd178bd2132a9e73fc641da"><div class="ttname"><a href="group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da">lws_context_user</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void * lws_context_user(struct lws_context *context)</div></div> -<div class="ttc" id="structlws__protocols_html_a0e63edb457a613c3fa4271e0a8f19624"><div class="ttname"><a href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624">lws_protocols::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1317</div></div> +<div class="ttc" id="structlws__protocols_html_a0e63edb457a613c3fa4271e0a8f19624"><div class="ttname"><a href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624">lws_protocols::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1319</div></div> <div class="ttc" id="group__client_html_ga4f44b8230e6732816ca5cd8d1aaaf340"><div class="ttname"><a href="group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340">lws_init_vhost_client_ssl</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_init_vhost_client_ssl(const struct lws_context_creation_info *info, struct lws_vhost *vhost)</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4286</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a7b59f2bdc869871e7bde232db94f5ca6"><div class="ttname"><a href="structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6">lws_context_creation_info::http_proxy_port</a></div><div class="ttdeci">unsigned int http_proxy_port</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1647</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4288</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a7b59f2bdc869871e7bde232db94f5ca6"><div class="ttname"><a href="structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6">lws_context_creation_info::http_proxy_port</a></div><div class="ttdeci">unsigned int http_proxy_port</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1649</div></div> <div class="ttc" id="group__wsstatus_html_gaeca4afc94b1f026034f99cbba37e2f85"><div class="ttname"><a href="group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85">lws_partial_buffered</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_partial_buffered(struct lws *wsi)</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a6cfa3d51df2def3349a5cbf0d712822d"><div class="ttname"><a href="structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d">lws_context_creation_info::timeout_secs</a></div><div class="ttdeci">unsigned int timeout_secs</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1694</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a424a5ce268d6903e42243be94487ab85"><div class="ttname"><a href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85">lws_context_creation_info::port</a></div><div class="ttdeci">int port</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1604</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a6cfa3d51df2def3349a5cbf0d712822d"><div class="ttname"><a href="structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d">lws_context_creation_info::timeout_secs</a></div><div class="ttdeci">unsigned int timeout_secs</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1696</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a424a5ce268d6903e42243be94487ab85"><div class="ttname"><a href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85">lws_context_creation_info::port</a></div><div class="ttdeci">int port</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1606</div></div> <div class="ttc" id="group__misc_html_ga1ec0d9faac5d3a5824d765c287c043aa"><div class="ttname"><a href="group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa">lws_parse_uri</a></div><div class="ttdeci">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)</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a9d3b17a25e1fbc772f21eb4959a82724"><div class="ttname"><a href="structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724">lws_context_creation_info::options</a></div><div class="ttdeci">unsigned int options</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1653</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a9d3b17a25e1fbc772f21eb4959a82724"><div class="ttname"><a href="structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724">lws_context_creation_info::options</a></div><div class="ttdeci">unsigned int options</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1655</div></div> <div class="ttc" id="group__form-parsing_html_ga3fbe378632f85ec9a14cc2c1687bf05f"><div class="ttname"><a href="group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f">lws_spa_get_length</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_spa_get_length(struct lws_spa *spa, int n)</div></div> -<div class="ttc" id="structlws__protocol__vhost__options_html_afd99fbc90be51ea2465b550c2ec47822"><div class="ttname"><a href="structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822">lws_protocol_vhost_options::options</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * options</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1995</div></div> -<div class="ttc" id="structlws__pollargs_html_a437fec0de5cf264371e1ab5a401e86d8"><div class="ttname"><a href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8">lws_pollargs::prev_events</a></div><div class="ttdeci">int prev_events</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:538</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a81697c6b763b5ef3ee52862bc70b07d6"><div class="ttname"><a href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6">lws_context_creation_info::keepalive_timeout</a></div><div class="ttdeci">int keepalive_timeout</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1711</div></div> -<div class="ttc" id="structlws__session__info_html"><div class="ttname"><a href="structlws__session__info.html">lws_session_info</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1482</div></div> -<div class="ttc" id="structlws__ext__options_html"><div class="ttname"><a href="structlws__ext__options.html">lws_ext_options</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1143</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a8ca0ec6b8675c13849bbdcdc0d50c9a3"><div class="ttname"><a href="structlws__context__creation__info.html#a8ca0ec6b8675c13849bbdcdc0d50c9a3">lws_context_creation_info::headers</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * headers</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1749</div></div> -<div class="ttc" id="structlws__token__limits_html"><div class="ttname"><a href="structlws__token__limits.html">lws_token_limits</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2727</div></div> +<div class="ttc" id="structlws__protocol__vhost__options_html_afd99fbc90be51ea2465b550c2ec47822"><div class="ttname"><a href="structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822">lws_protocol_vhost_options::options</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * options</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1997</div></div> +<div class="ttc" id="structlws__pollargs_html_a437fec0de5cf264371e1ab5a401e86d8"><div class="ttname"><a href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8">lws_pollargs::prev_events</a></div><div class="ttdeci">int prev_events</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:540</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a81697c6b763b5ef3ee52862bc70b07d6"><div class="ttname"><a href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6">lws_context_creation_info::keepalive_timeout</a></div><div class="ttdeci">int keepalive_timeout</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1713</div></div> +<div class="ttc" id="structlws__session__info_html"><div class="ttname"><a href="structlws__session__info.html">lws_session_info</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1484</div></div> +<div class="ttc" id="structlws__ext__options_html"><div class="ttname"><a href="structlws__ext__options.html">lws_ext_options</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1145</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a8ca0ec6b8675c13849bbdcdc0d50c9a3"><div class="ttname"><a href="structlws__context__creation__info.html#a8ca0ec6b8675c13849bbdcdc0d50c9a3">lws_context_creation_info::headers</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * headers</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1751</div></div> +<div class="ttc" id="structlws__token__limits_html"><div class="ttname"><a href="structlws__token__limits.html">lws_token_limits</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2729</div></div> <div class="ttc" id="group__sending-data_html_gafd5fdd285a0e25ba7e3e1051deec1001"><div class="ttname"><a href="group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001">lws_write</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_write(struct lws *wsi, unsigned char *buf, size_t len, enum lws_write_protocol protocol)</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a999866fcd15dbd621773436f97190458"><div class="ttname"><a href="structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458">lws_context_creation_info::pvo</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * pvo</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1708</div></div> -<div class="ttc" id="structlws__http__mount_html_a2f6c7dbc2d714b7259c67b7744d4ff98"><div class="ttname"><a href="structlws__http__mount.html#a2f6c7dbc2d714b7259c67b7744d4ff98">lws_http_mount::basic_auth_login_file</a></div><div class="ttdeci">const char * basic_auth_login_file</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2053</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a9b36d47c3422329df32c21040a35ebc7"><div class="ttname"><a href="structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7">lws_client_connect_info::host</a></div><div class="ttdeci">const char * host</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2102</div></div> -<div class="ttc" id="structlws__ext__option__arg_html"><div class="ttname"><a href="structlws__ext__option__arg.html">lws_ext_option_arg</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1152</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:602</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a999866fcd15dbd621773436f97190458"><div class="ttname"><a href="structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458">lws_context_creation_info::pvo</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * pvo</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1710</div></div> +<div class="ttc" id="structlws__http__mount_html_a2f6c7dbc2d714b7259c67b7744d4ff98"><div class="ttname"><a href="structlws__http__mount.html#a2f6c7dbc2d714b7259c67b7744d4ff98">lws_http_mount::basic_auth_login_file</a></div><div class="ttdeci">const char * basic_auth_login_file</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2055</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a9b36d47c3422329df32c21040a35ebc7"><div class="ttname"><a href="structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7">lws_client_connect_info::host</a></div><div class="ttdeci">const char * host</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2104</div></div> +<div class="ttc" id="structlws__ext__option__arg_html"><div class="ttname"><a href="structlws__ext__option__arg.html">lws_ext_option_arg</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1154</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:604</div></div> <div class="ttc" id="group__Protocols-and-Plugins_html_ga25754726d97c5f519d313e691a9fe29d"><div class="ttname"><a href="group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d">lws_vhost_name_to_protocol</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const struct lws_protocols * lws_vhost_name_to_protocol(struct lws_vhost *vh, const char *name)</div></div> -<div class="ttc" id="structlws__cgi__args_html_a36e5c256433c187bd0eaa9c1ca667f1d"><div class="ttname"><a href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d">lws_cgi_args::len</a></div><div class="ttdeci">int len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4083</div></div> +<div class="ttc" id="structlws__cgi__args_html_a36e5c256433c187bd0eaa9c1ca667f1d"><div class="ttname"><a href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d">lws_cgi_args::len</a></div><div class="ttdeci">int len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4085</div></div> <div class="ttc" id="group__HTTP-headers-read_html_ga84e9ce5e71a77501a0998ac403a984c2"><div class="ttname"><a href="group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2">lws_get_urlarg_by_name</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const char * lws_get_urlarg_by_name(struct lws *wsi, const char *name, char *buf, int len)</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a75434932bb5df54665ea678eb8ac104a"><div class="ttname"><a href="structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a">lws_context_creation_info::iface</a></div><div class="ttdeci">const char * iface</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1609</div></div> -<div class="ttc" id="structlws__plat__file__ops_html"><div class="ttname"><a href="structlws__plat__file__ops.html">lws_plat_file_ops</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4142</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a75434932bb5df54665ea678eb8ac104a"><div class="ttname"><a href="structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a">lws_context_creation_info::iface</a></div><div class="ttdeci">const char * iface</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1611</div></div> +<div class="ttc" id="structlws__plat__file__ops_html"><div class="ttname"><a href="structlws__plat__file__ops.html">lws_plat_file_ops</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4144</div></div> <div class="ttc" id="group__log_html_ga898b1f03872ad019f507d4e35bbefa90"><div class="ttname"><a href="group__log.html#ga898b1f03872ad019f507d4e35bbefa90">lwsl_hexdump</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6">LWS_CALLBACK_CLIENT_HTTP_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1014</div></div> -<div class="ttc" id="group__form-parsing_html_ga41a74a822771d3dce89751aa3bce28ae"><div class="ttname"><a href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">lws_spa_fileupload_states</a></div><div class="ttdeci">lws_spa_fileupload_states</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2925</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6">LWS_CALLBACK_CLIENT_HTTP_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1016</div></div> +<div class="ttc" id="group__form-parsing_html_ga41a74a822771d3dce89751aa3bce28ae"><div class="ttname"><a href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">lws_spa_fileupload_states</a></div><div class="ttdeci">lws_spa_fileupload_states</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2927</div></div> <div class="ttc" id="group__service_html_gad82efa5466d14a9f05aa06416375b28d"><div class="ttname"><a href="group__service.html#gad82efa5466d14a9f05aa06416375b28d">lws_service_fd</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_service_fd(struct lws_context *context, struct lws_pollfd *pollfd)</div></div> <div class="ttc" id="group__callback-when-writeable_html_ga60939cf0c073d933fde3d17f3591caf5"><div class="ttname"><a href="group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5">lws_callback_vhost_protocols</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_callback_vhost_protocols(struct lws *wsi, int reason, void *in, int len)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:825</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:560</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:569</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:827</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:562</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:571</div></div> <div class="ttc" id="group__pur_html_ga9cc82f06e5ae7e71458626d7a39a5865"><div class="ttname"><a href="group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865">lws_sql_purify</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const char * lws_sql_purify(char *escaped, const char *string, int len)</div></div> -<div class="ttc" id="structlws__email_html_a01f31934166dc6d01e8a375012f8ad1e"><div class="ttname"><a href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e">lws_email::email_client</a></div><div class="ttdeci">uv_tcp_t email_client</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4329</div></div> -<div class="ttc" id="structlws__pollfd_html"><div class="ttname"><a href="structlws__pollfd.html">lws_pollfd</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:421</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:673</div></div> -<div class="ttc" id="structlws__plat__file__ops_html_ad37a97abc68d0af967cef874f4d8df32"><div class="ttname"><a href="structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32">lws_plat_file_ops::open</a></div><div class="ttdeci">lws_filefd_type(* open)(struct lws *wsi, const char *filename, unsigned long *filelen, int flags)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4143</div></div> -<div class="ttc" id="group__sending-data_html_ga98b099cf8c1c7e38ad78501f270e193d"><div class="ttname"><a href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a></div><div class="ttdeci">lws_write_protocol</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3272</div></div> -<div class="ttc" id="structlws__extension_html_a36b06c213aedb02bf9a402651751855b"><div class="ttname"><a href="structlws__extension.html#a36b06c213aedb02bf9a402651751855b">lws_extension::client_offer</a></div><div class="ttdeci">const char * client_offer</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1229</div></div> -<div class="ttc" id="structlws__plat__file__ops_html_a01f483807a9862736b17ba9ed5110c40"><div class="ttname"><a href="structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40">lws_plat_file_ops::read</a></div><div class="ttdeci">int(* read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, unsigned char *buf, unsigned long len)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4153</div></div> +<div class="ttc" id="structlws__email_html_a01f31934166dc6d01e8a375012f8ad1e"><div class="ttname"><a href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e">lws_email::email_client</a></div><div class="ttdeci">uv_tcp_t email_client</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4331</div></div> +<div class="ttc" id="structlws__pollfd_html"><div class="ttname"><a href="structlws__pollfd.html">lws_pollfd</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:423</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:675</div></div> +<div class="ttc" id="structlws__plat__file__ops_html_ad37a97abc68d0af967cef874f4d8df32"><div class="ttname"><a href="structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32">lws_plat_file_ops::open</a></div><div class="ttdeci">lws_filefd_type(* open)(struct lws *wsi, const char *filename, unsigned long *filelen, int flags)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4145</div></div> +<div class="ttc" id="group__sending-data_html_ga98b099cf8c1c7e38ad78501f270e193d"><div class="ttname"><a href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a></div><div class="ttdeci">lws_write_protocol</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3274</div></div> +<div class="ttc" id="structlws__extension_html_a36b06c213aedb02bf9a402651751855b"><div class="ttname"><a href="structlws__extension.html#a36b06c213aedb02bf9a402651751855b">lws_extension::client_offer</a></div><div class="ttdeci">const char * client_offer</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1231</div></div> +<div class="ttc" id="structlws__plat__file__ops_html_a01f483807a9862736b17ba9ed5110c40"><div class="ttname"><a href="structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40">lws_plat_file_ops::read</a></div><div class="ttdeci">int(* read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, unsigned char *buf, unsigned long len)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4155</div></div> <div class="ttc" id="group__service_html_ga53e3d0801dfda7960a7249dd559e68a2"><div class="ttname"><a href="group__service.html#ga53e3d0801dfda7960a7249dd559e68a2">lws_cancel_service</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_cancel_service(struct lws_context *context)</div></div> -<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2926</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:574</div></div> -<div class="ttc" id="structlws__http__mount_html_a21d86fd6043ec00e121ababbc29af39a"><div class="ttname"><a href="structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a">lws_http_mount::origin</a></div><div class="ttdeci">const char * origin</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2023</div></div> -<div class="ttc" id="structlws__ext__options_html_a1769e4a9805bbdda227821e9578ddc7e"><div class="ttname"><a href="structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e">lws_ext_options::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1144</div></div> +<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2928</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:576</div></div> +<div class="ttc" id="structlws__http__mount_html_a21d86fd6043ec00e121ababbc29af39a"><div class="ttname"><a href="structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a">lws_http_mount::origin</a></div><div class="ttdeci">const char * origin</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2025</div></div> +<div class="ttc" id="structlws__ext__options_html_a1769e4a9805bbdda227821e9578ddc7e"><div class="ttname"><a href="structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e">lws_ext_options::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1146</div></div> <div class="ttc" id="group__httpft_html_gab393a06d3d2722af4c3f8b06842c80d7"><div class="ttname"><a href="group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7">lws_serve_http_file</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type, const char *other_headers, int other_headers_len)</div></div> <div class="ttc" id="group__smtp_html_ga5e535e346d92a9daf00be33abf79d4eb"><div class="ttname"><a href="group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb">lws_email_check</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_email_check(struct lws_email *email)</div></div> <div class="ttc" id="group__context-and-vhost_html_ga7e9d5405547a457d86e0b4f0ae2bb1c4"><div class="ttname"><a href="group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4">lws_set_proxy</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_set_proxy(struct lws_vhost *vhost, const char *proxy)</div></div> <div class="ttc" id="group__wsstatus_html_gaccd9c59336efad8af0554f79cc5966fd"><div class="ttname"><a href="group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd">lws_frame_is_binary</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_frame_is_binary(struct lws *wsi)</div></div> <div class="ttc" id="group__HTTP-headers-read_html_ga6ce6aa1c0155ea42b7708bed271d1c77"><div class="ttname"><a href="group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77">lws_hdr_copy</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_hdr_copy(struct lws *wsi, char *dest, int len, enum lws_token_indexes h)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:750</div></div> -<div class="ttc" id="structlws__extension_html_a1e5018c883d85176f5c2152176843f9e"><div class="ttname"><a href="structlws__extension.html#a1e5018c883d85176f5c2152176843f9e">lws_extension::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1227</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4285</div></div> -<div class="ttc" id="structpollfd_html_aafb457d11cac415faf0e1e2b825118c2"><div class="ttname"><a href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2">pollfd::revents</a></div><div class="ttdeci">short revents</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:439</div></div> -<div class="ttc" id="structlws__extension_html_afa21f3b3c8c2c9212a276c52b680c3af"><div class="ttname"><a href="structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af">lws_extension::callback</a></div><div class="ttdeci">lws_extension_callback_function * callback</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1228</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a704940261951ced6b5d8191bd8b9bb2d"><div class="ttname"><a href="structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d">lws_context_creation_info::ssl_options_set</a></div><div class="ttdeci">long ssl_options_set</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1733</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1056</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:752</div></div> +<div class="ttc" id="structlws__extension_html_a1e5018c883d85176f5c2152176843f9e"><div class="ttname"><a href="structlws__extension.html#a1e5018c883d85176f5c2152176843f9e">lws_extension::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1229</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4287</div></div> +<div class="ttc" id="structpollfd_html_aafb457d11cac415faf0e1e2b825118c2"><div class="ttname"><a href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2">pollfd::revents</a></div><div class="ttdeci">short revents</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:441</div></div> +<div class="ttc" id="structlws__extension_html_afa21f3b3c8c2c9212a276c52b680c3af"><div class="ttname"><a href="structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af">lws_extension::callback</a></div><div class="ttdeci">lws_extension_callback_function * callback</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1230</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a704940261951ced6b5d8191bd8b9bb2d"><div class="ttname"><a href="structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d">lws_context_creation_info::ssl_options_set</a></div><div class="ttdeci">long ssl_options_set</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1735</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1058</div></div> <div class="ttc" id="group__Protocols-and-Plugins_html_ga8bbe5e65faca068845704bab911a5030"><div class="ttname"><a href="group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030">lws_protocol_get</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const struct lws_protocols * lws_protocol_get(struct lws *wsi) LWS_WARN_DEPRECATED</div></div> -<div class="ttc" id="structlws__session__info_html_afb924864b70f40372920688a5c1c895e"><div class="ttname"><a href="structlws__session__info.html#afb924864b70f40372920688a5c1c895e">lws_session_info::mask</a></div><div class="ttdeci">unsigned int mask</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1486</div></div> +<div class="ttc" id="structlws__session__info_html_afb924864b70f40372920688a5c1c895e"><div class="ttname"><a href="structlws__session__info.html#afb924864b70f40372920688a5c1c895e">lws_session_info::mask</a></div><div class="ttdeci">unsigned int mask</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1488</div></div> <div class="ttc" id="group__smtp_html_ga77fc9b56a1bb39484844981ec375fc29"><div class="ttname"><a href="group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29">lws_email_init</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_email_init(struct lws_email *email, uv_loop_t *loop, int max_content)</div></div> -<div class="ttc" id="structlws__client__connect__info_html_aaf76f45db5b4354894bae03a4f8f65a5"><div class="ttname"><a href="structlws__client__connect__info.html#aaf76f45db5b4354894bae03a4f8f65a5">lws_client_connect_info::client_exts</a></div><div class="ttdeci">const void * client_exts</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2112</div></div> -<div class="ttc" id="group__vhost-mounts_html_ga31eca18e50cb4357480f2fcad36ff437"><div class="ttname"><a href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437">lws_mount_protocols</a></div><div class="ttdeci">lws_mount_protocols</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2004</div></div> +<div class="ttc" id="structlws__client__connect__info_html_aaf76f45db5b4354894bae03a4f8f65a5"><div class="ttname"><a href="structlws__client__connect__info.html#aaf76f45db5b4354894bae03a4f8f65a5">lws_client_connect_info::client_exts</a></div><div class="ttdeci">const void * client_exts</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2114</div></div> +<div class="ttc" id="group__vhost-mounts_html_ga31eca18e50cb4357480f2fcad36ff437"><div class="ttname"><a href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437">lws_mount_protocols</a></div><div class="ttdeci">lws_mount_protocols</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2006</div></div> <div class="ttc" id="group__extensions_html_ga4cdbe42d872e21a448a947714d6c607e"><div class="ttname"><a href="group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e">lws_extension_callback_pm_deflate</a></div><div class="ttdeci">LWS_EXTERN int lws_extension_callback_pm_deflate(struct lws_context *context, const struct lws_extension *ext, struct lws *wsi, enum lws_extension_callback_reasons reason, void *user, void *in, size_t len)</div></div> <div class="ttc" id="group__HTTP-headers-create_html_gacc76a5babcb4dce1b01b1955aa7a2faf"><div class="ttname"><a href="group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf">lws_add_http_header_content_length</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_content_length(struct lws *wsi, unsigned long content_length, unsigned char **p, unsigned char *end)</div></div> -<div class="ttc" id="structpollfd_html_af084f089bdece61d177f85782d6673d0"><div class="ttname"><a href="structpollfd.html#af084f089bdece61d177f85782d6673d0">pollfd::fd</a></div><div class="ttdeci">lws_sockfd_type fd</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:437</div></div> -<div class="ttc" id="structlws__context__creation__info_html_aa8d9e85e137f35fb006f2e4a53f0887a"><div class="ttname"><a href="structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a">lws_context_creation_info::max_http_header_data2</a></div><div class="ttdeci">unsigned int max_http_header_data2</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1728</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2005</div></div> +<div class="ttc" id="structpollfd_html_af084f089bdece61d177f85782d6673d0"><div class="ttname"><a href="structpollfd.html#af084f089bdece61d177f85782d6673d0">pollfd::fd</a></div><div class="ttdeci">lws_sockfd_type fd</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:439</div></div> +<div class="ttc" id="structlws__context__creation__info_html_aa8d9e85e137f35fb006f2e4a53f0887a"><div class="ttname"><a href="structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a">lws_context_creation_info::max_http_header_data2</a></div><div class="ttdeci">unsigned int max_http_header_data2</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1730</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2007</div></div> <div class="ttc" id="group__http_html_gac8a4a71240857dc6b2ed70456b6923f4"><div class="ttname"><a href="group__http.html#gac8a4a71240857dc6b2ed70456b6923f4">lws_return_http_status</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_return_http_status(struct lws *wsi, unsigned int code, const char *html_body)</div></div> <div class="ttc" id="group__context-and-vhost_html_ga0c54c667ccd9b8b3dddcd123ca72f87c"><div class="ttname"><a href="group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c">lws_create_vhost</a></div><div class="ttdeci">LWS_EXTERN LWS_VISIBLE struct lws_vhost * lws_create_vhost(struct lws_context *context, struct lws_context_creation_info *info)</div></div> -<div class="ttc" id="structlws__http__mount_html_a11ea62b952710d59733dbcf9794a5773"><div class="ttname"><a href="structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773">lws_http_mount::interpret</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * interpret</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2036</div></div> -<div class="ttc" id="structlws__context__creation__info_html_aadbc1b141d16c1084ec4c543e7768a72"><div class="ttname"><a href="structlws__context__creation__info.html#aadbc1b141d16c1084ec4c543e7768a72">lws_context_creation_info::external_baggage_free_on_destroy</a></div><div class="ttdeci">void * external_baggage_free_on_destroy</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1760</div></div> +<div class="ttc" id="structlws__http__mount_html_a11ea62b952710d59733dbcf9794a5773"><div class="ttname"><a href="structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773">lws_http_mount::interpret</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * interpret</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2038</div></div> +<div class="ttc" id="structlws__context__creation__info_html_aadbc1b141d16c1084ec4c543e7768a72"><div class="ttname"><a href="structlws__context__creation__info.html#aadbc1b141d16c1084ec4c543e7768a72">lws_context_creation_info::external_baggage_free_on_destroy</a></div><div class="ttdeci">void * external_baggage_free_on_destroy</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1762</div></div> <div class="ttc" id="group__service_html_gaf95bd0c663d6516a0c80047d9b1167a8"><div class="ttname"><a href="group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8">lws_service</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_service(struct lws_context *context, int timeout_ms)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b">LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1023</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1548</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b">LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1025</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1550</div></div> <div class="ttc" id="group__http_html_gad27aed6c66a41b2b89ffe4da2a309e8a"><div class="ttname"><a href="group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a">lws_http_transaction_completed</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_http_transaction_completed(struct lws *wsi)</div></div> -<div class="ttc" id="structlws__process__html__state_html_adcafd17704775b4bbeea9561fb340968"><div class="ttname"><a href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968">lws_process_html_state::count_vars</a></div><div class="ttdeci">int count_vars</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2552</div></div> +<div class="ttc" id="structlws__process__html__state_html_adcafd17704775b4bbeea9561fb340968"><div class="ttname"><a href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968">lws_process_html_state::count_vars</a></div><div class="ttdeci">int count_vars</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2554</div></div> <div class="ttc" id="group__HTTP-headers-create_html_ga29b7d6d2ddfdbaff3d8b607e7e3151b6"><div class="ttname"><a href="group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6">lws_add_http_header_status</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_status(struct lws *wsi, unsigned int code, unsigned char **p, unsigned char *end)</div></div> -<div class="ttc" id="structlws__tokens_html"><div class="ttname"><a href="structlws__tokens.html">lws_tokens</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2606</div></div> +<div class="ttc" id="structlws__tokens_html"><div class="ttname"><a href="structlws__tokens.html">lws_tokens</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2608</div></div> <div class="ttc" id="group__context-and-vhost_html_gaf2fff58562caab7510c41eeac85a8648"><div class="ttname"><a href="group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648">lws_create_context</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN struct lws_context * lws_create_context(struct lws_context_creation_info *info)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:729</div></div> -<div class="ttc" id="structlws__process__html__state_html_af21119890fdfebe28fb5c4dabfc1bdf5"><div class="ttname"><a href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5">lws_process_html_state::data</a></div><div class="ttdeci">void * data</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2550</div></div> -<div class="ttc" id="structlws__email_html_a6fff03c5a5d369a2aa3cab0c897b1bed"><div class="ttname"><a href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed">lws_email::content</a></div><div class="ttdeci">char * content</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4332</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:731</div></div> +<div class="ttc" id="structlws__process__html__state_html_af21119890fdfebe28fb5c4dabfc1bdf5"><div class="ttname"><a href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5">lws_process_html_state::data</a></div><div class="ttdeci">void * data</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2552</div></div> +<div class="ttc" id="structlws__email_html_a6fff03c5a5d369a2aa3cab0c897b1bed"><div class="ttname"><a href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed">lws_email::content</a></div><div class="ttdeci">char * content</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4334</div></div> <div class="ttc" id="group__net_html_ga869d8bdffb0f2a7ce08e3ce10d6be3d8"><div class="ttname"><a href="group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8">lws_interface_to_sa</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, size_t addrlen)</div></div> -<div class="ttc" id="structlws__context__creation__info_html_ac8a75b7b259a3c3a5fbb4219a3f06c29"><div class="ttname"><a href="structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29">lws_context_creation_info::token_limits</a></div><div class="ttdeci">const struct lws_token_limits * token_limits</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1623</div></div> -<div class="ttc" id="structlws__email_html"><div class="ttname"><a href="structlws__email.html">lws_email</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4293</div></div> -<div class="ttc" id="structlws__client__connect__info_html_aa364094f94ef1bcaaabbd9161971d502"><div class="ttname"><a href="structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502">lws_client_connect_info::address</a></div><div class="ttdeci">const char * address</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2094</div></div> -<div class="ttc" id="structlws__plat__file__ops_html_abfcda19b003dcc13c61ff9e2bb4ff869"><div class="ttname"><a href="structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869">lws_plat_file_ops::seek_cur</a></div><div class="ttdeci">unsigned long(* seek_cur)(struct lws *wsi, lws_filefd_type fd, long offset_from_cur_pos)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4150</div></div> -<div class="ttc" id="structlws__protocols_html_a3cbd903ad076736ae934a54cae36580e"><div class="ttname"><a href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e">lws_protocols::user</a></div><div class="ttdeci">void * user</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1345</div></div> -<div class="ttc" id="structlws__pollargs_html_a00bbffea9f55de342783e32d71ce1de6"><div class="ttname"><a href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6">lws_pollargs::events</a></div><div class="ttdeci">int events</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:537</div></div> +<div class="ttc" id="structlws__context__creation__info_html_ac8a75b7b259a3c3a5fbb4219a3f06c29"><div class="ttname"><a href="structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29">lws_context_creation_info::token_limits</a></div><div class="ttdeci">const struct lws_token_limits * token_limits</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1625</div></div> +<div class="ttc" id="structlws__email_html"><div class="ttname"><a href="structlws__email.html">lws_email</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4295</div></div> +<div class="ttc" id="structlws__client__connect__info_html_aa364094f94ef1bcaaabbd9161971d502"><div class="ttname"><a href="structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502">lws_client_connect_info::address</a></div><div class="ttdeci">const char * address</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2096</div></div> +<div class="ttc" id="structlws__plat__file__ops_html_abfcda19b003dcc13c61ff9e2bb4ff869"><div class="ttname"><a href="structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869">lws_plat_file_ops::seek_cur</a></div><div class="ttdeci">unsigned long(* seek_cur)(struct lws *wsi, lws_filefd_type fd, long offset_from_cur_pos)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4152</div></div> +<div class="ttc" id="structlws__protocols_html_a3cbd903ad076736ae934a54cae36580e"><div class="ttname"><a href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e">lws_protocols::user</a></div><div class="ttdeci">void * user</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1347</div></div> +<div class="ttc" id="structlws__pollargs_html_a00bbffea9f55de342783e32d71ce1de6"><div class="ttname"><a href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6">lws_pollargs::events</a></div><div class="ttdeci">int events</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:539</div></div> <div class="ttc" id="group__client_html_ga715efffc0c4e8fbf72a4293008eb2187"><div class="ttname"><a href="group__client.html#ga715efffc0c4e8fbf72a4293008eb2187">lws_http_client_http_response</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN unsigned int lws_http_client_http_response(struct lws *wsi)</div></div> -<div class="ttc" id="structlws__email_html_a2aff78c8e04db243052aa91b4d87e987"><div class="ttname"><a href="structlws__email.html#a2aff78c8e04db243052aa91b4d87e987">lws_email::on_get_body</a></div><div class="ttdeci">int(* on_get_body)(struct lws_email *email, char *buf, int len)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4319</div></div> -<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2011</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a0e9d94cdfb893d777b4a4db81e7b5ac0"><div class="ttname"><a href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0">lws_context_creation_info::user</a></div><div class="ttdeci">void * user</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1655</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4289</div></div> -<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3295</div></div> -<div class="ttc" id="structlws__tokens_html_a9f3635412bc71a5cb78e9862b55f10cd"><div class="ttname"><a href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd">lws_tokens::token</a></div><div class="ttdeci">char * token</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2607</div></div> +<div class="ttc" id="structlws__email_html_a2aff78c8e04db243052aa91b4d87e987"><div class="ttname"><a href="structlws__email.html#a2aff78c8e04db243052aa91b4d87e987">lws_email::on_get_body</a></div><div class="ttdeci">int(* on_get_body)(struct lws_email *email, char *buf, int len)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4321</div></div> +<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2013</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a0e9d94cdfb893d777b4a4db81e7b5ac0"><div class="ttname"><a href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0">lws_context_creation_info::user</a></div><div class="ttdeci">void * user</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1657</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4291</div></div> +<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3297</div></div> +<div class="ttc" id="structlws__tokens_html_a9f3635412bc71a5cb78e9862b55f10cd"><div class="ttname"><a href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd">lws_tokens::token</a></div><div class="ttdeci">char * token</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2609</div></div> <div class="ttc" id="group__Protocols-and-Plugins_html_gaf3be4243443baac0f8be1fcfb4d25129"><div class="ttname"><a href="group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129">lws_protocol_vh_priv_get</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *prot)</div></div> -<div class="ttc" id="structlws__plugin__capability_html_ae38f7cf1246b9ca3af3cbf9d46b7090f"><div class="ttname"><a href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f">lws_plugin_capability::count_protocols</a></div><div class="ttdeci">int count_protocols</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1428</div></div> -<div class="ttc" id="structlws__plugin_html_a4ef37a43653715b6c69cbf8a7be747f4"><div class="ttname"><a href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4">lws_plugin::l</a></div><div class="ttdeci">void * l</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1443</div></div> -<div class="ttc" id="structlws__context__creation__info_html_ab9ec8893e0f7843cf5d783d2f350ef14"><div class="ttname"><a href="structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14">lws_context_creation_info::ssl_private_key_filepath</a></div><div class="ttdeci">const char * ssl_private_key_filepath</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1632</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf">LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1581</div></div> -<div class="ttc" id="structlws__process__html__args_html_a8be7fd396a1942ea2449a2fda990ff99"><div class="ttname"><a href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99">lws_process_html_args::max_len</a></div><div class="ttdeci">int max_len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2540</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:731</div></div> -<div class="ttc" id="structlws__protocol__vhost__options_html_abc714ddb4171756fc8196e9823a1e21c"><div class="ttname"><a href="structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c">lws_protocol_vhost_options::next</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * next</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1994</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:742</div></div> +<div class="ttc" id="structlws__plugin__capability_html_ae38f7cf1246b9ca3af3cbf9d46b7090f"><div class="ttname"><a href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f">lws_plugin_capability::count_protocols</a></div><div class="ttdeci">int count_protocols</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1430</div></div> +<div class="ttc" id="structlws__plugin_html_a4ef37a43653715b6c69cbf8a7be747f4"><div class="ttname"><a href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4">lws_plugin::l</a></div><div class="ttdeci">void * l</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1445</div></div> +<div class="ttc" id="structlws__context__creation__info_html_ab9ec8893e0f7843cf5d783d2f350ef14"><div class="ttname"><a href="structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14">lws_context_creation_info::ssl_private_key_filepath</a></div><div class="ttdeci">const char * ssl_private_key_filepath</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1634</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf">LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1583</div></div> +<div class="ttc" id="structlws__process__html__args_html_a8be7fd396a1942ea2449a2fda990ff99"><div class="ttname"><a href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99">lws_process_html_args::max_len</a></div><div class="ttdeci">int max_len</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2542</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:733</div></div> +<div class="ttc" id="structlws__protocol__vhost__options_html_abc714ddb4171756fc8196e9823a1e21c"><div class="ttname"><a href="structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c">lws_protocol_vhost_options::next</a></div><div class="ttdeci">const struct lws_protocol_vhost_options * next</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1996</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:744</div></div> <div class="ttc" id="libwebsockets_8h_html_a5e627dbf1db48170ef486edbaf268672"><div class="ttname"><a href="libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672">lws_rx_flow_allow_all_protocol</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_rx_flow_allow_all_protocol(const struct lws_context *context, const struct lws_protocols *protocol)</div></div> -<div class="ttc" id="structlws__process__html__state_html"><div class="ttname"><a href="structlws__process__html__state.html">lws_process_html_state</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2546</div></div> +<div class="ttc" id="structlws__process__html__state_html"><div class="ttname"><a href="structlws__process__html__state.html">lws_process_html_state</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2548</div></div> <div class="ttc" id="group__net_html_gad0df22db2be9fc65a667a1e83f9a92a4"><div class="ttname"><a href="group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4">lws_canonical_hostname</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN const char *LWS_WARN_UNUSED_RESULT lws_canonical_hostname(struct lws_context *context)</div></div> -<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:941</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a4f8e65c3a059d3b586fafa9ef3282c29"><div class="ttname"><a href="structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29">lws_context_creation_info::ssl_ca_filepath</a></div><div class="ttdeci">const char * ssl_ca_filepath</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1638</div></div> -<div class="ttc" id="group__client_html_ga96f3dbad54b2853969cfa933d66871ce"><div class="ttname"><a href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce">lws_client_connect_ssl_connection_flags</a></div><div class="ttdeci">lws_client_connect_ssl_connection_flags</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2081</div></div> -<div class="ttc" id="structlws__context__creation__info_html_a9c9d22437de92c197f3cee52912b2c03"><div class="ttname"><a href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03">lws_context_creation_info::gid</a></div><div class="ttdeci">int gid</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1649</div></div> -<div class="ttc" id="structlws__client__connect__info_html_a3893181d728f326f9f5b47c1459cb8be"><div class="ttname"><a href="structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be">lws_client_connect_info::vhost</a></div><div class="ttdeci">struct lws_vhost * vhost</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2126</div></div> -<div class="ttc" id="group__usercb_html_gad4fcb82e68d60ffacca61a3f783a0a2f"><div class="ttname"><a href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f">lws_callback_function</a></div><div class="ttdeci">int lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1078</div></div> +<div class="ttc" id="group__usercb_html_ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428"><div class="ttname"><a href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:943</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a4f8e65c3a059d3b586fafa9ef3282c29"><div class="ttname"><a href="structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29">lws_context_creation_info::ssl_ca_filepath</a></div><div class="ttdeci">const char * ssl_ca_filepath</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1640</div></div> +<div class="ttc" id="group__client_html_ga96f3dbad54b2853969cfa933d66871ce"><div class="ttname"><a href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce">lws_client_connect_ssl_connection_flags</a></div><div class="ttdeci">lws_client_connect_ssl_connection_flags</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2083</div></div> +<div class="ttc" id="structlws__context__creation__info_html_a9c9d22437de92c197f3cee52912b2c03"><div class="ttname"><a href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03">lws_context_creation_info::gid</a></div><div class="ttdeci">int gid</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1651</div></div> +<div class="ttc" id="structlws__client__connect__info_html_a3893181d728f326f9f5b47c1459cb8be"><div class="ttname"><a href="structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be">lws_client_connect_info::vhost</a></div><div class="ttdeci">struct lws_vhost * vhost</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2128</div></div> +<div class="ttc" id="group__usercb_html_gad4fcb82e68d60ffacca61a3f783a0a2f"><div class="ttname"><a href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f">lws_callback_function</a></div><div class="ttdeci">int lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1080</div></div> <div class="ttc" id="group__service_html_ga29c246707997ab7a466aa709aecd2d7b"><div class="ttname"><a href="group__service.html#ga29c246707997ab7a466aa709aecd2d7b">lws_cancel_service_pt</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN void lws_cancel_service_pt(struct lws *wsi)</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1568</div></div> -<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:610</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4284</div></div> -<div class="ttc" id="structlws__plugin__capability_html_a523c7cde6f15bba345f56493dcf6b32a"><div class="ttname"><a href="structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a">lws_plugin_capability::api_magic</a></div><div class="ttdeci">unsigned int api_magic</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1426</div></div> -<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1571</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1570</div></div> +<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:612</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4286</div></div> +<div class="ttc" id="structlws__plugin__capability_html_a523c7cde6f15bba345f56493dcf6b32a"><div class="ttname"><a href="structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a">lws_plugin_capability::api_magic</a></div><div class="ttdeci">unsigned int api_magic</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1428</div></div> +<div class="ttc" id="group__context-and-vhost_html_gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8"><div class="ttname"><a href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1573</div></div> <div class="ttc" id="group__wsstatus_html_ga2bb3655329b4651cd06f79ee3a764421"><div class="ttname"><a href="group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421">lws_send_pipe_choked</a></div><div class="ttdeci">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_send_pipe_choked(struct lws *wsi)</div></div> -<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4287</div></div> -<div class="ttc" id="group__form-parsing_html_ga5a70527c0861c2ffa3d29333a6aa7f8e"><div class="ttname"><a href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">lws_spa_fileupload_cb</a></div><div class="ttdeci">int(* lws_spa_fileupload_cb)(void *data, const char *name, const char *filename, char *buf, int len, enum lws_spa_fileupload_states state)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2947</div></div> +<div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4289</div></div> +<div class="ttc" id="group__form-parsing_html_ga5a70527c0861c2ffa3d29333a6aa7f8e"><div class="ttname"><a href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">lws_spa_fileupload_cb</a></div><div class="ttdeci">int(* lws_spa_fileupload_cb)(void *data, const char *name, const char *filename, char *buf, int len, enum lws_spa_fileupload_states state)</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2949</div></div> </div><!-- fragment --></div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> diff --git a/doc/html/navtreeindex1.js b/doc/html/navtreeindex1.js index 3542cf069c7c8688deabf1818d9fdd31f9cb96e3..df39795020a37f81569e1b578e149fe3c8b4e747 100644 --- a/doc/html/navtreeindex1.js +++ b/doc/html/navtreeindex1.js @@ -167,6 +167,7 @@ var NAVTREEINDEX1 = "group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[9,6,2,0], "group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[11,0,0,0,99], "group__log.html":[9,7], +"group__log.html#ga0cdc1065ae7f003d59a3c8525acf545e":[11,0,0,0,40], "group__log.html#ga14542b84d2c76efa7814124bb10f9c5f":[11,0,0,0,32], "group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[11,0,0,0,151], "group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[9,7,0], @@ -177,7 +178,6 @@ var NAVTREEINDEX1 = "group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[9,7,2], "group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[11,0,0,0,174], "group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[9,7,1], -"group__log.html#gaf5f07837692b2f231a79da8a058288aa":[11,0,0,0,40], "group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa083a44e71966a0e768426e477e1bc358":[11,0,0,0,32,8], "group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa2be9c1d50d05756078e9abc72c9e50cc":[11,0,0,0,32,5], "group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa52e5cd60bbb85f30ec0078a2c4be0c59":[11,0,0,0,32,3], @@ -196,6 +196,8 @@ var NAVTREEINDEX1 = "group__misc.html#ga0e705d498e8c8500649a26ba30a1e106":[11,0,0,0,136], "group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[11,0,0,0,131], "group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[9,8,8], +"group__misc.html#ga2163492f17db959a36967adb73d823b4":[11,0,0,0,155], +"group__misc.html#ga2163492f17db959a36967adb73d823b4":[9,8,10], "group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[11,0,0,0,130], "group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[9,8,7], "group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[11,0,0,0,105], @@ -204,8 +206,6 @@ var NAVTREEINDEX1 = "group__misc.html#ga629f48268fd1856b54b11172991b97d9":[11,0,0,0,96], "group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[9,8,5], "group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[11,0,0,0,100], -"group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21":[11,0,0,0,155], -"group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21":[9,8,10], "group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[11,0,0,0,173], "group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[9,8,11], "group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[9,8,9], diff --git a/doc/html/navtreeindex2.js b/doc/html/navtreeindex2.js index ebc0708fdde831c08ed78c921868b7c59dd37a3e..ff0e3fe4ea2db89f8fb1b6f0ed53e82726b26f90 100644 --- a/doc/html/navtreeindex2.js +++ b/doc/html/navtreeindex2.js @@ -188,8 +188,8 @@ var NAVTREEINDEX2 = "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[11,0,0,0,23,12], "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[11,0,0,0,23,19], "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[9,16,1,19], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6":[9,16,1,40], "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6":[11,0,0,0,23,57], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6":[9,16,1,40], "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7af6cf80e57aae8ba0a57a5c456b1fe026":[11,0,0,0,23,55], "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afc4b2f72cc9e424a750b506ce0cc4310":[11,0,0,0,23,51], "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[11,0,0,0,23,29], diff --git a/doc/html/navtreeindex3.js b/doc/html/navtreeindex3.js index 773beb7ec63d5f24194a032ff7a181893c4bb364..6103626a49e74bdb6ac3315116d6fa657efff9e3 100644 --- a/doc/html/navtreeindex3.js +++ b/doc/html/navtreeindex3.js @@ -11,8 +11,8 @@ var NAVTREEINDEX3 = "group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[11,0,0,0,123], "group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[11,0,0,0,141], "group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[9,18,7], -"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[11,0,0,0,106], "group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[9,18,1], +"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[11,0,0,0,106], "group__wsstatus.html#ga42152ffb385f9b19f4e7b04f998425de":[9,18,2], "group__wsstatus.html#ga42152ffb385f9b19f4e7b04f998425de":[11,0,0,0,108], "group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[9,18,3], @@ -45,8 +45,8 @@ var NAVTREEINDEX3 = "libwebsockets_8h.html#a4e877a4f0bb027d05d3a90c8e6a632de":[11,0,0,0,42], "libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2":[11,0,0,0,68], "libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672":[11,0,0,0,139], +"libwebsockets_8h.html#a71451ba21aadc2fa3e25674d04c31ab7":[11,0,0,0,44], "libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536":[11,0,0,0,137], -"libwebsockets_8h.html#a75e9827318684877deb4189121a8cd2a":[11,0,0,0,44], "libwebsockets_8h.html#a863bdd5bca33bcbaa424c42fb7b2fc96":[11,0,0,0,183], "libwebsockets_8h.html#a9032a3062641d334161c29adcc4fa15d":[11,0,0,0,181], "libwebsockets_8h.html#a9b1bfc6f34319188d2aa40500d825bab":[11,0,0,0,43], diff --git a/doc/html/navtreeindex4.js b/doc/html/navtreeindex4.js index 769d9d222754481663229b33b593f842e58e4bbe..4e8a961e2d881bbf61d11d2cc1aa4aadf897e56a 100644 --- a/doc/html/navtreeindex4.js +++ b/doc/html/navtreeindex4.js @@ -77,12 +77,12 @@ var NAVTREEINDEX4 = "structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5":[9,6,1,1,1], "structlws__protocol__vhost__options.html":[9,4,0,0], "structlws__protocol__vhost__options.html":[9,4,2], -"structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[9,4,2,3], "structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[9,4,0,0,3], +"structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[9,4,2,3], "structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[9,4,2,1], "structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[9,4,0,0,1], -"structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[9,4,2,0], "structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[9,4,0,0,0], +"structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[9,4,2,0], "structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[9,4,2,2], "structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[9,4,0,0,2], "structlws__protocols.html":[9,10,1], @@ -100,10 +100,10 @@ var NAVTREEINDEX4 = "structlws__session__info.html#afb924864b70f40372920688a5c1c895e":[9,10,0,2,2], "structlws__token__limits.html":[9,6,4,1], "structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff":[9,6,4,1,0], -"structlws__tokens.html":[9,6,4,0], "structlws__tokens.html":[9,6,6], -"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[9,6,6,1], +"structlws__tokens.html":[9,6,4,0], "structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[9,6,4,0,1], +"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[9,6,6,1], "structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[9,6,4,0,0], "structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[9,6,6,0], "structlwsgw__hash.html":[9,10,0,1], diff --git a/lib/client-handshake.c b/lib/client-handshake.c index 2825be07c85ece919fb0b2ebff54590399f38b6c..a407d9c1bfb839115136240e66d24fab476968bc 100644 --- a/lib/client-handshake.c +++ b/lib/client-handshake.c @@ -115,31 +115,49 @@ lws_client_connect_2(struct lws *wsi) { struct addrinfo ai, *res, *result = NULL; void *p = NULL; + int addr_rv; memset (&ai, 0, sizeof ai); ai.ai_family = PF_UNSPEC; ai.ai_socktype = SOCK_STREAM; ai.ai_flags = AI_CANONNAME; - if (getaddrinfo(ads, NULL, &ai, &result)) { + addr_rv = getaddrinfo(ads, NULL, &ai, &result); + if (!addr_rv) { + res = result; + while (!p && res) { + switch (res->ai_family) { + case AF_INET: + p = &((struct sockaddr_in *)res->ai_addr)->sin_addr; + break; + } + + res = res->ai_next; + } +#if defined(LWS_FALLBACK_GETHOSTBYNAME) + } else if (addr_rv == EAI_SYSTEM) { + struct hostent *host; + + lwsl_info("getaddrinfo (ipv4) failed, trying gethostbyname\n"); + host = gethostbyname(ads); + if (host) { + p = host->h_addr; + } else { + lwsl_err("gethostbyname failed\n"); + cce = "gethostbyname (ipv4) failed"; + goto oom4; + } +#endif + } else { lwsl_err("getaddrinfo failed\n"); cce = "getaddrinfo (ipv4) failed"; goto oom4; } - res = result; - while (!p && res) { - switch (res->ai_family) { - case AF_INET: - p = &((struct sockaddr_in *)res->ai_addr)->sin_addr; - break; - } - res = res->ai_next; - } - if (!p) { + if (result) + freeaddrinfo(result); lwsl_err("Couldn't identify address\n"); - freeaddrinfo(result); cce = "unable to lookup address"; goto oom4; } @@ -147,7 +165,8 @@ lws_client_connect_2(struct lws *wsi) server_addr4.sin_family = AF_INET; server_addr4.sin_addr = *((struct in_addr *)p); bzero(&server_addr4.sin_zero, 8); - freeaddrinfo(result); + if (result) + freeaddrinfo(result); } if (!lws_socket_is_valid(wsi->sock)) { diff --git a/lws_config.h.in b/lws_config.h.in index 97fec5cdedd1dc7e22815174829e3d09f4c5645f..b98a74af50cd7f50266e10f5b1556f9658a4d4e1 100644 --- a/lws_config.h.in +++ b/lws_config.h.in @@ -121,5 +121,5 @@ /* OPTEE */ #cmakedefine LWS_PLAT_OPTEE - +#cmakedefine LWS_FALLBACK_GETHOSTBYNAME ${LWS_SIZEOFPTR_CODE}