From 722cc4a36600b1b62dfb462e3b777027e8208c43 Mon Sep 17 00:00:00 2001
From: Andy Green <andy@warmcat.com>
Date: Sun, 26 Jun 2016 06:29:20 +0800
Subject: [PATCH] plugin table dirlisting

---
 CMakeLists.txt                                |  10 +
 README.generic-table.md                       | 219 ++++++++
 README.problems.md                            |  43 ++
 doc-assets/lwsgt-overview.png                 | Bin 0 -> 76858 bytes
 .../dir_e8731c315d086bdbd43ee7d72e0ed36b.html |  90 ++++
 doc/html/globals_eval.html                    |   3 +
 doc/html/globals_l.html                       |   3 +
 doc/html/group__client.html                   |   2 +-
 doc/html/group__context-and-vhost.html        |  34 +-
 doc/html/group__extensions.html               |   6 +-
 doc/html/group__form-parsing.html             |   6 +-
 doc/html/group__generic-sessions.html         |  12 +-
 doc/html/group__sending-data.html             |  14 +-
 doc/html/group__smtp.html                     |  18 +-
 doc/html/group__usercb.html                   |  11 +-
 doc/html/group__usercb.js                     |   1 +
 doc/html/group__vhost-mounts.html             |  14 +-
 doc/html/libwebsockets_8h.html                |   3 +-
 doc/html/libwebsockets_8h.js                  |   1 +
 doc/html/libwebsockets_8h_source.html         | 433 +++++++--------
 doc/html/lwsgt-overview.png                   | Bin 0 -> 76858 bytes
 doc/html/md_README.problems.html              |   7 +-
 doc/html/navtreedata.js                       |  14 +-
 doc/html/navtreeindex0.js                     | 500 +++++++++---------
 doc/html/navtreeindex1.js                     | 500 +++++++++---------
 doc/html/navtreeindex2.js                     | 496 ++++++++---------
 doc/html/navtreeindex3.js                     | 460 ++++++++--------
 doc/html/navtreeindex4.js                     | 111 ++--
 doc/html/pages.html                           |  12 +-
 doc/latex/classlws__conn.pdf                  | Bin 4714 -> 4714 bytes
 doc/latex/classlws__conn__listener.pdf        | Bin 4714 -> 4714 bytes
 doc/latex/group__context-and-vhost.tex        |  25 +
 doc/latex/group__extensions.tex               |  10 +
 doc/latex/group__form-parsing.tex             |   8 +
 doc/latex/group__generic-sessions.tex         |  16 +
 doc/latex/group__sending-data.tex             |  25 +
 doc/latex/group__smtp.tex                     |  14 +
 doc/latex/group__usercb.tex                   |  30 +-
 doc/latex/libwebsockets_8h.tex                |   1 +
 doc/latex/md_README.generic-table.tex         | 174 +++++-
 doc/latex/refman.tex                          |   8 +
 lib/libwebsockets.c                           |  12 +
 lib/libwebsockets.h                           |   5 +
 lib/private-libwebsockets.h                   |   3 +
 lib/server-handshake.c                        |  12 +
 lib/server.c                                  | 390 +++++++-------
 libwebsockets.dox                             |   8 +-
 plugins/generic-table/assets/index.html       |  75 +++
 plugins/generic-table/assets/lwsgt.js         | 121 +++++
 .../generic-table/protocol_table_dirlisting.c | 394 ++++++++++++++
 test-server/lws-common.js                     | 118 +++++
 51 files changed, 2951 insertions(+), 1521 deletions(-)
 create mode 100644 README.generic-table.md
 create mode 100644 README.problems.md
 create mode 100644 doc-assets/lwsgt-overview.png
 create mode 100644 doc/html/dir_e8731c315d086bdbd43ee7d72e0ed36b.html
 create mode 100644 doc/html/lwsgt-overview.png
 create mode 100644 plugins/generic-table/assets/index.html
 create mode 100644 plugins/generic-table/assets/lwsgt.js
 create mode 100644 plugins/generic-table/protocol_table_dirlisting.c
 create mode 100644 test-server/lws-common.js

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 356b4092..a768da28 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1100,6 +1100,7 @@ if (NOT LWS_WITHOUT_TESTAPPS)
 			"${PROJECT_SOURCE_DIR}/test-server/favicon.ico"
 			"${PROJECT_SOURCE_DIR}/test-server/leaf.jpg"
 			"${PROJECT_SOURCE_DIR}/test-server/libwebsockets.org-logo.png"
+			"${PROJECT_SOURCE_DIR}/test-server/lws-common.js"
 			"${PROJECT_SOURCE_DIR}/test-server/test.html")
 
 		# Generate self-signed SSL certs for the test-server.
@@ -1268,6 +1269,9 @@ if (NOT LWS_WITHOUT_TESTAPPS)
 			      "plugins/protocol_lws_status.c" "" "")
 		create_plugin(protocol_post_demo
 			      "plugins/protocol_post_demo.c" "" "")
+		create_plugin(protocol_lws_table_dirlisting
+			      "plugins/generic-table/protocol_table_dirlisting.c" "" "")
+
 if (LWS_WITH_SERVER_STATUS)
 		create_plugin(protocol_lws_server_status
 			      "plugins/protocol_lws_server_status.c" "" "")
@@ -1510,6 +1514,12 @@ if (LWS_WITH_GENERIC_SESSIONS)
 			COMPONENT examples)
 endif()
 
+	install(FILES
+		      plugins/generic-table/assets/lwsgt.js
+		      plugins/generic-table/assets/index.html
+		DESTINATION share/libwebsockets-test-server/generic-table
+			COMPONENT examples)
+
 endif()
 
 # Install the LibwebsocketsConfig.cmake and LibwebsocketsConfigVersion.cmake
diff --git a/README.generic-table.md b/README.generic-table.md
new file mode 100644
index 00000000..7a858096
--- /dev/null
+++ b/README.generic-table.md
@@ -0,0 +1,219 @@
+Notes about generic-table
+=========================
+
+@section gtint What is generic-table?
+
+Generic-table is a JSON schema and client-side JS file that makes it easy to
+display live, table structured HTML over a ws link.
+
+An example plugin and index.html using it are provided, but lwsgt itself doesn't
+have its own plugin, it's just a JSON schema and client-side JS that other
+plugins can use to simplify displaying live, table-based data without having
+to reinvent the wheel each time.
+
+The ws protocol sends JSON describing the table, and then JSON updating the table
+contents when it chooses, the brower table is updated automatically, live.
+
+\image html lwsgt-overview.png
+
+ - Example protocol plugin (displays directory contents): https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/protocol_table_dirlisting.c
+
+ - Example HTML: https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/assets/index.html
+ 
+ - lwsgt.js (client-side table rendering / ws link management): https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/assets/lwsgt.js
+
+
+@section gteb Enabling for build
+
+Enable the demo plugin at CMake with -DLWS_WITH_PLUGINS=1
+
+
+@section gtinth Integrating with your html
+
+ - In your HEAD section, include lwsgt.js
+
+```
+	<script src="lwsgt.js"></script>
+```
+
+ - Also in your HEAD section, style the lwsgt CSS, eg
+
+```
+	<style>
+	.lwsgt_title { font-size: 24; text-align:center }
+	.lwsgt_breadcrumbs { font-size: 18; text-align:left }
+	.lwsgt_table { font-size: 14; padding:12px; margin: 12px; align:center }
+	.lwsgt_hdr { font-size: 18; text-align:center;
+		     background-color: rgba(40, 40, 40, 0.8); color: white }
+	.lwsgt_tr { padding: 10px  }
+	.lwsgt_td { padding: 3px  }
+	</style>
+```
+
+You can skip this but the result will be less beautiful until some CSS is
+provided.
+
+ - In your body section, declare a div with an id (can be whatever you want)
+
+```
+	<tr><td><div id="lwsgt1" class="group1"></div></td></tr>
+```
+
+lwsgt JS will put its content there.
+
+ - Finally in a <script> at the end of your page, instantiate lwsgt and
+provide a custom callback for clickable links
+
+```
+	<script>
+	var v1 = new lwsgt_initial("Dir listing demo",
+				   "protocol-lws-table-dirlisting",
+				   "lwsgt1", "lwsgt_dir_click", "v1");
+	
+	function lwsgt_dir_click(gt, u, col, row)
+	{
+		if (u[0] == '=') { /* change directory */
+			window[gt].lwsgt_ws.send(u.substring(1, u.length));
+			return;
+		}
+		var win = window.open(u, '_blank');
+	  	win.focus();
+	}
+
+  	</script>
+```
+
+In the callback, you can recover the ws object by `window[gt].lwsgt_ws`.
+
+
+@section gtc Lwsgt constructor
+
+To instantiate the ws link and lwsgt instance, your HTML must call a lwsgt
+constructor for each region on the page managed by lwsgt.
+
+`var myvar = new lwsgt_initial(title, ws_protocol, div_id, click_cb, myvar);`
+
+All of the arguments are strings.
+
+| Parameter       | Description                                             |
+|-----------------|---------------------------------------------------------|
+| title           | Title string to go above the table                      |
+| ws_protocol     | Protocol name string to use when making ws connection   |
+| div_id          | HTML id of div to fill with content                     |
+| click_cb        | Callback function name string to handle clickable links |
+| myvar           | Name of var used to hold this instantiation globally    |
+
+Note "myvar" is needed so it can be passed to the click handling callback.
+
+
+@section gtclick Lwsgt click handling function
+
+When a clickable link produced by lwsgt is clicked, the function named in the
+click_cb parameter to lwsgt_initial is called.
+
+That function is expected to take four parameters, eg
+
+`function lwsgt_dir_click(gt, u, col, row)`
+
+| Parameter | Description                                               |
+|------- ---|-----------------------------------------------------------|
+| gt        | Name of global var holding this lwsgt context (ie, myvar) |
+| u         | Link "url" string                                         |
+| col       | Table column number link is from                          |
+| row       | Table row number link is from                             |
+
+
+
+@section gtgj Generic-table JSON
+
+### Column layout
+
+When the ws connection is established, the protocol should send a JSON message
+describing the table columns.  For example
+
+```
+	  "cols": [
+		{ "name": "Date" },
+		{ "name": "Size", "align": "right" },
+		{ "name": "Icon" },
+		{ "name": "Name", "href": "uri"},
+		{ "name": "uri", "hide": "1" }
+	    ]
+	  }
+```
+
+ - This describes 5 columns
+
+ - Only four columns (not "uri") should be visible
+
+ - "Name" should be presented as a clickable link using "uri" as the
+   destination, when a "uri" field is presented.
+   
+ - "Size" field should be presented aligned to the right
+ 
+ ### Breadcrumbs
+ 
+ When a view is hierarchical, it's useful to provide a "path" with links back
+ in the "path", known as "breadcrumbs".
+ 
+ Elements before the last one should provide a "url" member as well as the
+ displayable name, which is used to create the link destination.
+ 
+ The last element, being the current displayed page should not have a url
+ member and be displayed without link style.
+ 
+ 
+ ```
+ 	"breadcrumbs":[{"name":"top", "url": "/" }, {"name":"mydir"}]
+ ```
+ 
+ ### Table data
+ 
+ The actual file data consists of an array of rows, containing the columns
+ mentioned in the original "cols" section.
+ 
+ ```
+ 	"data":[
+ 		{
+ 		 "Icon":" ",
+ 		 "Date":"2015-Feb-06 03:08:35 +0000",
+ 		 "Size":"1406",
+ 		 "uri":"./serve//favicon.ico",
+ 		 "Name":"favicon.ico"
+ 		}
+ 	]
+
+ ```
+ 
+ @section gtdirl Setting up protocol-lws-table-dirlisting
+ 
+ The example protocol needs two mounts, one to provide the index.html, js and
+ the protocol itself
+ 
+ ```
+ 	{
+	 "mountpoint": "/dirtest",
+         "origin": "file:///usr/share/libwebsockets-test-server/generic-table",
+	 "origin": "callback://protocol-lws-table-dirlisting",
+	 "default": "index.html",
+	 "pmo": [{
+		"dir": "/usr/share/libwebsockets-test-server"
+	 }]
+	},
+```
+
+The protocol wants a per-mount option (PMO) to tell it the base directory it
+is serving from, named "dir".
+
+The other mount is there to simply serve items that get clicked on from the
+table in a secure way
+
+```
+	{
+	 "mountpoint": "/dirtest/serve",
+         "origin": "file:///usr/share/libwebsockets-test-server",
+	 "default": "index.html"
+	},
+```
+
+This last bit is not related to using lwsgt itself.
diff --git a/README.problems.md b/README.problems.md
new file mode 100644
index 00000000..dfd572a2
--- /dev/null
+++ b/README.problems.md
@@ -0,0 +1,43 @@
+Debugging problems
+==================
+
+Library is a component
+----------------------
+
+As a library, lws is always just a component in a bigger application.
+
+When users have a problem involving lws, what is happening in the bigger
+application is usually critical to understand what is going on (and where the
+solution lies).
+
+Many users are able to share their sources, but others decide not to, for
+presumed "commercial advantage" or whatever.  (In any event, it can be painful
+looking through large chunks of someone else's sources for problems when that
+is not the library author's responsibility.)
+
+This makes answering questions like "what is wrong with my code I am not
+going to show you?" or even "what is wrong with my code?" very difficult.
+
+Even if it's clear there is a problem somewhere, it cannot be understood or
+reproduced by anyone else if it needs user code that isn't provided.
+
+The biggest question is, "is this an lws problem actually"?
+
+
+Use the test apps as sanity checks
+----------------------------------
+
+The test server and client are extremely useful for sanity checks and debugging
+guidance.
+
+ - test apps work on your platform, then either
+   - your user code is broken, align it to how the test apps work, or,
+   - something from your code is required to show an lws problem, provide a
+     minimal patch on a test app so it can be reproduced
+     
+ - test apps break on your platform, but work on, eg, x86_64, either
+   - toolchain or platform-specific (eg, OS) issue, or
+   - lws platform support issue
+
+ - test apps break everywhere
+   - sounds like lws problem, info to reproduce and / or a patch is appreciated
diff --git a/doc-assets/lwsgt-overview.png b/doc-assets/lwsgt-overview.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d03195926a1e5c9814190bac6774d84ff0bfbd4
GIT binary patch
literal 76858
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
Q7#J8lUHx3vIVCg!06PWZc>n+a

literal 0
HcmV?d00001

diff --git a/doc/html/dir_e8731c315d086bdbd43ee7d72e0ed36b.html b/doc/html/dir_e8731c315d086bdbd43ee7d72e0ed36b.html
new file mode 100644
index 00000000..f042dc54
--- /dev/null
+++ b/doc/html/dir_e8731c315d086bdbd43ee7d72e0ed36b.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>libwebsockets: doc-assets Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libwebsockets
+   </div>
+   <div id="projectbrief">Lightweight C library for HTML5 websockets</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_e8731c315d086bdbd43ee7d72e0ed36b.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+  <div class="headertitle">
+<div class="title">doc-assets Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_e8731c315d086bdbd43ee7d72e0ed36b.html">doc-assets</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/globals_eval.html b/doc/html/globals_eval.html
index 7425730e..93dbdf5f 100644
--- a/doc/html/globals_eval.html
+++ b/doc/html/globals_eval.html
@@ -194,6 +194,9 @@ $(document).ready(function(){initNavTree('globals_eval.html','');});
 <li>LWS_CALLBACK_HTTP_FILE_COMPLETION
 : <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">libwebsockets.h</a>
 </li>
+<li>LWS_CALLBACK_HTTP_PMO
+: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">libwebsockets.h</a>
+</li>
 <li>LWS_CALLBACK_HTTP_WRITEABLE
 : <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">libwebsockets.h</a>
 </li>
diff --git a/doc/html/globals_l.html b/doc/html/globals_l.html
index 08f21c6d..1d282d4d 100644
--- a/doc/html/globals_l.html
+++ b/doc/html/globals_l.html
@@ -214,6 +214,9 @@ $(document).ready(function(){initNavTree('globals_l.html','');});
 <li>LWS_CALLBACK_HTTP_FILE_COMPLETION
 : <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">libwebsockets.h</a>
 </li>
+<li>LWS_CALLBACK_HTTP_PMO
+: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">libwebsockets.h</a>
+</li>
 <li>LWS_CALLBACK_HTTP_WRITEABLE
 : <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">libwebsockets.h</a>
 </li>
diff --git a/doc/html/group__client.html b/doc/html/group__client.html
index 65594e08..a8a241a8 100644
--- a/doc/html/group__client.html
+++ b/doc/html/group__client.html
@@ -112,7 +112,7 @@ LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b
 
 <p><code>#include &lt;<a class="el" href="libwebsockets_8h.html">lib/libwebsockets.h</a>&gt;</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="l01854"></a><span class="lineno"> 1854</span>&#160;                                             {</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;        LCCSCF_USE_SSL                          = (1 &lt;&lt; 0),</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;        LCCSCF_ALLOW_SELFSIGNED                 = (1 &lt;&lt; 1),</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;        LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK  = (1 &lt;&lt; 2)</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;};</div></div><!-- fragment -->
+<div class="fragment"><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;                                             {</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;        LCCSCF_USE_SSL                          = (1 &lt;&lt; 0),</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;        LCCSCF_ALLOW_SELFSIGNED                 = (1 &lt;&lt; 1),</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;        LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK  = (1 &lt;&lt; 2)</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;};</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 f4000612..51ea9325 100644
--- a/doc/html/group__context-and-vhost.html
+++ b/doc/html/group__context-and-vhost.html
@@ -206,23 +206,23 @@ Functions</h2></td></tr>
 <p>(VH) if set, only ipv6 allowed on the vhost </p>
 </td></tr>
 </table>
-<div class="fragment"><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;                         {</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a>     = (1 &lt;&lt; 1) |</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a>            = (1 &lt;&lt; 2),</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a>             = (1 &lt;&lt; 3) |</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a>                                 = (1 &lt;&lt; 4),</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a>                          = (1 &lt;&lt; 5),</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a>                   = (1 &lt;&lt; 6),</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a>                = (1 &lt;&lt; 7),</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a>                         = (1 &lt;&lt; 8),</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a>                              = (1 &lt;&lt; 9) |</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a>                                 = (1 &lt;&lt; 10),</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a>                = (1 &lt;&lt; 11) |</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a>                    = (1 &lt;&lt; 12),</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a>                       = (1 &lt;&lt; 13),</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a>                             = (1 &lt;&lt; 14),</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a>                                   = (1 &lt;&lt; 15),</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a>                    = (1 &lt;&lt; 16),</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a>                     = (1 &lt;&lt; 17),</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;};</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:1394</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:1410</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:1422</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:1428</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:1399</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:1417</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:1401</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:1406</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:1426</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:1438</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:1408</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:1420</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:1431</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:1415</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:1413</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:1433</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:1436</div></div>
+<div class="fragment"><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;                         {</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a>     = (1 &lt;&lt; 1) |</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a>            = (1 &lt;&lt; 2),</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a>             = (1 &lt;&lt; 3) |</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a>                                 = (1 &lt;&lt; 4),</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a>                          = (1 &lt;&lt; 5),</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a>                   = (1 &lt;&lt; 6),</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a>                = (1 &lt;&lt; 7),</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a>                         = (1 &lt;&lt; 8),</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a>                              = (1 &lt;&lt; 9) |</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a>                                 = (1 &lt;&lt; 10),</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a>                = (1 &lt;&lt; 11) |</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a>                    = (1 &lt;&lt; 12),</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a>                       = (1 &lt;&lt; 13),</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a>                             = (1 &lt;&lt; 14),</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a>                                   = (1 &lt;&lt; 15),</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a>                    = (1 &lt;&lt; 16),</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a>                     = (1 &lt;&lt; 17),</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;};</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:1399</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:1415</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:1427</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:1433</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:1404</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:1422</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:1406</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:1411</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:1431</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:1443</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:1413</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:1425</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:1436</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:1420</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:1418</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:1438</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:1441</div></div>
 </div><!-- fragment -->
 </div>
 </div>
diff --git a/doc/html/group__extensions.html b/doc/html/group__extensions.html
index 4a94bbf8..ba85a2c0 100644
--- a/doc/html/group__extensions.html
+++ b/doc/html/group__extensions.html
@@ -242,9 +242,9 @@ Functions</h2></td></tr>
 <p>may have an optional decimal argument </p>
 </td></tr>
 </table>
-<div class="fragment"><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;                           {</div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a>, </div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a>,  </div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a> </div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;};</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:998</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:996</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:997</div></div>
+<div class="fragment"><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;                           {</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a>, </div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a>,  </div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a> </div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;};</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:1003</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:1001</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:1002</div></div>
 </div><!-- fragment -->
 </div>
 </div>
diff --git a/doc/html/group__form-parsing.html b/doc/html/group__form-parsing.html
index 2a748b77..98048db0 100644
--- a/doc/html/group__form-parsing.html
+++ b/doc/html/group__form-parsing.html
@@ -156,9 +156,9 @@ Functions</h2></td></tr>
 <p>a new file is starting to arrive </p>
 </td></tr>
 </table>
-<div class="fragment"><div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160;                               {</div><div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,</div><div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,</div><div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160;};</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:2637</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:2639</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:2635</div></div>
+<div class="fragment"><div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160;                               {</div><div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,</div><div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,</div><div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160;};</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:2642</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:2644</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:2640</div></div>
 </div><!-- fragment -->
 </div>
 </div>
diff --git a/doc/html/group__generic-sessions.html b/doc/html/group__generic-sessions.html
index 80c4eb58..a69ebcf7 100644
--- a/doc/html/group__generic-sessions.html
+++ b/doc/html/group__generic-sessions.html
@@ -117,8 +117,8 @@ Enumerations</h2></td></tr>
 <p>an existing user was deleted </p>
 </td></tr>
 </table>
-<div class="fragment"><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;                  {</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;        <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a>, </div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;        <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a>  </div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;};</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:1359</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:1358</div></div>
+<div class="fragment"><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;                  {</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;        <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a>, </div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;        <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a>  </div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;};</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:1364</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:1363</div></div>
 </div><!-- fragment -->
 </div>
 </div>
@@ -148,10 +148,10 @@ Enumerations</h2></td></tr>
 <p>he just completed "forgot password" flow </p>
 </td></tr>
 </table>
-<div class="fragment"><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;                     {</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a> = 1, </div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a> = 2,   </div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a> = 4,  </div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a> = 8,     </div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;};</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:1342</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:1343</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:1341</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:1340</div></div>
+<div class="fragment"><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;                     {</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a> = 1, </div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a> = 2,   </div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a> = 4,  </div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a> = 8,     </div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;};</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:1347</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:1348</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:1346</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:1345</div></div>
 </div><!-- fragment -->
 </div>
 </div>
diff --git a/doc/html/group__sending-data.html b/doc/html/group__sending-data.html
index 762f7e66..40863bae 100644
--- a/doc/html/group__sending-data.html
+++ b/doc/html/group__sending-data.html
@@ -130,13 +130,13 @@ Functions</h2></td></tr>
 <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="l02975"></a><span class="lineno"> 2975</span>&#160;                        {</div><div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a>                                          = 0,</div><div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a>                                        = 1,</div><div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a>                                  = 2,</div><div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a>                                          = 3,</div><div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>&#160;        <span class="comment">/* LWS_WRITE_CLOSE is handled by lws_close_reason() */</span></div><div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160;        LWS_WRITE_PING                                          = 5,</div><div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160;        LWS_WRITE_PONG                                          = 6,</div><div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>&#160;</div><div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>&#160;        <span class="comment">/* Same as write_http but we know this write ends the transaction */</span></div><div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160;        LWS_WRITE_HTTP_FINAL                                    = 7,</div><div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160;</div><div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160;        <span class="comment">/* HTTP2 */</span></div><div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160;</div><div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a>                                  = 8,</div><div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160;</div><div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160;        <span class="comment">/* flags */</span></div><div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160;</div><div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,</div><div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a> = 0x80</div><div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>&#160;};</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:2986</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:3009</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:2976</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:2980</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:3012</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:2983</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:2998</div></div>
+<div class="fragment"><div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>&#160;                        {</div><div class="line"><a name="l02981"></a><span class="lineno"> 2981</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a>                                          = 0,</div><div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a>                                        = 1,</div><div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a>                                  = 2,</div><div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a>                                          = 3,</div><div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160;        <span class="comment">/* LWS_WRITE_CLOSE is handled by lws_close_reason() */</span></div><div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160;        LWS_WRITE_PING                                          = 5,</div><div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160;        LWS_WRITE_PONG                                          = 6,</div><div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160;</div><div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160;        <span class="comment">/* Same as write_http but we know this write ends the transaction */</span></div><div class="line"><a name="l02999"></a><span class="lineno"> 2999</span>&#160;        LWS_WRITE_HTTP_FINAL                                    = 7,</div><div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>&#160;</div><div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160;        <span class="comment">/* HTTP2 */</span></div><div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>&#160;</div><div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a>                                  = 8,</div><div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>&#160;</div><div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160;        <span class="comment">/* flags */</span></div><div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160;</div><div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,</div><div class="line"><a name="l03017"></a><span class="lineno"> 3017</span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a> = 0x80</div><div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>&#160;};</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:2991</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:3014</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:2981</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:2985</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:3017</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:2988</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:3003</div></div>
 </div><!-- fragment -->
 </div>
 </div>
diff --git a/doc/html/group__smtp.html b/doc/html/group__smtp.html
index 7514f2b7..15f0e3e3 100644
--- a/doc/html/group__smtp.html
+++ b/doc/html/group__smtp.html
@@ -157,15 +157,15 @@ Functions</h2></td></tr>
 <p>sent the session quit </p>
 </td></tr>
 </table>
-<div class="fragment"><div class="line"><a name="l03897"></a><span class="lineno"> 3897</span>&#160;                       {</div><div class="line"><a name="l03898"></a><span class="lineno"> 3898</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l03899"></a><span class="lineno"> 3899</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l03901"></a><span class="lineno"> 3901</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l03903"></a><span class="lineno"> 3903</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>&#160;};</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:3900</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:3905</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:3898</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:3899</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:3903</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:3902</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:3906</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:3901</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:3904</div></div>
+<div class="fragment"><div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>&#160;                       {</div><div class="line"><a name="l03903"></a><span class="lineno"> 3903</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l03909"></a><span class="lineno"> 3909</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l03910"></a><span class="lineno"> 3910</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l03911"></a><span class="lineno"> 3911</span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160;};</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:3905</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:3910</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:3903</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:3904</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:3908</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:3907</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:3911</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:3906</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:3909</div></div>
 </div><!-- fragment -->
 </div>
 </div>
diff --git a/doc/html/group__usercb.html b/doc/html/group__usercb.html
index 3bd68b93..80052e80 100644
--- a/doc/html/group__usercb.html
+++ b/doc/html/group__usercb.html
@@ -147,7 +147,8 @@ Enumerations</h2></td></tr>
 <b>LWS_CALLBACK_SESSION_INFO</b> = 54, 
 <b>LWS_CALLBACK_GS_EVENT</b> = 55, 
 <br />
-&#160;&#160;<a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000
+&#160;&#160;<a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a> = 56, 
+<a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000
 <br />
  }</td></tr>
 <tr class="separator:gad62860e19975ba4c4af401c3cdb6abf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -366,11 +367,14 @@ Enumerations</h2></td></tr>
 <tr><td class="fieldname"><a class="anchor" id="ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51"></a>LWS_CALLBACK_WS_PEER_INITIATED_CLOSE&#160;</td><td class="fielddoc">
 <p>The peer has sent an unsolicited Close WS packet. in and len are the optional close code (first 2 bytes, network order) and the optional additional information which is not defined in the standard, and may be a string or non-human- readable data. If you return 0 lws will echo the close and then close the connection. If you return nonzero lws will just close the connection. </p>
 </td></tr>
+<tr><td class="fieldname"><a class="anchor" id="ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a"></a>LWS_CALLBACK_HTTP_PMO&#160;</td><td class="fielddoc">
+<p>per-mount options for this connection, called before the normal LWS_CALLBACK_HTTP when the mount has per-mount options </p>
+</td></tr>
 <tr><td class="fieldname"><a class="anchor" id="ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a"></a>LWS_CALLBACK_USER&#160;</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="l00577"></a><span class="lineno">  577</span>&#160;                          {</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a>                                =  0,</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a>                    =  1,</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a>                =  2,</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a>                         =  3,</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a>                                     =  4,</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a>                                =  5,</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a>                                    =  6,</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a>                               =  7,</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a>                             =  8,</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a>                        =  9,</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a>                           = 10,</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a>                           = 11,</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a>                                       = 12,</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a>                                  = 13,</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a>                       = 14,</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a>                       = 15,</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a>                             = 16,</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a>                  = 17,</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a>                     = 18,</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a>             = 19,</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a>                 = 20,</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a>     = 21,</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a>     = 22,</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a>   = 23,</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a>             = 24,</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a>                     = 25,</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a>         = 26,</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a>                              = 27,</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a>                           = 28,</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a>                                 = 29,</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a>                                = 30,</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a>                              = 31,</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        <span class="comment">/* external poll() management support */</span></div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a>                                = 32,</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a>                                = 33,</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a>                        = 34,</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a>                                  = 35,</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a>                                = 36,</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a>       = 37,</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a>                    = 38,</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;        LWS_CALLBACK_WS_EXT_DEFAULTS                            = 39,</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;        LWS_CALLBACK_CGI                                        = 40,</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;        LWS_CALLBACK_CGI_TERMINATED                             = 41,</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;        LWS_CALLBACK_CGI_STDIN_DATA                             = 42,</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;        LWS_CALLBACK_CGI_STDIN_COMPLETED                        = 43,</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;        LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP                    = 44,</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;        LWS_CALLBACK_CLOSED_CLIENT_HTTP                         = 45,</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;        LWS_CALLBACK_RECEIVE_CLIENT_HTTP                        = 46,</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;        LWS_CALLBACK_COMPLETED_CLIENT_HTTP                      = 47,</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;        LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ                   = 48,</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;        LWS_CALLBACK_HTTP_BIND_PROTOCOL                         = 49,</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;        LWS_CALLBACK_HTTP_DROP_PROTOCOL                         = 50,</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;        LWS_CALLBACK_CHECK_ACCESS_RIGHTS                        = 51,</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        LWS_CALLBACK_PROCESS_HTML                               = 52,</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;        LWS_CALLBACK_ADD_HEADERS                                = 53,</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;        LWS_CALLBACK_SESSION_INFO                               = 54,</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;        LWS_CALLBACK_GS_EVENT                                   = 55,</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;</div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000,</div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;};</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:684</div></div>
+<div class="fragment"><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;                          {</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a>                                =  0,</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a>                    =  1,</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a>                =  2,</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a>                         =  3,</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a>                                     =  4,</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a>                                =  5,</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a>                                    =  6,</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a>                               =  7,</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a>                             =  8,</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a>                        =  9,</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a>                           = 10,</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a>                           = 11,</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a>                                       = 12,</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a>                                  = 13,</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a>                       = 14,</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a>                       = 15,</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a>                             = 16,</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a>                  = 17,</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a>                     = 18,</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a>             = 19,</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a>                 = 20,</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a>     = 21,</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a>     = 22,</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a>   = 23,</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a>             = 24,</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a>                     = 25,</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a>         = 26,</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a>                              = 27,</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a>                           = 28,</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a>                                 = 29,</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a>                                = 30,</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a>                              = 31,</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        <span class="comment">/* external poll() management support */</span></div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a>                                = 32,</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a>                                = 33,</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a>                        = 34,</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a>                                  = 35,</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a>                                = 36,</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a>       = 37,</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a>                    = 38,</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;        LWS_CALLBACK_WS_EXT_DEFAULTS                            = 39,</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;        LWS_CALLBACK_CGI                                        = 40,</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;        LWS_CALLBACK_CGI_TERMINATED                             = 41,</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;        LWS_CALLBACK_CGI_STDIN_DATA                             = 42,</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;        LWS_CALLBACK_CGI_STDIN_COMPLETED                        = 43,</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;        LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP                    = 44,</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;        LWS_CALLBACK_CLOSED_CLIENT_HTTP                         = 45,</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;        LWS_CALLBACK_RECEIVE_CLIENT_HTTP                        = 46,</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;        LWS_CALLBACK_COMPLETED_CLIENT_HTTP                      = 47,</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;        LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ                   = 48,</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;        LWS_CALLBACK_HTTP_BIND_PROTOCOL                         = 49,</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;        LWS_CALLBACK_HTTP_DROP_PROTOCOL                         = 50,</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;        LWS_CALLBACK_CHECK_ACCESS_RIGHTS                        = 51,</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        LWS_CALLBACK_PROCESS_HTML                               = 52,</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;        LWS_CALLBACK_ADD_HEADERS                                = 53,</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;        LWS_CALLBACK_SESSION_INFO                               = 54,</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;        LWS_CALLBACK_GS_EVENT                                   = 55,</div><div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a>                                   = 56,</div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000,</div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;};</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:684</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:812</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:727</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:810</div></div>
@@ -399,13 +403,14 @@ Enumerations</h2></td></tr>
 <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:740</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:646</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:680</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:918</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:758</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:644</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:649</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:734</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:582</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:659</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:921</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:926</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:638</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:640</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:651</div></div>
diff --git a/doc/html/group__usercb.js b/doc/html/group__usercb.js
index ec85d224..779e5adc 100644
--- a/doc/html/group__usercb.js
+++ b/doc/html/group__usercb.js
@@ -41,6 +41,7 @@ var group__usercb =
       [ "LWS_CALLBACK_UNLOCK_POLL", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79", null ],
       [ "LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b", null ],
       [ "LWS_CALLBACK_WS_PEER_INITIATED_CLOSE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51", null ],
+      [ "LWS_CALLBACK_HTTP_PMO", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a", null ],
       [ "LWS_CALLBACK_USER", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a", null ]
     ] ]
 ];
\ No newline at end of file
diff --git a/doc/html/group__vhost-mounts.html b/doc/html/group__vhost-mounts.html
index cbb184dc..caf59c3b 100644
--- a/doc/html/group__vhost-mounts.html
+++ b/doc/html/group__vhost-mounts.html
@@ -129,13 +129,13 @@ Enumerations</h2></td></tr>
 <p>hand by named protocol's callback </p>
 </td></tr>
 </table>
-<div class="fragment"><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;                         {</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a>            = 0, </div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a>           = 1, </div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a>            = 2, </div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a>             = 3, </div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a>      = 4, </div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a>     = 5, </div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a>        = 6, </div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;};</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:1794</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:1792</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:1793</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:1795</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:1796</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:1791</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:1797</div></div>
+<div class="fragment"><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;                         {</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a>            = 0, </div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a>           = 1, </div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a>            = 2, </div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a>             = 3, </div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a>      = 4, </div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a>     = 5, </div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a>        = 6, </div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;};</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:1799</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:1797</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:1798</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:1800</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:1801</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:1796</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:1802</div></div>
 </div><!-- fragment -->
 </div>
 </div>
diff --git a/doc/html/libwebsockets_8h.html b/doc/html/libwebsockets_8h.html
index c1855c0a..293b8f94 100644
--- a/doc/html/libwebsockets_8h.html
+++ b/doc/html/libwebsockets_8h.html
@@ -281,7 +281,8 @@ Enumerations</h2></td></tr>
 <b>LWS_CALLBACK_SESSION_INFO</b> = 54, 
 <b>LWS_CALLBACK_GS_EVENT</b> = 55, 
 <br />
-&#160;&#160;<a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000
+&#160;&#160;<a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a> = 56, 
+<a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000
 <br />
  }</td></tr>
 <tr class="separator:gad62860e19975ba4c4af401c3cdb6abf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/doc/html/libwebsockets_8h.js b/doc/html/libwebsockets_8h.js
index d8dbff21..b102347b 100644
--- a/doc/html/libwebsockets_8h.js
+++ b/doc/html/libwebsockets_8h.js
@@ -106,6 +106,7 @@ var libwebsockets_8h =
       [ "LWS_CALLBACK_ADD_HEADERS", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab884f3d5f8a6126a0d34c0172f5e3725", null ],
       [ "LWS_CALLBACK_SESSION_INFO", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac11c336f7052abf3618962902a71ebc8", null ],
       [ "LWS_CALLBACK_GS_EVENT", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7af6cf80e57aae8ba0a57a5c456b1fe026", null ],
+      [ "LWS_CALLBACK_HTTP_PMO", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a", null ],
       [ "LWS_CALLBACK_USER", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a", null ]
     ] ],
     [ "lws_cgi_hdr_state", "libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedb", [
diff --git a/doc/html/libwebsockets_8h_source.html b/doc/html/libwebsockets_8h_source.html
index 3708aa65..3eb9d675 100644
--- a/doc/html/libwebsockets_8h_source.html
+++ b/doc/html/libwebsockets_8h_source.html
@@ -71,228 +71,228 @@ $(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>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<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>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Copyright (C) 2010-2016 Andy Green &lt;andy@warmcat.com&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment"> *  version 2.1 of the License.</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment"> *  Lesser General Public License for more details.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment"> *  MA  02110-1301  USA</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#ifndef LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#define LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;cstdarg&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#ifdef MBED_OPERATORS</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;mbed-drivers/mbed.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;sal-iface-eth/EthernetInterface.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;sockets/TCPListener.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;sal-stack-lwip/lwipv4_init.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">namespace </span>{</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<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>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">struct </span>sockaddr_in;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">struct </span>lws;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classlws__conn.html">   44</a></span>&#160;<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>&#160;        <span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <a class="code" href="classlws__conn.html">lws_conn</a>():</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                ts(NULL),</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                wsi(NULL),</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                writeable(1),</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                awaiting_on_writeable(0)</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        }</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <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>&#160;        <span class="keywordtype">int</span> actual_onRX(Socket *s);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="keywordtype">void</span> onRX(Socket *s);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <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>&#160;        <span class="keywordtype">void</span> onDisconnect(TCPStream *s);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        <span class="keywordtype">void</span> onSent(Socket *s, uint16_t len);</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <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>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        TCPStream *ts;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keyword">struct </span>lws *wsi;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <span class="keywordtype">char</span> writeable;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keywordtype">char</span> awaiting_on_writeable;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;};</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classlws__conn__listener.html">   72</a></span>&#160;<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>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <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>&#160;                srv(SOCKET_STACK_LWIP_IPV4)</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        {</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                srv.setOnError(TCPStream::ErrorHandler_t(<span class="keyword">this</span>,</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                                &amp;<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>&#160;        }</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <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>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keywordtype">void</span> onRX(Socket *s); </div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <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>&#160;        <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>&#160;        <span class="keywordtype">void</span> onDisconnect(TCPStream *s); </div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        TCPListener srv;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;};</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="preprocessor">#ifdef MBED_OPERATORS</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keyword">struct </span>sockaddr_in;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="preprocessor">#define LWS_POSIX 0</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="preprocessor">#define LWS_POSIX 1</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor">#include &quot;lws_config.h&quot;</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">#if defined(WIN32) || defined(_WIN32)</span></div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#ifndef WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">#define WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="preprocessor">#include &lt;winsock2.h&gt;</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#include &lt;ws2tcpip.h&gt;</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor">#include &lt;basetsd.h&gt;</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="preprocessor">#ifndef _WIN32_WCE</span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="preprocessor">#include &lt;fcntl.h&gt;</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor">#define _O_RDONLY       0x0000</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">#define O_RDONLY        _O_RDONLY</span></div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment">// Visual studio older than 2015 and WIN_CE has only _stricmp</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor">#if (defined(_MSC_VER) &amp;&amp; _MSC_VER &lt; 1900) || defined(_WIN32_WCE)</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="preprocessor">#define strcasecmp _stricmp</span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="preprocessor">#define strcasecmp stricmp</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">#define getdtablesize() 30000</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor">#define LWS_INLINE __inline</span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor">#define LWS_VISIBLE</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">#define LWS_WARN_DEPRECATED</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">#ifdef LWS_DLL</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">#ifdef LWS_INTERNAL</span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="preprocessor">#define LWS_EXTERN extern __declspec(dllexport)</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="preprocessor">#define LWS_EXTERN extern __declspec(dllimport)</span></div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="preprocessor">#define LWS_EXTERN</span></div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="preprocessor">#define LWS_INVALID_FILE INVALID_HANDLE_VALUE</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="preprocessor">#define LWS_O_RDONLY _O_RDONLY</span></div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="preprocessor">#if !defined(_MSC_VER) || _MSC_VER &lt; 1900 </span><span class="comment">/* Visual Studio 2015 already defines this in &lt;stdio.h&gt; */</span><span class="preprocessor"></span></div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="preprocessor">#define snprintf _snprintf</span></div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="preprocessor">#ifndef __func__</span></div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="preprocessor">#define __func__ __FUNCTION__</span></div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#else </span><span class="comment">/* NOT WIN32 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="preprocessor">#if defined(__NetBSD__) || defined(__FreeBSD__)</span></div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="preprocessor">#include &lt;netinet/in.h&gt;</span></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor">#define LWS_INLINE inline</span></div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="preprocessor">#define LWS_O_RDONLY O_RDONLY</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor">#ifndef MBED_OPERATORS</span></div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">#include &lt;poll.h&gt;</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor">#include &lt;netdb.h&gt;</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor">#define LWS_INVALID_FILE -1</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">#define getdtablesize() (20)</span></div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="preprocessor">#define LWS_INVALID_FILE NULL</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="preprocessor">#if defined(__GNUC__)</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="comment">/* warn_unused_result attribute only supported by GCC 3.4 or later */</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="preprocessor">#if __GNUC__ &gt;= 4 || (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ &gt;= 4)</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor">#define LWS_WARN_UNUSED_RESULT __attribute__((warn_unused_result))</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">#define LWS_VISIBLE __attribute__((visibility(&quot;default&quot;)))</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor">#define LWS_WARN_DEPRECATED __attribute__ ((deprecated))</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="preprocessor">#define LWS_VISIBLE</span></div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="preprocessor">#define LWS_WARN_DEPRECATED</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="preprocessor">#if defined(__ANDROID__)</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">#define getdtablesize() sysconf(_SC_OPEN_MAX)</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor">#ifdef LWS_USE_LIBEV</span></div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="preprocessor">#include &lt;ev.h&gt;</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBEV */</span><span class="preprocessor"></span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="preprocessor">#ifdef LWS_USE_LIBUV</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="preprocessor">#include &lt;uv.h&gt;</span></div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBUV */</span><span class="preprocessor"></span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="preprocessor">#ifndef LWS_EXTERN</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="preprocessor">#define LWS_EXTERN extern</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="preprocessor">#ifdef _WIN32</span></div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="preprocessor">#define random rand</span></div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="preprocessor">#include &lt;sys/time.h&gt;</span></div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="preprocessor">#ifdef LWS_OPENSSL_SUPPORT</span></div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="preprocessor">#ifdef USE_WOLFSSL</span></div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="preprocessor">#ifdef USE_OLD_CYASSL</span></div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="preprocessor">#include &lt;cyassl/openssl/ssl.h&gt;</span></div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="preprocessor">#include &lt;cyassl/error-ssl.h&gt;</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="preprocessor">#include &lt;wolfssl/openssl/ssl.h&gt;</span></div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="preprocessor">#include &lt;wolfssl/error-ssl.h&gt;</span></div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* not USE_OLD_CYASSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="preprocessor">#if defined(LWS_USE_POLARSSL)</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="preprocessor">#include &lt;polarssl/ssl.h&gt;</span></div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html">  234</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__polarssl__context.html">lws_polarssl_context</a> {</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af">  235</a></span>&#160;        x509_crt <a class="code" href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af">ca</a>; </div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27">  236</a></span>&#160;        x509_crt <a class="code" href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27">certificate</a>; </div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270">  237</a></span>&#160;        rsa_context <a class="code" href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270">key</a>; </div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;};</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<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="l00240"></a><span class="lineno">  240</span>&#160;<span class="keyword">typedef</span> ssl_context SSL;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="preprocessor">#if defined(LWS_USE_MBEDTLS)</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="preprocessor">#include &lt;mbedtls/ssl.h&gt;</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="preprocessor">#include &lt;openssl/ssl.h&gt;</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="preprocessor">#include &lt;openssl/err.h&gt;</span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* not USE_MBEDTLS */</span><span class="preprocessor"></span></div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* not USE_POLARSSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* not USE_WOLFSSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="preprocessor">#define CONTEXT_PORT_NO_LISTEN -1</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="keyword">enum</span> lws_log_levels {</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        LLL_ERR = 1 &lt;&lt; 0,</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        LLL_WARN = 1 &lt;&lt; 1,</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        LLL_NOTICE = 1 &lt;&lt; 2,</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        LLL_INFO = 1 &lt;&lt; 3,</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        LLL_DEBUG = 1 &lt;&lt; 4,</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        LLL_PARSER = 1 &lt;&lt; 5,</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        LLL_HEADER = 1 &lt;&lt; 6,</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        LLL_EXT = 1 &lt;&lt; 7,</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        LLL_CLIENT = 1 &lt;&lt; 8,</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        LLL_LATENCY = 1 &lt;&lt; 9,</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        LLL_COUNT = 10 <span class="comment">/* set to count of valid flags */</span></div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;};</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;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="l00283"></a><span class="lineno">  283</span>&#160;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="l00293"></a><span class="lineno">  293</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<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="l00295"></a><span class="lineno">  295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="comment">/* notice, warn and log are always compiled in */</span></div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="preprocessor">#define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__)</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;<span class="preprocessor">#define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__)</span></div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="preprocessor">#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__)</span></div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="comment"> *  weaker logging can be deselected at configure time using --disable-debug</span></div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="comment"> *  that gets rid of the overhead of checking while keeping _warn and _err</span></div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="comment"> *  active</span></div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="preprocessor">#ifdef _DEBUG</span></div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="preprocessor">#define lwsl_info(...) _lws_log(LLL_INFO, __VA_ARGS__)</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="preprocessor">#define lwsl_debug(...) _lws_log(LLL_DEBUG, __VA_ARGS__)</span></div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="preprocessor">#define lwsl_parser(...) _lws_log(LLL_PARSER, __VA_ARGS__)</span></div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="preprocessor">#define lwsl_header(...)  _lws_log(LLL_HEADER, __VA_ARGS__)</span></div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="preprocessor">#define lwsl_ext(...)  _lws_log(LLL_EXT, __VA_ARGS__)</span></div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="preprocessor">#define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__)</span></div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="preprocessor">#define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__)</span></div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;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="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor">#else </span><span class="comment">/* no debug */</span><span class="preprocessor"></span></div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="preprocessor">#define lwsl_info(...) {}</span></div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="preprocessor">#define lwsl_debug(...) {}</span></div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="preprocessor">#define lwsl_parser(...) {}</span></div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="preprocessor">#define lwsl_header(...) {}</span></div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="preprocessor">#define lwsl_ext(...) {}</span></div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="preprocessor">#define lwsl_client(...) {}</span></div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="preprocessor">#define lwsl_latency(...) {}</span></div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="preprocessor">#define lwsl_hexdump(a, b)</span></div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<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="l00347"></a><span class="lineno">  347</span>&#160;                  <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="l00348"></a><span class="lineno">  348</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<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="l00360"></a><span class="lineno">  360</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="preprocessor">#ifndef lws_container_of</span></div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="preprocessor">#define lws_container_of(P,T,M) ((T *)((char *)(P) - offsetof(T, M)))</span></div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="keyword">struct </span>lws;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="preprocessor">#ifndef ARRAY_SIZE</span></div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="preprocessor">#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))</span></div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="comment">/* api change list for user code to test against */</span></div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="preprocessor">#define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_ARG</span></div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="comment">/* the struct lws_protocols has the id field present */</span></div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="preprocessor">#define LWS_FEATURE_PROTOCOLS_HAS_ID_FIELD</span></div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="comment">/* you can call lws_get_peer_write_allowance */</span></div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="preprocessor">#define LWS_FEATURE_PROTOCOLS_HAS_PEER_WRITE_ALLOWANCE</span></div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="comment">/* extra parameter introduced in 917f43ab821 */</span></div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="preprocessor">#define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_LEN</span></div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="comment">/* File operations stuff exists */</span></div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="preprocessor">#define LWS_FEATURE_FOPS</span></div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="preprocessor">#if defined(_WIN32)</span></div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="keyword">typedef</span> SOCKET lws_sockfd_type;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="keyword">typedef</span> HANDLE lws_filefd_type;</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="preprocessor">#define lws_sockfd_valid(sfd) (!!sfd)</span></div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="structlws__pollfd.html">  397</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__pollfd.html">lws_pollfd</a> {</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be">  398</a></span>&#160;        lws_sockfd_type <a class="code" href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be">fd</a>; </div><div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9">  399</a></span>&#160;        SHORT <a class="code" href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9">events</a>; </div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932">  400</a></span>&#160;        SHORT <a class="code" href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932">revents</a>; </div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;};</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="preprocessor">#define LWS_POLLHUP (FD_CLOSE)</span></div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="preprocessor">#define LWS_POLLIN (FD_READ | FD_ACCEPT)</span></div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="preprocessor">#define LWS_POLLOUT (FD_WRITE)</span></div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;<span class="preprocessor">#if defined(MBED_OPERATORS)</span></div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="comment">/* it&#39;s a class lws_conn * */</span></div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> * lws_sockfd_type;</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> * lws_filefd_type;</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="preprocessor">#define lws_sockfd_valid(sfd) (!!sfd)</span></div><div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="structpollfd.html">  412</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structpollfd.html">pollfd</a> {</div><div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="structpollfd.html#af084f089bdece61d177f85782d6673d0">  413</a></span>&#160;        lws_sockfd_type <a class="code" href="structpollfd.html#af084f089bdece61d177f85782d6673d0">fd</a>; </div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef">  414</a></span>&#160;        <span class="keywordtype">short</span> <a class="code" href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef">events</a>; </div><div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2">  415</a></span>&#160;        <span class="keywordtype">short</span> <a class="code" href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2">revents</a>; </div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;};</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="preprocessor">#define POLLIN          0x0001</span></div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="preprocessor">#define POLLPRI         0x0002</span></div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="preprocessor">#define POLLOUT         0x0004</span></div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="preprocessor">#define POLLERR         0x0008</span></div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="preprocessor">#define POLLHUP         0x0010</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;<span class="preprocessor">#define POLLNVAL        0x0020</span></div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="keyword">struct </span>lws;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="keywordtype">void</span> * mbed3_create_tcp_stream_socket(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<span class="keywordtype">void</span> mbed3_delete_tcp_stream_socket(<span class="keywordtype">void</span> *sockfd);</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<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="l00429"></a><span class="lineno">  429</span>&#160;<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="l00430"></a><span class="lineno">  430</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> lws_sockfd_type;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> lws_filefd_type;</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<span class="preprocessor">#define lws_sockfd_valid(sfd) (sfd &gt;= 0)</span></div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="preprocessor">#define lws_pollfd pollfd</span></div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="preprocessor">#define LWS_POLLHUP (POLLHUP|POLLERR)</span></div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;<span class="preprocessor">#define LWS_POLLIN (POLLIN)</span></div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="preprocessor">#define LWS_POLLOUT (POLLOUT)</span></div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="structlws__pollargs.html">  444</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__pollargs.html">lws_pollargs</a> {</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81">  445</a></span>&#160;        lws_sockfd_type <a class="code" href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81">fd</a>;     </div><div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6">  446</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6">events</a>;             </div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8">  447</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8">prev_events</a>;        </div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;};</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__tokens.html">lws_tokens</a>;</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__token__limits.html">lws_token_limits</a>;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;<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="l00464"></a><span class="lineno">  464</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">  467</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a> {</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        LWS_CLOSE_STATUS_NOSTATUS                               =    0,</div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">  469</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a>                                 = 1000,</div><div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">  472</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a>                              = 1001,</div><div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">  475</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a>                           = 1002,</div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">  478</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a>                    = 1003,</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">  483</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a>                               = 1004,</div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">  485</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a>                              = 1005,</div><div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">  490</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a>                         = 1006,</div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">  496</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a>                        = 1007,</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">  501</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a>                       = 1008,</div><div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">  507</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a>                      = 1009,</div><div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">  511</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a>                     = 1010,</div><div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">  519</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a>                   = 1011,</div><div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">  523</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a>                            = 1015,</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY               = 9999,</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;};</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;<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="l00549"></a><span class="lineno">  549</span>&#160;                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="keyword">struct </span>lws;</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;<span class="keyword">struct </span>lws_context;</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<span class="comment">/* needed even with extensions disabled for create context */</span></div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a>;</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<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="l00574"></a><span class="lineno">  574</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">  577</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">lws_callback_reasons</a> {</div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">  578</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a>                                =  0,</div><div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">  582</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a>                    =  1,</div><div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">  626</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a>                =  2,</div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">  633</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a>                         =  3,</div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">  636</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a>                                     =  4,</div><div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">  638</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a>                                =  5,</div><div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">  640</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a>                                    =  6,</div><div class="line"><a name="l00644"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">  644</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a>                               =  7,</div><div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">  646</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a>                             =  8,</div><div class="line"><a name="l00649"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">  649</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a>                        =  9,</div><div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">  651</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a>                           = 10,</div><div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">  659</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a>                           = 11,</div><div class="line"><a name="l00661"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">  661</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a>                                       = 12,</div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">  675</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a>                                  = 13,</div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">  678</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a>                       = 14,</div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">  680</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a>                       = 15,</div><div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">  682</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a>                             = 16,</div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">  684</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a>                  = 17,</div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">  695</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a>                     = 18,</div><div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">  707</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a>             = 19,</div><div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">  715</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a>                 = 20,</div><div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">  727</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a>     = 21,</div><div class="line"><a name="l00734"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">  734</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a>     = 22,</div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">  740</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a>   = 23,</div><div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">  758</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a>             = 24,</div><div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">  782</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a>                     = 25,</div><div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">  793</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a>         = 26,</div><div class="line"><a name="l00802"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">  802</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a>                              = 27,</div><div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">  805</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a>                           = 28,</div><div class="line"><a name="l00810"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">  810</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a>                                 = 29,</div><div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">  812</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a>                                = 30,</div><div class="line"><a name="l00814"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">  814</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a>                              = 31,</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        <span class="comment">/* external poll() management support */</span></div><div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">  820</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a>                                = 32,</div><div class="line"><a name="l00836"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">  836</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a>                                = 33,</div><div class="line"><a name="l00842"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">  842</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a>                        = 34,</div><div class="line"><a name="l00850"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">  850</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a>                                  = 35,</div><div class="line"><a name="l00862"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">  862</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a>                                = 36,</div><div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">  865</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a>       = 37,</div><div class="line"><a name="l00873"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">  873</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a>                    = 38,</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;        LWS_CALLBACK_WS_EXT_DEFAULTS                            = 39,</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;        LWS_CALLBACK_CGI                                        = 40,</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;        LWS_CALLBACK_CGI_TERMINATED                             = 41,</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;        LWS_CALLBACK_CGI_STDIN_DATA                             = 42,</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;        LWS_CALLBACK_CGI_STDIN_COMPLETED                        = 43,</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;        LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP                    = 44,</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;        LWS_CALLBACK_CLOSED_CLIENT_HTTP                         = 45,</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;        LWS_CALLBACK_RECEIVE_CLIENT_HTTP                        = 46,</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;        LWS_CALLBACK_COMPLETED_CLIENT_HTTP                      = 47,</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;        LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ                   = 48,</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;        LWS_CALLBACK_HTTP_BIND_PROTOCOL                         = 49,</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;        LWS_CALLBACK_HTTP_DROP_PROTOCOL                         = 50,</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;        LWS_CALLBACK_CHECK_ACCESS_RIGHTS                        = 51,</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        LWS_CALLBACK_PROCESS_HTML                               = 52,</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;        LWS_CALLBACK_ADD_HEADERS                                = 53,</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;        LWS_CALLBACK_SESSION_INFO                               = 54,</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;        LWS_CALLBACK_GS_EVENT                                   = 55,</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;</div><div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">  921</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000,</div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;};</div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;</div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00943"></a><span class="lineno"><a class="line" href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f">  943</a></span>&#160;<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="l00944"></a><span class="lineno">  944</span>&#160;                    <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="l00946"></a><span class="lineno">  946</span>&#160;</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;</div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;<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="l00960"></a><span class="lineno">  960</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;<span class="keyword">enum</span> lws_extension_callback_reasons {</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;        LWS_EXT_CB_SERVER_CONTEXT_CONSTRUCT             =  0,</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;        LWS_EXT_CB_CLIENT_CONTEXT_CONSTRUCT             =  1,</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;        LWS_EXT_CB_SERVER_CONTEXT_DESTRUCT              =  2,</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;        LWS_EXT_CB_CLIENT_CONTEXT_DESTRUCT              =  3,</div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;        LWS_EXT_CB_CONSTRUCT                            =  4,</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;        LWS_EXT_CB_CLIENT_CONSTRUCT                     =  5,</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;        LWS_EXT_CB_CHECK_OK_TO_REALLY_CLOSE             =  6,</div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;        LWS_EXT_CB_CHECK_OK_TO_PROPOSE_EXTENSION        =  7,</div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;        LWS_EXT_CB_DESTROY                              =  8,</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;        LWS_EXT_CB_DESTROY_ANY_WSI_CLOSING              =  9,</div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;        LWS_EXT_CB_ANY_WSI_ESTABLISHED                  = 10,</div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;        LWS_EXT_CB_PACKET_RX_PREPARSE                   = 11,</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;        LWS_EXT_CB_PACKET_TX_PRESEND                    = 12,</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;        LWS_EXT_CB_PACKET_TX_DO_SEND                    = 13,</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;        LWS_EXT_CB_HANDSHAKE_REPLY_TX                   = 14,</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;        LWS_EXT_CB_FLUSH_PENDING_TX                     = 15,</div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;        LWS_EXT_CB_EXTENDED_PAYLOAD_RX                  = 16,</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;        LWS_EXT_CB_CAN_PROXY_CLIENT_CONNECTION          = 17,</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;        LWS_EXT_CB_1HZ                                  = 18,</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;        LWS_EXT_CB_REQUEST_ON_WRITEABLE                 = 19,</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;        LWS_EXT_CB_IS_WRITEABLE                         = 20,</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;        LWS_EXT_CB_PAYLOAD_TX                           = 21,</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;        LWS_EXT_CB_PAYLOAD_RX                           = 22,</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;        LWS_EXT_CB_OPTION_DEFAULT                       = 23,</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;        LWS_EXT_CB_OPTION_SET                           = 24,</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        LWS_EXT_CB_OPTION_CONFIRM                       = 25,</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;        LWS_EXT_CB_NAMED_OPTION_SET                     = 26,</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;};</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;</div><div class="line"><a name="l00995"></a><span class="lineno"><a class="line" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">  995</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">lws_ext_options_types</a> {</div><div class="line"><a name="l00996"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">  996</a></span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a>, </div><div class="line"><a name="l00997"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">  997</a></span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a>,  </div><div class="line"><a name="l00998"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">  998</a></span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a> </div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;};</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;</div><div class="line"><a name="l01008"></a><span class="lineno"><a class="line" href="structlws__ext__options.html"> 1008</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__ext__options.html">lws_ext_options</a> {</div><div class="line"><a name="l01009"></a><span class="lineno"><a class="line" href="structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e"> 1009</a></span>&#160;        <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="l01010"></a><span class="lineno"><a class="line" href="structlws__ext__options.html#a7c4dbd62dbeba63a9d50d2306bd1cc61"> 1010</a></span>&#160;        <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="l01012"></a><span class="lineno"> 1012</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;};</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;</div><div class="line"><a name="l01017"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html"> 1017</a></span>&#160;<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="l01018"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9"> 1018</a></span>&#160;        <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="l01019"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f"> 1019</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f">option_index</a>; </div><div class="line"><a name="l01020"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1"> 1020</a></span>&#160;        <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="l01021"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5"> 1021</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5">len</a>; </div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;};</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01085"></a><span class="lineno"><a class="line" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0"> 1085</a></span>&#160;<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="l01086"></a><span class="lineno"> 1086</span>&#160;                              <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="l01087"></a><span class="lineno"> 1087</span>&#160;                              <span class="keyword">enum</span> lws_extension_callback_reasons reason,</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;                              <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="l01089"></a><span class="lineno"> 1089</span>&#160;</div><div class="line"><a name="l01091"></a><span class="lineno"><a class="line" href="structlws__extension.html"> 1091</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a> {</div><div class="line"><a name="l01092"></a><span class="lineno"><a class="line" href="structlws__extension.html#a1e5018c883d85176f5c2152176843f9e"> 1092</a></span>&#160;        <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="l01093"></a><span class="lineno"><a class="line" href="structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af"> 1093</a></span>&#160;        <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="l01094"></a><span class="lineno"><a class="line" href="structlws__extension.html#a36b06c213aedb02bf9a402651751855b"> 1094</a></span>&#160;        <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="l01096"></a><span class="lineno"> 1096</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;};</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<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="l01110"></a><span class="lineno"> 1110</span>&#160;                         <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="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="preprocessor">#ifndef LWS_NO_EXTENSIONS</span></div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;<span class="comment">/* lws_get_internal_extensions() - DEPRECATED</span></div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;<span class="comment"> * \Deprecated There is no longer a set internal extensions table.  The table is provided</span></div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="comment"> * by user code along with application-specific settings.  See the test</span></div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="comment"> * client and server for how to do.</span></div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<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="l01120"></a><span class="lineno"> 1120</span>&#160;lws_get_internal_extensions() { <span class="keywordflow">return</span> NULL; }</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<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="l01134"></a><span class="lineno"> 1134</span>&#160;                       <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="l01135"></a><span class="lineno"> 1135</span>&#160;                       <span class="keyword">const</span> <span class="keywordtype">char</span> *o, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;LWS_EXTERN</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;<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="l01152"></a><span class="lineno"> 1152</span>&#160;        <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="l01153"></a><span class="lineno"> 1153</span>&#160;        <span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> lws_extension_callback_reasons reason,</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;        <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="l01155"></a><span class="lineno"> 1155</span>&#160;</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;<span class="comment"> * The internal exts are part of the public abi</span></div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;<span class="comment"> * If we add more extensions, publish the callback here  ------v</span></div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;</div><div class="line"><a name="l01181"></a><span class="lineno"><a class="line" href="structlws__protocols.html"> 1181</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> {</div><div class="line"><a name="l01182"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624"> 1182</a></span>&#160;        <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="l01185"></a><span class="lineno"><a class="line" href="structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d"> 1185</a></span>&#160;        <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="l01189"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea"> 1189</a></span>&#160;        <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="l01194"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5"> 1194</a></span>&#160;        <span class="keywordtype">size_t</span> <a class="code" href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5">rx_buffer_size</a>;</div><div class="line"><a name="l01203"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac"> 1203</a></span>&#160;        <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="l01210"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e"> 1210</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e">user</a>; </div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;};</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;<span class="keyword">struct </span>lws_vhost;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;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="l01228"></a><span class="lineno"> 1228</span>&#160;<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="l01229"></a><span class="lineno"> 1229</span>&#160;</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;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="l01240"></a><span class="lineno"> 1240</span>&#160;<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="l01241"></a><span class="lineno"> 1241</span>&#160;</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;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="l01244"></a><span class="lineno"> 1244</span>&#160;<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="l01245"></a><span class="lineno"> 1245</span>&#160;</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;<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="l01258"></a><span class="lineno"> 1258</span>&#160;                            <span class="keywordtype">int</span> size);</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;<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="l01271"></a><span class="lineno"> 1271</span>&#160;</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;<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="l01282"></a><span class="lineno"> 1282</span>&#160;</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;<span class="preprocessor">#ifdef LWS_WITH_PLUGINS</span></div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;<span class="comment">/* PLUGINS implies LIBUV */</span></div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;<span class="preprocessor">#define LWS_PLUGIN_API_MAGIC 180</span></div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;</div><div class="line"><a name="l01290"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html"> 1290</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> {</div><div class="line"><a name="l01291"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a"> 1291</a></span>&#160;        <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="l01292"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033"> 1292</a></span>&#160;        <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="l01293"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f"> 1293</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f">count_protocols</a>; </div><div class="line"><a name="l01294"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623"> 1294</a></span>&#160;        <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="l01295"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3"> 1295</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3">count_extensions</a>; </div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;};</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;<span class="keyword">typedef</span> int (*lws_plugin_init_func)(<span class="keyword">struct </span>lws_context *,</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;                                    <span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> *);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;<span class="keyword">typedef</span> int (*lws_plugin_destroy_func)(<span class="keyword">struct </span>lws_context *);</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;</div><div class="line"><a name="l01303"></a><span class="lineno"><a class="line" href="structlws__plugin.html"> 1303</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__plugin.html">lws_plugin</a> {</div><div class="line"><a name="l01304"></a><span class="lineno"><a class="line" href="structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22"> 1304</a></span>&#160;        <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="l01305"></a><span class="lineno"> 1305</span>&#160;<span class="preprocessor">#if (UV_VERSION_MAJOR &gt; 0)</span></div><div class="line"><a name="l01306"></a><span class="lineno"><a class="line" href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330"> 1306</a></span>&#160;        uv_lib_t <a class="code" href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330">lib</a>; </div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01308"></a><span class="lineno"><a class="line" href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4"> 1308</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4">l</a>; </div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01310"></a><span class="lineno"><a class="line" href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105"> 1310</a></span>&#160;        <span class="keywordtype">char</span> <a class="code" href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105">name</a>[64]; </div><div class="line"><a name="l01311"></a><span class="lineno"><a class="line" href="structlws__plugin.html#ac7f1fdfe8cf8a21f8ee9720c21934a3f"> 1311</a></span>&#160;        <span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> caps; </div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;};</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;<span class="preprocessor">#define LWSGS_EMAIL_CONTENT_SIZE 16384</span></div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;<span class="comment">/* SHA-1 binary and hexified versions */</span></div><div class="line"><a name="l01334"></a><span class="lineno"><a class="line" href="structlwsgw__hash__bin.html#ac92f50d9471058525d110597a4e0de6b"> 1334</a></span>&#160;<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="l01336"></a><span class="lineno"><a class="line" href="structlwsgw__hash.html#a29435f5cf78747d4257695b0f141d164"> 1336</a></span>&#160;<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="l01337"></a><span class="lineno"> 1337</span>&#160;</div><div class="line"><a name="l01339"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1"> 1339</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">lwsgs_auth_bits</a> {</div><div class="line"><a name="l01340"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57"> 1340</a></span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a> = 1, </div><div class="line"><a name="l01341"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf"> 1341</a></span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a> = 2,   </div><div class="line"><a name="l01342"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887"> 1342</a></span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a> = 4,  </div><div class="line"><a name="l01343"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a"> 1343</a></span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a> = 8,     </div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;};</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;</div><div class="line"><a name="l01347"></a><span class="lineno"><a class="line" href="structlws__session__info.html"> 1347</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__session__info.html">lws_session_info</a> {</div><div class="line"><a name="l01348"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a3d57a70b6e7181d95a8bec429b1a7697"> 1348</a></span>&#160;        <span class="keywordtype">char</span> username[32]; </div><div class="line"><a name="l01349"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a94b813cfc6b0da4b182659de30038ad3"> 1349</a></span>&#160;        <span class="keywordtype">char</span> email[100]; </div><div class="line"><a name="l01350"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a53eed02325e8717a53297391e3e98fac"> 1350</a></span>&#160;        <span class="keywordtype">char</span> ip[72]; </div><div class="line"><a name="l01351"></a><span class="lineno"><a class="line" href="structlws__session__info.html#afb924864b70f40372920688a5c1c895e"> 1351</a></span>&#160;        <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="l01353"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a4353b5dd19400b2b15edfd7cee1e4cd5"> 1353</a></span>&#160;        <span class="keywordtype">char</span> session[42]; </div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;};</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;</div><div class="line"><a name="l01357"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e"> 1357</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">lws_gs_event</a> {</div><div class="line"><a name="l01358"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308"> 1358</a></span>&#160;        <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a>, </div><div class="line"><a name="l01359"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde"> 1359</a></span>&#160;        <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a>  </div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;};</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;</div><div class="line"><a name="l01363"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html"> 1363</a></span>&#160;<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="l01364"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06"> 1364</a></span>&#160;        <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="l01365"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b"> 1365</a></span>&#160;        <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="l01366"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463"> 1366</a></span>&#160;        <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="l01367"></a><span class="lineno"> 1367</span>&#160;};</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;<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="l01389"></a><span class="lineno"> 1389</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div><div class="line"><a name="l01393"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5"> 1393</a></span>&#160;<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="l01394"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092"> 1394</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a>     = (1 &lt;&lt; 1) |</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01399"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c"> 1399</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a>            = (1 &lt;&lt; 2),</div><div class="line"><a name="l01401"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d"> 1401</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a>             = (1 &lt;&lt; 3) |</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01406"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6"> 1406</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a>                                 = (1 &lt;&lt; 4),</div><div class="line"><a name="l01408"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9"> 1408</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a>                          = (1 &lt;&lt; 5),</div><div class="line"><a name="l01410"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93"> 1410</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a>                   = (1 &lt;&lt; 6),</div><div class="line"><a name="l01413"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc"> 1413</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a>                = (1 &lt;&lt; 7),</div><div class="line"><a name="l01415"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f"> 1415</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a>                         = (1 &lt;&lt; 8),</div><div class="line"><a name="l01417"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c"> 1417</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a>                              = (1 &lt;&lt; 9) |</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01420"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e"> 1420</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a>                                 = (1 &lt;&lt; 10),</div><div class="line"><a name="l01422"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada"> 1422</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a>                = (1 &lt;&lt; 11) |</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01426"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a"> 1426</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a>                    = (1 &lt;&lt; 12),</div><div class="line"><a name="l01428"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e"> 1428</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a>                       = (1 &lt;&lt; 13),</div><div class="line"><a name="l01431"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941"> 1431</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a>                             = (1 &lt;&lt; 14),</div><div class="line"><a name="l01433"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016"> 1433</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a>                                   = (1 &lt;&lt; 15),</div><div class="line"><a name="l01436"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8"> 1436</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a>                    = (1 &lt;&lt; 16),</div><div class="line"><a name="l01438"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160"> 1438</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a>                     = (1 &lt;&lt; 17),</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;};</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;<span class="preprocessor">#define lws_check_opt(c, f) (((c) &amp; (f)) == (f))</span></div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;</div><div class="line"><a name="l01455"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html"> 1455</a></span>&#160;<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="l01456"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85"> 1456</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85">port</a>;</div><div class="line"><a name="l01461"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a"> 1461</a></span>&#160;        <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="l01468"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122"> 1468</a></span>&#160;        <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="l01472"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c"> 1472</a></span>&#160;        <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="l01475"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29"> 1475</a></span>&#160;        <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="l01478"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54"> 1478</a></span>&#160;        <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="l01480"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103"> 1480</a></span>&#160;        <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="l01484"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14"> 1484</a></span>&#160;        <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="l01490"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29"> 1490</a></span>&#160;        <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="l01492"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb"> 1492</a></span>&#160;        <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="l01496"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3"> 1496</a></span>&#160;        <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="l01499"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6"> 1499</a></span>&#160;        <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="l01501"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03"> 1501</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03">gid</a>;</div><div class="line"><a name="l01503"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e"> 1503</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e">uid</a>;</div><div class="line"><a name="l01505"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724"> 1505</a></span>&#160;        <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="l01507"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0"> 1507</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0">user</a>;</div><div class="line"><a name="l01510"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56"> 1510</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56">ka_time</a>;</div><div class="line"><a name="l01513"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410"> 1513</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410">ka_probes</a>;</div><div class="line"><a name="l01517"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd"> 1517</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd">ka_interval</a>;</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;<span class="preprocessor">#ifdef LWS_OPENSSL_SUPPORT</span></div><div class="line"><a name="l01521"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4"> 1521</a></span>&#160;        <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="l01526"></a><span class="lineno"> 1526</span>&#160;<span class="preprocessor">#else </span><span class="comment">/* maintain structure layout either way */</span><span class="preprocessor"></span></div><div class="line"><a name="l01527"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb"> 1527</a></span>&#160;        <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="l01528"></a><span class="lineno"> 1528</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;</div><div class="line"><a name="l01530"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948"> 1530</a></span>&#160;        <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="l01533"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720"> 1533</a></span>&#160;        <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="l01540"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419"> 1540</a></span>&#160;        <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="l01542"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646"> 1542</a></span>&#160;        <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="l01546"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d"> 1546</a></span>&#160;        <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="l01551"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9"> 1551</a></span>&#160;        <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="l01553"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9"> 1553</a></span>&#160;        <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="l01557"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251"> 1557</a></span>&#160;        <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="l01560"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458"> 1560</a></span>&#160;        <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="l01563"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6"> 1563</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6">keepalive_timeout</a>;</div><div class="line"><a name="l01566"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2"> 1566</a></span>&#160;        <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="l01569"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8"> 1569</a></span>&#160;        <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="l01571"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616"> 1571</a></span>&#160;        <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="l01574"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209"> 1574</a></span>&#160;        <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="l01580"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a"> 1580</a></span>&#160;        <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="l01585"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d"> 1585</a></span>&#160;        <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="l01587"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa"> 1587</a></span>&#160;        <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="l01590"></a><span class="lineno"> 1590</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility</span></div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;<span class="comment">         * The below is to ensure later library versions with new</span></div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;<span class="comment">         * members added above will see 0 (default) even if the app</span></div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;<span class="comment">         * was not built against the newer headers.</span></div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;</div><div class="line"><a name="l01598"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#afce3b59950eca3203faa07381bbed5d7"> 1598</a></span>&#160;        <span class="keywordtype">void</span> *_unused[8]; </div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;};</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_context *</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;<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="l01637"></a><span class="lineno"> 1637</span>&#160;</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<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="l01648"></a><span class="lineno"> 1648</span>&#160;</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;<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="l01668"></a><span class="lineno"> 1668</span>&#160;</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;<span class="keyword">struct </span>lws_vhost;</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;LWS_EXTERN LWS_VISIBLE <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;<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="l01683"></a><span class="lineno"> 1683</span>&#160;                 <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="l01684"></a><span class="lineno"> 1684</span>&#160;</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;<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="l01701"></a><span class="lineno"> 1701</span>&#160;                         <span class="keywordtype">char</span> **config_strings, <span class="keywordtype">int</span> *len);</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;<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="l01720"></a><span class="lineno"> 1720</span>&#160;                        <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="l01721"></a><span class="lineno"> 1721</span>&#160;                        <span class="keywordtype">char</span> **config_strings, <span class="keywordtype">int</span> *len);</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;<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="l01726"></a><span class="lineno"> 1726</span>&#160;</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;<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="l01734"></a><span class="lineno"> 1734</span>&#160;</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;<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="l01744"></a><span class="lineno"> 1744</span>&#160;</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;<a class="code" href="group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d">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="l01754"></a><span class="lineno"> 1754</span>&#160;</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;<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="l01766"></a><span class="lineno"> 1766</span>&#160;</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;</div><div class="line"><a name="l01779"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html"> 1779</a></span>&#160;<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="l01780"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c"> 1780</a></span>&#160;        <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="l01781"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822"> 1781</a></span>&#160;        <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="l01782"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9"> 1782</a></span>&#160;        <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="l01783"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7"> 1783</a></span>&#160;        <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="l01784"></a><span class="lineno"> 1784</span>&#160;};</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;</div><div class="line"><a name="l01790"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437"> 1790</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437">lws_mount_protocols</a> {</div><div class="line"><a name="l01791"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0"> 1791</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a>            = 0, </div><div class="line"><a name="l01792"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1"> 1792</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a>           = 1, </div><div class="line"><a name="l01793"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2"> 1793</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a>            = 2, </div><div class="line"><a name="l01794"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69"> 1794</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a>             = 3, </div><div class="line"><a name="l01795"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970"> 1795</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a>      = 4, </div><div class="line"><a name="l01796"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67"> 1796</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a>     = 5, </div><div class="line"><a name="l01797"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"> 1797</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a>        = 6, </div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;};</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;</div><div class="line"><a name="l01804"></a><span class="lineno"><a class="line" href="structlws__http__mount.html"> 1804</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__http__mount.html">lws_http_mount</a> {</div><div class="line"><a name="l01805"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ad878546ae1c399bbca7d7f8a0baf973d"> 1805</a></span>&#160;        <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#ad878546ae1c399bbca7d7f8a0baf973d">mount_next</a>;</div><div class="line"><a name="l01807"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c"> 1807</a></span>&#160;        <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="l01809"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a"> 1809</a></span>&#160;        <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="l01811"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4"> 1811</a></span>&#160;        <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="l01813"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b"> 1813</a></span>&#160;        <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="l01816"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af"> 1816</a></span>&#160;        <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="l01820"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7"> 1820</a></span>&#160;        <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="l01822"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773"> 1822</a></span>&#160;        <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="l01825"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa"> 1825</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa">cgi_timeout</a>;</div><div class="line"><a name="l01827"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146"> 1827</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146">cache_max_age</a>;</div><div class="line"><a name="l01829"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477"> 1829</a></span>&#160;        <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="l01832"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a8316dd183ffbef50419a5a4968d35d84"> 1832</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_reusable:1; </div><div class="line"><a name="l01833"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae137203040c6153694bd88a708da5395"> 1833</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_revalidate:1; </div><div class="line"><a name="l01834"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#aabec1a326780aafe11b977000983be0c"> 1834</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_intermediaries:1; </div><div class="line"><a name="l01836"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7"> 1836</a></span>&#160;        <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="l01837"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743"> 1837</a></span>&#160;        <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="l01838"></a><span class="lineno"> 1838</span>&#160;};</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;</div><div class="line"><a name="l01854"></a><span class="lineno"><a class="line" href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce"> 1854</a></span>&#160;<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="l01855"></a><span class="lineno"> 1855</span>&#160;        LCCSCF_USE_SSL                          = (1 &lt;&lt; 0),</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;        LCCSCF_ALLOW_SELFSIGNED                 = (1 &lt;&lt; 1),</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;        LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK  = (1 &lt;&lt; 2)</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;};</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;</div><div class="line"><a name="l01863"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html"> 1863</a></span>&#160;<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="l01864"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd"> 1864</a></span>&#160;        <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="l01866"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502"> 1866</a></span>&#160;        <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="l01868"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9"> 1868</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9">port</a>;</div><div class="line"><a name="l01870"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d"> 1870</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d">ssl_connection</a>;</div><div class="line"><a name="l01872"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185"> 1872</a></span>&#160;        <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="l01874"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7"> 1874</a></span>&#160;        <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="l01876"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c"> 1876</a></span>&#160;        <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="l01878"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2"> 1878</a></span>&#160;        <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="l01880"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895"> 1880</a></span>&#160;        <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="l01882"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836"> 1882</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836">userdata</a>;</div><div class="line"><a name="l01884"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a7732b996e977393c3e1076be2a8ded6c"> 1884</a></span>&#160;        <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__client__connect__info.html#a7732b996e977393c3e1076be2a8ded6c">client_exts</a>;</div><div class="line"><a name="l01886"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db"> 1886</a></span>&#160;        <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="l01889"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587"> 1889</a></span>&#160;        <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="l01893"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a"> 1893</a></span>&#160;        <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="l01896"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3"> 1896</a></span>&#160;        <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="l01898"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be"> 1898</a></span>&#160;        <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="l01900"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e"> 1900</a></span>&#160;        <span class="keyword">struct </span>lws **<a class="code" href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e">pwsi</a>;</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility</span></div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;<span class="comment">         * The below is to ensure later library versions with new</span></div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;<span class="comment">         * members added above will see 0 (default) even if the app</span></div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;<span class="comment">         * was not built against the newer headers.</span></div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;</div><div class="line"><a name="l01920"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#ad47f50d1633dc5df74548606c9a66d73"> 1920</a></span>&#160;        <span class="keywordtype">void</span> *_unused[4]; </div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;};</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;<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="l01932"></a><span class="lineno"> 1932</span>&#160;</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;<span class="comment">/* deprecated, use lws_client_connect_via_info() */</span></div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;<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="l01956"></a><span class="lineno"> 1956</span>&#160;                   <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="l01957"></a><span class="lineno"> 1957</span>&#160;                   <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="l01958"></a><span class="lineno"> 1958</span>&#160;                   <span class="keywordtype">int</span> ietf_version_or_minus_one) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;<span class="comment">/* deprecated, use lws_client_connect_via_info() */</span></div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;<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="l01982"></a><span class="lineno"> 1982</span>&#160;                            <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="l01983"></a><span class="lineno"> 1983</span>&#160;                            <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="l01984"></a><span class="lineno"> 1984</span>&#160;                            <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="l01985"></a><span class="lineno"> 1985</span>&#160;                            <span class="keywordtype">void</span> *userdata) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;<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="l02014"></a><span class="lineno"> 2014</span>&#160;                          <span class="keyword">struct</span> lws_vhost *vhost);</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;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="l02019"></a><span class="lineno"> 2019</span>&#160;</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;<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="l02062"></a><span class="lineno"> 2062</span>&#160;</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;<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="l02076"></a><span class="lineno"> 2076</span>&#160;</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;<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="l02094"></a><span class="lineno"> 2094</span>&#160;</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;<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="l02108"></a><span class="lineno"> 2108</span>&#160;</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;<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="l02133"></a><span class="lineno"> 2133</span>&#160;</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;<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="l02145"></a><span class="lineno"> 2145</span>&#160;                   <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;</div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;<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="l02175"></a><span class="lineno"> 2175</span>&#160;</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;<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="l02196"></a><span class="lineno"> 2196</span>&#160;                    <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="l02197"></a><span class="lineno"> 2197</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;lws_serve_http_file_fragment(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;<span class="keyword">enum</span> http_status {</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;        HTTP_STATUS_OK                                          = 200,</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;        HTTP_STATUS_NO_CONTENT                                  = 204,</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;</div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;        HTTP_STATUS_MOVED_PERMANENTLY                           = 301,</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;        HTTP_STATUS_FOUND                                       = 302,</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;        HTTP_STATUS_SEE_OTHER                                   = 303,</div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;        HTTP_STATUS_BAD_REQUEST                                 = 400,</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;        HTTP_STATUS_UNAUTHORIZED,</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;        HTTP_STATUS_PAYMENT_REQUIRED,</div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;        HTTP_STATUS_FORBIDDEN,</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;        HTTP_STATUS_NOT_FOUND,</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;        HTTP_STATUS_METHOD_NOT_ALLOWED,</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;        HTTP_STATUS_NOT_ACCEPTABLE,</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;        HTTP_STATUS_PROXY_AUTH_REQUIRED,</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;        HTTP_STATUS_REQUEST_TIMEOUT,</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;        HTTP_STATUS_CONFLICT,</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;        HTTP_STATUS_GONE,</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;        HTTP_STATUS_LENGTH_REQUIRED,</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;        HTTP_STATUS_PRECONDITION_FAILED,</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;        HTTP_STATUS_REQ_ENTITY_TOO_LARGE,</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;        HTTP_STATUS_REQ_URI_TOO_LONG,</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;        HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE,</div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;        HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE,</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;        HTTP_STATUS_EXPECTATION_FAILED,</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;        HTTP_STATUS_INTERNAL_SERVER_ERROR                       = 500,</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;        HTTP_STATUS_NOT_IMPLEMENTED,</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;        HTTP_STATUS_BAD_GATEWAY,</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;        HTTP_STATUS_SERVICE_UNAVAILABLE,</div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;        HTTP_STATUS_GATEWAY_TIMEOUT,</div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;        HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED,</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;};</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;</div><div class="line"><a name="l02247"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html"> 2247</a></span>&#160;<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="l02248"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14"> 2248</a></span>&#160;        <span class="keywordtype">char</span> *<a class="code" href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14">p</a>; </div><div class="line"><a name="l02249"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef"> 2249</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef">len</a>; </div><div class="line"><a name="l02250"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99"> 2250</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99">max_len</a>; </div><div class="line"><a name="l02251"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475"> 2251</a></span>&#160;        <span class="keywordtype">int</span> <span class="keyword">final</span>; </div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;};</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160;</div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;<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="l02255"></a><span class="lineno"> 2255</span>&#160;</div><div class="line"><a name="l02256"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html"> 2256</a></span>&#160;<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="l02257"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3"> 2257</a></span>&#160;        <span class="keywordtype">char</span> *<a class="code" href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3">start</a>; </div><div class="line"><a name="l02258"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a71982bc1cbd8cf876ca0f545144404eb"> 2258</a></span>&#160;        <span class="keywordtype">char</span> swallow[16]; </div><div class="line"><a name="l02259"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20"> 2259</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20">pos</a>; </div><div class="line"><a name="l02260"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5"> 2260</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5">data</a>; </div><div class="line"><a name="l02261"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077"> 2261</a></span>&#160;        <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="l02262"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968"> 2262</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968">count_vars</a>; </div><div class="line"><a name="l02264"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644"> 2264</a></span>&#160;        lws_process_html_state_cb <a class="code" href="structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644">replace</a>; </div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160;};</div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;<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="l02273"></a><span class="lineno"> 2273</span>&#160;                         <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="l02275"></a><span class="lineno"> 2275</span>&#160;</div><div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160;</div><div class="line"><a name="l02316"></a><span class="lineno"><a class="line" href="structlws__tokens.html"> 2316</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__tokens.html">lws_tokens</a> {</div><div class="line"><a name="l02317"></a><span class="lineno"><a class="line" href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd"> 2317</a></span>&#160;        <span class="keywordtype">char</span> *<a class="code" href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd">token</a>; </div><div class="line"><a name="l02318"></a><span class="lineno"><a class="line" href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766"> 2318</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766">token_len</a>; </div><div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160;};</div><div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160;</div><div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160;<span class="comment">/* enum lws_token_indexes</span></div><div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160;<span class="comment"> * these have to be kept in sync with lextable.h / minilex.c</span></div><div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;<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="l02325"></a><span class="lineno"> 2325</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;<span class="keyword">enum</span> lws_token_indexes {</div><div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;        WSI_TOKEN_GET_URI                                       =  0,</div><div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160;        WSI_TOKEN_POST_URI                                      =  1,</div><div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160;        WSI_TOKEN_OPTIONS_URI                                   =  2,</div><div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160;        WSI_TOKEN_HOST                                          =  3,</div><div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;        WSI_TOKEN_CONNECTION                                    =  4,</div><div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160;        WSI_TOKEN_UPGRADE                                       =  5,</div><div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;        WSI_TOKEN_ORIGIN                                        =  6,</div><div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;        WSI_TOKEN_DRAFT                                         =  7,</div><div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;        WSI_TOKEN_CHALLENGE                                     =  8,</div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160;        WSI_TOKEN_EXTENSIONS                                    =  9,</div><div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160;        WSI_TOKEN_KEY1                                          = 10,</div><div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;        WSI_TOKEN_KEY2                                          = 11,</div><div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;        WSI_TOKEN_PROTOCOL                                      = 12,</div><div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;        WSI_TOKEN_ACCEPT                                        = 13,</div><div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160;        WSI_TOKEN_NONCE                                         = 14,</div><div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160;        WSI_TOKEN_HTTP                                          = 15,</div><div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;        WSI_TOKEN_HTTP2_SETTINGS                                = 16,</div><div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160;        WSI_TOKEN_HTTP_ACCEPT                                   = 17,</div><div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160;        WSI_TOKEN_HTTP_AC_REQUEST_HEADERS                       = 18,</div><div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160;        WSI_TOKEN_HTTP_IF_MODIFIED_SINCE                        = 19,</div><div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;        WSI_TOKEN_HTTP_IF_NONE_MATCH                            = 20,</div><div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160;        WSI_TOKEN_HTTP_ACCEPT_ENCODING                          = 21,</div><div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160;        WSI_TOKEN_HTTP_ACCEPT_LANGUAGE                          = 22,</div><div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160;        WSI_TOKEN_HTTP_PRAGMA                                   = 23,</div><div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160;        WSI_TOKEN_HTTP_CACHE_CONTROL                            = 24,</div><div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160;        WSI_TOKEN_HTTP_AUTHORIZATION                            = 25,</div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160;        WSI_TOKEN_HTTP_COOKIE                                   = 26,</div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160;        WSI_TOKEN_HTTP_CONTENT_LENGTH                           = 27,</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;        WSI_TOKEN_HTTP_CONTENT_TYPE                             = 28,</div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;        WSI_TOKEN_HTTP_DATE                                     = 29,</div><div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;        WSI_TOKEN_HTTP_RANGE                                    = 30,</div><div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160;        WSI_TOKEN_HTTP_REFERER                                  = 31,</div><div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160;        WSI_TOKEN_KEY                                           = 32,</div><div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;        WSI_TOKEN_VERSION                                       = 33,</div><div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;        WSI_TOKEN_SWORIGIN                                      = 34,</div><div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;</div><div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;        WSI_TOKEN_HTTP_COLON_AUTHORITY                          = 35,</div><div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;        WSI_TOKEN_HTTP_COLON_METHOD                             = 36,</div><div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;        WSI_TOKEN_HTTP_COLON_PATH                               = 37,</div><div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;        WSI_TOKEN_HTTP_COLON_SCHEME                             = 38,</div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160;        WSI_TOKEN_HTTP_COLON_STATUS                             = 39,</div><div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;</div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;        WSI_TOKEN_HTTP_ACCEPT_CHARSET                           = 40,</div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;        WSI_TOKEN_HTTP_ACCEPT_RANGES                            = 41,</div><div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;        WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN              = 42,</div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;        WSI_TOKEN_HTTP_AGE                                      = 43,</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160;        WSI_TOKEN_HTTP_ALLOW                                    = 44,</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;        WSI_TOKEN_HTTP_CONTENT_DISPOSITION                      = 45,</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160;        WSI_TOKEN_HTTP_CONTENT_ENCODING                         = 46,</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;        WSI_TOKEN_HTTP_CONTENT_LANGUAGE                         = 47,</div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;        WSI_TOKEN_HTTP_CONTENT_LOCATION                         = 48,</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160;        WSI_TOKEN_HTTP_CONTENT_RANGE                            = 49,</div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;        WSI_TOKEN_HTTP_ETAG                                     = 50,</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;        WSI_TOKEN_HTTP_EXPECT                                   = 51,</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;        WSI_TOKEN_HTTP_EXPIRES                                  = 52,</div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;        WSI_TOKEN_HTTP_FROM                                     = 53,</div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;        WSI_TOKEN_HTTP_IF_MATCH                                 = 54,</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;        WSI_TOKEN_HTTP_IF_RANGE                                 = 55,</div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;        WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE                      = 56,</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;        WSI_TOKEN_HTTP_LAST_MODIFIED                            = 57,</div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;        WSI_TOKEN_HTTP_LINK                                     = 58,</div><div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;        WSI_TOKEN_HTTP_LOCATION                                 = 59,</div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;        WSI_TOKEN_HTTP_MAX_FORWARDS                             = 60,</div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;        WSI_TOKEN_HTTP_PROXY_AUTHENTICATE                       = 61,</div><div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;        WSI_TOKEN_HTTP_PROXY_AUTHORIZATION                      = 62,</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;        WSI_TOKEN_HTTP_REFRESH                                  = 63,</div><div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;        WSI_TOKEN_HTTP_RETRY_AFTER                              = 64,</div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;        WSI_TOKEN_HTTP_SERVER                                   = 65,</div><div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160;        WSI_TOKEN_HTTP_SET_COOKIE                               = 66,</div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;        WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY                = 67,</div><div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;        WSI_TOKEN_HTTP_TRANSFER_ENCODING                        = 68,</div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;        WSI_TOKEN_HTTP_USER_AGENT                               = 69,</div><div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160;        WSI_TOKEN_HTTP_VARY                                     = 70,</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;        WSI_TOKEN_HTTP_VIA                                      = 71,</div><div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;        WSI_TOKEN_HTTP_WWW_AUTHENTICATE                         = 72,</div><div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160;</div><div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160;        WSI_TOKEN_PATCH_URI                                     = 73,</div><div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160;        WSI_TOKEN_PUT_URI                                       = 74,</div><div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;        WSI_TOKEN_DELETE_URI                                    = 75,</div><div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160;</div><div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;        WSI_TOKEN_HTTP_URI_ARGS                                 = 76,</div><div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;        WSI_TOKEN_PROXY                                         = 77,</div><div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;        WSI_TOKEN_HTTP_X_REAL_IP                                = 78,</div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;        WSI_TOKEN_HTTP1_0                                       = 79,</div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160;</div><div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;</div><div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160;        <span class="comment">/* use token storage to stash these internally, not for</span></div><div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160;<span class="comment">         * user use */</span></div><div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160;</div><div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;        _WSI_TOKEN_CLIENT_SENT_PROTOCOLS,</div><div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160;        _WSI_TOKEN_CLIENT_PEER_ADDRESS,</div><div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160;        _WSI_TOKEN_CLIENT_URI,</div><div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160;        _WSI_TOKEN_CLIENT_HOST,</div><div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;        _WSI_TOKEN_CLIENT_ORIGIN,</div><div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160;        _WSI_TOKEN_CLIENT_METHOD,</div><div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160;</div><div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160;        <span class="comment">/* always last real token index*/</span></div><div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160;        WSI_TOKEN_COUNT,</div><div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160;</div><div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160;        <span class="comment">/* parser state additions, no storage associated */</span></div><div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160;        WSI_TOKEN_NAME_PART,</div><div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160;        WSI_TOKEN_SKIPPING,</div><div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160;        WSI_TOKEN_SKIPPING_SAW_CR,</div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160;        WSI_PARSING_COMPLETE,</div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160;        WSI_INIT_TOKEN_MUXURL,</div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160;};</div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160;</div><div class="line"><a name="l02436"></a><span class="lineno"><a class="line" href="structlws__token__limits.html"> 2436</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__token__limits.html">lws_token_limits</a> {</div><div class="line"><a name="l02437"></a><span class="lineno"><a class="line" href="structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff"> 2437</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> token_limit[WSI_TOKEN_COUNT]; </div><div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;};</div><div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160;</div><div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160;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="l02446"></a><span class="lineno"> 2446</span>&#160;<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="l02447"></a><span class="lineno"> 2447</span>&#160;</div><div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160;</div><div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160;<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="l02459"></a><span class="lineno"> 2459</span>&#160;</div><div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160;<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="l02471"></a><span class="lineno"> 2471</span>&#160;</div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160;<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="l02487"></a><span class="lineno"> 2487</span>&#160;</div><div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160;<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="l02507"></a><span class="lineno"> 2507</span>&#160;                      <span class="keyword">enum</span> lws_token_indexes h, <span class="keywordtype">int</span> frag_idx);</div><div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160;</div><div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160;<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="l02522"></a><span class="lineno"> 2522</span>&#160;</div><div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160;</div><div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160;<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="l02550"></a><span class="lineno"> 2550</span>&#160;                           <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="l02551"></a><span class="lineno"> 2551</span>&#160;                           <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160;<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="l02566"></a><span class="lineno"> 2566</span>&#160;                            <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="l02567"></a><span class="lineno"> 2567</span>&#160;                            <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="l02581"></a><span class="lineno"> 2581</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160;<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="l02583"></a><span class="lineno"> 2583</span>&#160;                             <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="l02584"></a><span class="lineno"> 2584</span>&#160;                             <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="l02595"></a><span class="lineno"> 2595</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160;<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="l02597"></a><span class="lineno"> 2597</span>&#160;                                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> content_length,</div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160;                                   <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="l02608"></a><span class="lineno"> 2608</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160;<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="l02610"></a><span class="lineno"> 2610</span>&#160;                         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160;</div><div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160;</div><div class="line"><a name="l02634"></a><span class="lineno"><a class="line" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae"> 2634</a></span>&#160;<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="l02635"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f"> 2635</a></span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,</div><div class="line"><a name="l02637"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7"> 2637</a></span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,</div><div class="line"><a name="l02639"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"> 2639</a></span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160;};</div><div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160;</div><div class="line"><a name="l02656"></a><span class="lineno"><a class="line" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e"> 2656</a></span>&#160;<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="l02657"></a><span class="lineno"> 2657</span>&#160;                        <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="l02658"></a><span class="lineno"> 2658</span>&#160;                        <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="l02659"></a><span class="lineno"> 2659</span>&#160;</div><div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160;<span class="keyword">struct </span>lws_spa;</div><div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160;</div><div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_spa *</div><div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160;<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="l02684"></a><span class="lineno"> 2684</span>&#160;               <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="l02685"></a><span class="lineno"> 2685</span>&#160;               <span class="keywordtype">void</span> *opt_data);</div><div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160;</div><div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160;<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="l02696"></a><span class="lineno"> 2696</span>&#160;</div><div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160;<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="l02704"></a><span class="lineno"> 2704</span>&#160;</div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160;<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="l02713"></a><span class="lineno"> 2713</span>&#160;</div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160;<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="l02721"></a><span class="lineno"> 2721</span>&#160;</div><div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160;<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="l02730"></a><span class="lineno"> 2730</span>&#160;</div><div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>&#160;</div><div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>&#160;<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="l02754"></a><span class="lineno"> 2754</span>&#160;</div><div class="line"><a name="l02755"></a><span class="lineno"> 2755</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l02756"></a><span class="lineno"> 2756</span>&#160;<span class="comment"> * URLDECODE 1 / 2</span></div><div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>&#160;<span class="comment"> * This simple urldecode only operates until the first &#39;\0&#39; and requires the</span></div><div class="line"><a name="l02759"></a><span class="lineno"> 2759</span>&#160;<span class="comment"> * data to exist all at once</span></div><div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>&#160;<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="l02776"></a><span class="lineno"> 2776</span>&#160;</div><div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02786"></a><span class="lineno"> 2786</span>&#160;<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="l02787"></a><span class="lineno"> 2787</span>&#160;                       <span class="keyword">const</span> <span class="keywordtype">char</span> *html_body);</div><div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>&#160;</div><div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>&#160;<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="l02801"></a><span class="lineno"> 2801</span>&#160;                  <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="l02802"></a><span class="lineno"> 2802</span>&#160;</div><div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>&#160;<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="l02814"></a><span class="lineno"> 2814</span>&#160;</div><div class="line"><a name="l02822"></a><span class="lineno"> 2822</span>&#160;</div><div class="line"><a name="l02833"></a><span class="lineno"> 2833</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>&#160;<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="l02835"></a><span class="lineno"> 2835</span>&#160;</div><div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>&#160;<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="l02849"></a><span class="lineno"> 2849</span>&#160;</div><div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160;</div><div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>&#160;<span class="preprocessor">#ifdef LWS_USE_LIBEV</span></div><div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>&#160;<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="l02860"></a><span class="lineno"> 2860</span>&#160;</div><div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>&#160;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="l02863"></a><span class="lineno"> 2863</span>&#160;                  lws_ev_signal_cb_t *cb);</div><div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160;</div><div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160;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="l02867"></a><span class="lineno"> 2867</span>&#160;</div><div class="line"><a name="l02868"></a><span class="lineno"> 2868</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>&#160;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="l02870"></a><span class="lineno"> 2870</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBEV */</span><span class="preprocessor"></span></div><div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>&#160;</div><div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>&#160;</div><div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>&#160;<span class="preprocessor">#ifdef LWS_USE_LIBUV</span></div><div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160;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="l02884"></a><span class="lineno"> 2884</span>&#160;                  uv_signal_cb cb);</div><div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160;</div><div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>&#160;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="l02888"></a><span class="lineno"> 2888</span>&#160;</div><div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>&#160;lws_libuv_stop(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>&#160;</div><div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>&#160;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="l02894"></a><span class="lineno"> 2894</span>&#160;</div><div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>&#160;LWS_VISIBLE LWS_EXTERN uv_loop_t *</div><div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160;lws_uv_getloop(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>&#160;</div><div class="line"><a name="l02898"></a><span class="lineno"> 2898</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02899"></a><span class="lineno"> 2899</span>&#160;lws_uv_sigint_cb(uv_signal_t *watcher, <span class="keywordtype">int</span> signum);</div><div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBUV */</span><span class="preprocessor"></span></div><div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>&#160;</div><div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>&#160;</div><div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160;<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="l02911"></a><span class="lineno"> 2911</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160;<span class="keyword">enum</span> pending_timeout {</div><div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160;        NO_PENDING_TIMEOUT                                      =  0,</div><div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>&#160;        PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE                 =  1,</div><div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>&#160;        PENDING_TIMEOUT_AWAITING_CONNECT_RESPONSE               =  2,</div><div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>&#160;        PENDING_TIMEOUT_ESTABLISH_WITH_SERVER                   =  3,</div><div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>&#160;        PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE                =  4,</div><div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>&#160;        PENDING_TIMEOUT_AWAITING_PING                           =  5,</div><div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>&#160;        PENDING_TIMEOUT_CLOSE_ACK                               =  6,</div><div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>&#160;        PENDING_TIMEOUT_AWAITING_EXTENSION_CONNECT_RESPONSE     =  7,</div><div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>&#160;        PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE                   =  8,</div><div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>&#160;        PENDING_TIMEOUT_SSL_ACCEPT                              =  9,</div><div class="line"><a name="l02924"></a><span class="lineno"> 2924</span>&#160;        PENDING_TIMEOUT_HTTP_CONTENT                            = 10,</div><div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>&#160;        PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND                 = 11,</div><div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>&#160;        PENDING_FLUSH_STORED_SEND_BEFORE_CLOSE                  = 12,</div><div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>&#160;        PENDING_TIMEOUT_SHUTDOWN_FLUSH                          = 13,</div><div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>&#160;        PENDING_TIMEOUT_CGI                                     = 14,</div><div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>&#160;        PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE                     = 15,</div><div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160;</div><div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160;};</div><div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>&#160;</div><div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>&#160;<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="l02946"></a><span class="lineno"> 2946</span>&#160;</div><div class="line"><a name="l02952"></a><span class="lineno"> 2952</span>&#160;<span class="preprocessor">#if !defined(LWS_SIZEOFPTR)</span></div><div class="line"><a name="l02953"></a><span class="lineno"> 2953</span>&#160;<span class="preprocessor">#define LWS_SIZEOFPTR (sizeof (void *))</span></div><div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02955"></a><span class="lineno"> 2955</span>&#160;<span class="preprocessor">#if !defined(u_int64_t)</span></div><div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>&#160;<span class="preprocessor">#define u_int64_t unsigned long long</span></div><div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160;</div><div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160;<span class="preprocessor">#if defined(__x86_64__)</span></div><div class="line"><a name="l02960"></a><span class="lineno"> 2960</span>&#160;<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="l02961"></a><span class="lineno"> 2961</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>&#160;<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="l02963"></a><span class="lineno"> 2963</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>&#160;<span class="preprocessor">#define _LWS_PAD(n) (((n) % _LWS_PAD_SIZE) ? \</span></div><div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>&#160;<span class="preprocessor">                ((n) + (_LWS_PAD_SIZE - ((n) % _LWS_PAD_SIZE))) : (n))</span></div><div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>&#160;<span class="preprocessor">#define LWS_PRE _LWS_PAD(4 + 10)</span></div><div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>&#160;<span class="comment">/* used prior to 1.7 and retained for backward compatibility */</span></div><div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>&#160;<span class="preprocessor">#define LWS_SEND_BUFFER_PRE_PADDING LWS_PRE</span></div><div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>&#160;<span class="preprocessor">#define LWS_SEND_BUFFER_POST_PADDING 0</span></div><div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>&#160;</div><div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>&#160;<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="l02973"></a><span class="lineno"> 2973</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02975"></a><span class="lineno"><a class="line" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d"> 2975</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a> {</div><div class="line"><a name="l02976"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db"> 2976</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a>                                          = 0,</div><div class="line"><a name="l02980"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2"> 2980</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a>                                        = 1,</div><div class="line"><a name="l02983"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826"> 2983</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a>                                  = 2,</div><div class="line"><a name="l02986"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e"> 2986</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a>                                          = 3,</div><div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>&#160;        <span class="comment">/* LWS_WRITE_CLOSE is handled by lws_close_reason() */</span></div><div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160;        LWS_WRITE_PING                                          = 5,</div><div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160;        LWS_WRITE_PONG                                          = 6,</div><div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>&#160;</div><div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>&#160;        <span class="comment">/* Same as write_http but we know this write ends the transaction */</span></div><div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160;        LWS_WRITE_HTTP_FINAL                                    = 7,</div><div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160;</div><div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160;        <span class="comment">/* HTTP2 */</span></div><div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160;</div><div class="line"><a name="l02998"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917"> 2998</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a>                                  = 8,</div><div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160;</div><div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160;        <span class="comment">/* flags */</span></div><div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160;</div><div class="line"><a name="l03009"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3"> 3009</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,</div><div class="line"><a name="l03012"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"> 3012</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a> = 0x80</div><div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>&#160;};</div><div class="line"><a name="l03017"></a><span class="lineno"> 3017</span>&#160;</div><div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>&#160;</div><div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>&#160;<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="l03092"></a><span class="lineno"> 3092</span>&#160;          <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="l03093"></a><span class="lineno"> 3093</span>&#160;</div><div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>&#160;<span class="comment">/* helper for case where buffer may be const */</span></div><div class="line"><a name="l03095"></a><span class="lineno"> 3095</span>&#160;<span class="preprocessor">#define lws_write_http(wsi, buf, len) \</span></div><div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>&#160;<span class="preprocessor">        lws_write(wsi, (unsigned char *)(buf), len, LWS_WRITE_HTTP)</span></div><div class="line"><a name="l03097"></a><span class="lineno"> 3097</span>&#160;</div><div class="line"><a name="l03099"></a><span class="lineno"> 3099</span>&#160;</div><div class="line"><a name="l03118"></a><span class="lineno"> 3118</span>&#160;</div><div class="line"><a name="l03131"></a><span class="lineno"> 3131</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03132"></a><span class="lineno"> 3132</span>&#160;<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="l03133"></a><span class="lineno"> 3133</span>&#160;</div><div class="line"><a name="l03147"></a><span class="lineno"> 3147</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03148"></a><span class="lineno"> 3148</span>&#160;<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="l03149"></a><span class="lineno"> 3149</span>&#160;                                      <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="l03150"></a><span class="lineno"> 3150</span>&#160;</div><div class="line"><a name="l03164"></a><span class="lineno"> 3164</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03165"></a><span class="lineno"> 3165</span>&#160;<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="l03166"></a><span class="lineno"> 3166</span>&#160;                                      <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="l03167"></a><span class="lineno"> 3167</span>&#160;</div><div class="line"><a name="l03180"></a><span class="lineno"> 3180</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03181"></a><span class="lineno"> 3181</span>&#160;<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="l03182"></a><span class="lineno"> 3182</span>&#160;                          <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="l03183"></a><span class="lineno"> 3183</span>&#160;</div><div class="line"><a name="l03196"></a><span class="lineno"> 3196</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03197"></a><span class="lineno"> 3197</span>&#160;<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="l03198"></a><span class="lineno"> 3198</span>&#160;                          <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="l03199"></a><span class="lineno"> 3199</span>&#160;</div><div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160;<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="l03215"></a><span class="lineno"> 3215</span>&#160;</div><div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>&#160;<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="l03225"></a><span class="lineno"> 3225</span>&#160;</div><div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">size_t</span></div><div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>&#160;<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="l03250"></a><span class="lineno"> 3250</span>&#160;</div><div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>&#160;<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="l03263"></a><span class="lineno"> 3263</span>&#160;</div><div class="line"><a name="l03273"></a><span class="lineno"> 3273</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>&#160;<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="l03275"></a><span class="lineno"> 3275</span>&#160;                               <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="l03276"></a><span class="lineno"> 3276</span>&#160;</div><div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">size_t</span></div><div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160;<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="l03295"></a><span class="lineno"> 3295</span>&#160;</div><div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>&#160;</div><div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>&#160;</div><div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>&#160;<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="l03342"></a><span class="lineno"> 3342</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160;<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="l03344"></a><span class="lineno"> 3344</span>&#160;                <span class="keyword">const</span> <span class="keywordtype">char</span> *readbuf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160;</div><div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160;</div><div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03364"></a><span class="lineno"> 3364</span>&#160;<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="l03365"></a><span class="lineno"> 3365</span>&#160;</div><div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>&#160;<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="l03382"></a><span class="lineno"> 3382</span>&#160;                       <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="l03383"></a><span class="lineno"> 3383</span>&#160;</div><div class="line"><a name="l03394"></a><span class="lineno"> 3394</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03395"></a><span class="lineno"> 3395</span>&#160;<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="l03396"></a><span class="lineno"> 3396</span>&#160;</div><div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03409"></a><span class="lineno"> 3409</span>&#160;<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="l03410"></a><span class="lineno"> 3410</span>&#160;                    <span class="keywordtype">size_t</span> addrlen);</div><div class="line"><a name="l03412"></a><span class="lineno"> 3412</span>&#160;</div><div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>&#160;</div><div class="line"><a name="l03431"></a><span class="lineno"> 3431</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03432"></a><span class="lineno"> 3432</span>&#160;<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="l03440"></a><span class="lineno"> 3440</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03441"></a><span class="lineno"> 3441</span>&#160;<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="l03447"></a><span class="lineno"> 3447</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03448"></a><span class="lineno"> 3448</span>&#160;<a class="code" href="group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0">lws_get_library_version</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l03449"></a><span class="lineno"> 3449</span>&#160;</div><div class="line"><a name="l03456"></a><span class="lineno"> 3456</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l03457"></a><span class="lineno"> 3457</span>&#160;<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="l03458"></a><span class="lineno"> 3458</span>&#160;</div><div class="line"><a name="l03470"></a><span class="lineno"> 3470</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03471"></a><span class="lineno"> 3471</span>&#160;<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="l03472"></a><span class="lineno"> 3472</span>&#160;              <span class="keyword">const</span> <span class="keywordtype">char</span> **path);</div><div class="line"><a name="l03473"></a><span class="lineno"> 3473</span>&#160;</div><div class="line"><a name="l03477"></a><span class="lineno"> 3477</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span></div><div class="line"><a name="l03478"></a><span class="lineno"> 3478</span>&#160;<a class="code" href="group__misc.html#ga33bf2635033710b25f931b57ed663e1e">lws_now_secs</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l03479"></a><span class="lineno"> 3479</span>&#160;</div><div class="line"><a name="l03489"></a><span class="lineno"> 3489</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_context * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03490"></a><span class="lineno"> 3490</span>&#160;<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="l03491"></a><span class="lineno"> 3491</span>&#160;</div><div class="line"><a name="l03501"></a><span class="lineno"> 3501</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03502"></a><span class="lineno"> 3502</span>&#160;<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="l03503"></a><span class="lineno"> 3503</span>&#160;</div><div class="line"><a name="l03511"></a><span class="lineno"> 3511</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03512"></a><span class="lineno"> 3512</span>&#160;<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="l03513"></a><span class="lineno"> 3513</span>&#160;</div><div class="line"><a name="l03520"></a><span class="lineno"> 3520</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03521"></a><span class="lineno"> 3521</span>&#160;<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="l03522"></a><span class="lineno"> 3522</span>&#160;</div><div class="line"><a name="l03523"></a><span class="lineno"> 3523</span>&#160;</div><div class="line"><a name="l03524"></a><span class="lineno"> 3524</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l03525"></a><span class="lineno"> 3525</span>&#160;<span class="comment"> * \deprecated DEPRECATED Note: this is not normally needed as a user api.</span></div><div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>&#160;<span class="comment"> * It&#39;s provided in case it is</span></div><div class="line"><a name="l03527"></a><span class="lineno"> 3527</span>&#160;<span class="comment"> * useful when integrating with other app poll loop service code.</span></div><div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03530"></a><span class="lineno"> 3530</span>&#160;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="l03531"></a><span class="lineno"> 3531</span>&#160;</div><div class="line"><a name="l03539"></a><span class="lineno"> 3539</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03540"></a><span class="lineno"> 3540</span>&#160;<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="l03542"></a><span class="lineno"> 3542</span>&#160;</div><div class="line"><a name="l03548"></a><span class="lineno"> 3548</span>&#160;</div><div class="line"><a name="l03555"></a><span class="lineno"> 3555</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03556"></a><span class="lineno"> 3556</span>&#160;<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="l03557"></a><span class="lineno"> 3557</span>&#160;</div><div class="line"><a name="l03562"></a><span class="lineno"> 3562</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03563"></a><span class="lineno"> 3563</span>&#160;<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="l03564"></a><span class="lineno"> 3564</span>&#160;</div><div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span></div><div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>&#160;<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="l03571"></a><span class="lineno"> 3571</span>&#160;</div><div class="line"><a name="l03588"></a><span class="lineno"> 3588</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03589"></a><span class="lineno"> 3589</span>&#160;<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="l03590"></a><span class="lineno"> 3590</span>&#160;</div><div class="line"><a name="l03600"></a><span class="lineno"> 3600</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03601"></a><span class="lineno"> 3601</span>&#160;<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="l03602"></a><span class="lineno"> 3602</span>&#160;</div><div class="line"><a name="l03611"></a><span class="lineno"> 3611</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03612"></a><span class="lineno"> 3612</span>&#160;<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="l03617"></a><span class="lineno"> 3617</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03618"></a><span class="lineno"> 3618</span>&#160;<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="l03620"></a><span class="lineno"> 3620</span>&#160;</div><div class="line"><a name="l03621"></a><span class="lineno"> 3621</span>&#160;</div><div class="line"><a name="l03627"></a><span class="lineno"> 3627</span>&#160;<span class="preprocessor">#ifdef LWS_SHA1_USE_OPENSSL_NAME</span></div><div class="line"><a name="l03629"></a><span class="lineno"> 3629</span>&#160;<span class="preprocessor">#define lws_SHA1 SHA1</span></div><div class="line"><a name="l03630"></a><span class="lineno"> 3630</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l03631"></a><span class="lineno"> 3631</span>&#160;</div><div class="line"><a name="l03640"></a><span class="lineno"> 3640</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03641"></a><span class="lineno"> 3641</span>&#160;<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="l03642"></a><span class="lineno"> 3642</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03643"></a><span class="lineno"> 3643</span>&#160;</div><div class="line"><a name="l03653"></a><span class="lineno"> 3653</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03654"></a><span class="lineno"> 3654</span>&#160;<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="l03664"></a><span class="lineno"> 3664</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03665"></a><span class="lineno"> 3665</span>&#160;<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="l03667"></a><span class="lineno"> 3667</span>&#160;</div><div class="line"><a name="l03668"></a><span class="lineno"> 3668</span>&#160;</div><div class="line"><a name="l03678"></a><span class="lineno"> 3678</span>&#160;<span class="preprocessor">#ifdef LWS_WITH_CGI</span></div><div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>&#160;<span class="keyword">enum</span> lws_enum_stdinouterr {</div><div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>&#160;        LWS_STDIN = 0,</div><div class="line"><a name="l03681"></a><span class="lineno"> 3681</span>&#160;        LWS_STDOUT = 1,</div><div class="line"><a name="l03682"></a><span class="lineno"> 3682</span>&#160;        LWS_STDERR = 2,</div><div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>&#160;};</div><div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>&#160;</div><div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>&#160;<span class="keyword">enum</span> lws_cgi_hdr_state {</div><div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>&#160;        LCHS_HEADER,</div><div class="line"><a name="l03687"></a><span class="lineno"> 3687</span>&#160;        LCHS_CR1,</div><div class="line"><a name="l03688"></a><span class="lineno"> 3688</span>&#160;        LCHS_LF1,</div><div class="line"><a name="l03689"></a><span class="lineno"> 3689</span>&#160;        LCHS_CR2,</div><div class="line"><a name="l03690"></a><span class="lineno"> 3690</span>&#160;        LCHS_LF2,</div><div class="line"><a name="l03691"></a><span class="lineno"> 3691</span>&#160;        LHCS_PAYLOAD,</div><div class="line"><a name="l03692"></a><span class="lineno"> 3692</span>&#160;        LCHS_SINGLE_0A,</div><div class="line"><a name="l03693"></a><span class="lineno"> 3693</span>&#160;};</div><div class="line"><a name="l03694"></a><span class="lineno"> 3694</span>&#160;</div><div class="line"><a name="l03695"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html"> 3695</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__cgi__args.html">lws_cgi_args</a> {</div><div class="line"><a name="l03696"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1"> 3696</a></span>&#160;        <span class="keyword">struct </span>lws **<a class="code" href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1">stdwsi</a>; </div><div class="line"><a name="l03697"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#adeee220b29aeacc34632c38e50f0f5a5"> 3697</a></span>&#160;        <span class="keyword">enum</span> lws_enum_stdinouterr ch; </div><div class="line"><a name="l03698"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7"> 3698</a></span>&#160;        <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="l03699"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a741c11b9aa05997ec45a3400d7fb7739"> 3699</a></span>&#160;        <span class="keyword">enum</span> lws_cgi_hdr_state hdr_state; </div><div class="line"><a name="l03700"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d"> 3700</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d">len</a>; </div><div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>&#160;};</div><div class="line"><a name="l03702"></a><span class="lineno"> 3702</span>&#160;</div><div class="line"><a name="l03703"></a><span class="lineno"> 3703</span>&#160;</div><div class="line"><a name="l03713"></a><span class="lineno"> 3713</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03714"></a><span class="lineno"> 3714</span>&#160;<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="l03715"></a><span class="lineno"> 3715</span>&#160;        <span class="keywordtype">int</span> script_uri_path_len, <span class="keywordtype">int</span> timeout_secs,</div><div class="line"><a name="l03716"></a><span class="lineno"> 3716</span>&#160;        <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="l03717"></a><span class="lineno"> 3717</span>&#160;</div><div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03724"></a><span class="lineno"> 3724</span>&#160;<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="l03725"></a><span class="lineno"> 3725</span>&#160;</div><div class="line"><a name="l03731"></a><span class="lineno"> 3731</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>&#160;<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="l03733"></a><span class="lineno"> 3733</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>&#160;</div><div class="line"><a name="l03736"></a><span class="lineno"> 3736</span>&#160;</div><div class="line"><a name="l03753"></a><span class="lineno"> 3753</span>&#160;</div><div class="line"><a name="l03759"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html"> 3759</a></span>&#160;<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="l03760"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32"> 3760</a></span>&#160;        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="l03761"></a><span class="lineno"> 3761</span>&#160;                                <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *filelen, <span class="keywordtype">int</span> flags);</div><div class="line"><a name="l03765"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b"> 3765</a></span>&#160;        int (*close)(<span class="keyword">struct </span>lws *wsi, lws_filefd_type fd);</div><div class="line"><a name="l03767"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869"> 3767</a></span>&#160;        <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="l03768"></a><span class="lineno"> 3768</span>&#160;                                  <span class="keywordtype">long</span> offset_from_cur_pos);</div><div class="line"><a name="l03770"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40"> 3770</a></span>&#160;        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="l03771"></a><span class="lineno"> 3771</span>&#160;                    <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="l03773"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793"> 3773</a></span>&#160;        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="l03774"></a><span class="lineno"> 3774</span>&#160;                     <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="l03777"></a><span class="lineno"> 3777</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l03778"></a><span class="lineno"> 3778</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l03779"></a><span class="lineno"> 3779</span>&#160;};</div><div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>&#160;</div><div class="line"><a name="l03786"></a><span class="lineno"> 3786</span>&#160;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="l03787"></a><span class="lineno"> 3787</span>&#160;<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="l03788"></a><span class="lineno"> 3788</span>&#160;</div><div class="line"><a name="l03797"></a><span class="lineno"> 3797</span>&#160;<span class="keyword">static</span> LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03798"></a><span class="lineno"> 3798</span>&#160;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="l03799"></a><span class="lineno"> 3799</span>&#160;                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *filelen, <span class="keywordtype">int</span> flags)</div><div class="line"><a name="l03800"></a><span class="lineno"> 3800</span>&#160;{</div><div class="line"><a name="l03801"></a><span class="lineno"> 3801</span>&#160;        <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))-&gt;<a class="code" href="structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32">open</a>(wsi, filename,</div><div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>&#160;                                                    filelen, flags);</div><div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>&#160;}</div><div class="line"><a name="l03804"></a><span class="lineno"> 3804</span>&#160;</div><div class="line"><a name="l03811"></a><span class="lineno"> 3811</span>&#160;<span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span></div><div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>&#160;lws_plat_file_close(<span class="keyword">struct</span> lws *wsi, lws_filefd_type fd)</div><div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>&#160;{</div><div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>&#160;        <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))-&gt;<a class="code" href="structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b">close</a>(wsi, fd);</div><div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>&#160;}</div><div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160;</div><div class="line"><a name="l03824"></a><span class="lineno"> 3824</span>&#160;<span class="keyword">static</span> LWS_INLINE <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span></div><div class="line"><a name="l03825"></a><span class="lineno"> 3825</span>&#160;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="l03826"></a><span class="lineno"> 3826</span>&#160;{</div><div class="line"><a name="l03827"></a><span class="lineno"> 3827</span>&#160;        <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))-&gt;<a class="code" href="structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869">seek_cur</a>(wsi, fd, offset);</div><div class="line"><a name="l03828"></a><span class="lineno"> 3828</span>&#160;}</div><div class="line"><a name="l03838"></a><span class="lineno"> 3838</span>&#160;<span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03839"></a><span class="lineno"> 3839</span>&#160;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="l03840"></a><span class="lineno"> 3840</span>&#160;                   <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="l03841"></a><span class="lineno"> 3841</span>&#160;{</div><div class="line"><a name="l03842"></a><span class="lineno"> 3842</span>&#160;        <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))-&gt;<a class="code" href="structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40">read</a>(wsi, fd, amount, buf,</div><div class="line"><a name="l03843"></a><span class="lineno"> 3843</span>&#160;                                                        len);</div><div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>&#160;}</div><div class="line"><a name="l03854"></a><span class="lineno"> 3854</span>&#160;<span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03855"></a><span class="lineno"> 3855</span>&#160;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="l03856"></a><span class="lineno"> 3856</span>&#160;                    <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="l03857"></a><span class="lineno"> 3857</span>&#160;{</div><div class="line"><a name="l03858"></a><span class="lineno"> 3858</span>&#160;        <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))-&gt;<a class="code" href="structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793">write</a>(wsi, fd, amount, buf,</div><div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>&#160;                                                         len);</div><div class="line"><a name="l03860"></a><span class="lineno"> 3860</span>&#160;}</div><div class="line"><a name="l03862"></a><span class="lineno"> 3862</span>&#160;</div><div class="line"><a name="l03894"></a><span class="lineno"> 3894</span>&#160;<span class="preprocessor">#ifdef LWS_WITH_SMTP</span></div><div class="line"><a name="l03895"></a><span class="lineno"> 3895</span>&#160;</div><div class="line"><a name="l03897"></a><span class="lineno"><a class="line" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0"> 3897</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">lwsgs_smtp_states</a> {</div><div class="line"><a name="l03898"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c"> 3898</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l03899"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933"> 3899</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l03900"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"> 3900</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l03901"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad"> 3901</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l03902"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab"> 3902</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l03903"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83"> 3903</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l03904"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14"> 3904</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l03905"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69"> 3905</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l03906"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5"> 3906</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>&#160;};</div><div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>&#160;</div><div class="line"><a name="l03910"></a><span class="lineno"><a class="line" href="structlws__email.html"> 3910</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__email.html">lws_email</a> {</div><div class="line"><a name="l03911"></a><span class="lineno"><a class="line" href="structlws__email.html#add1341456045382c183f4c763bdea6bc"> 3911</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__email.html#add1341456045382c183f4c763bdea6bc">data</a>;</div><div class="line"><a name="l03913"></a><span class="lineno"><a class="line" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168"> 3913</a></span>&#160;        uv_loop_t *<a class="code" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168">loop</a>;</div><div class="line"><a name="l03916"></a><span class="lineno"><a class="line" href="structlws__email.html#a472ae23fc9fca6599e5c512bc21458d2"> 3916</a></span>&#160;        <span class="keywordtype">char</span> email_smtp_ip[32]; </div><div class="line"><a name="l03917"></a><span class="lineno"><a class="line" href="structlws__email.html#a939e5d7ee0339a16de73bde71ab4d4d9"> 3917</a></span>&#160;        <span class="keywordtype">char</span> email_helo[32];    </div><div class="line"><a name="l03918"></a><span class="lineno"><a class="line" href="structlws__email.html#af7f0ae934347d81071f63a963301f9e2"> 3918</a></span>&#160;        <span class="keywordtype">char</span> email_from[100];   </div><div class="line"><a name="l03919"></a><span class="lineno"><a class="line" href="structlws__email.html#a6453a8b92b3de6d2c2101af3edce685e"> 3919</a></span>&#160;        <span class="keywordtype">char</span> email_to[100];     </div><div class="line"><a name="l03921"></a><span class="lineno"><a class="line" href="structlws__email.html#a7bbc1964889c984b3da723c86a210e05"> 3921</a></span>&#160;        <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="l03924"></a><span class="lineno"> 3924</span>&#160;        <span class="comment">/* Fill all the callbacks before init */</span></div><div class="line"><a name="l03925"></a><span class="lineno"> 3925</span>&#160;</div><div class="line"><a name="l03926"></a><span class="lineno"><a class="line" href="structlws__email.html#ad8dc60353ee246d84dd59ec0591e9719"> 3926</a></span>&#160;        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="l03931"></a><span class="lineno"><a class="line" href="structlws__email.html#a39ef6263d58eb40cca417c8697b227d8"> 3931</a></span>&#160;        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="l03936"></a><span class="lineno"><a class="line" href="structlws__email.html#a2aff78c8e04db243052aa91b4d87e987"> 3936</a></span>&#160;        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="l03942"></a><span class="lineno"> 3942</span>&#160;        <span class="comment">/* private things */</span></div><div class="line"><a name="l03943"></a><span class="lineno"><a class="line" href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be"> 3943</a></span>&#160;        uv_timer_t <a class="code" href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be">timeout_email</a>; </div><div class="line"><a name="l03944"></a><span class="lineno"><a class="line" href="structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3"> 3944</a></span>&#160;        <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="l03945"></a><span class="lineno"><a class="line" href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3"> 3945</a></span>&#160;        uv_connect_t <a class="code" href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3">email_connect_req</a>; </div><div class="line"><a name="l03946"></a><span class="lineno"><a class="line" href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e"> 3946</a></span>&#160;        uv_tcp_t <a class="code" href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e">email_client</a>; </div><div class="line"><a name="l03947"></a><span class="lineno"><a class="line" href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1"> 3947</a></span>&#160;        time_t <a class="code" href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1">email_connect_started</a>; </div><div class="line"><a name="l03948"></a><span class="lineno"><a class="line" href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82"> 3948</a></span>&#160;        <span class="keywordtype">char</span> <a class="code" href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82">email_buf</a>[256]; </div><div class="line"><a name="l03949"></a><span class="lineno"><a class="line" href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed"> 3949</a></span>&#160;        <span class="keywordtype">char</span> *<a class="code" href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed">content</a>; </div><div class="line"><a name="l03950"></a><span class="lineno"> 3950</span>&#160;};</div><div class="line"><a name="l03951"></a><span class="lineno"> 3951</span>&#160;</div><div class="line"><a name="l03961"></a><span class="lineno"> 3961</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03962"></a><span class="lineno"> 3962</span>&#160;<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="l03963"></a><span class="lineno"> 3963</span>&#160;</div><div class="line"><a name="l03972"></a><span class="lineno"> 3972</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03973"></a><span class="lineno"> 3973</span>&#160;<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="l03981"></a><span class="lineno"> 3981</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03982"></a><span class="lineno"> 3982</span>&#160;<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="l03983"></a><span class="lineno"> 3983</span>&#160;</div><div class="line"><a name="l03984"></a><span class="lineno"> 3984</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03985"></a><span class="lineno"> 3985</span>&#160;</div><div class="line"><a name="l03986"></a><span class="lineno"> 3986</span>&#160;</div><div class="line"><a name="l03987"></a><span class="lineno"> 3987</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l03988"></a><span class="lineno"> 3988</span>&#160;}</div><div class="line"><a name="l03989"></a><span class="lineno"> 3989</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03990"></a><span class="lineno"> 3990</span>&#160;</div><div class="line"><a name="l03991"></a><span class="lineno"> 3991</span>&#160;<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>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<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>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Copyright (C) 2010-2016 Andy Green &lt;andy@warmcat.com&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment"> *  version 2.1 of the License.</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment"> *  Lesser General Public License for more details.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment"> *  MA  02110-1301  USA</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#ifndef LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#define LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;cstdarg&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#ifdef MBED_OPERATORS</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;mbed-drivers/mbed.h&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;sal-iface-eth/EthernetInterface.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;sockets/TCPListener.h&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;sal-stack-lwip/lwipv4_init.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">namespace </span>{</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<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>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">struct </span>sockaddr_in;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">struct </span>lws;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classlws__conn.html">   44</a></span>&#160;<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>&#160;        <span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <a class="code" href="classlws__conn.html">lws_conn</a>():</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                ts(NULL),</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                wsi(NULL),</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                writeable(1),</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                awaiting_on_writeable(0)</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        }</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <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>&#160;        <span class="keywordtype">int</span> actual_onRX(Socket *s);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="keywordtype">void</span> onRX(Socket *s);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <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>&#160;        <span class="keywordtype">void</span> onDisconnect(TCPStream *s);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        <span class="keywordtype">void</span> onSent(Socket *s, uint16_t len);</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <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>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        TCPStream *ts;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keyword">struct </span>lws *wsi;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <span class="keywordtype">char</span> writeable;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keywordtype">char</span> awaiting_on_writeable;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;};</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classlws__conn__listener.html">   72</a></span>&#160;<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>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <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>&#160;                srv(SOCKET_STACK_LWIP_IPV4)</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        {</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                srv.setOnError(TCPStream::ErrorHandler_t(<span class="keyword">this</span>,</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                                &amp;<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>&#160;        }</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <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>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keywordtype">void</span> onRX(Socket *s); </div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <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>&#160;        <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>&#160;        <span class="keywordtype">void</span> onDisconnect(TCPStream *s); </div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        TCPListener srv;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;};</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="preprocessor">#ifdef MBED_OPERATORS</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keyword">struct </span>sockaddr_in;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="preprocessor">#define LWS_POSIX 0</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="preprocessor">#define LWS_POSIX 1</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor">#include &quot;lws_config.h&quot;</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">#if defined(WIN32) || defined(_WIN32)</span></div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#ifndef WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">#define WIN32_LEAN_AND_MEAN</span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="preprocessor">#include &lt;winsock2.h&gt;</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#include &lt;ws2tcpip.h&gt;</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor">#include &lt;basetsd.h&gt;</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="preprocessor">#ifndef _WIN32_WCE</span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="preprocessor">#include &lt;fcntl.h&gt;</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor">#define _O_RDONLY       0x0000</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">#define O_RDONLY        _O_RDONLY</span></div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment">// Visual studio older than 2015 and WIN_CE has only _stricmp</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor">#if (defined(_MSC_VER) &amp;&amp; _MSC_VER &lt; 1900) || defined(_WIN32_WCE)</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="preprocessor">#define strcasecmp _stricmp</span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="preprocessor">#define strcasecmp stricmp</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">#define getdtablesize() 30000</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor">#define LWS_INLINE __inline</span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor">#define LWS_VISIBLE</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">#define LWS_WARN_DEPRECATED</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">#ifdef LWS_DLL</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">#ifdef LWS_INTERNAL</span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="preprocessor">#define LWS_EXTERN extern __declspec(dllexport)</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="preprocessor">#define LWS_EXTERN extern __declspec(dllimport)</span></div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="preprocessor">#define LWS_EXTERN</span></div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="preprocessor">#define LWS_INVALID_FILE INVALID_HANDLE_VALUE</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="preprocessor">#define LWS_O_RDONLY _O_RDONLY</span></div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="preprocessor">#if !defined(_MSC_VER) || _MSC_VER &lt; 1900 </span><span class="comment">/* Visual Studio 2015 already defines this in &lt;stdio.h&gt; */</span><span class="preprocessor"></span></div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="preprocessor">#define snprintf _snprintf</span></div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="preprocessor">#ifndef __func__</span></div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="preprocessor">#define __func__ __FUNCTION__</span></div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#else </span><span class="comment">/* NOT WIN32 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="preprocessor">#if defined(__NetBSD__) || defined(__FreeBSD__)</span></div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="preprocessor">#include &lt;netinet/in.h&gt;</span></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor">#define LWS_INLINE inline</span></div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="preprocessor">#define LWS_O_RDONLY O_RDONLY</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor">#ifndef MBED_OPERATORS</span></div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">#include &lt;poll.h&gt;</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor">#include &lt;netdb.h&gt;</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor">#define LWS_INVALID_FILE -1</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">#define getdtablesize() (20)</span></div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="preprocessor">#define LWS_INVALID_FILE NULL</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="preprocessor">#if defined(__GNUC__)</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="comment">/* warn_unused_result attribute only supported by GCC 3.4 or later */</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="preprocessor">#if __GNUC__ &gt;= 4 || (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ &gt;= 4)</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor">#define LWS_WARN_UNUSED_RESULT __attribute__((warn_unused_result))</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">#define LWS_VISIBLE __attribute__((visibility(&quot;default&quot;)))</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor">#define LWS_WARN_DEPRECATED __attribute__ ((deprecated))</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="preprocessor">#define LWS_VISIBLE</span></div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor">#define LWS_WARN_UNUSED_RESULT</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="preprocessor">#define LWS_WARN_DEPRECATED</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="preprocessor">#if defined(__ANDROID__)</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">#define getdtablesize() sysconf(_SC_OPEN_MAX)</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor">#ifdef LWS_USE_LIBEV</span></div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="preprocessor">#include &lt;ev.h&gt;</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBEV */</span><span class="preprocessor"></span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="preprocessor">#ifdef LWS_USE_LIBUV</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="preprocessor">#include &lt;uv.h&gt;</span></div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBUV */</span><span class="preprocessor"></span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="preprocessor">#ifndef LWS_EXTERN</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="preprocessor">#define LWS_EXTERN extern</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="preprocessor">#ifdef _WIN32</span></div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="preprocessor">#define random rand</span></div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="preprocessor">#include &lt;sys/time.h&gt;</span></div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="preprocessor">#ifdef LWS_OPENSSL_SUPPORT</span></div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="preprocessor">#ifdef USE_WOLFSSL</span></div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="preprocessor">#ifdef USE_OLD_CYASSL</span></div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="preprocessor">#include &lt;cyassl/openssl/ssl.h&gt;</span></div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="preprocessor">#include &lt;cyassl/error-ssl.h&gt;</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="preprocessor">#include &lt;wolfssl/openssl/ssl.h&gt;</span></div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="preprocessor">#include &lt;wolfssl/error-ssl.h&gt;</span></div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* not USE_OLD_CYASSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="preprocessor">#if defined(LWS_USE_POLARSSL)</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="preprocessor">#include &lt;polarssl/ssl.h&gt;</span></div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html">  234</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__polarssl__context.html">lws_polarssl_context</a> {</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af">  235</a></span>&#160;        x509_crt <a class="code" href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af">ca</a>; </div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27">  236</a></span>&#160;        x509_crt <a class="code" href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27">certificate</a>; </div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270">  237</a></span>&#160;        rsa_context <a class="code" href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270">key</a>; </div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;};</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<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="l00240"></a><span class="lineno">  240</span>&#160;<span class="keyword">typedef</span> ssl_context SSL;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="preprocessor">#if defined(LWS_USE_MBEDTLS)</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="preprocessor">#include &lt;mbedtls/ssl.h&gt;</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="preprocessor">#include &lt;openssl/ssl.h&gt;</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="preprocessor">#include &lt;openssl/err.h&gt;</span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* not USE_MBEDTLS */</span><span class="preprocessor"></span></div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* not USE_POLARSSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* not USE_WOLFSSL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="preprocessor">#define CONTEXT_PORT_NO_LISTEN -1</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="keyword">enum</span> lws_log_levels {</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        LLL_ERR = 1 &lt;&lt; 0,</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        LLL_WARN = 1 &lt;&lt; 1,</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        LLL_NOTICE = 1 &lt;&lt; 2,</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        LLL_INFO = 1 &lt;&lt; 3,</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        LLL_DEBUG = 1 &lt;&lt; 4,</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        LLL_PARSER = 1 &lt;&lt; 5,</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        LLL_HEADER = 1 &lt;&lt; 6,</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        LLL_EXT = 1 &lt;&lt; 7,</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        LLL_CLIENT = 1 &lt;&lt; 8,</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        LLL_LATENCY = 1 &lt;&lt; 9,</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        LLL_COUNT = 10 <span class="comment">/* set to count of valid flags */</span></div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;};</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;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="l00283"></a><span class="lineno">  283</span>&#160;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="l00293"></a><span class="lineno">  293</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<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="l00295"></a><span class="lineno">  295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="comment">/* notice, warn and log are always compiled in */</span></div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="preprocessor">#define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__)</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;<span class="preprocessor">#define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__)</span></div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="preprocessor">#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__)</span></div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="comment"> *  weaker logging can be deselected at configure time using --disable-debug</span></div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="comment"> *  that gets rid of the overhead of checking while keeping _warn and _err</span></div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="comment"> *  active</span></div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="preprocessor">#ifdef _DEBUG</span></div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="preprocessor">#define lwsl_info(...) _lws_log(LLL_INFO, __VA_ARGS__)</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="preprocessor">#define lwsl_debug(...) _lws_log(LLL_DEBUG, __VA_ARGS__)</span></div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="preprocessor">#define lwsl_parser(...) _lws_log(LLL_PARSER, __VA_ARGS__)</span></div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="preprocessor">#define lwsl_header(...)  _lws_log(LLL_HEADER, __VA_ARGS__)</span></div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="preprocessor">#define lwsl_ext(...)  _lws_log(LLL_EXT, __VA_ARGS__)</span></div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="preprocessor">#define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__)</span></div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="preprocessor">#define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__)</span></div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;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="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor">#else </span><span class="comment">/* no debug */</span><span class="preprocessor"></span></div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="preprocessor">#define lwsl_info(...) {}</span></div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="preprocessor">#define lwsl_debug(...) {}</span></div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="preprocessor">#define lwsl_parser(...) {}</span></div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="preprocessor">#define lwsl_header(...) {}</span></div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="preprocessor">#define lwsl_ext(...) {}</span></div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="preprocessor">#define lwsl_client(...) {}</span></div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="preprocessor">#define lwsl_latency(...) {}</span></div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="preprocessor">#define lwsl_hexdump(a, b)</span></div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<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="l00347"></a><span class="lineno">  347</span>&#160;                  <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="l00348"></a><span class="lineno">  348</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<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="l00360"></a><span class="lineno">  360</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="preprocessor">#ifndef lws_container_of</span></div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="preprocessor">#define lws_container_of(P,T,M) ((T *)((char *)(P) - offsetof(T, M)))</span></div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="keyword">struct </span>lws;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="preprocessor">#ifndef ARRAY_SIZE</span></div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="preprocessor">#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))</span></div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="comment">/* api change list for user code to test against */</span></div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="preprocessor">#define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_ARG</span></div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="comment">/* the struct lws_protocols has the id field present */</span></div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="preprocessor">#define LWS_FEATURE_PROTOCOLS_HAS_ID_FIELD</span></div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="comment">/* you can call lws_get_peer_write_allowance */</span></div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="preprocessor">#define LWS_FEATURE_PROTOCOLS_HAS_PEER_WRITE_ALLOWANCE</span></div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="comment">/* extra parameter introduced in 917f43ab821 */</span></div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="preprocessor">#define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_LEN</span></div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="comment">/* File operations stuff exists */</span></div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="preprocessor">#define LWS_FEATURE_FOPS</span></div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="preprocessor">#if defined(_WIN32)</span></div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="keyword">typedef</span> SOCKET lws_sockfd_type;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="keyword">typedef</span> HANDLE lws_filefd_type;</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="preprocessor">#define lws_sockfd_valid(sfd) (!!sfd)</span></div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="structlws__pollfd.html">  397</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__pollfd.html">lws_pollfd</a> {</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be">  398</a></span>&#160;        lws_sockfd_type <a class="code" href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be">fd</a>; </div><div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9">  399</a></span>&#160;        SHORT <a class="code" href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9">events</a>; </div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932">  400</a></span>&#160;        SHORT <a class="code" href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932">revents</a>; </div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;};</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="preprocessor">#define LWS_POLLHUP (FD_CLOSE)</span></div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="preprocessor">#define LWS_POLLIN (FD_READ | FD_ACCEPT)</span></div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="preprocessor">#define LWS_POLLOUT (FD_WRITE)</span></div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;<span class="preprocessor">#if defined(MBED_OPERATORS)</span></div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="comment">/* it&#39;s a class lws_conn * */</span></div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> * lws_sockfd_type;</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> * lws_filefd_type;</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="preprocessor">#define lws_sockfd_valid(sfd) (!!sfd)</span></div><div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="structpollfd.html">  412</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structpollfd.html">pollfd</a> {</div><div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="structpollfd.html#af084f089bdece61d177f85782d6673d0">  413</a></span>&#160;        lws_sockfd_type <a class="code" href="structpollfd.html#af084f089bdece61d177f85782d6673d0">fd</a>; </div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef">  414</a></span>&#160;        <span class="keywordtype">short</span> <a class="code" href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef">events</a>; </div><div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2">  415</a></span>&#160;        <span class="keywordtype">short</span> <a class="code" href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2">revents</a>; </div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;};</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="preprocessor">#define POLLIN          0x0001</span></div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="preprocessor">#define POLLPRI         0x0002</span></div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="preprocessor">#define POLLOUT         0x0004</span></div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="preprocessor">#define POLLERR         0x0008</span></div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="preprocessor">#define POLLHUP         0x0010</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;<span class="preprocessor">#define POLLNVAL        0x0020</span></div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="keyword">struct </span>lws;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="keywordtype">void</span> * mbed3_create_tcp_stream_socket(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<span class="keywordtype">void</span> mbed3_delete_tcp_stream_socket(<span class="keywordtype">void</span> *sockfd);</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<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="l00429"></a><span class="lineno">  429</span>&#160;<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="l00430"></a><span class="lineno">  430</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> lws_sockfd_type;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> lws_filefd_type;</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<span class="preprocessor">#define lws_sockfd_valid(sfd) (sfd &gt;= 0)</span></div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="preprocessor">#define lws_pollfd pollfd</span></div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="preprocessor">#define LWS_POLLHUP (POLLHUP|POLLERR)</span></div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;<span class="preprocessor">#define LWS_POLLIN (POLLIN)</span></div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="preprocessor">#define LWS_POLLOUT (POLLOUT)</span></div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="structlws__pollargs.html">  444</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__pollargs.html">lws_pollargs</a> {</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81">  445</a></span>&#160;        lws_sockfd_type <a class="code" href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81">fd</a>;     </div><div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6">  446</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6">events</a>;             </div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8">  447</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8">prev_events</a>;        </div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;};</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__tokens.html">lws_tokens</a>;</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__token__limits.html">lws_token_limits</a>;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;<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="l00464"></a><span class="lineno">  464</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">  467</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a> {</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        LWS_CLOSE_STATUS_NOSTATUS                               =    0,</div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">  469</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a>                                 = 1000,</div><div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">  472</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a>                              = 1001,</div><div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">  475</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a>                           = 1002,</div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">  478</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a>                    = 1003,</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">  483</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a>                               = 1004,</div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">  485</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a>                              = 1005,</div><div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">  490</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a>                         = 1006,</div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">  496</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a>                        = 1007,</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">  501</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a>                       = 1008,</div><div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">  507</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a>                      = 1009,</div><div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">  511</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a>                     = 1010,</div><div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">  519</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a>                   = 1011,</div><div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">  523</a></span>&#160;        <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a>                            = 1015,</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY               = 9999,</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;};</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;<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="l00549"></a><span class="lineno">  549</span>&#160;                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="keyword">struct </span>lws;</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;<span class="keyword">struct </span>lws_context;</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<span class="comment">/* needed even with extensions disabled for create context */</span></div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a>;</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<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="l00574"></a><span class="lineno">  574</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">  577</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">lws_callback_reasons</a> {</div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">  578</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">LWS_CALLBACK_ESTABLISHED</a>                                =  0,</div><div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">  582</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">LWS_CALLBACK_CLIENT_CONNECTION_ERROR</a>                    =  1,</div><div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">  626</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH</a>                =  2,</div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">  633</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">LWS_CALLBACK_CLIENT_ESTABLISHED</a>                         =  3,</div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">  636</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">LWS_CALLBACK_CLOSED</a>                                     =  4,</div><div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">  638</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">LWS_CALLBACK_CLOSED_HTTP</a>                                =  5,</div><div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">  640</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">LWS_CALLBACK_RECEIVE</a>                                    =  6,</div><div class="line"><a name="l00644"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">  644</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">LWS_CALLBACK_RECEIVE_PONG</a>                               =  7,</div><div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">  646</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">LWS_CALLBACK_CLIENT_RECEIVE</a>                             =  8,</div><div class="line"><a name="l00649"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">  649</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">LWS_CALLBACK_CLIENT_RECEIVE_PONG</a>                        =  9,</div><div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">  651</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">LWS_CALLBACK_CLIENT_WRITEABLE</a>                           = 10,</div><div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">  659</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">LWS_CALLBACK_SERVER_WRITEABLE</a>                           = 11,</div><div class="line"><a name="l00661"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">  661</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">LWS_CALLBACK_HTTP</a>                                       = 12,</div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">  675</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">LWS_CALLBACK_HTTP_BODY</a>                                  = 13,</div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">  678</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">LWS_CALLBACK_HTTP_BODY_COMPLETION</a>                       = 14,</div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">  680</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">LWS_CALLBACK_HTTP_FILE_COMPLETION</a>                       = 15,</div><div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">  682</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">LWS_CALLBACK_HTTP_WRITEABLE</a>                             = 16,</div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">  684</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">LWS_CALLBACK_FILTER_NETWORK_CONNECTION</a>                  = 17,</div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">  695</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">LWS_CALLBACK_FILTER_HTTP_CONNECTION</a>                     = 18,</div><div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">  707</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED</a>             = 19,</div><div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">  715</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION</a>                 = 20,</div><div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">  727</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS</a>     = 21,</div><div class="line"><a name="l00734"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">  734</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS</a>     = 22,</div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">  740</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION</a>   = 23,</div><div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">  758</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER</a>             = 24,</div><div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">  782</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">LWS_CALLBACK_CONFIRM_EXTENSION_OKAY</a>                     = 25,</div><div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">  793</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED</a>         = 26,</div><div class="line"><a name="l00802"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">  802</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">LWS_CALLBACK_PROTOCOL_INIT</a>                              = 27,</div><div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">  805</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">LWS_CALLBACK_PROTOCOL_DESTROY</a>                           = 28,</div><div class="line"><a name="l00810"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">  810</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">LWS_CALLBACK_WSI_CREATE</a>                                 = 29,</div><div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">  812</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">LWS_CALLBACK_WSI_DESTROY</a>                                = 30,</div><div class="line"><a name="l00814"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">  814</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">LWS_CALLBACK_GET_THREAD_ID</a>                              = 31,</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        <span class="comment">/* external poll() management support */</span></div><div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">  820</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">LWS_CALLBACK_ADD_POLL_FD</a>                                = 32,</div><div class="line"><a name="l00836"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">  836</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">LWS_CALLBACK_DEL_POLL_FD</a>                                = 33,</div><div class="line"><a name="l00842"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">  842</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">LWS_CALLBACK_CHANGE_MODE_POLL_FD</a>                        = 34,</div><div class="line"><a name="l00850"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">  850</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">LWS_CALLBACK_LOCK_POLL</a>                                  = 35,</div><div class="line"><a name="l00862"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">  862</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">LWS_CALLBACK_UNLOCK_POLL</a>                                = 36,</div><div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">  865</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY</a>       = 37,</div><div class="line"><a name="l00873"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">  873</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">LWS_CALLBACK_WS_PEER_INITIATED_CLOSE</a>                    = 38,</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;        LWS_CALLBACK_WS_EXT_DEFAULTS                            = 39,</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;        LWS_CALLBACK_CGI                                        = 40,</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;        LWS_CALLBACK_CGI_TERMINATED                             = 41,</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;        LWS_CALLBACK_CGI_STDIN_DATA                             = 42,</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;        LWS_CALLBACK_CGI_STDIN_COMPLETED                        = 43,</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;        LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP                    = 44,</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;        LWS_CALLBACK_CLOSED_CLIENT_HTTP                         = 45,</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;        LWS_CALLBACK_RECEIVE_CLIENT_HTTP                        = 46,</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;        LWS_CALLBACK_COMPLETED_CLIENT_HTTP                      = 47,</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;        LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ                   = 48,</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;        LWS_CALLBACK_HTTP_BIND_PROTOCOL                         = 49,</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;        LWS_CALLBACK_HTTP_DROP_PROTOCOL                         = 50,</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;        LWS_CALLBACK_CHECK_ACCESS_RIGHTS                        = 51,</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        LWS_CALLBACK_PROCESS_HTML                               = 52,</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;        LWS_CALLBACK_ADD_HEADERS                                = 53,</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;        LWS_CALLBACK_SESSION_INFO                               = 54,</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;        LWS_CALLBACK_GS_EVENT                                   = 55,</div><div class="line"><a name="l00918"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">  918</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">LWS_CALLBACK_HTTP_PMO</a>                                   = 56,</div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;</div><div class="line"><a name="l00926"></a><span class="lineno"><a class="line" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">  926</a></span>&#160;        <a class="code" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">LWS_CALLBACK_USER</a> = 1000,</div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;};</div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;</div><div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00948"></a><span class="lineno"><a class="line" href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f">  948</a></span>&#160;<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="l00949"></a><span class="lineno">  949</span>&#160;                    <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="l00951"></a><span class="lineno">  951</span>&#160;</div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;<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="l00965"></a><span class="lineno">  965</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;<span class="keyword">enum</span> lws_extension_callback_reasons {</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;        LWS_EXT_CB_SERVER_CONTEXT_CONSTRUCT             =  0,</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;        LWS_EXT_CB_CLIENT_CONTEXT_CONSTRUCT             =  1,</div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;        LWS_EXT_CB_SERVER_CONTEXT_DESTRUCT              =  2,</div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;        LWS_EXT_CB_CLIENT_CONTEXT_DESTRUCT              =  3,</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;        LWS_EXT_CB_CONSTRUCT                            =  4,</div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;        LWS_EXT_CB_CLIENT_CONSTRUCT                     =  5,</div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;        LWS_EXT_CB_CHECK_OK_TO_REALLY_CLOSE             =  6,</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;        LWS_EXT_CB_CHECK_OK_TO_PROPOSE_EXTENSION        =  7,</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;        LWS_EXT_CB_DESTROY                              =  8,</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;        LWS_EXT_CB_DESTROY_ANY_WSI_CLOSING              =  9,</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;        LWS_EXT_CB_ANY_WSI_ESTABLISHED                  = 10,</div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;        LWS_EXT_CB_PACKET_RX_PREPARSE                   = 11,</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;        LWS_EXT_CB_PACKET_TX_PRESEND                    = 12,</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;        LWS_EXT_CB_PACKET_TX_DO_SEND                    = 13,</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;        LWS_EXT_CB_HANDSHAKE_REPLY_TX                   = 14,</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;        LWS_EXT_CB_FLUSH_PENDING_TX                     = 15,</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;        LWS_EXT_CB_EXTENDED_PAYLOAD_RX                  = 16,</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;        LWS_EXT_CB_CAN_PROXY_CLIENT_CONNECTION          = 17,</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;        LWS_EXT_CB_1HZ                                  = 18,</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;        LWS_EXT_CB_REQUEST_ON_WRITEABLE                 = 19,</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        LWS_EXT_CB_IS_WRITEABLE                         = 20,</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;        LWS_EXT_CB_PAYLOAD_TX                           = 21,</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;        LWS_EXT_CB_PAYLOAD_RX                           = 22,</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;        LWS_EXT_CB_OPTION_DEFAULT                       = 23,</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;        LWS_EXT_CB_OPTION_SET                           = 24,</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;        LWS_EXT_CB_OPTION_CONFIRM                       = 25,</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;        LWS_EXT_CB_NAMED_OPTION_SET                     = 26,</div><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;</div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;};</div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;</div><div class="line"><a name="l01000"></a><span class="lineno"><a class="line" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e"> 1000</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">lws_ext_options_types</a> {</div><div class="line"><a name="l01001"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c"> 1001</a></span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a>, </div><div class="line"><a name="l01002"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e"> 1002</a></span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a>,  </div><div class="line"><a name="l01003"></a><span class="lineno"><a class="line" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880"> 1003</a></span>&#160;        <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a> </div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;};</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;</div><div class="line"><a name="l01013"></a><span class="lineno"><a class="line" href="structlws__ext__options.html"> 1013</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__ext__options.html">lws_ext_options</a> {</div><div class="line"><a name="l01014"></a><span class="lineno"><a class="line" href="structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e"> 1014</a></span>&#160;        <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="l01015"></a><span class="lineno"><a class="line" href="structlws__ext__options.html#a7c4dbd62dbeba63a9d50d2306bd1cc61"> 1015</a></span>&#160;        <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="l01017"></a><span class="lineno"> 1017</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;};</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;</div><div class="line"><a name="l01022"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html"> 1022</a></span>&#160;<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="l01023"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9"> 1023</a></span>&#160;        <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="l01024"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f"> 1024</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f">option_index</a>; </div><div class="line"><a name="l01025"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1"> 1025</a></span>&#160;        <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="l01026"></a><span class="lineno"><a class="line" href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5"> 1026</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5">len</a>; </div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;};</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01090"></a><span class="lineno"><a class="line" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0"> 1090</a></span>&#160;<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="l01091"></a><span class="lineno"> 1091</span>&#160;                              <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="l01092"></a><span class="lineno"> 1092</span>&#160;                              <span class="keyword">enum</span> lws_extension_callback_reasons reason,</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;                              <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="l01094"></a><span class="lineno"> 1094</span>&#160;</div><div class="line"><a name="l01096"></a><span class="lineno"><a class="line" href="structlws__extension.html"> 1096</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__extension.html">lws_extension</a> {</div><div class="line"><a name="l01097"></a><span class="lineno"><a class="line" href="structlws__extension.html#a1e5018c883d85176f5c2152176843f9e"> 1097</a></span>&#160;        <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="l01098"></a><span class="lineno"><a class="line" href="structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af"> 1098</a></span>&#160;        <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="l01099"></a><span class="lineno"><a class="line" href="structlws__extension.html#a36b06c213aedb02bf9a402651751855b"> 1099</a></span>&#160;        <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="l01101"></a><span class="lineno"> 1101</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;};</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<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="l01115"></a><span class="lineno"> 1115</span>&#160;                         <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="l01116"></a><span class="lineno"> 1116</span>&#160;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="preprocessor">#ifndef LWS_NO_EXTENSIONS</span></div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="comment">/* lws_get_internal_extensions() - DEPRECATED</span></div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="comment"> * \Deprecated There is no longer a set internal extensions table.  The table is provided</span></div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;<span class="comment"> * by user code along with application-specific settings.  See the test</span></div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="comment"> * client and server for how to do.</span></div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<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="l01125"></a><span class="lineno"> 1125</span>&#160;lws_get_internal_extensions() { <span class="keywordflow">return</span> NULL; }</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;<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="l01139"></a><span class="lineno"> 1139</span>&#160;                       <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="l01140"></a><span class="lineno"> 1140</span>&#160;                       <span class="keyword">const</span> <span class="keywordtype">char</span> *o, <span class="keywordtype">int</span> len);</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;LWS_EXTERN</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;<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="l01157"></a><span class="lineno"> 1157</span>&#160;        <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="l01158"></a><span class="lineno"> 1158</span>&#160;        <span class="keyword">struct</span> lws *wsi, <span class="keyword">enum</span> lws_extension_callback_reasons reason,</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;        <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="l01160"></a><span class="lineno"> 1160</span>&#160;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="comment"> * The internal exts are part of the public abi</span></div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;<span class="comment"> * If we add more extensions, publish the callback here  ------v</span></div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;</div><div class="line"><a name="l01186"></a><span class="lineno"><a class="line" href="structlws__protocols.html"> 1186</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__protocols.html">lws_protocols</a> {</div><div class="line"><a name="l01187"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624"> 1187</a></span>&#160;        <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="l01190"></a><span class="lineno"><a class="line" href="structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d"> 1190</a></span>&#160;        <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="l01194"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea"> 1194</a></span>&#160;        <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="l01199"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5"> 1199</a></span>&#160;        <span class="keywordtype">size_t</span> <a class="code" href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5">rx_buffer_size</a>;</div><div class="line"><a name="l01208"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac"> 1208</a></span>&#160;        <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="l01215"></a><span class="lineno"><a class="line" href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e"> 1215</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e">user</a>; </div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;};</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;<span class="keyword">struct </span>lws_vhost;</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;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="l01233"></a><span class="lineno"> 1233</span>&#160;<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="l01234"></a><span class="lineno"> 1234</span>&#160;</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;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="l01245"></a><span class="lineno"> 1245</span>&#160;<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="l01246"></a><span class="lineno"> 1246</span>&#160;</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;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="l01249"></a><span class="lineno"> 1249</span>&#160;<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="l01250"></a><span class="lineno"> 1250</span>&#160;</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;<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="l01263"></a><span class="lineno"> 1263</span>&#160;                            <span class="keywordtype">int</span> size);</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;<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="l01276"></a><span class="lineno"> 1276</span>&#160;</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;<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="l01287"></a><span class="lineno"> 1287</span>&#160;</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;<span class="preprocessor">#ifdef LWS_WITH_PLUGINS</span></div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;<span class="comment">/* PLUGINS implies LIBUV */</span></div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;<span class="preprocessor">#define LWS_PLUGIN_API_MAGIC 180</span></div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;</div><div class="line"><a name="l01295"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html"> 1295</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> {</div><div class="line"><a name="l01296"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a"> 1296</a></span>&#160;        <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="l01297"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033"> 1297</a></span>&#160;        <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="l01298"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f"> 1298</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f">count_protocols</a>; </div><div class="line"><a name="l01299"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623"> 1299</a></span>&#160;        <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="l01300"></a><span class="lineno"><a class="line" href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3"> 1300</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3">count_extensions</a>; </div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;};</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;<span class="keyword">typedef</span> int (*lws_plugin_init_func)(<span class="keyword">struct </span>lws_context *,</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;                                    <span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> *);</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;<span class="keyword">typedef</span> int (*lws_plugin_destroy_func)(<span class="keyword">struct </span>lws_context *);</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;</div><div class="line"><a name="l01308"></a><span class="lineno"><a class="line" href="structlws__plugin.html"> 1308</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__plugin.html">lws_plugin</a> {</div><div class="line"><a name="l01309"></a><span class="lineno"><a class="line" href="structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22"> 1309</a></span>&#160;        <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="l01310"></a><span class="lineno"> 1310</span>&#160;<span class="preprocessor">#if (UV_VERSION_MAJOR &gt; 0)</span></div><div class="line"><a name="l01311"></a><span class="lineno"><a class="line" href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330"> 1311</a></span>&#160;        uv_lib_t <a class="code" href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330">lib</a>; </div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l01313"></a><span class="lineno"><a class="line" href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4"> 1313</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4">l</a>; </div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01315"></a><span class="lineno"><a class="line" href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105"> 1315</a></span>&#160;        <span class="keywordtype">char</span> <a class="code" href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105">name</a>[64]; </div><div class="line"><a name="l01316"></a><span class="lineno"><a class="line" href="structlws__plugin.html#ac7f1fdfe8cf8a21f8ee9720c21934a3f"> 1316</a></span>&#160;        <span class="keyword">struct </span><a class="code" href="structlws__plugin__capability.html">lws_plugin_capability</a> caps; </div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;};</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;<span class="preprocessor">#define LWSGS_EMAIL_CONTENT_SIZE 16384</span></div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;<span class="comment">/* SHA-1 binary and hexified versions */</span></div><div class="line"><a name="l01339"></a><span class="lineno"><a class="line" href="structlwsgw__hash__bin.html#ac92f50d9471058525d110597a4e0de6b"> 1339</a></span>&#160;<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="l01341"></a><span class="lineno"><a class="line" href="structlwsgw__hash.html#a29435f5cf78747d4257695b0f141d164"> 1341</a></span>&#160;<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="l01342"></a><span class="lineno"> 1342</span>&#160;</div><div class="line"><a name="l01344"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1"> 1344</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">lwsgs_auth_bits</a> {</div><div class="line"><a name="l01345"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57"> 1345</a></span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a> = 1, </div><div class="line"><a name="l01346"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf"> 1346</a></span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a> = 2,   </div><div class="line"><a name="l01347"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887"> 1347</a></span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a> = 4,  </div><div class="line"><a name="l01348"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a"> 1348</a></span>&#160;        <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a> = 8,     </div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;};</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;</div><div class="line"><a name="l01352"></a><span class="lineno"><a class="line" href="structlws__session__info.html"> 1352</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__session__info.html">lws_session_info</a> {</div><div class="line"><a name="l01353"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a3d57a70b6e7181d95a8bec429b1a7697"> 1353</a></span>&#160;        <span class="keywordtype">char</span> username[32]; </div><div class="line"><a name="l01354"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a94b813cfc6b0da4b182659de30038ad3"> 1354</a></span>&#160;        <span class="keywordtype">char</span> email[100]; </div><div class="line"><a name="l01355"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a53eed02325e8717a53297391e3e98fac"> 1355</a></span>&#160;        <span class="keywordtype">char</span> ip[72]; </div><div class="line"><a name="l01356"></a><span class="lineno"><a class="line" href="structlws__session__info.html#afb924864b70f40372920688a5c1c895e"> 1356</a></span>&#160;        <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="l01358"></a><span class="lineno"><a class="line" href="structlws__session__info.html#a4353b5dd19400b2b15edfd7cee1e4cd5"> 1358</a></span>&#160;        <span class="keywordtype">char</span> session[42]; </div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;};</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;</div><div class="line"><a name="l01362"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e"> 1362</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">lws_gs_event</a> {</div><div class="line"><a name="l01363"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308"> 1363</a></span>&#160;        <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a>, </div><div class="line"><a name="l01364"></a><span class="lineno"><a class="line" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde"> 1364</a></span>&#160;        <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a>  </div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;};</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;</div><div class="line"><a name="l01368"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html"> 1368</a></span>&#160;<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="l01369"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06"> 1369</a></span>&#160;        <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="l01370"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b"> 1370</a></span>&#160;        <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="l01371"></a><span class="lineno"><a class="line" href="structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463"> 1371</a></span>&#160;        <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="l01372"></a><span class="lineno"> 1372</span>&#160;};</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;<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="l01394"></a><span class="lineno"> 1394</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;</div><div class="line"><a name="l01398"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5"> 1398</a></span>&#160;<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="l01399"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092"> 1399</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT</a>     = (1 &lt;&lt; 1) |</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01404"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c"> 1404</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME</a>            = (1 &lt;&lt; 2),</div><div class="line"><a name="l01406"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d"> 1406</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT</a>             = (1 &lt;&lt; 3) |</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01411"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6"> 1411</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">LWS_SERVER_OPTION_LIBEV</a>                                 = (1 &lt;&lt; 4),</div><div class="line"><a name="l01413"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9"> 1413</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">LWS_SERVER_OPTION_DISABLE_IPV6</a>                          = (1 &lt;&lt; 5),</div><div class="line"><a name="l01415"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93"> 1415</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS</a>                   = (1 &lt;&lt; 6),</div><div class="line"><a name="l01418"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc"> 1418</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED</a>                = (1 &lt;&lt; 7),</div><div class="line"><a name="l01420"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f"> 1420</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">LWS_SERVER_OPTION_VALIDATE_UTF8</a>                         = (1 &lt;&lt; 8),</div><div class="line"><a name="l01422"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c"> 1422</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">LWS_SERVER_OPTION_SSL_ECDH</a>                              = (1 &lt;&lt; 9) |</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01425"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e"> 1425</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">LWS_SERVER_OPTION_LIBUV</a>                                 = (1 &lt;&lt; 10),</div><div class="line"><a name="l01427"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada"> 1427</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS</a>                = (1 &lt;&lt; 11) |</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;                                                                  (1 &lt;&lt; 12),</div><div class="line"><a name="l01431"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a"> 1431</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT</a>                    = (1 &lt;&lt; 12),</div><div class="line"><a name="l01433"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e"> 1433</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">LWS_SERVER_OPTION_EXPLICIT_VHOSTS</a>                       = (1 &lt;&lt; 13),</div><div class="line"><a name="l01436"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941"> 1436</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">LWS_SERVER_OPTION_UNIX_SOCK</a>                             = (1 &lt;&lt; 14),</div><div class="line"><a name="l01438"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016"> 1438</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">LWS_SERVER_OPTION_STS</a>                                   = (1 &lt;&lt; 15),</div><div class="line"><a name="l01441"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8"> 1441</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY</a>                    = (1 &lt;&lt; 16),</div><div class="line"><a name="l01443"></a><span class="lineno"><a class="line" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160"> 1443</a></span>&#160;        <a class="code" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE</a>                     = (1 &lt;&lt; 17),</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;};</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;<span class="preprocessor">#define lws_check_opt(c, f) (((c) &amp; (f)) == (f))</span></div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;</div><div class="line"><a name="l01460"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html"> 1460</a></span>&#160;<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="l01461"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85"> 1461</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85">port</a>;</div><div class="line"><a name="l01466"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a"> 1466</a></span>&#160;        <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="l01473"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122"> 1473</a></span>&#160;        <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="l01477"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c"> 1477</a></span>&#160;        <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="l01480"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29"> 1480</a></span>&#160;        <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="l01483"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54"> 1483</a></span>&#160;        <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="l01485"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103"> 1485</a></span>&#160;        <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="l01489"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14"> 1489</a></span>&#160;        <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="l01495"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29"> 1495</a></span>&#160;        <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="l01497"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb"> 1497</a></span>&#160;        <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="l01501"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3"> 1501</a></span>&#160;        <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="l01504"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6"> 1504</a></span>&#160;        <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="l01506"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03"> 1506</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03">gid</a>;</div><div class="line"><a name="l01508"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e"> 1508</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e">uid</a>;</div><div class="line"><a name="l01510"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724"> 1510</a></span>&#160;        <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="l01512"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0"> 1512</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0">user</a>;</div><div class="line"><a name="l01515"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56"> 1515</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56">ka_time</a>;</div><div class="line"><a name="l01518"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410"> 1518</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410">ka_probes</a>;</div><div class="line"><a name="l01522"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd"> 1522</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd">ka_interval</a>;</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;<span class="preprocessor">#ifdef LWS_OPENSSL_SUPPORT</span></div><div class="line"><a name="l01526"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4"> 1526</a></span>&#160;        <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="l01531"></a><span class="lineno"> 1531</span>&#160;<span class="preprocessor">#else </span><span class="comment">/* maintain structure layout either way */</span><span class="preprocessor"></span></div><div class="line"><a name="l01532"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb"> 1532</a></span>&#160;        <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="l01533"></a><span class="lineno"> 1533</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;</div><div class="line"><a name="l01535"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948"> 1535</a></span>&#160;        <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="l01538"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720"> 1538</a></span>&#160;        <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="l01545"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419"> 1545</a></span>&#160;        <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="l01547"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646"> 1547</a></span>&#160;        <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="l01551"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d"> 1551</a></span>&#160;        <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="l01556"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9"> 1556</a></span>&#160;        <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="l01558"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9"> 1558</a></span>&#160;        <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="l01562"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251"> 1562</a></span>&#160;        <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="l01565"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458"> 1565</a></span>&#160;        <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="l01568"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6"> 1568</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6">keepalive_timeout</a>;</div><div class="line"><a name="l01571"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2"> 1571</a></span>&#160;        <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="l01574"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8"> 1574</a></span>&#160;        <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="l01576"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616"> 1576</a></span>&#160;        <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="l01579"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209"> 1579</a></span>&#160;        <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="l01585"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a"> 1585</a></span>&#160;        <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="l01590"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d"> 1590</a></span>&#160;        <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="l01592"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa"> 1592</a></span>&#160;        <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="l01595"></a><span class="lineno"> 1595</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility</span></div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;<span class="comment">         * The below is to ensure later library versions with new</span></div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;<span class="comment">         * members added above will see 0 (default) even if the app</span></div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;<span class="comment">         * was not built against the newer headers.</span></div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;</div><div class="line"><a name="l01603"></a><span class="lineno"><a class="line" href="structlws__context__creation__info.html#afce3b59950eca3203faa07381bbed5d7"> 1603</a></span>&#160;        <span class="keywordtype">void</span> *_unused[8]; </div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;};</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_context *</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;<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="l01642"></a><span class="lineno"> 1642</span>&#160;</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;<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="l01653"></a><span class="lineno"> 1653</span>&#160;</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;<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="l01673"></a><span class="lineno"> 1673</span>&#160;</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;<span class="keyword">struct </span>lws_vhost;</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;LWS_EXTERN LWS_VISIBLE <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;<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="l01688"></a><span class="lineno"> 1688</span>&#160;                 <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="l01689"></a><span class="lineno"> 1689</span>&#160;</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;<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="l01706"></a><span class="lineno"> 1706</span>&#160;                         <span class="keywordtype">char</span> **config_strings, <span class="keywordtype">int</span> *len);</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;<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="l01725"></a><span class="lineno"> 1725</span>&#160;                        <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="l01726"></a><span class="lineno"> 1726</span>&#160;                        <span class="keywordtype">char</span> **config_strings, <span class="keywordtype">int</span> *len);</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;<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="l01731"></a><span class="lineno"> 1731</span>&#160;</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_vhost *</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;<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="l01739"></a><span class="lineno"> 1739</span>&#160;</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;<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="l01749"></a><span class="lineno"> 1749</span>&#160;</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;<a class="code" href="group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d">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="l01759"></a><span class="lineno"> 1759</span>&#160;</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;<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="l01771"></a><span class="lineno"> 1771</span>&#160;</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;</div><div class="line"><a name="l01784"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html"> 1784</a></span>&#160;<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="l01785"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c"> 1785</a></span>&#160;        <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="l01786"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822"> 1786</a></span>&#160;        <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="l01787"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9"> 1787</a></span>&#160;        <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="l01788"></a><span class="lineno"><a class="line" href="structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7"> 1788</a></span>&#160;        <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="l01789"></a><span class="lineno"> 1789</span>&#160;};</div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;</div><div class="line"><a name="l01795"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437"> 1795</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437">lws_mount_protocols</a> {</div><div class="line"><a name="l01796"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0"> 1796</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a>            = 0, </div><div class="line"><a name="l01797"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1"> 1797</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a>           = 1, </div><div class="line"><a name="l01798"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2"> 1798</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a>            = 2, </div><div class="line"><a name="l01799"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69"> 1799</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a>             = 3, </div><div class="line"><a name="l01800"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970"> 1800</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a>      = 4, </div><div class="line"><a name="l01801"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67"> 1801</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a>     = 5, </div><div class="line"><a name="l01802"></a><span class="lineno"><a class="line" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"> 1802</a></span>&#160;        <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a>        = 6, </div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;};</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;</div><div class="line"><a name="l01809"></a><span class="lineno"><a class="line" href="structlws__http__mount.html"> 1809</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__http__mount.html">lws_http_mount</a> {</div><div class="line"><a name="l01810"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ad878546ae1c399bbca7d7f8a0baf973d"> 1810</a></span>&#160;        <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#ad878546ae1c399bbca7d7f8a0baf973d">mount_next</a>;</div><div class="line"><a name="l01812"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c"> 1812</a></span>&#160;        <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="l01814"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a"> 1814</a></span>&#160;        <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="l01816"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4"> 1816</a></span>&#160;        <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="l01818"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b"> 1818</a></span>&#160;        <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="l01821"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af"> 1821</a></span>&#160;        <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="l01825"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7"> 1825</a></span>&#160;        <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="l01827"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773"> 1827</a></span>&#160;        <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="l01830"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa"> 1830</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa">cgi_timeout</a>;</div><div class="line"><a name="l01832"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146"> 1832</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146">cache_max_age</a>;</div><div class="line"><a name="l01834"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477"> 1834</a></span>&#160;        <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="l01837"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a8316dd183ffbef50419a5a4968d35d84"> 1837</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_reusable:1; </div><div class="line"><a name="l01838"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ae137203040c6153694bd88a708da5395"> 1838</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_revalidate:1; </div><div class="line"><a name="l01839"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#aabec1a326780aafe11b977000983be0c"> 1839</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cache_intermediaries:1; </div><div class="line"><a name="l01841"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7"> 1841</a></span>&#160;        <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="l01842"></a><span class="lineno"><a class="line" href="structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743"> 1842</a></span>&#160;        <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="l01843"></a><span class="lineno"> 1843</span>&#160;};</div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;</div><div class="line"><a name="l01859"></a><span class="lineno"><a class="line" href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce"> 1859</a></span>&#160;<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="l01860"></a><span class="lineno"> 1860</span>&#160;        LCCSCF_USE_SSL                          = (1 &lt;&lt; 0),</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;        LCCSCF_ALLOW_SELFSIGNED                 = (1 &lt;&lt; 1),</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;        LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK  = (1 &lt;&lt; 2)</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;};</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;</div><div class="line"><a name="l01868"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html"> 1868</a></span>&#160;<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="l01869"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd"> 1869</a></span>&#160;        <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="l01871"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502"> 1871</a></span>&#160;        <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="l01873"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9"> 1873</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9">port</a>;</div><div class="line"><a name="l01875"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d"> 1875</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d">ssl_connection</a>;</div><div class="line"><a name="l01877"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185"> 1877</a></span>&#160;        <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="l01879"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7"> 1879</a></span>&#160;        <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="l01881"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c"> 1881</a></span>&#160;        <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="l01883"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2"> 1883</a></span>&#160;        <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="l01885"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895"> 1885</a></span>&#160;        <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="l01887"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836"> 1887</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836">userdata</a>;</div><div class="line"><a name="l01889"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a7732b996e977393c3e1076be2a8ded6c"> 1889</a></span>&#160;        <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__client__connect__info.html#a7732b996e977393c3e1076be2a8ded6c">client_exts</a>;</div><div class="line"><a name="l01891"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db"> 1891</a></span>&#160;        <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="l01894"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587"> 1894</a></span>&#160;        <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="l01898"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a"> 1898</a></span>&#160;        <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="l01901"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3"> 1901</a></span>&#160;        <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="l01903"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be"> 1903</a></span>&#160;        <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="l01905"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e"> 1905</a></span>&#160;        <span class="keyword">struct </span>lws **<a class="code" href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e">pwsi</a>;</div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility</span></div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;<span class="comment">         *</span></div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;<span class="comment">         * The below is to ensure later library versions with new</span></div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;<span class="comment">         * members added above will see 0 (default) even if the app</span></div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;<span class="comment">         * was not built against the newer headers.</span></div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;</div><div class="line"><a name="l01925"></a><span class="lineno"><a class="line" href="structlws__client__connect__info.html#ad47f50d1633dc5df74548606c9a66d73"> 1925</a></span>&#160;        <span class="keywordtype">void</span> *_unused[4]; </div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;};</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;<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="l01937"></a><span class="lineno"> 1937</span>&#160;</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;<span class="comment">/* deprecated, use lws_client_connect_via_info() */</span></div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;<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="l01961"></a><span class="lineno"> 1961</span>&#160;                   <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="l01962"></a><span class="lineno"> 1962</span>&#160;                   <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="l01963"></a><span class="lineno"> 1963</span>&#160;                   <span class="keywordtype">int</span> ietf_version_or_minus_one) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;<span class="comment">/* deprecated, use lws_client_connect_via_info() */</span></div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;<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="l01987"></a><span class="lineno"> 1987</span>&#160;                            <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="l01988"></a><span class="lineno"> 1988</span>&#160;                            <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="l01989"></a><span class="lineno"> 1989</span>&#160;                            <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="l01990"></a><span class="lineno"> 1990</span>&#160;                            <span class="keywordtype">void</span> *userdata) LWS_WARN_DEPRECATED;</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;<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="l02019"></a><span class="lineno"> 2019</span>&#160;                          <span class="keyword">struct</span> lws_vhost *vhost);</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;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="l02024"></a><span class="lineno"> 2024</span>&#160;</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;<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="l02067"></a><span class="lineno"> 2067</span>&#160;</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;<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="l02081"></a><span class="lineno"> 2081</span>&#160;</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;<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="l02099"></a><span class="lineno"> 2099</span>&#160;</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;<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="l02113"></a><span class="lineno"> 2113</span>&#160;</div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;<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="l02138"></a><span class="lineno"> 2138</span>&#160;</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;<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="l02150"></a><span class="lineno"> 2150</span>&#160;                   <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;</div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;</div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;<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="l02180"></a><span class="lineno"> 2180</span>&#160;</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;<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="l02201"></a><span class="lineno"> 2201</span>&#160;                    <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="l02202"></a><span class="lineno"> 2202</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;lws_serve_http_file_fragment(<span class="keyword">struct</span> lws *wsi);</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;</div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;<span class="keyword">enum</span> http_status {</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;        HTTP_STATUS_OK                                          = 200,</div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;        HTTP_STATUS_NO_CONTENT                                  = 204,</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;        HTTP_STATUS_MOVED_PERMANENTLY                           = 301,</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;        HTTP_STATUS_FOUND                                       = 302,</div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;        HTTP_STATUS_SEE_OTHER                                   = 303,</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;        HTTP_STATUS_BAD_REQUEST                                 = 400,</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;        HTTP_STATUS_UNAUTHORIZED,</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;        HTTP_STATUS_PAYMENT_REQUIRED,</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;        HTTP_STATUS_FORBIDDEN,</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;        HTTP_STATUS_NOT_FOUND,</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;        HTTP_STATUS_METHOD_NOT_ALLOWED,</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;        HTTP_STATUS_NOT_ACCEPTABLE,</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;        HTTP_STATUS_PROXY_AUTH_REQUIRED,</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;        HTTP_STATUS_REQUEST_TIMEOUT,</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;        HTTP_STATUS_CONFLICT,</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;        HTTP_STATUS_GONE,</div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;        HTTP_STATUS_LENGTH_REQUIRED,</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;        HTTP_STATUS_PRECONDITION_FAILED,</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;        HTTP_STATUS_REQ_ENTITY_TOO_LARGE,</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;        HTTP_STATUS_REQ_URI_TOO_LONG,</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;        HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE,</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;        HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE,</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;        HTTP_STATUS_EXPECTATION_FAILED,</div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;</div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;        HTTP_STATUS_INTERNAL_SERVER_ERROR                       = 500,</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;        HTTP_STATUS_NOT_IMPLEMENTED,</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;        HTTP_STATUS_BAD_GATEWAY,</div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;        HTTP_STATUS_SERVICE_UNAVAILABLE,</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;        HTTP_STATUS_GATEWAY_TIMEOUT,</div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;        HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED,</div><div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;};</div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;</div><div class="line"><a name="l02252"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html"> 2252</a></span>&#160;<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="l02253"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14"> 2253</a></span>&#160;        <span class="keywordtype">char</span> *<a class="code" href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14">p</a>; </div><div class="line"><a name="l02254"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef"> 2254</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef">len</a>; </div><div class="line"><a name="l02255"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99"> 2255</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99">max_len</a>; </div><div class="line"><a name="l02256"></a><span class="lineno"><a class="line" href="structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475"> 2256</a></span>&#160;        <span class="keywordtype">int</span> <span class="keyword">final</span>; </div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;};</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;</div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;<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="l02260"></a><span class="lineno"> 2260</span>&#160;</div><div class="line"><a name="l02261"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html"> 2261</a></span>&#160;<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="l02262"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3"> 2262</a></span>&#160;        <span class="keywordtype">char</span> *<a class="code" href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3">start</a>; </div><div class="line"><a name="l02263"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a71982bc1cbd8cf876ca0f545144404eb"> 2263</a></span>&#160;        <span class="keywordtype">char</span> swallow[16]; </div><div class="line"><a name="l02264"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20"> 2264</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20">pos</a>; </div><div class="line"><a name="l02265"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5"> 2265</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5">data</a>; </div><div class="line"><a name="l02266"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077"> 2266</a></span>&#160;        <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="l02267"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968"> 2267</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968">count_vars</a>; </div><div class="line"><a name="l02269"></a><span class="lineno"><a class="line" href="structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644"> 2269</a></span>&#160;        lws_process_html_state_cb <a class="code" href="structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644">replace</a>; </div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;};</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;</div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;<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="l02278"></a><span class="lineno"> 2278</span>&#160;                         <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="l02280"></a><span class="lineno"> 2280</span>&#160;</div><div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160;</div><div class="line"><a name="l02321"></a><span class="lineno"><a class="line" href="structlws__tokens.html"> 2321</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__tokens.html">lws_tokens</a> {</div><div class="line"><a name="l02322"></a><span class="lineno"><a class="line" href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd"> 2322</a></span>&#160;        <span class="keywordtype">char</span> *<a class="code" href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd">token</a>; </div><div class="line"><a name="l02323"></a><span class="lineno"><a class="line" href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766"> 2323</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766">token_len</a>; </div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;};</div><div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160;</div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;<span class="comment">/* enum lws_token_indexes</span></div><div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;<span class="comment"> * these have to be kept in sync with lextable.h / minilex.c</span></div><div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160;<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="l02330"></a><span class="lineno"> 2330</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;<span class="keyword">enum</span> lws_token_indexes {</div><div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160;        WSI_TOKEN_GET_URI                                       =  0,</div><div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;        WSI_TOKEN_POST_URI                                      =  1,</div><div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;        WSI_TOKEN_OPTIONS_URI                                   =  2,</div><div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;        WSI_TOKEN_HOST                                          =  3,</div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160;        WSI_TOKEN_CONNECTION                                    =  4,</div><div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160;        WSI_TOKEN_UPGRADE                                       =  5,</div><div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;        WSI_TOKEN_ORIGIN                                        =  6,</div><div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;        WSI_TOKEN_DRAFT                                         =  7,</div><div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;        WSI_TOKEN_CHALLENGE                                     =  8,</div><div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160;        WSI_TOKEN_EXTENSIONS                                    =  9,</div><div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160;        WSI_TOKEN_KEY1                                          = 10,</div><div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;        WSI_TOKEN_KEY2                                          = 11,</div><div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160;        WSI_TOKEN_PROTOCOL                                      = 12,</div><div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160;        WSI_TOKEN_ACCEPT                                        = 13,</div><div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160;        WSI_TOKEN_NONCE                                         = 14,</div><div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;        WSI_TOKEN_HTTP                                          = 15,</div><div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160;        WSI_TOKEN_HTTP2_SETTINGS                                = 16,</div><div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160;        WSI_TOKEN_HTTP_ACCEPT                                   = 17,</div><div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160;        WSI_TOKEN_HTTP_AC_REQUEST_HEADERS                       = 18,</div><div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160;        WSI_TOKEN_HTTP_IF_MODIFIED_SINCE                        = 19,</div><div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160;        WSI_TOKEN_HTTP_IF_NONE_MATCH                            = 20,</div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160;        WSI_TOKEN_HTTP_ACCEPT_ENCODING                          = 21,</div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160;        WSI_TOKEN_HTTP_ACCEPT_LANGUAGE                          = 22,</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;        WSI_TOKEN_HTTP_PRAGMA                                   = 23,</div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;        WSI_TOKEN_HTTP_CACHE_CONTROL                            = 24,</div><div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;        WSI_TOKEN_HTTP_AUTHORIZATION                            = 25,</div><div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160;        WSI_TOKEN_HTTP_COOKIE                                   = 26,</div><div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160;        WSI_TOKEN_HTTP_CONTENT_LENGTH                           = 27,</div><div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;        WSI_TOKEN_HTTP_CONTENT_TYPE                             = 28,</div><div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;        WSI_TOKEN_HTTP_DATE                                     = 29,</div><div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;        WSI_TOKEN_HTTP_RANGE                                    = 30,</div><div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;        WSI_TOKEN_HTTP_REFERER                                  = 31,</div><div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;        WSI_TOKEN_KEY                                           = 32,</div><div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;        WSI_TOKEN_VERSION                                       = 33,</div><div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;        WSI_TOKEN_SWORIGIN                                      = 34,</div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160;</div><div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;        WSI_TOKEN_HTTP_COLON_AUTHORITY                          = 35,</div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;        WSI_TOKEN_HTTP_COLON_METHOD                             = 36,</div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;        WSI_TOKEN_HTTP_COLON_PATH                               = 37,</div><div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;        WSI_TOKEN_HTTP_COLON_SCHEME                             = 38,</div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;        WSI_TOKEN_HTTP_COLON_STATUS                             = 39,</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160;</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;        WSI_TOKEN_HTTP_ACCEPT_CHARSET                           = 40,</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160;        WSI_TOKEN_HTTP_ACCEPT_RANGES                            = 41,</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;        WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN              = 42,</div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;        WSI_TOKEN_HTTP_AGE                                      = 43,</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160;        WSI_TOKEN_HTTP_ALLOW                                    = 44,</div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;        WSI_TOKEN_HTTP_CONTENT_DISPOSITION                      = 45,</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;        WSI_TOKEN_HTTP_CONTENT_ENCODING                         = 46,</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;        WSI_TOKEN_HTTP_CONTENT_LANGUAGE                         = 47,</div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;        WSI_TOKEN_HTTP_CONTENT_LOCATION                         = 48,</div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;        WSI_TOKEN_HTTP_CONTENT_RANGE                            = 49,</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;        WSI_TOKEN_HTTP_ETAG                                     = 50,</div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;        WSI_TOKEN_HTTP_EXPECT                                   = 51,</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;        WSI_TOKEN_HTTP_EXPIRES                                  = 52,</div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;        WSI_TOKEN_HTTP_FROM                                     = 53,</div><div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;        WSI_TOKEN_HTTP_IF_MATCH                                 = 54,</div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;        WSI_TOKEN_HTTP_IF_RANGE                                 = 55,</div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;        WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE                      = 56,</div><div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;        WSI_TOKEN_HTTP_LAST_MODIFIED                            = 57,</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;        WSI_TOKEN_HTTP_LINK                                     = 58,</div><div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;        WSI_TOKEN_HTTP_LOCATION                                 = 59,</div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;        WSI_TOKEN_HTTP_MAX_FORWARDS                             = 60,</div><div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160;        WSI_TOKEN_HTTP_PROXY_AUTHENTICATE                       = 61,</div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;        WSI_TOKEN_HTTP_PROXY_AUTHORIZATION                      = 62,</div><div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;        WSI_TOKEN_HTTP_REFRESH                                  = 63,</div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;        WSI_TOKEN_HTTP_RETRY_AFTER                              = 64,</div><div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160;        WSI_TOKEN_HTTP_SERVER                                   = 65,</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;        WSI_TOKEN_HTTP_SET_COOKIE                               = 66,</div><div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;        WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY                = 67,</div><div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160;        WSI_TOKEN_HTTP_TRANSFER_ENCODING                        = 68,</div><div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160;        WSI_TOKEN_HTTP_USER_AGENT                               = 69,</div><div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160;        WSI_TOKEN_HTTP_VARY                                     = 70,</div><div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;        WSI_TOKEN_HTTP_VIA                                      = 71,</div><div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160;        WSI_TOKEN_HTTP_WWW_AUTHENTICATE                         = 72,</div><div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;</div><div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;        WSI_TOKEN_PATCH_URI                                     = 73,</div><div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;        WSI_TOKEN_PUT_URI                                       = 74,</div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;        WSI_TOKEN_DELETE_URI                                    = 75,</div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160;</div><div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;        WSI_TOKEN_HTTP_URI_ARGS                                 = 76,</div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;        WSI_TOKEN_PROXY                                         = 77,</div><div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160;        WSI_TOKEN_HTTP_X_REAL_IP                                = 78,</div><div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160;        WSI_TOKEN_HTTP1_0                                       = 79,</div><div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160;</div><div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160;</div><div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160;        <span class="comment">/* use token storage to stash these internally, not for</span></div><div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160;<span class="comment">         * user use */</span></div><div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;</div><div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160;        _WSI_TOKEN_CLIENT_SENT_PROTOCOLS,</div><div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160;        _WSI_TOKEN_CLIENT_PEER_ADDRESS,</div><div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160;        _WSI_TOKEN_CLIENT_URI,</div><div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160;        _WSI_TOKEN_CLIENT_HOST,</div><div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160;        _WSI_TOKEN_CLIENT_ORIGIN,</div><div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160;        _WSI_TOKEN_CLIENT_METHOD,</div><div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160;</div><div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160;        <span class="comment">/* always last real token index*/</span></div><div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160;        WSI_TOKEN_COUNT,</div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160;</div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160;        <span class="comment">/* parser state additions, no storage associated */</span></div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160;        WSI_TOKEN_NAME_PART,</div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160;        WSI_TOKEN_SKIPPING,</div><div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160;        WSI_TOKEN_SKIPPING_SAW_CR,</div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160;        WSI_PARSING_COMPLETE,</div><div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;        WSI_INIT_TOKEN_MUXURL,</div><div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160;};</div><div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160;</div><div class="line"><a name="l02441"></a><span class="lineno"><a class="line" href="structlws__token__limits.html"> 2441</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__token__limits.html">lws_token_limits</a> {</div><div class="line"><a name="l02442"></a><span class="lineno"><a class="line" href="structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff"> 2442</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> token_limit[WSI_TOKEN_COUNT]; </div><div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160;};</div><div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160;</div><div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160;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="l02451"></a><span class="lineno"> 2451</span>&#160;<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="l02452"></a><span class="lineno"> 2452</span>&#160;</div><div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160;</div><div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160;<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="l02464"></a><span class="lineno"> 2464</span>&#160;</div><div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160;<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="l02476"></a><span class="lineno"> 2476</span>&#160;</div><div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160;<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="l02492"></a><span class="lineno"> 2492</span>&#160;</div><div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160;<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="l02512"></a><span class="lineno"> 2512</span>&#160;                      <span class="keyword">enum</span> lws_token_indexes h, <span class="keywordtype">int</span> frag_idx);</div><div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160;</div><div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160;<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="l02527"></a><span class="lineno"> 2527</span>&#160;</div><div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160;</div><div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160;<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="l02555"></a><span class="lineno"> 2555</span>&#160;                           <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="l02556"></a><span class="lineno"> 2556</span>&#160;                           <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160;<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="l02571"></a><span class="lineno"> 2571</span>&#160;                            <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="l02572"></a><span class="lineno"> 2572</span>&#160;                            <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="l02586"></a><span class="lineno"> 2586</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160;<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="l02588"></a><span class="lineno"> 2588</span>&#160;                             <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="l02589"></a><span class="lineno"> 2589</span>&#160;                             <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="l02600"></a><span class="lineno"> 2600</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160;<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="l02602"></a><span class="lineno"> 2602</span>&#160;                                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> content_length,</div><div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160;                                   <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="l02613"></a><span class="lineno"> 2613</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160;<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="l02615"></a><span class="lineno"> 2615</span>&#160;                         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end);</div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160;</div><div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160;</div><div class="line"><a name="l02639"></a><span class="lineno"><a class="line" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae"> 2639</a></span>&#160;<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="l02640"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f"> 2640</a></span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,</div><div class="line"><a name="l02642"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7"> 2642</a></span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,</div><div class="line"><a name="l02644"></a><span class="lineno"><a class="line" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"> 2644</a></span>&#160;        <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160;};</div><div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160;</div><div class="line"><a name="l02661"></a><span class="lineno"><a class="line" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e"> 2661</a></span>&#160;<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="l02662"></a><span class="lineno"> 2662</span>&#160;                        <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="l02663"></a><span class="lineno"> 2663</span>&#160;                        <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="l02664"></a><span class="lineno"> 2664</span>&#160;</div><div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160;<span class="keyword">struct </span>lws_spa;</div><div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160;</div><div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_spa *</div><div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160;<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="l02689"></a><span class="lineno"> 2689</span>&#160;               <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="l02690"></a><span class="lineno"> 2690</span>&#160;               <span class="keywordtype">void</span> *opt_data);</div><div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160;</div><div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160;<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="l02701"></a><span class="lineno"> 2701</span>&#160;</div><div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160;<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="l02709"></a><span class="lineno"> 2709</span>&#160;</div><div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>&#160;<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="l02718"></a><span class="lineno"> 2718</span>&#160;</div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160;<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="l02726"></a><span class="lineno"> 2726</span>&#160;</div><div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160;<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="l02735"></a><span class="lineno"> 2735</span>&#160;</div><div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>&#160;</div><div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>&#160;<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="l02759"></a><span class="lineno"> 2759</span>&#160;</div><div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>&#160;<span class="comment"> * URLDECODE 1 / 2</span></div><div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>&#160;<span class="comment"> * This simple urldecode only operates until the first &#39;\0&#39; and requires the</span></div><div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>&#160;<span class="comment"> * data to exist all at once</span></div><div class="line"><a name="l02765"></a><span class="lineno"> 2765</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02779"></a><span class="lineno"> 2779</span>&#160;<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="l02781"></a><span class="lineno"> 2781</span>&#160;</div><div class="line"><a name="l02790"></a><span class="lineno"> 2790</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>&#160;<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="l02792"></a><span class="lineno"> 2792</span>&#160;                       <span class="keyword">const</span> <span class="keywordtype">char</span> *html_body);</div><div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>&#160;</div><div class="line"><a name="l02804"></a><span class="lineno"> 2804</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>&#160;<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="l02806"></a><span class="lineno"> 2806</span>&#160;                  <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="l02807"></a><span class="lineno"> 2807</span>&#160;</div><div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l02817"></a><span class="lineno"> 2817</span>&#160;<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="l02819"></a><span class="lineno"> 2819</span>&#160;</div><div class="line"><a name="l02827"></a><span class="lineno"> 2827</span>&#160;</div><div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02839"></a><span class="lineno"> 2839</span>&#160;<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="l02840"></a><span class="lineno"> 2840</span>&#160;</div><div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>&#160;<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="l02854"></a><span class="lineno"> 2854</span>&#160;</div><div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>&#160;</div><div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160;<span class="preprocessor">#ifdef LWS_USE_LIBEV</span></div><div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160;<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="l02865"></a><span class="lineno"> 2865</span>&#160;</div><div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>&#160;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="l02868"></a><span class="lineno"> 2868</span>&#160;                  lws_ev_signal_cb_t *cb);</div><div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>&#160;</div><div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>&#160;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="l02872"></a><span class="lineno"> 2872</span>&#160;</div><div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02874"></a><span class="lineno"> 2874</span>&#160;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="l02875"></a><span class="lineno"> 2875</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBEV */</span><span class="preprocessor"></span></div><div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>&#160;</div><div class="line"><a name="l02878"></a><span class="lineno"> 2878</span>&#160;</div><div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160;<span class="preprocessor">#ifdef LWS_USE_LIBUV</span></div><div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>&#160;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="l02889"></a><span class="lineno"> 2889</span>&#160;                  uv_signal_cb cb);</div><div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>&#160;</div><div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>&#160;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="l02893"></a><span class="lineno"> 2893</span>&#160;</div><div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>&#160;lws_libuv_stop(<span class="keyword">struct</span> lws_context *context);</div><div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160;</div><div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l02898"></a><span class="lineno"> 2898</span>&#160;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="l02899"></a><span class="lineno"> 2899</span>&#160;</div><div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>&#160;LWS_VISIBLE LWS_EXTERN uv_loop_t *</div><div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>&#160;lws_uv_getloop(<span class="keyword">struct</span> lws_context *context, <span class="keywordtype">int</span> tsi);</div><div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>&#160;</div><div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>&#160;lws_uv_sigint_cb(uv_signal_t *watcher, <span class="keywordtype">int</span> signum);</div><div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LWS_USE_LIBUV */</span><span class="preprocessor"></span></div><div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>&#160;</div><div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160;</div><div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>&#160;<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="l02916"></a><span class="lineno"> 2916</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>&#160;<span class="keyword">enum</span> pending_timeout {</div><div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>&#160;        NO_PENDING_TIMEOUT                                      =  0,</div><div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>&#160;        PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE                 =  1,</div><div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>&#160;        PENDING_TIMEOUT_AWAITING_CONNECT_RESPONSE               =  2,</div><div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>&#160;        PENDING_TIMEOUT_ESTABLISH_WITH_SERVER                   =  3,</div><div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>&#160;        PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE                =  4,</div><div class="line"><a name="l02924"></a><span class="lineno"> 2924</span>&#160;        PENDING_TIMEOUT_AWAITING_PING                           =  5,</div><div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>&#160;        PENDING_TIMEOUT_CLOSE_ACK                               =  6,</div><div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>&#160;        PENDING_TIMEOUT_AWAITING_EXTENSION_CONNECT_RESPONSE     =  7,</div><div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>&#160;        PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE                   =  8,</div><div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>&#160;        PENDING_TIMEOUT_SSL_ACCEPT                              =  9,</div><div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>&#160;        PENDING_TIMEOUT_HTTP_CONTENT                            = 10,</div><div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160;        PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND                 = 11,</div><div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>&#160;        PENDING_FLUSH_STORED_SEND_BEFORE_CLOSE                  = 12,</div><div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160;        PENDING_TIMEOUT_SHUTDOWN_FLUSH                          = 13,</div><div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>&#160;        PENDING_TIMEOUT_CGI                                     = 14,</div><div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>&#160;        PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE                     = 15,</div><div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>&#160;</div><div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l02937"></a><span class="lineno"> 2937</span>&#160;};</div><div class="line"><a name="l02938"></a><span class="lineno"> 2938</span>&#160;</div><div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>&#160;<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="l02951"></a><span class="lineno"> 2951</span>&#160;</div><div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160;<span class="preprocessor">#if !defined(LWS_SIZEOFPTR)</span></div><div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160;<span class="preprocessor">#define LWS_SIZEOFPTR (sizeof (void *))</span></div><div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02960"></a><span class="lineno"> 2960</span>&#160;<span class="preprocessor">#if !defined(u_int64_t)</span></div><div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>&#160;<span class="preprocessor">#define u_int64_t unsigned long long</span></div><div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>&#160;</div><div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>&#160;<span class="preprocessor">#if defined(__x86_64__)</span></div><div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>&#160;<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="l02966"></a><span class="lineno"> 2966</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>&#160;<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="l02968"></a><span class="lineno"> 2968</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>&#160;<span class="preprocessor">#define _LWS_PAD(n) (((n) % _LWS_PAD_SIZE) ? \</span></div><div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>&#160;<span class="preprocessor">                ((n) + (_LWS_PAD_SIZE - ((n) % _LWS_PAD_SIZE))) : (n))</span></div><div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>&#160;<span class="preprocessor">#define LWS_PRE _LWS_PAD(4 + 10)</span></div><div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>&#160;<span class="comment">/* used prior to 1.7 and retained for backward compatibility */</span></div><div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>&#160;<span class="preprocessor">#define LWS_SEND_BUFFER_PRE_PADDING LWS_PRE</span></div><div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>&#160;<span class="preprocessor">#define LWS_SEND_BUFFER_POST_PADDING 0</span></div><div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>&#160;</div><div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>&#160;<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="l02978"></a><span class="lineno"> 2978</span>&#160;<span class="comment"> * add it at where specified so existing users are unaffected.</span></div><div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l02980"></a><span class="lineno"><a class="line" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d"> 2980</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a> {</div><div class="line"><a name="l02981"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db"> 2981</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a>                                          = 0,</div><div class="line"><a name="l02985"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2"> 2985</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a>                                        = 1,</div><div class="line"><a name="l02988"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826"> 2988</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a>                                  = 2,</div><div class="line"><a name="l02991"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e"> 2991</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a>                                          = 3,</div><div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160;        <span class="comment">/* LWS_WRITE_CLOSE is handled by lws_close_reason() */</span></div><div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160;        LWS_WRITE_PING                                          = 5,</div><div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160;        LWS_WRITE_PONG                                          = 6,</div><div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160;</div><div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160;        <span class="comment">/* Same as write_http but we know this write ends the transaction */</span></div><div class="line"><a name="l02999"></a><span class="lineno"> 2999</span>&#160;        LWS_WRITE_HTTP_FINAL                                    = 7,</div><div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>&#160;</div><div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160;        <span class="comment">/* HTTP2 */</span></div><div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>&#160;</div><div class="line"><a name="l03003"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917"> 3003</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a>                                  = 8,</div><div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>&#160;        <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>&#160;</div><div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160;        <span class="comment">/* flags */</span></div><div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160;</div><div class="line"><a name="l03014"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3"> 3014</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,</div><div class="line"><a name="l03017"></a><span class="lineno"><a class="line" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"> 3017</a></span>&#160;        <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a> = 0x80</div><div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>&#160;};</div><div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>&#160;</div><div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>&#160;</div><div class="line"><a name="l03095"></a><span class="lineno"> 3095</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>&#160;<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="l03097"></a><span class="lineno"> 3097</span>&#160;          <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="l03098"></a><span class="lineno"> 3098</span>&#160;</div><div class="line"><a name="l03099"></a><span class="lineno"> 3099</span>&#160;<span class="comment">/* helper for case where buffer may be const */</span></div><div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>&#160;<span class="preprocessor">#define lws_write_http(wsi, buf, len) \</span></div><div class="line"><a name="l03101"></a><span class="lineno"> 3101</span>&#160;<span class="preprocessor">        lws_write(wsi, (unsigned char *)(buf), len, LWS_WRITE_HTTP)</span></div><div class="line"><a name="l03102"></a><span class="lineno"> 3102</span>&#160;</div><div class="line"><a name="l03104"></a><span class="lineno"> 3104</span>&#160;</div><div class="line"><a name="l03123"></a><span class="lineno"> 3123</span>&#160;</div><div class="line"><a name="l03136"></a><span class="lineno"> 3136</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03137"></a><span class="lineno"> 3137</span>&#160;<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="l03138"></a><span class="lineno"> 3138</span>&#160;</div><div class="line"><a name="l03152"></a><span class="lineno"> 3152</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03153"></a><span class="lineno"> 3153</span>&#160;<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="l03154"></a><span class="lineno"> 3154</span>&#160;                                      <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="l03155"></a><span class="lineno"> 3155</span>&#160;</div><div class="line"><a name="l03169"></a><span class="lineno"> 3169</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03170"></a><span class="lineno"> 3170</span>&#160;<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="l03171"></a><span class="lineno"> 3171</span>&#160;                                      <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="l03172"></a><span class="lineno"> 3172</span>&#160;</div><div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03186"></a><span class="lineno"> 3186</span>&#160;<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="l03187"></a><span class="lineno"> 3187</span>&#160;                          <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="l03188"></a><span class="lineno"> 3188</span>&#160;</div><div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160;<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="l03203"></a><span class="lineno"> 3203</span>&#160;                          <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="l03204"></a><span class="lineno"> 3204</span>&#160;</div><div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03219"></a><span class="lineno"> 3219</span>&#160;<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="l03220"></a><span class="lineno"> 3220</span>&#160;</div><div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03229"></a><span class="lineno"> 3229</span>&#160;<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="l03230"></a><span class="lineno"> 3230</span>&#160;</div><div class="line"><a name="l03252"></a><span class="lineno"> 3252</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">size_t</span></div><div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>&#160;<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="l03255"></a><span class="lineno"> 3255</span>&#160;</div><div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03267"></a><span class="lineno"> 3267</span>&#160;<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="l03268"></a><span class="lineno"> 3268</span>&#160;</div><div class="line"><a name="l03278"></a><span class="lineno"> 3278</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03279"></a><span class="lineno"> 3279</span>&#160;<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="l03280"></a><span class="lineno"> 3280</span>&#160;                               <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="l03281"></a><span class="lineno"> 3281</span>&#160;</div><div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">size_t</span></div><div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>&#160;<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="l03300"></a><span class="lineno"> 3300</span>&#160;</div><div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>&#160;</div><div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160;</div><div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160;<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="l03347"></a><span class="lineno"> 3347</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws *</div><div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>&#160;<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="l03349"></a><span class="lineno"> 3349</span>&#160;                <span class="keyword">const</span> <span class="keywordtype">char</span> *readbuf, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160;</div><div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>&#160;</div><div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03369"></a><span class="lineno"> 3369</span>&#160;<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="l03370"></a><span class="lineno"> 3370</span>&#160;</div><div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03386"></a><span class="lineno"> 3386</span>&#160;<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="l03387"></a><span class="lineno"> 3387</span>&#160;                       <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="l03388"></a><span class="lineno"> 3388</span>&#160;</div><div class="line"><a name="l03399"></a><span class="lineno"> 3399</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03400"></a><span class="lineno"> 3400</span>&#160;<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="l03401"></a><span class="lineno"> 3401</span>&#160;</div><div class="line"><a name="l03413"></a><span class="lineno"> 3413</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03414"></a><span class="lineno"> 3414</span>&#160;<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="l03415"></a><span class="lineno"> 3415</span>&#160;                    <span class="keywordtype">size_t</span> addrlen);</div><div class="line"><a name="l03417"></a><span class="lineno"> 3417</span>&#160;</div><div class="line"><a name="l03423"></a><span class="lineno"> 3423</span>&#160;</div><div class="line"><a name="l03436"></a><span class="lineno"> 3436</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03437"></a><span class="lineno"> 3437</span>&#160;<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="l03445"></a><span class="lineno"> 3445</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03446"></a><span class="lineno"> 3446</span>&#160;<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="l03452"></a><span class="lineno"> 3452</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">const</span> <span class="keywordtype">char</span> * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03453"></a><span class="lineno"> 3453</span>&#160;<a class="code" href="group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0">lws_get_library_version</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l03454"></a><span class="lineno"> 3454</span>&#160;</div><div class="line"><a name="l03461"></a><span class="lineno"> 3461</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span> *</div><div class="line"><a name="l03462"></a><span class="lineno"> 3462</span>&#160;<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="l03463"></a><span class="lineno"> 3463</span>&#160;</div><div class="line"><a name="l03475"></a><span class="lineno"> 3475</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03476"></a><span class="lineno"> 3476</span>&#160;<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="l03477"></a><span class="lineno"> 3477</span>&#160;              <span class="keyword">const</span> <span class="keywordtype">char</span> **path);</div><div class="line"><a name="l03478"></a><span class="lineno"> 3478</span>&#160;</div><div class="line"><a name="l03482"></a><span class="lineno"> 3482</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span></div><div class="line"><a name="l03483"></a><span class="lineno"> 3483</span>&#160;<a class="code" href="group__misc.html#ga33bf2635033710b25f931b57ed663e1e">lws_now_secs</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l03484"></a><span class="lineno"> 3484</span>&#160;</div><div class="line"><a name="l03494"></a><span class="lineno"> 3494</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws_context * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03495"></a><span class="lineno"> 3495</span>&#160;<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="l03496"></a><span class="lineno"> 3496</span>&#160;</div><div class="line"><a name="l03506"></a><span class="lineno"> 3506</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03507"></a><span class="lineno"> 3507</span>&#160;<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="l03508"></a><span class="lineno"> 3508</span>&#160;</div><div class="line"><a name="l03516"></a><span class="lineno"> 3516</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>&#160;<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="l03518"></a><span class="lineno"> 3518</span>&#160;</div><div class="line"><a name="l03525"></a><span class="lineno"> 3525</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keyword">struct </span>lws * LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>&#160;<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="l03527"></a><span class="lineno"> 3527</span>&#160;</div><div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160;</div><div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l03530"></a><span class="lineno"> 3530</span>&#160;<span class="comment"> * \deprecated DEPRECATED Note: this is not normally needed as a user api.</span></div><div class="line"><a name="l03531"></a><span class="lineno"> 3531</span>&#160;<span class="comment"> * It&#39;s provided in case it is</span></div><div class="line"><a name="l03532"></a><span class="lineno"> 3532</span>&#160;<span class="comment"> * useful when integrating with other app poll loop service code.</span></div><div class="line"><a name="l03533"></a><span class="lineno"> 3533</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l03534"></a><span class="lineno"> 3534</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03535"></a><span class="lineno"> 3535</span>&#160;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="l03536"></a><span class="lineno"> 3536</span>&#160;</div><div class="line"><a name="l03544"></a><span class="lineno"> 3544</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03545"></a><span class="lineno"> 3545</span>&#160;<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="l03547"></a><span class="lineno"> 3547</span>&#160;</div><div class="line"><a name="l03553"></a><span class="lineno"> 3553</span>&#160;</div><div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03561"></a><span class="lineno"> 3561</span>&#160;<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="l03562"></a><span class="lineno"> 3562</span>&#160;</div><div class="line"><a name="l03567"></a><span class="lineno"> 3567</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03568"></a><span class="lineno"> 3568</span>&#160;<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="l03569"></a><span class="lineno"> 3569</span>&#160;</div><div class="line"><a name="l03574"></a><span class="lineno"> 3574</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span></div><div class="line"><a name="l03575"></a><span class="lineno"> 3575</span>&#160;<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="l03576"></a><span class="lineno"> 3576</span>&#160;</div><div class="line"><a name="l03593"></a><span class="lineno"> 3593</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03594"></a><span class="lineno"> 3594</span>&#160;<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="l03595"></a><span class="lineno"> 3595</span>&#160;</div><div class="line"><a name="l03605"></a><span class="lineno"> 3605</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03606"></a><span class="lineno"> 3606</span>&#160;<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="l03607"></a><span class="lineno"> 3607</span>&#160;</div><div class="line"><a name="l03616"></a><span class="lineno"> 3616</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03617"></a><span class="lineno"> 3617</span>&#160;<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="l03622"></a><span class="lineno"> 3622</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03623"></a><span class="lineno"> 3623</span>&#160;<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="l03625"></a><span class="lineno"> 3625</span>&#160;</div><div class="line"><a name="l03626"></a><span class="lineno"> 3626</span>&#160;</div><div class="line"><a name="l03632"></a><span class="lineno"> 3632</span>&#160;<span class="preprocessor">#ifdef LWS_SHA1_USE_OPENSSL_NAME</span></div><div class="line"><a name="l03634"></a><span class="lineno"> 3634</span>&#160;<span class="preprocessor">#define lws_SHA1 SHA1</span></div><div class="line"><a name="l03635"></a><span class="lineno"> 3635</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l03636"></a><span class="lineno"> 3636</span>&#160;</div><div class="line"><a name="l03645"></a><span class="lineno"> 3645</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l03646"></a><span class="lineno"> 3646</span>&#160;<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="l03647"></a><span class="lineno"> 3647</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03648"></a><span class="lineno"> 3648</span>&#160;</div><div class="line"><a name="l03658"></a><span class="lineno"> 3658</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03659"></a><span class="lineno"> 3659</span>&#160;<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="l03669"></a><span class="lineno"> 3669</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>&#160;<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="l03672"></a><span class="lineno"> 3672</span>&#160;</div><div class="line"><a name="l03673"></a><span class="lineno"> 3673</span>&#160;</div><div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>&#160;<span class="preprocessor">#ifdef LWS_WITH_CGI</span></div><div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>&#160;<span class="keyword">enum</span> lws_enum_stdinouterr {</div><div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>&#160;        LWS_STDIN = 0,</div><div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>&#160;        LWS_STDOUT = 1,</div><div class="line"><a name="l03687"></a><span class="lineno"> 3687</span>&#160;        LWS_STDERR = 2,</div><div class="line"><a name="l03688"></a><span class="lineno"> 3688</span>&#160;};</div><div class="line"><a name="l03689"></a><span class="lineno"> 3689</span>&#160;</div><div class="line"><a name="l03690"></a><span class="lineno"> 3690</span>&#160;<span class="keyword">enum</span> lws_cgi_hdr_state {</div><div class="line"><a name="l03691"></a><span class="lineno"> 3691</span>&#160;        LCHS_HEADER,</div><div class="line"><a name="l03692"></a><span class="lineno"> 3692</span>&#160;        LCHS_CR1,</div><div class="line"><a name="l03693"></a><span class="lineno"> 3693</span>&#160;        LCHS_LF1,</div><div class="line"><a name="l03694"></a><span class="lineno"> 3694</span>&#160;        LCHS_CR2,</div><div class="line"><a name="l03695"></a><span class="lineno"> 3695</span>&#160;        LCHS_LF2,</div><div class="line"><a name="l03696"></a><span class="lineno"> 3696</span>&#160;        LHCS_PAYLOAD,</div><div class="line"><a name="l03697"></a><span class="lineno"> 3697</span>&#160;        LCHS_SINGLE_0A,</div><div class="line"><a name="l03698"></a><span class="lineno"> 3698</span>&#160;};</div><div class="line"><a name="l03699"></a><span class="lineno"> 3699</span>&#160;</div><div class="line"><a name="l03700"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html"> 3700</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__cgi__args.html">lws_cgi_args</a> {</div><div class="line"><a name="l03701"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1"> 3701</a></span>&#160;        <span class="keyword">struct </span>lws **<a class="code" href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1">stdwsi</a>; </div><div class="line"><a name="l03702"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#adeee220b29aeacc34632c38e50f0f5a5"> 3702</a></span>&#160;        <span class="keyword">enum</span> lws_enum_stdinouterr ch; </div><div class="line"><a name="l03703"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7"> 3703</a></span>&#160;        <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="l03704"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a741c11b9aa05997ec45a3400d7fb7739"> 3704</a></span>&#160;        <span class="keyword">enum</span> lws_cgi_hdr_state hdr_state; </div><div class="line"><a name="l03705"></a><span class="lineno"><a class="line" href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d"> 3705</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d">len</a>; </div><div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>&#160;};</div><div class="line"><a name="l03707"></a><span class="lineno"> 3707</span>&#160;</div><div class="line"><a name="l03708"></a><span class="lineno"> 3708</span>&#160;</div><div class="line"><a name="l03718"></a><span class="lineno"> 3718</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03719"></a><span class="lineno"> 3719</span>&#160;<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="l03720"></a><span class="lineno"> 3720</span>&#160;        <span class="keywordtype">int</span> script_uri_path_len, <span class="keywordtype">int</span> timeout_secs,</div><div class="line"><a name="l03721"></a><span class="lineno"> 3721</span>&#160;        <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="l03722"></a><span class="lineno"> 3722</span>&#160;</div><div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03729"></a><span class="lineno"> 3729</span>&#160;<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="l03730"></a><span class="lineno"> 3730</span>&#160;</div><div class="line"><a name="l03736"></a><span class="lineno"> 3736</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03737"></a><span class="lineno"> 3737</span>&#160;<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="l03738"></a><span class="lineno"> 3738</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03739"></a><span class="lineno"> 3739</span>&#160;</div><div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>&#160;</div><div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>&#160;</div><div class="line"><a name="l03764"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html"> 3764</a></span>&#160;<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="l03765"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32"> 3765</a></span>&#160;        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="l03766"></a><span class="lineno"> 3766</span>&#160;                                <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *filelen, <span class="keywordtype">int</span> flags);</div><div class="line"><a name="l03770"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b"> 3770</a></span>&#160;        int (*close)(<span class="keyword">struct </span>lws *wsi, lws_filefd_type fd);</div><div class="line"><a name="l03772"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869"> 3772</a></span>&#160;        <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="l03773"></a><span class="lineno"> 3773</span>&#160;                                  <span class="keywordtype">long</span> offset_from_cur_pos);</div><div class="line"><a name="l03775"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40"> 3775</a></span>&#160;        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="l03776"></a><span class="lineno"> 3776</span>&#160;                    <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="l03778"></a><span class="lineno"><a class="line" href="structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793"> 3778</a></span>&#160;        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="l03779"></a><span class="lineno"> 3779</span>&#160;                     <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="l03782"></a><span class="lineno"> 3782</span>&#160;        <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>&#160;<span class="comment">         * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l03784"></a><span class="lineno"> 3784</span>&#160;};</div><div class="line"><a name="l03785"></a><span class="lineno"> 3785</span>&#160;</div><div class="line"><a name="l03791"></a><span class="lineno"> 3791</span>&#160;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="l03792"></a><span class="lineno"> 3792</span>&#160;<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="l03793"></a><span class="lineno"> 3793</span>&#160;</div><div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>&#160;<span class="keyword">static</span> LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>&#160;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="l03804"></a><span class="lineno"> 3804</span>&#160;                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *filelen, <span class="keywordtype">int</span> flags)</div><div class="line"><a name="l03805"></a><span class="lineno"> 3805</span>&#160;{</div><div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>&#160;        <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))-&gt;<a class="code" href="structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32">open</a>(wsi, filename,</div><div class="line"><a name="l03807"></a><span class="lineno"> 3807</span>&#160;                                                    filelen, flags);</div><div class="line"><a name="l03808"></a><span class="lineno"> 3808</span>&#160;}</div><div class="line"><a name="l03809"></a><span class="lineno"> 3809</span>&#160;</div><div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160;<span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span></div><div class="line"><a name="l03817"></a><span class="lineno"> 3817</span>&#160;lws_plat_file_close(<span class="keyword">struct</span> lws *wsi, lws_filefd_type fd)</div><div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>&#160;{</div><div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>&#160;        <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))-&gt;<a class="code" href="structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b">close</a>(wsi, fd);</div><div class="line"><a name="l03820"></a><span class="lineno"> 3820</span>&#160;}</div><div class="line"><a name="l03821"></a><span class="lineno"> 3821</span>&#160;</div><div class="line"><a name="l03829"></a><span class="lineno"> 3829</span>&#160;<span class="keyword">static</span> LWS_INLINE <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span></div><div class="line"><a name="l03830"></a><span class="lineno"> 3830</span>&#160;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="l03831"></a><span class="lineno"> 3831</span>&#160;{</div><div class="line"><a name="l03832"></a><span class="lineno"> 3832</span>&#160;        <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))-&gt;<a class="code" href="structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869">seek_cur</a>(wsi, fd, offset);</div><div class="line"><a name="l03833"></a><span class="lineno"> 3833</span>&#160;}</div><div class="line"><a name="l03843"></a><span class="lineno"> 3843</span>&#160;<span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>&#160;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="l03845"></a><span class="lineno"> 3845</span>&#160;                   <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="l03846"></a><span class="lineno"> 3846</span>&#160;{</div><div class="line"><a name="l03847"></a><span class="lineno"> 3847</span>&#160;        <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))-&gt;<a class="code" href="structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40">read</a>(wsi, fd, amount, buf,</div><div class="line"><a name="l03848"></a><span class="lineno"> 3848</span>&#160;                                                        len);</div><div class="line"><a name="l03849"></a><span class="lineno"> 3849</span>&#160;}</div><div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>&#160;<span class="keyword">static</span> LWS_INLINE <span class="keywordtype">int</span> LWS_WARN_UNUSED_RESULT</div><div class="line"><a name="l03860"></a><span class="lineno"> 3860</span>&#160;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="l03861"></a><span class="lineno"> 3861</span>&#160;                    <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="l03862"></a><span class="lineno"> 3862</span>&#160;{</div><div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>&#160;        <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))-&gt;<a class="code" href="structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793">write</a>(wsi, fd, amount, buf,</div><div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>&#160;                                                         len);</div><div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>&#160;}</div><div class="line"><a name="l03867"></a><span class="lineno"> 3867</span>&#160;</div><div class="line"><a name="l03899"></a><span class="lineno"> 3899</span>&#160;<span class="preprocessor">#ifdef LWS_WITH_SMTP</span></div><div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>&#160;</div><div class="line"><a name="l03902"></a><span class="lineno"><a class="line" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0"> 3902</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">lwsgs_smtp_states</a> {</div><div class="line"><a name="l03903"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c"> 3903</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l03904"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933"> 3904</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l03905"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"> 3905</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l03906"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad"> 3906</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l03907"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab"> 3907</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l03908"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83"> 3908</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l03909"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14"> 3909</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l03910"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69"> 3910</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l03911"></a><span class="lineno"><a class="line" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5"> 3911</a></span>&#160;        <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160;};</div><div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>&#160;</div><div class="line"><a name="l03915"></a><span class="lineno"><a class="line" href="structlws__email.html"> 3915</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structlws__email.html">lws_email</a> {</div><div class="line"><a name="l03916"></a><span class="lineno"><a class="line" href="structlws__email.html#add1341456045382c183f4c763bdea6bc"> 3916</a></span>&#160;        <span class="keywordtype">void</span> *<a class="code" href="structlws__email.html#add1341456045382c183f4c763bdea6bc">data</a>;</div><div class="line"><a name="l03918"></a><span class="lineno"><a class="line" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168"> 3918</a></span>&#160;        uv_loop_t *<a class="code" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168">loop</a>;</div><div class="line"><a name="l03921"></a><span class="lineno"><a class="line" href="structlws__email.html#a472ae23fc9fca6599e5c512bc21458d2"> 3921</a></span>&#160;        <span class="keywordtype">char</span> email_smtp_ip[32]; </div><div class="line"><a name="l03922"></a><span class="lineno"><a class="line" href="structlws__email.html#a939e5d7ee0339a16de73bde71ab4d4d9"> 3922</a></span>&#160;        <span class="keywordtype">char</span> email_helo[32];    </div><div class="line"><a name="l03923"></a><span class="lineno"><a class="line" href="structlws__email.html#af7f0ae934347d81071f63a963301f9e2"> 3923</a></span>&#160;        <span class="keywordtype">char</span> email_from[100];   </div><div class="line"><a name="l03924"></a><span class="lineno"><a class="line" href="structlws__email.html#a6453a8b92b3de6d2c2101af3edce685e"> 3924</a></span>&#160;        <span class="keywordtype">char</span> email_to[100];     </div><div class="line"><a name="l03926"></a><span class="lineno"><a class="line" href="structlws__email.html#a7bbc1964889c984b3da723c86a210e05"> 3926</a></span>&#160;        <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="l03929"></a><span class="lineno"> 3929</span>&#160;        <span class="comment">/* Fill all the callbacks before init */</span></div><div class="line"><a name="l03930"></a><span class="lineno"> 3930</span>&#160;</div><div class="line"><a name="l03931"></a><span class="lineno"><a class="line" href="structlws__email.html#ad8dc60353ee246d84dd59ec0591e9719"> 3931</a></span>&#160;        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="l03936"></a><span class="lineno"><a class="line" href="structlws__email.html#a39ef6263d58eb40cca417c8697b227d8"> 3936</a></span>&#160;        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="l03941"></a><span class="lineno"><a class="line" href="structlws__email.html#a2aff78c8e04db243052aa91b4d87e987"> 3941</a></span>&#160;        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="l03947"></a><span class="lineno"> 3947</span>&#160;        <span class="comment">/* private things */</span></div><div class="line"><a name="l03948"></a><span class="lineno"><a class="line" href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be"> 3948</a></span>&#160;        uv_timer_t <a class="code" href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be">timeout_email</a>; </div><div class="line"><a name="l03949"></a><span class="lineno"><a class="line" href="structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3"> 3949</a></span>&#160;        <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="l03950"></a><span class="lineno"><a class="line" href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3"> 3950</a></span>&#160;        uv_connect_t <a class="code" href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3">email_connect_req</a>; </div><div class="line"><a name="l03951"></a><span class="lineno"><a class="line" href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e"> 3951</a></span>&#160;        uv_tcp_t <a class="code" href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e">email_client</a>; </div><div class="line"><a name="l03952"></a><span class="lineno"><a class="line" href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1"> 3952</a></span>&#160;        time_t <a class="code" href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1">email_connect_started</a>; </div><div class="line"><a name="l03953"></a><span class="lineno"><a class="line" href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82"> 3953</a></span>&#160;        <span class="keywordtype">char</span> <a class="code" href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82">email_buf</a>[256]; </div><div class="line"><a name="l03954"></a><span class="lineno"><a class="line" href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed"> 3954</a></span>&#160;        <span class="keywordtype">char</span> *<a class="code" href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed">content</a>; </div><div class="line"><a name="l03955"></a><span class="lineno"> 3955</span>&#160;};</div><div class="line"><a name="l03956"></a><span class="lineno"> 3956</span>&#160;</div><div class="line"><a name="l03966"></a><span class="lineno"> 3966</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">int</span></div><div class="line"><a name="l03967"></a><span class="lineno"> 3967</span>&#160;<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="l03968"></a><span class="lineno"> 3968</span>&#160;</div><div class="line"><a name="l03977"></a><span class="lineno"> 3977</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03978"></a><span class="lineno"> 3978</span>&#160;<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="l03986"></a><span class="lineno"> 3986</span>&#160;LWS_VISIBLE LWS_EXTERN <span class="keywordtype">void</span></div><div class="line"><a name="l03987"></a><span class="lineno"> 3987</span>&#160;<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="l03988"></a><span class="lineno"> 3988</span>&#160;</div><div class="line"><a name="l03989"></a><span class="lineno"> 3989</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03990"></a><span class="lineno"> 3990</span>&#160;</div><div class="line"><a name="l03991"></a><span class="lineno"> 3991</span>&#160;</div><div class="line"><a name="l03992"></a><span class="lineno"> 3992</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l03993"></a><span class="lineno"> 3993</span>&#160;}</div><div class="line"><a name="l03994"></a><span class="lineno"> 3994</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l03995"></a><span class="lineno"> 3995</span>&#160;</div><div class="line"><a name="l03996"></a><span class="lineno"> 3996</span>&#160;<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:3695</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:1194</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:3700</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:1199</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:684</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:812</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:1794</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:2986</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:3900</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:1799</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:2991</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:3905</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:234</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:1829</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:3009</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:3911</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:1893</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:3773</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:1834</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:3014</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:3916</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:1898</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:3778</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:577</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:727</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:1339</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:1344</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:810</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:998</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:1203</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:1003</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:1208</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:996</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:1001</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:715</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__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__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:661</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:3931</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:1334</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:1900</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:3936</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:1339</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:1905</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:695</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:1872</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:1877</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:496</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:1290</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:1295</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:3947</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:3952</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:467</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:507</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:1394</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:2318</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:1569</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:1399</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:2323</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:1574</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:836</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:1783</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:2637</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:3905</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:1365</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:1788</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:2642</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:3910</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:1370</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:1813</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:3696</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:1818</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:3701</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:782</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:1336</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:1827</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:1587</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:1341</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:1832</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:1592</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:675</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:1455</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:1460</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:523</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:2257</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:2262</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:1185</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:2976</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:1190</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:2981</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:873</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:865</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:1878</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:1883</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:862</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:1574</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:1579</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:2249</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:1510</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:1410</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:2254</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:1515</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:1415</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__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:1295</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:2980</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:1868</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:1864</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:1342</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:1880</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:1300</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:2985</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:1873</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:1869</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:1347</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:1885</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:3898</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:1779</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:3903</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:1784</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:2261</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:2266</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:475</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:1863</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:1085</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:1868</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:1090</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:793</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:1021</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:1804</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:1811</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:1026</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:1809</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:1816</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:636</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:1422</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:1393</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:1427</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:1398</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:814</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:1359</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:1428</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:1364</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:1433</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:802</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:1018</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:1792</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:1023</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:1797</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:445</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:1478</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:1483</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:414</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:1303</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:1294</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:1308</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:1299</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:1882</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:1887</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:633</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:820</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:3698</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:1820</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:3703</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:1825</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:626</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:707</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:3913</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:3918</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:805</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:3012</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:2259</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:1304</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:3017</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:2264</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:1309</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:1530</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:1535</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:1527</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:1532</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:1292</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:997</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:1513</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:1297</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:1002</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:1518</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:1876</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:1881</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:400</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:1886</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:1891</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:1091</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:1096</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:842</div></div>
-<div class="ttc" id="structlws__client__connect__info_html_a7732b996e977393c3e1076be2a8ded6c"><div class="ttname"><a href="structlws__client__connect__info.html#a7732b996e977393c3e1076be2a8ded6c">lws_client_connect_info::client_exts</a></div><div class="ttdeci">const struct lws_extension * client_exts</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1884</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:1836</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:1566</div></div>
+<div class="ttc" id="structlws__client__connect__info_html_a7732b996e977393c3e1076be2a8ded6c"><div class="ttname"><a href="structlws__client__connect__info.html#a7732b996e977393c3e1076be2a8ded6c">lws_client_connect_info::client_exts</a></div><div class="ttdeci">const struct lws_extension * client_exts</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1889</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:1841</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:1571</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:682</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:3921</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:1019</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:3926</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:1024</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:678</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:1896</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:1889</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:1901</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:1894</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:3944</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:3949</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:578</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:1557</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:1310</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:1562</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:1315</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:3948</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:3953</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:1399</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:3765</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:1306</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:1404</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:3770</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:1311</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:236</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:3899</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:3904</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:1870</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:1358</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:1521</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:1875</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:1363</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:1526</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:2247</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:2252</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:444</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:1816</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:1782</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:1837</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:2983</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:1417</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:1821</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:1787</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:1842</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:2988</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:1422</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:398</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:1793</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:1798</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:1472</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:1401</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:1477</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:1406</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:1406</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:995</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:1468</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:1411</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:1000</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:1473</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:1020</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:1492</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:1025</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:1497</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:1807</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:1496</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:1812</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:1501</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:740</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:237</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:1480</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:1551</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:1825</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:1795</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:1343</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:1485</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:1556</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:1830</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:1800</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:1348</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:412</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:501</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>
@@ -304,171 +304,172 @@ $(document).ready(function(){initNavTree('libwebsockets_8h_source.html','');});
 <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:680</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:1426</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:1431</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__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:1438</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:3943</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:1408</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:1533</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:918</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:1443</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:3948</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:1413</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:1538</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:2248</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:2253</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:235</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:1189</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:1194</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:485</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:3897</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:1420</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:3902</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:1425</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:758</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:644</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:1181</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:1186</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:490</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:1540</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:1366</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:1545</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:1371</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:472</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:3945</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:1571</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:1431</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:3950</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:1576</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:1436</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:399</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:649</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:1415</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:1553</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:1796</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:1420</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:1558</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:1801</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:1341</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:1363</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:1542</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:1346</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:1368</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:1547</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:1357</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:1362</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:1517</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:1340</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:1503</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:2639</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:1522</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:1345</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:1508</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:2644</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:1182</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:1187</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:3903</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:1499</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:3908</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:1504</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:1546</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:1456</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:1551</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:1461</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:1505</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:1510</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:1781</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:1786</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:447</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:1563</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:1347</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:1008</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:2436</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:1568</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:1352</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:1013</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:2441</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:1560</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:1874</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:1017</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:1565</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:1879</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:1022</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:511</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:3700</div></div>
-<div class="ttc" id="structlws__http__mount_html_ad878546ae1c399bbca7d7f8a0baf973d"><div class="ttname"><a href="structlws__http__mount.html#ad878546ae1c399bbca7d7f8a0baf973d">lws_http_mount::mount_next</a></div><div class="ttdeci">struct lws_http_mount * mount_next</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1805</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:3705</div></div>
+<div class="ttc" id="structlws__http__mount_html_ad878546ae1c399bbca7d7f8a0baf973d"><div class="ttname"><a href="structlws__http__mount.html#ad878546ae1c399bbca7d7f8a0baf973d">lws_http_mount::mount_next</a></div><div class="ttdeci">struct lws_http_mount * mount_next</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1810</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:1461</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:3759</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:1466</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:3764</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__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:2634</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:2639</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:734</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:469</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:478</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:3946</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:3951</div></div>
 <div class="ttc" id="group__context-and-vhost_html_gae2134657cdd2ea7a59e13ad314e4c50d"><div class="ttname"><a href="group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d">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)</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:397</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:582</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:3760</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:2975</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:1094</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:3770</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:3765</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:2980</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:1099</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:3775</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:2635</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:2640</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:483</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:1809</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:1009</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:1814</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:1014</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:659</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:1092</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:3902</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:1097</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:3907</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:415</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:1093</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:1585</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:921</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:1098</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:1590</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:926</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:1351</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:1356</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="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:1790</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:1795</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:413</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:1580</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:1791</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:1585</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:1796</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:1822</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:1827</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__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:1413</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:1418</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:2262</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:2267</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:2316</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:2321</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:638</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:2260</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:3949</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:2265</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:3954</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:1475</div></div>
-<div class="ttc" id="structlws__process__html__state_html_a693d2fb45378afee5da29b539c1ea644"><div class="ttname"><a href="structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644">lws_process_html_state::replace</a></div><div class="ttdeci">lws_process_html_state_cb replace</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2264</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:3910</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:1866</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:3767</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:1210</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:1480</div></div>
+<div class="ttc" id="structlws__process__html__state_html_a693d2fb45378afee5da29b539c1ea644"><div class="ttname"><a href="structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644">lws_process_html_state::replace</a></div><div class="ttdeci">lws_process_html_state_cb replace</div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2269</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:3915</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:1871</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:3772</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:1215</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:446</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:3936</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:1797</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:1507</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:3906</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:2998</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:2317</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:3941</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:1802</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:1512</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:3911</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:3003</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:2322</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:1293</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:1308</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:1484</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:2250</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:1298</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:1313</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:1489</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:2255</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:640</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:1780</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:1785</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:651</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:2256</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:2261</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:850</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:1490</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:1854</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:1501</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:1898</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: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:1495</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:1859</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:1506</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:1903</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:948</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:1433</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:1438</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:519</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:3901</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:1291</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:1436</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:3906</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:1296</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:1441</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:3904</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:2656</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:3909</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:2661</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
diff --git a/doc/html/lwsgt-overview.png b/doc/html/lwsgt-overview.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d03195926a1e5c9814190bac6774d84ff0bfbd4
GIT binary patch
literal 76858
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
Q7#J8lUHx3vIVCg!06PWZc>n+a

literal 0
HcmV?d00001

diff --git a/doc/html/md_README.problems.html b/doc/html/md_README.problems.html
index d93138b6..e8e9980a 100644
--- a/doc/html/md_README.problems.html
+++ b/doc/html/md_README.problems.html
@@ -66,10 +66,11 @@ $(document).ready(function(){initNavTree('md_README.problems.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><h2>Library is a component </h2>
-<p>As a library, lws is just a component in a bigger application.</p>
-<p>Many users are able to share their sources, but others decide not to, for "commerical advantage" or whatever.</p>
+<p>As a library, lws is always just a component in a bigger application.</p>
+<p>When users have a problem involving lws, what is happening in the bigger application is usually critical to understand what is going on (and where the solution lies).</p>
+<p>Many users are able to share their sources, but others decide not to, for presumed "commercial advantage" or whatever. (In any event, it can be painful looking through large chunks of someone else's sources for problems when that is not the library author's responsibility.)</p>
 <p>This makes answering questions like "what is wrong with my code I am not
-going to show you?" very difficult.</p>
+going to show you?" or even "what is wrong with my code?" very difficult.</p>
 <p>Even if it's clear there is a problem somewhere, it cannot be understood or reproduced by anyone else if it needs user code that isn't provided.</p>
 <p>The biggest question is, "is this an lws problem actually"?</p>
 <h2>Use the test apps as sanity checks </h2>
diff --git a/doc/html/navtreedata.js b/doc/html/navtreedata.js
index f0e7b5b1..34b85e05 100644
--- a/doc/html/navtreedata.js
+++ b/doc/html/navtreedata.js
@@ -23,6 +23,7 @@ var NAVTREE =
       [ "Cross compiling", "md_README.build.html#cross", null ],
       [ "Memory efficiency", "md_README.build.html#mem", null ]
     ] ],
+    [ "Debugging problems", "md_README.problems.html", null ],
     [ "Notes about lwsws", "md_README.lwsws.html", [
       [ "Libwebsockets Web Server", "md_README.lwsws.html#lwsws", null ],
       [ "Build", "md_README.lwsws.html#lwswsb", null ],
@@ -76,6 +77,15 @@ var NAVTREE =
       [ "Lwsgs Email configuration", "md_README.generic-sessions.html#gsrmail", null ],
       [ "Lwsgs Integration with another protocol", "md_README.generic-sessions.html#gsap", null ]
     ] ],
+    [ "Notes about generic-table", "md_README.generic-table.html", [
+      [ "What is generic-table?", "md_README.generic-table.html#gtint", null ],
+      [ "Enabling for build", "md_README.generic-table.html#gteb", null ],
+      [ "Integrating with your html", "md_README.generic-table.html#gtinth", null ],
+      [ "Lwsgt constructor", "md_README.generic-table.html#gtc", null ],
+      [ "Lwsgt click handling function", "md_README.generic-table.html#gtclick", null ],
+      [ "Generic-table JSON", "md_README.generic-table.html#gtgj", null ],
+      [ "Setting up protocol-lws-table-dirlisting", "md_README.generic-table.html#gtdirl", null ]
+    ] ],
     [ "Overview of lws test apps", "md_README.test-apps.html", [
       [ "Testing server with a browser", "md_README.test-apps.html#tsb", null ],
       [ "Running test server as a Daemon", "md_README.test-apps.html#tsd", null ],
@@ -123,8 +133,8 @@ var NAVTREEINDEX =
 "annotated.html",
 "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016",
 "group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5",
-"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad9cdc12a796e6c7d912278834d9c7dde",
-"structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475"
+"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbac8f5f992c6615324108cdf931da903be",
+"structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27"
 ];
 
 var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/doc/html/navtreeindex0.js b/doc/html/navtreeindex0.js
index 4871d7d2..b81b349f 100644
--- a/doc/html/navtreeindex0.js
+++ b/doc/html/navtreeindex0.js
@@ -1,253 +1,253 @@
 var NAVTREEINDEX0 =
 {
-"annotated.html":[8,0],
-"classes.html":[8,1],
-"classlws__conn.html":[8,0,2],
-"classlws__conn.html#a49f87612c6a3098cd1587f8382b8c85b":[8,0,2,2],
-"classlws__conn.html#a4fb477fad697ce1faf8ec7a884ea6c6b":[8,0,2,3],
-"classlws__conn.html#a5226010afdf5421f279454e5cbb282a4":[8,0,2,8],
-"classlws__conn.html#a5cad031b6b779da42b37f4007cae541b":[8,0,2,9],
-"classlws__conn.html#a7e504bd449ffb51c7ab1d2126613ebc3":[8,0,2,11],
-"classlws__conn.html#a8e1fdd467b7f66fc438dc70ae979b938":[8,0,2,10],
-"classlws__conn.html#aad7d2406618e560114650a91c729a596":[8,0,2,5],
-"classlws__conn.html#aba42bdd763a36c3a331b62410969b6ba":[8,0,2,4],
-"classlws__conn.html#accc57581269c554291dac840ed135231":[8,0,2,6],
-"classlws__conn.html#aef530971372f55e862f2e09bc98f1029":[8,0,2,1],
-"classlws__conn.html#af0e213af91d53d1e1aef70ed7816191f":[8,0,2,0],
-"classlws__conn.html#afe73e53da2070f659ad6e7fd14878c7e":[8,0,2,7],
-"classlws__conn__listener.html":[8,0,3],
-"classlws__conn__listener.html#a271ac4f8ad5770b3bc96cce5b265b72c":[8,0,3,2],
-"classlws__conn__listener.html#a3c19c314f2ea2b758407b4041e4c4010":[8,0,3,5],
-"classlws__conn__listener.html#aa7076f8965bb9df268798fd9a0283374":[8,0,3,6],
-"classlws__conn__listener.html#aab3c7bf550a8f15d20f1e093125c2e60":[8,0,3,1],
-"classlws__conn__listener.html#ab3bc839797ba14554ac70ad09fd155c7":[8,0,3,4],
-"classlws__conn__listener.html#ab432a456c3a961ec562e06141897806b":[8,0,3,3],
-"classlws__conn__listener.html#ac82c8696a36a2f386b4094490d300dee":[8,0,3,0],
-"deprecated.html":[6],
-"dir_97aefd0d527b934f1d99a682da8fe6a9.html":[9,0,0],
-"files.html":[9,0],
-"functions.html":[8,3,0],
-"functions_func.html":[8,3,1],
-"functions_vars.html":[8,3,2],
-"globals.html":[9,1,0],
-"globals.html":[9,1,0,0],
-"globals_enum.html":[9,1,3],
-"globals_eval.html":[9,1,4],
-"globals_func.html":[9,1,1],
-"globals_l.html":[9,1,0,1],
-"globals_type.html":[9,1,2],
-"group__HTTP-headers-create.html":[7,6,3],
-"group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6":[7,6,3,3],
-"group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6":[9,0,0,0,41],
-"group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8":[7,6,3,0],
-"group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8":[9,0,0,0,38],
-"group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b":[7,6,3,4],
-"group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b":[9,0,0,0,76],
-"group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf":[7,6,3,2],
-"group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf":[9,0,0,0,40],
-"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[7,6,3,1],
-"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[9,0,0,0,39],
-"group__HTTP-headers-read.html":[7,6,4],
-"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[9,0,0,0,143],
-"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[7,6,4,7],
-"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[7,6,4,5],
-"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[9,0,0,0,97],
-"group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77":[7,6,4,3],
-"group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77":[9,0,0,0,95],
-"group__HTTP-headers-read.html#ga6e747906f9d76532ec118d6ef418b82e":[9,0,0,0,31],
-"group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2":[7,6,4,2],
-"group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2":[9,0,0,0,93],
-"group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8":[7,6,4,6],
-"group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8":[9,0,0,0,98],
-"group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9":[7,6,4,4],
-"group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9":[9,0,0,0,96],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea03293996964a8bb617215508908048d4":[9,0,0,0,31,42],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea05c73ad09f25570a50068de13333e41a":[9,0,0,0,31,57],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0784fa0e5bdbacd1e14c2d6ba0c42992":[9,0,0,0,31,27],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0830a0c1c62c444ade7cf15599e92345":[9,0,0,0,31,47],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0a3c723f67cb6d95dba0c0ccc7d898f8":[9,0,0,0,31,69],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0dd5ce6fa8932e0d378b86c393d8f726":[9,0,0,0,31,11],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea11ed9b0cc3b4525c830de7185fd8d7df":[9,0,0,0,31,62],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1347e093d73e88489ba3ebda56a393a5":[9,0,0,0,31,32],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea138fedfdb81765272d22b0eca9aec22b":[9,0,0,0,31,9],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea157c1db7d8edd3cd3b649e7756a559c8":[9,0,0,0,31,80],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea166e60d6689436c1fb9169438d5db1b9":[9,0,0,0,31,13],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1d41be78df2704c54b906f7f0abbaa30":[9,0,0,0,31,51],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1ee866e12a483229599f4e3cfc358b36":[9,0,0,0,31,53],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea21ac48d2a499f6afa44cee92cebd8ae3":[9,0,0,0,31,82],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea220975eeb65cac57691adb3761a492bb":[9,0,0,0,31,50],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea228ece9e187ddbb80236851e9a09145c":[9,0,0,0,31,83],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea277d11b0d5e7fdfc6b5fb45470e6f63e":[9,0,0,0,31,39],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2be8537e80387a88197d3ed62ac3b954":[9,0,0,0,31,45],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2efae4ba6646ba040c371706f7f3a125":[9,0,0,0,31,56],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3733863fb466c1df6b00c9384a53e544":[9,0,0,0,31,85],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea385f0e1933f81529307fff61eb08ff8d":[9,0,0,0,31,54],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ac4744411849aff89001ee0350aed75":[9,0,0,0,31,60],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3cf47b821d473b717002b22619a9814e":[9,0,0,0,31,7],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ef26b531c1c2416850ebd539f08ba5e":[9,0,0,0,31,17],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3fd7c7c9587953adc8f317a615df6b83":[9,0,0,0,31,14],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea400831fe4ba52d4c454364a81ea3bfe4":[9,0,0,0,31,91],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea428409a7aaea6446b660574e4097c0bd":[9,0,0,0,31,90],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea439ada24e20de209e08e7dd398ca61ac":[9,0,0,0,31,66],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea525ee6d2330fca0929df75ffb8dec68e":[9,0,0,0,31,33],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea52a30bd1a5ca619ab19bb8178138e42f":[9,0,0,0,31,58],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea549fcdd8300f0c7434289db6326ec06a":[9,0,0,0,31,22],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea56913c617d46273743bb187bcd8e90c2":[9,0,0,0,31,65],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea569588399651cdd6b81de40be4b73fd8":[9,0,0,0,31,46],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea57ff348ebbae88bf904bc64ef284d83b":[9,0,0,0,31,20],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea598578cda71fe6ca34320bbd6ba1e887":[9,0,0,0,31,55],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5dcd48b2643d8a82a97b7abbc3928ea8":[9,0,0,0,31,81],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5e005569744e3246ba40d524f9a84fe4":[9,0,0,0,31,44],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea6164d17e9598f89c822b4be55814de0a":[9,0,0,0,31,48],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea63e1e08da7555313caf632a819db27d4":[9,0,0,0,31,41],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea669e4eea57595f569f329bfba900a15d":[9,0,0,0,31,3],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea693a74f3cd695016120bfdae3d3ced1a":[9,0,0,0,31,68],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea70b452bb6ce670e32c30fa237bceb731":[9,0,0,0,31,15],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7460d076c52a9fae65c9e00bac05ef19":[9,0,0,0,31,76],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea751322eb9f58fa33bf1f6e4923ff9abb":[9,0,0,0,31,1],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7708c82134391d257d6c354ae7bf1429":[9,0,0,0,31,31],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78834452a5833032294abe1aa42055c6":[9,0,0,0,31,64],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7892390328672ed812b3b68bc3e0fe40":[9,0,0,0,31,52],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78fbb32e1809d5767e55de3181d454b0":[9,0,0,0,31,19],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7e80eff7eefa68741f0a776d6d8feeae":[9,0,0,0,31,78],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea832a110c8b9eb42890f252a756c81bde":[9,0,0,0,31,36],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea86b3c4cf71dc5c5b441243db99ca696a":[9,0,0,0,31,61],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea883a86db0c05266214affd78d37e871f":[9,0,0,0,31,86],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8913c5b1378b1ffad7e2da975c454d15":[9,0,0,0,31,26],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d7393b324a076186bbde01a2cfe6b62":[9,0,0,0,31,49],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d9809cf381705f73af48d8f6809412b":[9,0,0,0,31,24],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8f6a44a37c29cb5ade4c5989467a880b":[9,0,0,0,31,75],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8ff0b2f6666e008de14d9b9721b87ead":[9,0,0,0,31,89],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea9004d6ff6b16b8877f760545a3c7be60":[9,0,0,0,31,63],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa0cad0c7a20ac23945a33dbc3d726718":[9,0,0,0,31,30],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa566f2c37d9a459ca95eee347cca68d0":[9,0,0,0,31,67],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa76ea751f1ee86567d27e9e30075d6db":[9,0,0,0,31,40],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa84e4902ebeb7ab468e3a4bd4acf4f90":[9,0,0,0,31,84],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa8c8eb9b32feb43ec214d8469655a0df":[9,0,0,0,31,87],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaab4585e187936b4f2abf22e9138ee271":[9,0,0,0,31,5],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaae70d627de34f9c881445f6fbcfcc2dd":[9,0,0,0,31,38],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab0926aa28ea9bb73d2b0124c05c30a78":[9,0,0,0,31,88],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab2339b9e75c79dae3547255d1fb046cd":[9,0,0,0,31,2],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab460c34b18e1ae54219c3fb9e60544ef":[9,0,0,0,31,4],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaba11ed0aa8c8c7bd71d971a234df0a72":[9,0,0,0,31,21],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eabfb2738a1148ec7c039f2af640b28430":[9,0,0,0,31,71],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac7157acd472d24de05aee3de57b8dc8a":[9,0,0,0,31,12],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac9a937e393da4c3a77cf82463265dcee":[9,0,0,0,31,6],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead32022a286b9cc6fbe60b1a0411370a7":[9,0,0,0,31,28],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead603502e2545c533c4c01ba39e35a2b0":[9,0,0,0,31,16],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadb08a1c7b1f76e2962d44149bf488bf8":[9,0,0,0,31,34],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadbb64ba8a29fee913ded2163a5d16615":[9,0,0,0,31,10],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadff4760ab45fc182ab1e1fb68afa6714":[9,0,0,0,31,70],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae215f7e72fea4458fd971cdcb45d8e04":[9,0,0,0,31,18],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae24b2d70918c70e034ff574a516e0023":[9,0,0,0,31,59],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae5d5ca0131fbea1df03d7ad6d69ebfbd":[9,0,0,0,31,25],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae6286060884d4c80a88fa94fec58dda3":[9,0,0,0,31,0],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae898ee2a1e374f7d98aa483940c91511":[9,0,0,0,31,73],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae9d2323ce213a112ac90361f04a1ee5a":[9,0,0,0,31,43],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec69fb61493d1c67316c02259b86bdc2":[9,0,0,0,31,35],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec821397393facee38ddd4119473b992":[9,0,0,0,31,29],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaee14b94fcd4ab788e313e0789bec0cdc":[9,0,0,0,31,77],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaeef14469c992ebb09a43a8548db37401":[9,0,0,0,31,23],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf2b7eac7ff98aea6d9b240f6f51995c3":[9,0,0,0,31,72],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf48e3b9c89dba34054ea0833dbad4b57":[9,0,0,0,31,8],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf567d4d400062fab44f1b96c64cb93ac":[9,0,0,0,31,37],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf64cb8232e172aaa019c38b398d0a0bb":[9,0,0,0,31,74],
-"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eafc1e8568187b2de76e2ddd5cc692908e":[9,0,0,0,31,79],
-"group__Protocols-and-Plugins.html":[7,10],
-"group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43":[7,10,4],
-"group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43":[9,0,0,0,77],
-"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[9,0,0,0,151],
-"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[7,10,9],
-"group__Protocols-and-Plugins.html#ga40994491e1567f91f579d2b444775266":[9,0,0,0,12],
-"group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112":[7,10,5],
-"group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112":[9,0,0,0,89],
-"group__Protocols-and-Plugins.html#ga83f7a924ba790fa273476075a59f08b0":[9,0,0,0,11],
-"group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030":[7,10,6],
-"group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030":[9,0,0,0,115],
-"group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1":[7,10,8],
-"group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1":[9,0,0,0,117],
-"group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129":[7,10,7],
-"group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129":[9,0,0,0,116],
-"group__callback-when-writeable.html":[7,1],
-"group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053":[7,1,1],
-"group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053":[9,0,0,0,47],
-"group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5":[7,1,5],
-"group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5":[9,0,0,0,51],
-"group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8":[7,1,4],
-"group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8":[9,0,0,0,50],
-"group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d":[7,1,2],
-"group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d":[9,0,0,0,48],
-"group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba":[7,1,7],
-"group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba":[9,0,0,0,92],
-"group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107":[7,1,3],
-"group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107":[9,0,0,0,49],
-"group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde":[7,1,6],
-"group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde":[9,0,0,0,88],
-"group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70":[7,1,0],
-"group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70":[9,0,0,0,46],
-"group__cgi.html":[7,19],
-"group__client.html":[7,2],
-"group__client.html#ga0c966136905f467816307cfba6deb5fd":[7,2,4],
-"group__client.html#ga0c966136905f467816307cfba6deb5fd":[9,0,0,0,61],
-"group__client.html#ga4450c34200bf9dab3beb90ef23221870":[9,0,0,0,99],
-"group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3":[7,2,2],
-"group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3":[9,0,0,0,59],
-"group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340":[7,2,5],
-"group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340":[9,0,0,0,102],
-"group__client.html#ga96f3dbad54b2853969cfa933d66871ce":[9,0,0,0,21],
-"group__client.html#ga96f3dbad54b2853969cfa933d66871ce":[7,2,1],
-"group__client.html#gac6a8558b4410961a880241c2ac1271e2":[7,2,3],
-"group__client.html#gac6a8558b4410961a880241c2ac1271e2":[9,0,0,0,60],
-"group__client.html#gga96f3dbad54b2853969cfa933d66871cea7051e79bb97b69862f2ff00ae5298ec7":[9,0,0,0,21,0],
-"group__client.html#gga96f3dbad54b2853969cfa933d66871cea89866ab6a749aaa1684158c55f826b35":[9,0,0,0,21,2],
-"group__client.html#gga96f3dbad54b2853969cfa933d66871ceafc72c0ffbc7462bdddd4ce7bd99ac092":[9,0,0,0,21,1],
-"group__context-and-vhost.html":[7,4],
-"group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932":[7,4,8],
-"group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932":[9,0,0,0,94],
-"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[7,4,7],
-"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[9,0,0,0,66],
-"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[9,0,0,0,158],
-"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[7,4,14],
-"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[9,0,0,0,23],
-"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[7,4,3],
-"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[7,4,11],
-"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[9,0,0,0,133],
-"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[9,0,0,0,150],
-"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[7,4,12],
-"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[7,4,4],
-"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[9,0,0,0,63],
-"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[7,4,10],
-"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[9,0,0,0,108],
-"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[9,0,0,0,157],
-"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[7,4,13],
-"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[7,4,9],
-"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[9,0,0,0,107],
-"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[7,4,5],
-"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[9,0,0,0,64],
-"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[9,0,0,0,65],
-"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[7,4,6],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[9,0,0,0,23,8],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[7,4,3,8],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[9,0,0,0,23,2],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[7,4,3,2],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6":[9,0,0,0,23,3],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6":[7,4,3,3],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092":[9,0,0,0,23,0],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092":[7,4,3,0],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9":[9,0,0,0,23,4],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9":[7,4,3,4],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada":[9,0,0,0,23,10],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada":[7,4,3,10],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[9,0,0,0,23,5],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[7,4,3,5],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[9,0,0,0,23,1],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[7,4,3,1],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[9,0,0,0,23,11],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[7,4,3,11],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941":[9,0,0,0,23,13],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941":[7,4,3,13],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f":[9,0,0,0,23,7],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f":[7,4,3,7],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc":[9,0,0,0,23,6],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc":[7,4,3,6]
+"annotated.html":[10,0],
+"classes.html":[10,1],
+"classlws__conn.html":[10,0,2],
+"classlws__conn.html#a49f87612c6a3098cd1587f8382b8c85b":[10,0,2,2],
+"classlws__conn.html#a4fb477fad697ce1faf8ec7a884ea6c6b":[10,0,2,3],
+"classlws__conn.html#a5226010afdf5421f279454e5cbb282a4":[10,0,2,8],
+"classlws__conn.html#a5cad031b6b779da42b37f4007cae541b":[10,0,2,9],
+"classlws__conn.html#a7e504bd449ffb51c7ab1d2126613ebc3":[10,0,2,11],
+"classlws__conn.html#a8e1fdd467b7f66fc438dc70ae979b938":[10,0,2,10],
+"classlws__conn.html#aad7d2406618e560114650a91c729a596":[10,0,2,5],
+"classlws__conn.html#aba42bdd763a36c3a331b62410969b6ba":[10,0,2,4],
+"classlws__conn.html#accc57581269c554291dac840ed135231":[10,0,2,6],
+"classlws__conn.html#aef530971372f55e862f2e09bc98f1029":[10,0,2,1],
+"classlws__conn.html#af0e213af91d53d1e1aef70ed7816191f":[10,0,2,0],
+"classlws__conn.html#afe73e53da2070f659ad6e7fd14878c7e":[10,0,2,7],
+"classlws__conn__listener.html":[10,0,3],
+"classlws__conn__listener.html#a271ac4f8ad5770b3bc96cce5b265b72c":[10,0,3,2],
+"classlws__conn__listener.html#a3c19c314f2ea2b758407b4041e4c4010":[10,0,3,5],
+"classlws__conn__listener.html#aa7076f8965bb9df268798fd9a0283374":[10,0,3,6],
+"classlws__conn__listener.html#aab3c7bf550a8f15d20f1e093125c2e60":[10,0,3,1],
+"classlws__conn__listener.html#ab3bc839797ba14554ac70ad09fd155c7":[10,0,3,4],
+"classlws__conn__listener.html#ab432a456c3a961ec562e06141897806b":[10,0,3,3],
+"classlws__conn__listener.html#ac82c8696a36a2f386b4094490d300dee":[10,0,3,0],
+"deprecated.html":[8],
+"dir_97aefd0d527b934f1d99a682da8fe6a9.html":[11,0,0],
+"files.html":[11,0],
+"functions.html":[10,3,0],
+"functions_func.html":[10,3,1],
+"functions_vars.html":[10,3,2],
+"globals.html":[11,1,0],
+"globals.html":[11,1,0,0],
+"globals_enum.html":[11,1,3],
+"globals_eval.html":[11,1,4],
+"globals_func.html":[11,1,1],
+"globals_l.html":[11,1,0,1],
+"globals_type.html":[11,1,2],
+"group__HTTP-headers-create.html":[9,6,3],
+"group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6":[9,6,3,3],
+"group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6":[11,0,0,0,41],
+"group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8":[9,6,3,0],
+"group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8":[11,0,0,0,38],
+"group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b":[9,6,3,4],
+"group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b":[11,0,0,0,76],
+"group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf":[9,6,3,2],
+"group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf":[11,0,0,0,40],
+"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[9,6,3,1],
+"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[11,0,0,0,39],
+"group__HTTP-headers-read.html":[9,6,4],
+"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[11,0,0,0,143],
+"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[9,6,4,7],
+"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[9,6,4,5],
+"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[11,0,0,0,97],
+"group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77":[9,6,4,3],
+"group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77":[11,0,0,0,95],
+"group__HTTP-headers-read.html#ga6e747906f9d76532ec118d6ef418b82e":[11,0,0,0,31],
+"group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2":[9,6,4,2],
+"group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2":[11,0,0,0,93],
+"group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8":[9,6,4,6],
+"group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8":[11,0,0,0,98],
+"group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9":[9,6,4,4],
+"group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9":[11,0,0,0,96],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea03293996964a8bb617215508908048d4":[11,0,0,0,31,42],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea05c73ad09f25570a50068de13333e41a":[11,0,0,0,31,57],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0784fa0e5bdbacd1e14c2d6ba0c42992":[11,0,0,0,31,27],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0830a0c1c62c444ade7cf15599e92345":[11,0,0,0,31,47],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0a3c723f67cb6d95dba0c0ccc7d898f8":[11,0,0,0,31,69],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0dd5ce6fa8932e0d378b86c393d8f726":[11,0,0,0,31,11],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea11ed9b0cc3b4525c830de7185fd8d7df":[11,0,0,0,31,62],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1347e093d73e88489ba3ebda56a393a5":[11,0,0,0,31,32],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea138fedfdb81765272d22b0eca9aec22b":[11,0,0,0,31,9],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea157c1db7d8edd3cd3b649e7756a559c8":[11,0,0,0,31,80],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea166e60d6689436c1fb9169438d5db1b9":[11,0,0,0,31,13],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1d41be78df2704c54b906f7f0abbaa30":[11,0,0,0,31,51],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1ee866e12a483229599f4e3cfc358b36":[11,0,0,0,31,53],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea21ac48d2a499f6afa44cee92cebd8ae3":[11,0,0,0,31,82],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea220975eeb65cac57691adb3761a492bb":[11,0,0,0,31,50],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea228ece9e187ddbb80236851e9a09145c":[11,0,0,0,31,83],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea277d11b0d5e7fdfc6b5fb45470e6f63e":[11,0,0,0,31,39],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2be8537e80387a88197d3ed62ac3b954":[11,0,0,0,31,45],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2efae4ba6646ba040c371706f7f3a125":[11,0,0,0,31,56],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3733863fb466c1df6b00c9384a53e544":[11,0,0,0,31,85],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea385f0e1933f81529307fff61eb08ff8d":[11,0,0,0,31,54],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ac4744411849aff89001ee0350aed75":[11,0,0,0,31,60],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3cf47b821d473b717002b22619a9814e":[11,0,0,0,31,7],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ef26b531c1c2416850ebd539f08ba5e":[11,0,0,0,31,17],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3fd7c7c9587953adc8f317a615df6b83":[11,0,0,0,31,14],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea400831fe4ba52d4c454364a81ea3bfe4":[11,0,0,0,31,91],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea428409a7aaea6446b660574e4097c0bd":[11,0,0,0,31,90],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea439ada24e20de209e08e7dd398ca61ac":[11,0,0,0,31,66],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea525ee6d2330fca0929df75ffb8dec68e":[11,0,0,0,31,33],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea52a30bd1a5ca619ab19bb8178138e42f":[11,0,0,0,31,58],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea549fcdd8300f0c7434289db6326ec06a":[11,0,0,0,31,22],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea56913c617d46273743bb187bcd8e90c2":[11,0,0,0,31,65],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea569588399651cdd6b81de40be4b73fd8":[11,0,0,0,31,46],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea57ff348ebbae88bf904bc64ef284d83b":[11,0,0,0,31,20],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea598578cda71fe6ca34320bbd6ba1e887":[11,0,0,0,31,55],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5dcd48b2643d8a82a97b7abbc3928ea8":[11,0,0,0,31,81],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5e005569744e3246ba40d524f9a84fe4":[11,0,0,0,31,44],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea6164d17e9598f89c822b4be55814de0a":[11,0,0,0,31,48],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea63e1e08da7555313caf632a819db27d4":[11,0,0,0,31,41],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea669e4eea57595f569f329bfba900a15d":[11,0,0,0,31,3],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea693a74f3cd695016120bfdae3d3ced1a":[11,0,0,0,31,68],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea70b452bb6ce670e32c30fa237bceb731":[11,0,0,0,31,15],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7460d076c52a9fae65c9e00bac05ef19":[11,0,0,0,31,76],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea751322eb9f58fa33bf1f6e4923ff9abb":[11,0,0,0,31,1],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7708c82134391d257d6c354ae7bf1429":[11,0,0,0,31,31],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78834452a5833032294abe1aa42055c6":[11,0,0,0,31,64],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7892390328672ed812b3b68bc3e0fe40":[11,0,0,0,31,52],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78fbb32e1809d5767e55de3181d454b0":[11,0,0,0,31,19],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7e80eff7eefa68741f0a776d6d8feeae":[11,0,0,0,31,78],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea832a110c8b9eb42890f252a756c81bde":[11,0,0,0,31,36],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea86b3c4cf71dc5c5b441243db99ca696a":[11,0,0,0,31,61],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea883a86db0c05266214affd78d37e871f":[11,0,0,0,31,86],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8913c5b1378b1ffad7e2da975c454d15":[11,0,0,0,31,26],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d7393b324a076186bbde01a2cfe6b62":[11,0,0,0,31,49],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d9809cf381705f73af48d8f6809412b":[11,0,0,0,31,24],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8f6a44a37c29cb5ade4c5989467a880b":[11,0,0,0,31,75],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8ff0b2f6666e008de14d9b9721b87ead":[11,0,0,0,31,89],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea9004d6ff6b16b8877f760545a3c7be60":[11,0,0,0,31,63],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa0cad0c7a20ac23945a33dbc3d726718":[11,0,0,0,31,30],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa566f2c37d9a459ca95eee347cca68d0":[11,0,0,0,31,67],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa76ea751f1ee86567d27e9e30075d6db":[11,0,0,0,31,40],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa84e4902ebeb7ab468e3a4bd4acf4f90":[11,0,0,0,31,84],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa8c8eb9b32feb43ec214d8469655a0df":[11,0,0,0,31,87],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaab4585e187936b4f2abf22e9138ee271":[11,0,0,0,31,5],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaae70d627de34f9c881445f6fbcfcc2dd":[11,0,0,0,31,38],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab0926aa28ea9bb73d2b0124c05c30a78":[11,0,0,0,31,88],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab2339b9e75c79dae3547255d1fb046cd":[11,0,0,0,31,2],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab460c34b18e1ae54219c3fb9e60544ef":[11,0,0,0,31,4],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaba11ed0aa8c8c7bd71d971a234df0a72":[11,0,0,0,31,21],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eabfb2738a1148ec7c039f2af640b28430":[11,0,0,0,31,71],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac7157acd472d24de05aee3de57b8dc8a":[11,0,0,0,31,12],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac9a937e393da4c3a77cf82463265dcee":[11,0,0,0,31,6],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead32022a286b9cc6fbe60b1a0411370a7":[11,0,0,0,31,28],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead603502e2545c533c4c01ba39e35a2b0":[11,0,0,0,31,16],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadb08a1c7b1f76e2962d44149bf488bf8":[11,0,0,0,31,34],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadbb64ba8a29fee913ded2163a5d16615":[11,0,0,0,31,10],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadff4760ab45fc182ab1e1fb68afa6714":[11,0,0,0,31,70],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae215f7e72fea4458fd971cdcb45d8e04":[11,0,0,0,31,18],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae24b2d70918c70e034ff574a516e0023":[11,0,0,0,31,59],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae5d5ca0131fbea1df03d7ad6d69ebfbd":[11,0,0,0,31,25],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae6286060884d4c80a88fa94fec58dda3":[11,0,0,0,31,0],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae898ee2a1e374f7d98aa483940c91511":[11,0,0,0,31,73],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae9d2323ce213a112ac90361f04a1ee5a":[11,0,0,0,31,43],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec69fb61493d1c67316c02259b86bdc2":[11,0,0,0,31,35],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec821397393facee38ddd4119473b992":[11,0,0,0,31,29],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaee14b94fcd4ab788e313e0789bec0cdc":[11,0,0,0,31,77],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaeef14469c992ebb09a43a8548db37401":[11,0,0,0,31,23],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf2b7eac7ff98aea6d9b240f6f51995c3":[11,0,0,0,31,72],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf48e3b9c89dba34054ea0833dbad4b57":[11,0,0,0,31,8],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf567d4d400062fab44f1b96c64cb93ac":[11,0,0,0,31,37],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf64cb8232e172aaa019c38b398d0a0bb":[11,0,0,0,31,74],
+"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eafc1e8568187b2de76e2ddd5cc692908e":[11,0,0,0,31,79],
+"group__Protocols-and-Plugins.html":[9,10],
+"group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43":[9,10,4],
+"group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43":[11,0,0,0,77],
+"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[11,0,0,0,151],
+"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[9,10,9],
+"group__Protocols-and-Plugins.html#ga40994491e1567f91f579d2b444775266":[11,0,0,0,12],
+"group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112":[9,10,5],
+"group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112":[11,0,0,0,89],
+"group__Protocols-and-Plugins.html#ga83f7a924ba790fa273476075a59f08b0":[11,0,0,0,11],
+"group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030":[9,10,6],
+"group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030":[11,0,0,0,115],
+"group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1":[9,10,8],
+"group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1":[11,0,0,0,117],
+"group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129":[9,10,7],
+"group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129":[11,0,0,0,116],
+"group__callback-when-writeable.html":[9,1],
+"group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053":[9,1,1],
+"group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053":[11,0,0,0,47],
+"group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5":[9,1,5],
+"group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5":[11,0,0,0,51],
+"group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8":[9,1,4],
+"group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8":[11,0,0,0,50],
+"group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d":[9,1,2],
+"group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d":[11,0,0,0,48],
+"group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba":[9,1,7],
+"group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba":[11,0,0,0,92],
+"group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107":[9,1,3],
+"group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107":[11,0,0,0,49],
+"group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde":[9,1,6],
+"group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde":[11,0,0,0,88],
+"group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70":[9,1,0],
+"group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70":[11,0,0,0,46],
+"group__cgi.html":[9,19],
+"group__client.html":[9,2],
+"group__client.html#ga0c966136905f467816307cfba6deb5fd":[9,2,4],
+"group__client.html#ga0c966136905f467816307cfba6deb5fd":[11,0,0,0,61],
+"group__client.html#ga4450c34200bf9dab3beb90ef23221870":[11,0,0,0,99],
+"group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3":[9,2,2],
+"group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3":[11,0,0,0,59],
+"group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340":[9,2,5],
+"group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340":[11,0,0,0,102],
+"group__client.html#ga96f3dbad54b2853969cfa933d66871ce":[9,2,1],
+"group__client.html#ga96f3dbad54b2853969cfa933d66871ce":[11,0,0,0,21],
+"group__client.html#gac6a8558b4410961a880241c2ac1271e2":[9,2,3],
+"group__client.html#gac6a8558b4410961a880241c2ac1271e2":[11,0,0,0,60],
+"group__client.html#gga96f3dbad54b2853969cfa933d66871cea7051e79bb97b69862f2ff00ae5298ec7":[11,0,0,0,21,0],
+"group__client.html#gga96f3dbad54b2853969cfa933d66871cea89866ab6a749aaa1684158c55f826b35":[11,0,0,0,21,2],
+"group__client.html#gga96f3dbad54b2853969cfa933d66871ceafc72c0ffbc7462bdddd4ce7bd99ac092":[11,0,0,0,21,1],
+"group__context-and-vhost.html":[9,4],
+"group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932":[9,4,8],
+"group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932":[11,0,0,0,94],
+"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[11,0,0,0,66],
+"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[9,4,7],
+"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[11,0,0,0,158],
+"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[9,4,14],
+"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[11,0,0,0,23],
+"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[9,4,3],
+"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[11,0,0,0,133],
+"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[9,4,11],
+"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[11,0,0,0,150],
+"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[9,4,12],
+"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[9,4,4],
+"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[11,0,0,0,63],
+"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[9,4,10],
+"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[11,0,0,0,108],
+"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[11,0,0,0,157],
+"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[9,4,13],
+"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[9,4,9],
+"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[11,0,0,0,107],
+"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[9,4,5],
+"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[11,0,0,0,64],
+"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[11,0,0,0,65],
+"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[9,4,6],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[11,0,0,0,23,8],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[9,4,3,8],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[11,0,0,0,23,2],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[9,4,3,2],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6":[11,0,0,0,23,3],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6":[9,4,3,3],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092":[11,0,0,0,23,0],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092":[9,4,3,0],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9":[11,0,0,0,23,4],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9":[9,4,3,4],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada":[11,0,0,0,23,10],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada":[9,4,3,10],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[11,0,0,0,23,5],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[9,4,3,5],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[11,0,0,0,23,1],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[9,4,3,1],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[11,0,0,0,23,11],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[9,4,3,11],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941":[11,0,0,0,23,13],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941":[9,4,3,13],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f":[11,0,0,0,23,7],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f":[9,4,3,7],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc":[11,0,0,0,23,6],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc":[9,4,3,6]
 };
diff --git a/doc/html/navtreeindex1.js b/doc/html/navtreeindex1.js
index b895bd67..f7b82c04 100644
--- a/doc/html/navtreeindex1.js
+++ b/doc/html/navtreeindex1.js
@@ -1,253 +1,253 @@
 var NAVTREEINDEX1 =
 {
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016":[9,0,0,0,23,14],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016":[7,4,3,14],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160":[9,0,0,0,23,16],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160":[7,4,3,16],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e":[9,0,0,0,23,12],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e":[7,4,3,12],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8":[9,0,0,0,23,15],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8":[7,4,3,15],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[9,0,0,0,23,9],
-"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[7,4,3,9],
-"group__ev.html":[7,21],
-"group__ev.html#ga3b0ffd4d2b4fa791c0fd75353a330208":[9,0,0,0,8],
-"group__ev.html#ga3fdd23ded693b21853356dc9eaef5ccc":[9,0,0,0,71],
-"group__ev.html#ga5caf14a420a2a0bd687a1fc952f8d64e":[9,0,0,0,73],
-"group__ev.html#gaabfc0880d6a98133550c61aa01ef3563":[9,0,0,0,72],
-"group__extensions.html":[7,5],
-"group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e":[7,5,6],
-"group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e":[9,0,0,0,75],
-"group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b":[7,5,5],
-"group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b":[9,0,0,0,74],
-"group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0":[9,0,0,0,9],
-"group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0":[7,5,3],
-"group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e":[9,0,0,0,25],
-"group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e":[7,5,4],
-"group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9":[7,5,7],
-"group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9":[9,0,0,0,131],
-"group__extensions.html#gae9993815eee72c6070300a0ae2f022d7":[9,0,0,0,26],
-"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e":[7,5,4,1],
-"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e":[9,0,0,0,25,1],
-"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880":[7,5,4,2],
-"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880":[9,0,0,0,25,2],
-"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c":[9,0,0,0,25,0],
-"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c":[7,5,4,0],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a05b74161bfab0f815d7fd47b85e20bfc":[9,0,0,0,26,9],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a0b220da55b7d7a9579175f1ec81579fb":[9,0,0,0,26,17],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a22a8130d0db03d62154d0502b1737a48":[9,0,0,0,26,22],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a246b82fadb41dc04cf4d40fd42987458":[9,0,0,0,26,19],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a25ceebb1ee06c2f0963b44165065efb9":[9,0,0,0,26,26],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a270b950562f97510ec06b02dbcbace11":[9,0,0,0,26,23],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a5a4cacc86ebddc8cb5a3f4ec91ba3fba":[9,0,0,0,26,12],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a648e8e3988ca8bdf20ddcfd2a14e3f10":[9,0,0,0,26,13],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a6cbdd5cfd6d39e3cacd4ca02e2ae54e3":[9,0,0,0,26,8],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a741d5d795895b192cbde6adbc851a822":[9,0,0,0,26,11],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a7fe88715ded486af17228050a1d05e90":[9,0,0,0,26,2],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a83dff5bb6cd4c6e0cc85cb12fb9c0178":[9,0,0,0,26,5],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a862b122e8f17a50f5ab6e7b56087c09c":[9,0,0,0,26,20],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a866a849e7d59a3a44c92ecdfb1393e4e":[9,0,0,0,26,0],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a8e4e3c201d029c8d78457fb4fdddef4a":[9,0,0,0,26,7],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa2901960832871f606354d58e58b6453":[9,0,0,0,26,4],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa4eb48182ed8bd10d257df5a8b154cc2":[9,0,0,0,26,24],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa6d94d15f31176a4e1214c4c31edd5f8":[9,0,0,0,26,18],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aaf81548db378fa156a7cf290abff87ad":[9,0,0,0,26,21],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abb36b02569c81df4509f58f964a8155b":[9,0,0,0,26,3],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abc92c2b16b0d54b3a9736e62a520a446":[9,0,0,0,26,10],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac2af19277affbbc731379ddfb38f820e":[9,0,0,0,26,16],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac5d7be02c676c836bb8ec448803dd606":[9,0,0,0,26,14],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad113e96df806fb20fd4f02dbe19e4f4b":[9,0,0,0,26,6],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad426ef79eec1b6e036118f64e6fa62f5":[9,0,0,0,26,25],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ae57bedd24d5a29f5f381f8155c2ab3b8":[9,0,0,0,26,15],
-"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7afa4a8739f6424c4dac3eead479628002":[9,0,0,0,26,1],
-"group__fops.html":[7,20],
-"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[7,20,1],
-"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[9,0,0,0,82],
-"group__form-parsing.html":[7,6,0],
-"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[7,6,0,2],
-"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[9,0,0,0,136],
-"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[7,6,0,6],
-"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[9,0,0,0,140],
-"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[9,0,0,0,139],
-"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[7,6,0,5],
-"group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae":[7,6,0,1],
-"group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae":[9,0,0,0,30],
-"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[7,6,0,0],
-"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[9,0,0,0,15],
-"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[7,6,0,4],
-"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[9,0,0,0,138],
-"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[7,6,0,7],
-"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[9,0,0,0,141],
-"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[9,0,0,0,137],
-"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[7,6,0,3],
-"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83":[7,6,0,1,2],
-"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83":[9,0,0,0,30,2],
-"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[7,6,0,1,1],
-"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[9,0,0,0,30,1],
-"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f":[7,6,0,1,0],
-"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f":[9,0,0,0,30,0],
-"group__generic-sessions.html":[7,10,0],
-"group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1":[7,10,0,5],
-"group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1":[9,0,0,0,33],
-"group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e":[7,10,0,4],
-"group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e":[9,0,0,0,27],
-"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf":[7,10,0,5,1],
-"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf":[9,0,0,0,33,1],
-"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a":[7,10,0,5,3],
-"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a":[9,0,0,0,33,3],
-"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887":[7,10,0,5,2],
-"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887":[9,0,0,0,33,2],
-"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57":[7,10,0,5,0],
-"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57":[9,0,0,0,33,0],
-"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308":[7,10,0,4,0],
-"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308":[9,0,0,0,27,0],
-"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde":[7,10,0,4,1],
-"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde":[9,0,0,0,27,1],
-"group__html-chunked-substitution.html":[7,6,1],
-"group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60":[7,6,1,2],
-"group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60":[9,0,0,0,58],
-"group__html-chunked-substitution.html#ga669d3d7ce2d5f193473f649a89b3e7ac":[9,0,0,0,13],
-"group__html-chunked-substitution.html#gabc3b93f68c8bdd857ad32913628dfa8d":[9,0,0,0,18],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da08107f6b0e1d7c9e2ca100700cc7200f":[9,0,0,0,18,22],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da145570ed1178d3d90ad9b7652fea83cf":[9,0,0,0,18,20],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da1558c42d80f54def5f3277dc879d2844":[9,0,0,0,18,11],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2637ec8a704c0d7fcb7ff8ce5d871be0":[9,0,0,0,18,19],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da299a2d262210540b593420fe89e01b32":[9,0,0,0,18,23],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2e57a633f7a2422f67bf207648519e30":[9,0,0,0,18,21],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da36b5bcf2059ae3c84a47e080822239c7":[9,0,0,0,18,13],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da40246e02220192ce8d7f86591ca1cfe4":[9,0,0,0,18,12],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da419c919f74b88d18803358141ab9471c":[9,0,0,0,18,8],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da49cf9c4c184f9e4d265ceae249e92477":[9,0,0,0,18,5],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da53df069872b37830e4296f32e7ec20d8":[9,0,0,0,18,3],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da63eb71a406e943d4634c357d60dd96df":[9,0,0,0,18,10],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da67278d96cfa0eb507535b94338810d65":[9,0,0,0,18,15],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da6964f9591ba7284dc4bd388d40c106a9":[9,0,0,0,18,14],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da9632802fcd318d1676be7589e6004e96":[9,0,0,0,18,2],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daafd60e3a2073e04b8f2247f8f9ac9710":[9,0,0,0,18,18],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab355dd546e62b1478fe3ef94b554f75c":[9,0,0,0,18,26],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab42dfcbd67b4e66096e3a8e924b6d6c9":[9,0,0,0,18,16],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac3d4da4de851d5c8f95748145b59716a":[9,0,0,0,18,17],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac96829d2c2cb76feb1549f0fac72c69e":[9,0,0,0,18,25],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac9c5b4e80aa858cfe2763656db1f16e3":[9,0,0,0,18,24],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad000a2e30c534c201201dd74fac8d2f9":[9,0,0,0,18,1],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad34cd21de350cd4fa83b8099e3993b91":[9,0,0,0,18,0],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad771b2a0ab88db11b2719c8e5086fb48":[9,0,0,0,18,6],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dadd02813da14cfdc7fe83029b8779ea4b":[9,0,0,0,18,28],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dae301c12d0cf56920659cb7b947a95267":[9,0,0,0,18,4],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daefdfc7b525c87b911d6e92a30e36cfec":[9,0,0,0,18,27],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daf06c31278cb67d7eec4b2b8157b9ad25":[9,0,0,0,18,9],
-"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dafac24097912a70f224166528ce44b83b":[9,0,0,0,18,7],
-"group__http.html":[7,6],
-"group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25":[7,6,7],
-"group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25":[9,0,0,0,100],
-"group__http.html#gac8a4a71240857dc6b2ed70456b6923f4":[7,6,9],
-"group__http.html#gac8a4a71240857dc6b2ed70456b6923f4":[9,0,0,0,120],
-"group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a":[7,6,8],
-"group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a":[9,0,0,0,101],
-"group__httpft.html":[7,6,2],
-"group__httpft.html#ga29e1123f6d56cd777b3e5bf9ca40f9e5":[9,0,0,0,125],
-"group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7":[7,6,2,1],
-"group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7":[9,0,0,0,124],
-"group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[7,6,2,0],
-"group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[9,0,0,0,84],
-"group__log.html":[7,7],
-"group__log.html#ga14542b84d2c76efa7814124bb10f9c5f":[9,0,0,0,28],
-"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[7,7,0],
-"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[9,0,0,0,132],
-"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[9,0,0,0,156],
-"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[7,7,3],
-"group__log.html#ga74eb146969f0595e12ea835851b4588e":[9,0,0,0,37],
-"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[9,0,0,0,155],
-"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[7,7,2],
-"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[9,0,0,0,154],
-"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[7,7,1],
-"group__log.html#gaf5f07837692b2f231a79da8a058288aa":[9,0,0,0,36],
-"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa083a44e71966a0e768426e477e1bc358":[9,0,0,0,28,8],
-"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa2be9c1d50d05756078e9abc72c9e50cc":[9,0,0,0,28,5],
-"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa52e5cd60bbb85f30ec0078a2c4be0c59":[9,0,0,0,28,3],
-"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa6353ac9650d35e8958981eebcb4b67a9":[9,0,0,0,28,7],
-"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faa12195bd6dd442763a8321c463a2c906":[9,0,0,0,28,1],
-"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faacc8fe5891eba3cf4537bee50eaaa8fa":[9,0,0,0,28,10],
-"group__log.html#gga14542b84d2c76efa7814124bb10f9c5facef27c02b70f1bc9140685bdfafe0942":[9,0,0,0,28,6],
-"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad0b18841adbb4792c39981ec05702744":[9,0,0,0,28,4],
-"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad40a82f6c94e6408dd003cf3f0231212":[9,0,0,0,28,2],
-"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fae4235ca28326353e283bc7dd1b39bd86":[9,0,0,0,28,9],
-"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faff4895280366d59ef0c5e9f4578241af":[9,0,0,0,28,0],
-"group__misc.html":[7,8],
-"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[7,8,2],
-"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[9,0,0,0,80],
-"group__misc.html#ga0e705d498e8c8500649a26ba30a1e106":[9,0,0,0,118],
-"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[9,0,0,0,113],
-"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[7,8,8],
-"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[7,8,7],
-"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[9,0,0,0,112],
-"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[7,8,6],
-"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[9,0,0,0,90],
-"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[7,8,3],
-"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[9,0,0,0,81],
-"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[7,8,5],
-"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[9,0,0,0,85],
-"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[9,0,0,0,153],
-"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[7,8,10],
-"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[7,8,9],
-"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[9,0,0,0,130],
-"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[7,8,4],
-"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[9,0,0,0,83],
-"group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234":[7,8,1],
-"group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234":[9,0,0,0,79],
-"group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af":[7,8,0],
-"group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af":[9,0,0,0,67],
-"group__net.html":[7,9],
-"group__net.html#ga092e5f473b3347f03ffeef8a950080f3":[7,9,1],
-"group__net.html#ga092e5f473b3347f03ffeef8a950080f3":[9,0,0,0,86],
-"group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8":[7,9,3],
-"group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8":[9,0,0,0,103],
-"group__net.html#gad01014fed09759741b6d23afccfdaacc":[7,9,2],
-"group__net.html#gad01014fed09759741b6d23afccfdaacc":[9,0,0,0,87],
-"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[7,9,0],
-"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[9,0,0,0,54],
-"group__pur.html":[7,12],
-"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[9,0,0,0,142],
-"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[7,12,1],
-"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[7,12,0],
-"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[9,0,0,0,109],
-"group__sending-data.html":[7,13],
-"group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d":[7,13,0],
-"group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d":[9,0,0,0,32],
-"group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001":[9,0,0,0,152],
-"group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001":[7,13,1],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826":[7,13,0,2],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826":[9,0,0,0,32,2],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3":[7,13,0,5],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3":[9,0,0,0,32,8],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce":[7,13,0,6],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce":[9,0,0,0,32,9],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da6e556322ff8f205bf311608f7f6e6559":[9,0,0,0,32,4],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db":[7,13,0,0],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db":[9,0,0,0,32,0],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dab7e7a62cf6f456c09c21dff24dad9039":[9,0,0,0,32,5],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[7,13,0,3],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[9,0,0,0,32,3],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dae7d8a025a65524652fe9e24c2654c935":[9,0,0,0,32,6],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[7,13,0,1],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[9,0,0,0,32,1],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917":[7,13,0,4],
-"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917":[9,0,0,0,32,7],
-"group__service.html":[7,0],
-"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[7,0,1],
-"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[9,0,0,0,53],
-"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[7,0,0],
-"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[9,0,0,0,52],
-"group__service.html#ga9b3cc4473fd8848e5bbee7f310712939":[7,0,5],
-"group__service.html#ga9b3cc4473fd8848e5bbee7f310712939":[9,0,0,0,129],
-"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[7,0,3],
-"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[9,0,0,0,127],
-"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[7,0,4],
-"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[9,0,0,0,128],
-"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[7,0,2],
-"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[9,0,0,0,126],
-"group__sha.html":[7,11],
-"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[7,11,0],
-"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[9,0,0,0,44],
-"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[9,0,0,0,135]
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016":[11,0,0,0,23,14],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016":[9,4,3,14],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160":[11,0,0,0,23,16],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160":[9,4,3,16],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e":[11,0,0,0,23,12],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e":[9,4,3,12],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8":[11,0,0,0,23,15],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8":[9,4,3,15],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[11,0,0,0,23,9],
+"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[9,4,3,9],
+"group__ev.html":[9,21],
+"group__ev.html#ga3b0ffd4d2b4fa791c0fd75353a330208":[11,0,0,0,8],
+"group__ev.html#ga3fdd23ded693b21853356dc9eaef5ccc":[11,0,0,0,71],
+"group__ev.html#ga5caf14a420a2a0bd687a1fc952f8d64e":[11,0,0,0,73],
+"group__ev.html#gaabfc0880d6a98133550c61aa01ef3563":[11,0,0,0,72],
+"group__extensions.html":[9,5],
+"group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e":[9,5,6],
+"group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e":[11,0,0,0,75],
+"group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b":[9,5,5],
+"group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b":[11,0,0,0,74],
+"group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0":[9,5,3],
+"group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0":[11,0,0,0,9],
+"group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e":[9,5,4],
+"group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e":[11,0,0,0,25],
+"group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9":[9,5,7],
+"group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9":[11,0,0,0,131],
+"group__extensions.html#gae9993815eee72c6070300a0ae2f022d7":[11,0,0,0,26],
+"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e":[9,5,4,1],
+"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e":[11,0,0,0,25,1],
+"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880":[9,5,4,2],
+"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880":[11,0,0,0,25,2],
+"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c":[9,5,4,0],
+"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c":[11,0,0,0,25,0],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a05b74161bfab0f815d7fd47b85e20bfc":[11,0,0,0,26,9],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a0b220da55b7d7a9579175f1ec81579fb":[11,0,0,0,26,17],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a22a8130d0db03d62154d0502b1737a48":[11,0,0,0,26,22],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a246b82fadb41dc04cf4d40fd42987458":[11,0,0,0,26,19],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a25ceebb1ee06c2f0963b44165065efb9":[11,0,0,0,26,26],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a270b950562f97510ec06b02dbcbace11":[11,0,0,0,26,23],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a5a4cacc86ebddc8cb5a3f4ec91ba3fba":[11,0,0,0,26,12],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a648e8e3988ca8bdf20ddcfd2a14e3f10":[11,0,0,0,26,13],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a6cbdd5cfd6d39e3cacd4ca02e2ae54e3":[11,0,0,0,26,8],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a741d5d795895b192cbde6adbc851a822":[11,0,0,0,26,11],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a7fe88715ded486af17228050a1d05e90":[11,0,0,0,26,2],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a83dff5bb6cd4c6e0cc85cb12fb9c0178":[11,0,0,0,26,5],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a862b122e8f17a50f5ab6e7b56087c09c":[11,0,0,0,26,20],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a866a849e7d59a3a44c92ecdfb1393e4e":[11,0,0,0,26,0],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a8e4e3c201d029c8d78457fb4fdddef4a":[11,0,0,0,26,7],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa2901960832871f606354d58e58b6453":[11,0,0,0,26,4],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa4eb48182ed8bd10d257df5a8b154cc2":[11,0,0,0,26,24],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa6d94d15f31176a4e1214c4c31edd5f8":[11,0,0,0,26,18],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aaf81548db378fa156a7cf290abff87ad":[11,0,0,0,26,21],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abb36b02569c81df4509f58f964a8155b":[11,0,0,0,26,3],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abc92c2b16b0d54b3a9736e62a520a446":[11,0,0,0,26,10],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac2af19277affbbc731379ddfb38f820e":[11,0,0,0,26,16],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac5d7be02c676c836bb8ec448803dd606":[11,0,0,0,26,14],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad113e96df806fb20fd4f02dbe19e4f4b":[11,0,0,0,26,6],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad426ef79eec1b6e036118f64e6fa62f5":[11,0,0,0,26,25],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ae57bedd24d5a29f5f381f8155c2ab3b8":[11,0,0,0,26,15],
+"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7afa4a8739f6424c4dac3eead479628002":[11,0,0,0,26,1],
+"group__fops.html":[9,20],
+"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[9,20,1],
+"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[11,0,0,0,82],
+"group__form-parsing.html":[9,6,0],
+"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[11,0,0,0,136],
+"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[9,6,0,2],
+"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[11,0,0,0,140],
+"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[9,6,0,6],
+"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[11,0,0,0,139],
+"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[9,6,0,5],
+"group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae":[9,6,0,1],
+"group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae":[11,0,0,0,30],
+"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[9,6,0,0],
+"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[11,0,0,0,15],
+"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[11,0,0,0,138],
+"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[9,6,0,4],
+"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[11,0,0,0,141],
+"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[9,6,0,7],
+"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[11,0,0,0,137],
+"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[9,6,0,3],
+"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83":[9,6,0,1,2],
+"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83":[11,0,0,0,30,2],
+"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[9,6,0,1,1],
+"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[11,0,0,0,30,1],
+"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f":[9,6,0,1,0],
+"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f":[11,0,0,0,30,0],
+"group__generic-sessions.html":[9,10,0],
+"group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1":[9,10,0,5],
+"group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1":[11,0,0,0,33],
+"group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e":[9,10,0,4],
+"group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e":[11,0,0,0,27],
+"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf":[9,10,0,5,1],
+"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf":[11,0,0,0,33,1],
+"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a":[9,10,0,5,3],
+"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a":[11,0,0,0,33,3],
+"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887":[9,10,0,5,2],
+"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887":[11,0,0,0,33,2],
+"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57":[9,10,0,5,0],
+"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57":[11,0,0,0,33,0],
+"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308":[9,10,0,4,0],
+"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308":[11,0,0,0,27,0],
+"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde":[9,10,0,4,1],
+"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde":[11,0,0,0,27,1],
+"group__html-chunked-substitution.html":[9,6,1],
+"group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60":[9,6,1,2],
+"group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60":[11,0,0,0,58],
+"group__html-chunked-substitution.html#ga669d3d7ce2d5f193473f649a89b3e7ac":[11,0,0,0,13],
+"group__html-chunked-substitution.html#gabc3b93f68c8bdd857ad32913628dfa8d":[11,0,0,0,18],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da08107f6b0e1d7c9e2ca100700cc7200f":[11,0,0,0,18,22],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da145570ed1178d3d90ad9b7652fea83cf":[11,0,0,0,18,20],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da1558c42d80f54def5f3277dc879d2844":[11,0,0,0,18,11],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2637ec8a704c0d7fcb7ff8ce5d871be0":[11,0,0,0,18,19],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da299a2d262210540b593420fe89e01b32":[11,0,0,0,18,23],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2e57a633f7a2422f67bf207648519e30":[11,0,0,0,18,21],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da36b5bcf2059ae3c84a47e080822239c7":[11,0,0,0,18,13],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da40246e02220192ce8d7f86591ca1cfe4":[11,0,0,0,18,12],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da419c919f74b88d18803358141ab9471c":[11,0,0,0,18,8],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da49cf9c4c184f9e4d265ceae249e92477":[11,0,0,0,18,5],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da53df069872b37830e4296f32e7ec20d8":[11,0,0,0,18,3],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da63eb71a406e943d4634c357d60dd96df":[11,0,0,0,18,10],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da67278d96cfa0eb507535b94338810d65":[11,0,0,0,18,15],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da6964f9591ba7284dc4bd388d40c106a9":[11,0,0,0,18,14],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da9632802fcd318d1676be7589e6004e96":[11,0,0,0,18,2],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daafd60e3a2073e04b8f2247f8f9ac9710":[11,0,0,0,18,18],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab355dd546e62b1478fe3ef94b554f75c":[11,0,0,0,18,26],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab42dfcbd67b4e66096e3a8e924b6d6c9":[11,0,0,0,18,16],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac3d4da4de851d5c8f95748145b59716a":[11,0,0,0,18,17],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac96829d2c2cb76feb1549f0fac72c69e":[11,0,0,0,18,25],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac9c5b4e80aa858cfe2763656db1f16e3":[11,0,0,0,18,24],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad000a2e30c534c201201dd74fac8d2f9":[11,0,0,0,18,1],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad34cd21de350cd4fa83b8099e3993b91":[11,0,0,0,18,0],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad771b2a0ab88db11b2719c8e5086fb48":[11,0,0,0,18,6],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dadd02813da14cfdc7fe83029b8779ea4b":[11,0,0,0,18,28],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dae301c12d0cf56920659cb7b947a95267":[11,0,0,0,18,4],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daefdfc7b525c87b911d6e92a30e36cfec":[11,0,0,0,18,27],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daf06c31278cb67d7eec4b2b8157b9ad25":[11,0,0,0,18,9],
+"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dafac24097912a70f224166528ce44b83b":[11,0,0,0,18,7],
+"group__http.html":[9,6],
+"group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25":[9,6,7],
+"group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25":[11,0,0,0,100],
+"group__http.html#gac8a4a71240857dc6b2ed70456b6923f4":[9,6,9],
+"group__http.html#gac8a4a71240857dc6b2ed70456b6923f4":[11,0,0,0,120],
+"group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a":[9,6,8],
+"group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a":[11,0,0,0,101],
+"group__httpft.html":[9,6,2],
+"group__httpft.html#ga29e1123f6d56cd777b3e5bf9ca40f9e5":[11,0,0,0,125],
+"group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7":[9,6,2,1],
+"group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7":[11,0,0,0,124],
+"group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[9,6,2,0],
+"group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[11,0,0,0,84],
+"group__log.html":[9,7],
+"group__log.html#ga14542b84d2c76efa7814124bb10f9c5f":[11,0,0,0,28],
+"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[11,0,0,0,132],
+"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[9,7,0],
+"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[11,0,0,0,156],
+"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[9,7,3],
+"group__log.html#ga74eb146969f0595e12ea835851b4588e":[11,0,0,0,37],
+"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[11,0,0,0,155],
+"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[9,7,2],
+"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[11,0,0,0,154],
+"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[9,7,1],
+"group__log.html#gaf5f07837692b2f231a79da8a058288aa":[11,0,0,0,36],
+"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa083a44e71966a0e768426e477e1bc358":[11,0,0,0,28,8],
+"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa2be9c1d50d05756078e9abc72c9e50cc":[11,0,0,0,28,5],
+"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa52e5cd60bbb85f30ec0078a2c4be0c59":[11,0,0,0,28,3],
+"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa6353ac9650d35e8958981eebcb4b67a9":[11,0,0,0,28,7],
+"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faa12195bd6dd442763a8321c463a2c906":[11,0,0,0,28,1],
+"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faacc8fe5891eba3cf4537bee50eaaa8fa":[11,0,0,0,28,10],
+"group__log.html#gga14542b84d2c76efa7814124bb10f9c5facef27c02b70f1bc9140685bdfafe0942":[11,0,0,0,28,6],
+"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad0b18841adbb4792c39981ec05702744":[11,0,0,0,28,4],
+"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad40a82f6c94e6408dd003cf3f0231212":[11,0,0,0,28,2],
+"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fae4235ca28326353e283bc7dd1b39bd86":[11,0,0,0,28,9],
+"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faff4895280366d59ef0c5e9f4578241af":[11,0,0,0,28,0],
+"group__misc.html":[9,8],
+"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[9,8,2],
+"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[11,0,0,0,80],
+"group__misc.html#ga0e705d498e8c8500649a26ba30a1e106":[11,0,0,0,118],
+"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[9,8,8],
+"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[11,0,0,0,113],
+"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[9,8,7],
+"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[11,0,0,0,112],
+"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[9,8,6],
+"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[11,0,0,0,90],
+"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[9,8,3],
+"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[11,0,0,0,81],
+"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[9,8,5],
+"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[11,0,0,0,85],
+"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[11,0,0,0,153],
+"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[9,8,10],
+"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[9,8,9],
+"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[11,0,0,0,130],
+"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[9,8,4],
+"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[11,0,0,0,83],
+"group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234":[9,8,1],
+"group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234":[11,0,0,0,79],
+"group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af":[9,8,0],
+"group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af":[11,0,0,0,67],
+"group__net.html":[9,9],
+"group__net.html#ga092e5f473b3347f03ffeef8a950080f3":[9,9,1],
+"group__net.html#ga092e5f473b3347f03ffeef8a950080f3":[11,0,0,0,86],
+"group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8":[9,9,3],
+"group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8":[11,0,0,0,103],
+"group__net.html#gad01014fed09759741b6d23afccfdaacc":[9,9,2],
+"group__net.html#gad01014fed09759741b6d23afccfdaacc":[11,0,0,0,87],
+"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[9,9,0],
+"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[11,0,0,0,54],
+"group__pur.html":[9,12],
+"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[11,0,0,0,142],
+"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[9,12,1],
+"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[9,12,0],
+"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[11,0,0,0,109],
+"group__sending-data.html":[9,13],
+"group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d":[9,13,0],
+"group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d":[11,0,0,0,32],
+"group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001":[11,0,0,0,152],
+"group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001":[9,13,1],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826":[9,13,0,2],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826":[11,0,0,0,32,2],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3":[9,13,0,5],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3":[11,0,0,0,32,8],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce":[11,0,0,0,32,9],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce":[9,13,0,6],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da6e556322ff8f205bf311608f7f6e6559":[11,0,0,0,32,4],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db":[9,13,0,0],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db":[11,0,0,0,32,0],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dab7e7a62cf6f456c09c21dff24dad9039":[11,0,0,0,32,5],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[9,13,0,3],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[11,0,0,0,32,3],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dae7d8a025a65524652fe9e24c2654c935":[11,0,0,0,32,6],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[9,13,0,1],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[11,0,0,0,32,1],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917":[9,13,0,4],
+"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917":[11,0,0,0,32,7],
+"group__service.html":[9,0],
+"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[9,0,1],
+"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[11,0,0,0,53],
+"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[9,0,0],
+"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[11,0,0,0,52],
+"group__service.html#ga9b3cc4473fd8848e5bbee7f310712939":[11,0,0,0,129],
+"group__service.html#ga9b3cc4473fd8848e5bbee7f310712939":[9,0,5],
+"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[9,0,3],
+"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[11,0,0,0,127],
+"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[9,0,4],
+"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[11,0,0,0,128],
+"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[11,0,0,0,126],
+"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[9,0,2],
+"group__sha.html":[9,11],
+"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[11,0,0,0,44],
+"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[9,11,0],
+"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[11,0,0,0,135]
 };
diff --git a/doc/html/navtreeindex2.js b/doc/html/navtreeindex2.js
index ee0f0af3..9546a95b 100644
--- a/doc/html/navtreeindex2.js
+++ b/doc/html/navtreeindex2.js
@@ -1,253 +1,253 @@
 var NAVTREEINDEX2 =
 {
-"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[7,11,2],
-"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[7,11,1],
-"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[9,0,0,0,45],
-"group__smtp.html":[7,14],
-"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[7,14,1],
-"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[9,0,0,0,34],
-"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[7,14,3],
-"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[9,0,0,0,69],
-"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[7,14,2],
-"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[9,0,0,0,68],
-"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[9,0,0,0,70],
-"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[7,14,4],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad":[7,14,1,3],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad":[9,0,0,0,34,3],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c":[9,0,0,0,34,0],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c":[7,14,1,0],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5":[7,14,1,8],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5":[9,0,0,0,34,8],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69":[7,14,1,7],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69":[9,0,0,0,34,7],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[7,14,1,6],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[9,0,0,0,34,6],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[9,0,0,0,34,4],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[7,14,1,4],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[9,0,0,0,34,5],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[7,14,1,5],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[7,14,1,2],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[9,0,0,0,34,2],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[9,0,0,0,34,1],
-"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[7,14,1,1],
-"group__sock-adopt.html":[7,15],
-"group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b":[9,0,0,0,43],
-"group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b":[7,15,1],
-"group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af":[9,0,0,0,42],
-"group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af":[7,15,0],
-"group__timeout.html":[7,3],
-"group__timeout.html#ga2c0aa4b9c3c55bae7b35cbfac3246c87":[9,0,0,0,35],
-"group__timeout.html#gaced9f9237f6172fed9f730a2af51345a":[7,3,0],
-"group__timeout.html#gaced9f9237f6172fed9f730a2af51345a":[9,0,0,0,134],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0d6b956db11acb6d263af3ea054a914e":[9,0,0,0,35,12],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0eef059426f37d00b75142d4dc3e25e3":[9,0,0,0,35,3],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a1104c39d0177378713a9332ab7a9d7fe":[9,0,0,0,35,4],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a11292263c9eccd090294e7e316200d7f":[9,0,0,0,35,13],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a13527b2b1f61d9b2709eb432acd0a248":[9,0,0,0,35,7],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a211dd9910c37aa3a3a45fd532c76bf6e":[9,0,0,0,35,5],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a44feda6cc9507a8613b9263b1acc8ce1":[9,0,0,0,35,8],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a52236b42ec5ffe65d4cdbadeb6c4fcb0":[9,0,0,0,35,2],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a5fe48ea6f3f5363cca55d39b78490b45":[9,0,0,0,35,15],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a65785467c0b560bead865231fdd405d7":[9,0,0,0,35,0],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a73f61afae387e16f7ab8a4f299aca8d2":[9,0,0,0,35,14],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a7d5b3bcc88ccbddfa57674e174a78c2d":[9,0,0,0,35,9],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87aaf69f440c2e000787efae5ad6f39e74c":[9,0,0,0,35,11],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ab20463ee983bcd68cd8a501319da56d3":[9,0,0,0,35,6],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ad7ebebb506afd30c48e1e5e3a578cd30":[9,0,0,0,35,1],
-"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ae8b3de955cec5da5ea52fe040f914501":[9,0,0,0,35,10],
-"group__urlendec.html":[7,6,5],
-"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[9,0,0,0,144],
-"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[7,6,5,0],
-"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[9,0,0,0,145],
-"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[7,6,5,1],
-"group__usercb.html":[7,16],
-"group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f":[9,0,0,0,7],
-"group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f":[7,16,0],
-"group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7":[9,0,0,0,19],
-"group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7":[7,16,1],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6":[9,0,0,0,19,17],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6":[7,16,1,17],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0418587d5083bb4850faa438648496ba":[9,0,0,0,19,49],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493":[9,0,0,0,19,22],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493":[7,16,1,22],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79":[9,0,0,0,19,36],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79":[7,16,1,36],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9":[9,0,0,0,19,9],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9":[7,16,1,9],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a182a4a14c3278784505cea6d516a8308":[9,0,0,0,19,47],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46":[9,0,0,0,19,26],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46":[7,16,1,26],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768":[9,0,0,0,19,33],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768":[7,16,1,33],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a23b90b5e5146e760bc3123ae1fd2a6e5":[9,0,0,0,19,40],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[7,16,1,0],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[9,0,0,0,19,0],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[9,0,0,0,19,7],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[7,16,1,7],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[9,0,0,0,19,14],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[7,16,1,14],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[9,0,0,0,19,25],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[7,16,1,25],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a45d538082dec32dbecfe9d9a05ddfecd":[9,0,0,0,19,50],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8":[9,0,0,0,19,4],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8":[7,16,1,4],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c":[9,0,0,0,19,6],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c":[7,16,1,6],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa":[9,0,0,0,19,28],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa":[7,16,1,28],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a659539cfa65c66e0d813113b09900d31":[9,0,0,0,19,42],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a6a09ee9c01c4a233aedbe6697e29cc01":[9,0,0,0,19,44],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c":[9,0,0,0,19,18],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c":[7,16,1,18],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[9,0,0,0,19,3],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[7,16,1,3],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[9,0,0,0,19,11],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[7,16,1,11],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[7,16,1,5],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[9,0,0,0,19,5],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[9,0,0,0,19,35],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[7,16,1,35],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a89862929a72bff65257ca1d51a0fce4d":[9,0,0,0,19,52],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514":[9,0,0,0,19,10],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514":[7,16,1,10],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f":[9,0,0,0,19,24],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f":[7,16,1,24],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[9,0,0,0,19,56],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[7,16,1,39],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[9,0,0,0,19,37],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[7,16,1,37],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[9,0,0,0,19,2],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[7,16,1,2],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[9,0,0,0,19,15],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[7,16,1,15],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e":[9,0,0,0,19,34],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e":[7,16,1,34],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aaffd08a5cae791c9f3c38ee242203900":[9,0,0,0,19,46],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412":[7,16,1,32],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412":[9,0,0,0,19,32],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab884f3d5f8a6126a0d34c0172f5e3725":[9,0,0,0,19,53],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1":[9,0,0,0,19,8],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1":[7,16,1,8],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abcf9c720cd3d361a83d1ac65bf052a25":[9,0,0,0,19,39],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac11c336f7052abf3618962902a71ebc8":[9,0,0,0,19,54],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51":[9,0,0,0,19,38],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51":[7,16,1,38],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac432e9f891c733ba8f968c1bf57c0ddc":[9,0,0,0,19,45],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae":[9,0,0,0,19,13],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae":[7,16,1,13],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac8c0ae966ef1877e0020c0077ff2e4a4":[9,0,0,0,19,41],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e":[9,0,0,0,19,30],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e":[7,16,1,30],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d":[9,0,0,0,19,20],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d":[7,16,1,20],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49":[9,0,0,0,19,27],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49":[7,16,1,27],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad724974204d51d688f569c5d387b967d":[9,0,0,0,19,43],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad87774f1c7784cf632e1e2f5b51036e1":[9,0,0,0,19,48],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[9,0,0,0,19,1],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[7,16,1,1],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[9,0,0,0,19,31],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[7,16,1,31],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[9,0,0,0,19,21],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[7,16,1,21],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac":[7,16,1,23],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac":[9,0,0,0,19,23],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[9,0,0,0,19,12],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[7,16,1,12],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[9,0,0,0,19,19],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[7,16,1,19],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7af6cf80e57aae8ba0a57a5c456b1fe026":[9,0,0,0,19,55],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afc4b2f72cc9e424a750b506ce0cc4310":[9,0,0,0,19,51],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[9,0,0,0,19,29],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[7,16,1,29],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09":[7,16,1,16],
-"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09":[9,0,0,0,19,16],
-"group__uv.html":[7,22],
-"group__uv.html#ga097c89497824d4de225a85a00661fc89":[9,0,0,0,110],
-"group__uv.html#ga3c75cd6ec3f80fc0a0c8ead4c4e71a15":[9,0,0,0,111],
-"group__uv.html#ga99099e045993383f251a8026e1e40414":[9,0,0,0,149],
-"group__uv.html#gaa5e3593c94f91910d9d928dfa0c18f6c":[9,0,0,0,146],
-"group__uv.html#gac5f60dba13a45e5d554b4fb7df7b9610":[9,0,0,0,148],
-"group__uv.html#gad85ce3bfc53ff754988d36bf5de39e21":[9,0,0,0,147],
-"group__vhost-mounts.html":[7,4,0],
-"group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437":[7,4,0,2],
-"group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437":[9,0,0,0,29],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[9,0,0,0,29,3],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[7,4,0,2,3],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[7,4,0,2,0],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[9,0,0,0,29,0],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[7,4,0,2,2],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[9,0,0,0,29,2],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67":[9,0,0,0,29,5],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67":[7,4,0,2,5],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da":[9,0,0,0,29,6],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da":[7,4,0,2,6],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970":[9,0,0,0,29,4],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970":[7,4,0,2,4],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1":[7,4,0,2,1],
-"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1":[9,0,0,0,29,1],
-"group__wsclose.html":[7,17],
-"group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262":[9,0,0,0,62],
-"group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262":[7,17,1],
-"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[9,0,0,0,22],
-"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[7,17,0],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[9,0,0,0,22,3],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[7,17,0,2],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[9,0,0,0,22,10],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[7,17,0,9],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a32c38edab10d1379febac0c479ab2e9c":[9,0,0,0,22,14],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[9,0,0,0,22,1],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[7,17,0,0],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276":[9,0,0,0,22,4],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276":[7,17,0,3],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044":[9,0,0,0,22,6],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044":[7,17,0,5],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[9,0,0,0,22,7],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[7,17,0,6],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[9,0,0,0,22,8],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[7,17,0,7],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[9,0,0,0,22,2],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[7,17,0,1],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[7,17,0,10],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[9,0,0,0,22,11],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985acc9a317c70363dd88e823e066b2c73b7":[9,0,0,0,22,0],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[9,0,0,0,22,12],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[7,17,0,11],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[9,0,0,0,22,9],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[7,17,0,8],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[7,17,0,12],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[9,0,0,0,22,13],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[9,0,0,0,22,5],
-"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[7,17,0,4],
-"group__wsstatus.html":[7,18],
-"group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37":[9,0,0,0,105],
-"group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37":[7,18,3],
-"group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[7,18,4],
-"group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[9,0,0,0,106],
-"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[7,18,6],
-"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[9,0,0,0,123],
-"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[7,18,1],
-"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[9,0,0,0,91],
-"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[9,0,0,0,104],
-"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[7,18,2],
-"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[9,0,0,0,78],
-"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[7,18,0],
-"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[7,18,5],
-"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[9,0,0,0,114],
-"hierarchy.html":[8,2],
+"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[9,11,2],
+"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[9,11,1],
+"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[11,0,0,0,45],
+"group__smtp.html":[9,14],
+"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[9,14,1],
+"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[11,0,0,0,34],
+"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[9,14,3],
+"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[11,0,0,0,69],
+"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[9,14,2],
+"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[11,0,0,0,68],
+"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[11,0,0,0,70],
+"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[9,14,4],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad":[9,14,1,3],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad":[11,0,0,0,34,3],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c":[9,14,1,0],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c":[11,0,0,0,34,0],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5":[9,14,1,8],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5":[11,0,0,0,34,8],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69":[11,0,0,0,34,7],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69":[9,14,1,7],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[11,0,0,0,34,6],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[9,14,1,6],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[9,14,1,4],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[11,0,0,0,34,4],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[11,0,0,0,34,5],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[9,14,1,5],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[9,14,1,2],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[11,0,0,0,34,2],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[9,14,1,1],
+"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[11,0,0,0,34,1],
+"group__sock-adopt.html":[9,15],
+"group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b":[9,15,1],
+"group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b":[11,0,0,0,43],
+"group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af":[11,0,0,0,42],
+"group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af":[9,15,0],
+"group__timeout.html":[9,3],
+"group__timeout.html#ga2c0aa4b9c3c55bae7b35cbfac3246c87":[11,0,0,0,35],
+"group__timeout.html#gaced9f9237f6172fed9f730a2af51345a":[11,0,0,0,134],
+"group__timeout.html#gaced9f9237f6172fed9f730a2af51345a":[9,3,0],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0d6b956db11acb6d263af3ea054a914e":[11,0,0,0,35,12],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0eef059426f37d00b75142d4dc3e25e3":[11,0,0,0,35,3],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a1104c39d0177378713a9332ab7a9d7fe":[11,0,0,0,35,4],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a11292263c9eccd090294e7e316200d7f":[11,0,0,0,35,13],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a13527b2b1f61d9b2709eb432acd0a248":[11,0,0,0,35,7],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a211dd9910c37aa3a3a45fd532c76bf6e":[11,0,0,0,35,5],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a44feda6cc9507a8613b9263b1acc8ce1":[11,0,0,0,35,8],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a52236b42ec5ffe65d4cdbadeb6c4fcb0":[11,0,0,0,35,2],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a5fe48ea6f3f5363cca55d39b78490b45":[11,0,0,0,35,15],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a65785467c0b560bead865231fdd405d7":[11,0,0,0,35,0],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a73f61afae387e16f7ab8a4f299aca8d2":[11,0,0,0,35,14],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a7d5b3bcc88ccbddfa57674e174a78c2d":[11,0,0,0,35,9],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87aaf69f440c2e000787efae5ad6f39e74c":[11,0,0,0,35,11],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ab20463ee983bcd68cd8a501319da56d3":[11,0,0,0,35,6],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ad7ebebb506afd30c48e1e5e3a578cd30":[11,0,0,0,35,1],
+"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ae8b3de955cec5da5ea52fe040f914501":[11,0,0,0,35,10],
+"group__urlendec.html":[9,6,5],
+"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[11,0,0,0,144],
+"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[9,6,5,0],
+"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[11,0,0,0,145],
+"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[9,6,5,1],
+"group__usercb.html":[9,16],
+"group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f":[11,0,0,0,7],
+"group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f":[9,16,0],
+"group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7":[9,16,1],
+"group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7":[11,0,0,0,19],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6":[11,0,0,0,19,17],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6":[9,16,1,17],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0418587d5083bb4850faa438648496ba":[11,0,0,0,19,49],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493":[11,0,0,0,19,22],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493":[9,16,1,22],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79":[11,0,0,0,19,36],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79":[9,16,1,36],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9":[11,0,0,0,19,9],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9":[9,16,1,9],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a182a4a14c3278784505cea6d516a8308":[11,0,0,0,19,47],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46":[11,0,0,0,19,26],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46":[9,16,1,26],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768":[11,0,0,0,19,33],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768":[9,16,1,33],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a23b90b5e5146e760bc3123ae1fd2a6e5":[11,0,0,0,19,40],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[11,0,0,0,19,0],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[9,16,1,0],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[9,16,1,7],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[11,0,0,0,19,7],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[11,0,0,0,19,14],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[9,16,1,14],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[11,0,0,0,19,25],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[9,16,1,25],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a45d538082dec32dbecfe9d9a05ddfecd":[11,0,0,0,19,50],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8":[11,0,0,0,19,4],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8":[9,16,1,4],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c":[11,0,0,0,19,6],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c":[9,16,1,6],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa":[11,0,0,0,19,28],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa":[9,16,1,28],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a659539cfa65c66e0d813113b09900d31":[11,0,0,0,19,42],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a6a09ee9c01c4a233aedbe6697e29cc01":[11,0,0,0,19,44],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c":[11,0,0,0,19,18],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c":[9,16,1,18],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[11,0,0,0,19,3],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[9,16,1,3],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[11,0,0,0,19,11],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[9,16,1,11],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[11,0,0,0,19,5],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[9,16,1,5],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[11,0,0,0,19,35],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[9,16,1,35],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a89862929a72bff65257ca1d51a0fce4d":[11,0,0,0,19,52],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514":[11,0,0,0,19,10],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514":[9,16,1,10],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f":[11,0,0,0,19,24],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f":[9,16,1,24],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[11,0,0,0,19,57],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[9,16,1,40],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[11,0,0,0,19,37],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[9,16,1,37],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[11,0,0,0,19,2],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[9,16,1,2],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a":[11,0,0,0,19,56],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a":[9,16,1,39],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[11,0,0,0,19,15],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[9,16,1,15],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e":[11,0,0,0,19,34],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e":[9,16,1,34],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aaffd08a5cae791c9f3c38ee242203900":[11,0,0,0,19,46],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412":[11,0,0,0,19,32],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412":[9,16,1,32],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab884f3d5f8a6126a0d34c0172f5e3725":[11,0,0,0,19,53],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1":[9,16,1,8],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1":[11,0,0,0,19,8],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abcf9c720cd3d361a83d1ac65bf052a25":[11,0,0,0,19,39],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac11c336f7052abf3618962902a71ebc8":[11,0,0,0,19,54],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51":[11,0,0,0,19,38],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51":[9,16,1,38],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac432e9f891c733ba8f968c1bf57c0ddc":[11,0,0,0,19,45],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae":[11,0,0,0,19,13],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae":[9,16,1,13],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac8c0ae966ef1877e0020c0077ff2e4a4":[11,0,0,0,19,41],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e":[9,16,1,30],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e":[11,0,0,0,19,30],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d":[11,0,0,0,19,20],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d":[9,16,1,20],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49":[11,0,0,0,19,27],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49":[9,16,1,27],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad724974204d51d688f569c5d387b967d":[11,0,0,0,19,43],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad87774f1c7784cf632e1e2f5b51036e1":[11,0,0,0,19,48],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[11,0,0,0,19,1],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[9,16,1,1],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[11,0,0,0,19,31],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[9,16,1,31],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[11,0,0,0,19,21],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[9,16,1,21],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac":[11,0,0,0,19,23],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac":[9,16,1,23],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[9,16,1,12],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[11,0,0,0,19,12],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[11,0,0,0,19,19],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[9,16,1,19],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7af6cf80e57aae8ba0a57a5c456b1fe026":[11,0,0,0,19,55],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afc4b2f72cc9e424a750b506ce0cc4310":[11,0,0,0,19,51],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[11,0,0,0,19,29],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[9,16,1,29],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09":[9,16,1,16],
+"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09":[11,0,0,0,19,16],
+"group__uv.html":[9,22],
+"group__uv.html#ga097c89497824d4de225a85a00661fc89":[11,0,0,0,110],
+"group__uv.html#ga3c75cd6ec3f80fc0a0c8ead4c4e71a15":[11,0,0,0,111],
+"group__uv.html#ga99099e045993383f251a8026e1e40414":[11,0,0,0,149],
+"group__uv.html#gaa5e3593c94f91910d9d928dfa0c18f6c":[11,0,0,0,146],
+"group__uv.html#gac5f60dba13a45e5d554b4fb7df7b9610":[11,0,0,0,148],
+"group__uv.html#gad85ce3bfc53ff754988d36bf5de39e21":[11,0,0,0,147],
+"group__vhost-mounts.html":[9,4,0],
+"group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437":[9,4,0,2],
+"group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437":[11,0,0,0,29],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[9,4,0,2,3],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[11,0,0,0,29,3],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[9,4,0,2,0],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[11,0,0,0,29,0],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[11,0,0,0,29,2],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[9,4,0,2,2],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67":[9,4,0,2,5],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67":[11,0,0,0,29,5],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da":[9,4,0,2,6],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da":[11,0,0,0,29,6],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970":[9,4,0,2,4],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970":[11,0,0,0,29,4],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1":[9,4,0,2,1],
+"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1":[11,0,0,0,29,1],
+"group__wsclose.html":[9,17],
+"group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262":[11,0,0,0,62],
+"group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262":[9,17,1],
+"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[11,0,0,0,22],
+"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[9,17,0],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[11,0,0,0,22,3],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[9,17,0,2],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[11,0,0,0,22,10],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[9,17,0,9],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a32c38edab10d1379febac0c479ab2e9c":[11,0,0,0,22,14],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[11,0,0,0,22,1],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[9,17,0,0],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276":[11,0,0,0,22,4],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276":[9,17,0,3],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044":[9,17,0,5],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044":[11,0,0,0,22,6],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[9,17,0,6],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[11,0,0,0,22,7],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[9,17,0,7],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[11,0,0,0,22,8],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[11,0,0,0,22,2],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[9,17,0,1],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[11,0,0,0,22,11],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[9,17,0,10],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985acc9a317c70363dd88e823e066b2c73b7":[11,0,0,0,22,0],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[9,17,0,11],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[11,0,0,0,22,12],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[9,17,0,8],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[11,0,0,0,22,9],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[9,17,0,12],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[11,0,0,0,22,13],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[11,0,0,0,22,5],
+"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[9,17,0,4],
+"group__wsstatus.html":[9,18],
+"group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37":[9,18,3],
+"group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37":[11,0,0,0,105],
+"group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[9,18,4],
+"group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[11,0,0,0,106],
+"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[9,18,6],
+"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[11,0,0,0,123],
+"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[9,18,1],
+"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[11,0,0,0,91],
+"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[9,18,2],
+"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[11,0,0,0,104],
+"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[9,18,0],
+"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[11,0,0,0,78],
+"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[9,18,5],
+"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[11,0,0,0,114],
+"hierarchy.html":[10,2],
 "index.html":[0],
 "index.html":[],
-"libwebsockets_8h.html":[9,0,0,0],
-"libwebsockets_8h.html#a0b056fdcf949a838ff82209b4a627dd9":[9,0,0,0,159],
-"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905f":[9,0,0,0,24],
-"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa7741c12fc97574fa73a810fedae2be76":[9,0,0,0,24,1],
-"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa9ce9c65d4229d1d168fca3cc12e7f535":[9,0,0,0,24,2],
-"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fafdb6cf2797a3ea957c690ad6edff25d6":[9,0,0,0,24,0],
-"libwebsockets_8h.html#a27bb0b3cdcd0af839c928c253b521ff4":[9,0,0,0,56],
-"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedb":[9,0,0,0,20],
-"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba35cf2bed9944faa062d9310197489b2f":[9,0,0,0,20,4],
-"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba60ac587febc583475c185e1409a0210c":[9,0,0,0,20,1],
-"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbaa424646e067c6266bcb4f0190b026d66":[9,0,0,0,20,0],
-"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbac8f5f992c6615324108cdf931da903be":[9,0,0,0,20,2],
-"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad655f0eecc9e94be37b8ed07348716ef":[9,0,0,0,20,6]
+"libwebsockets_8h.html":[11,0,0,0],
+"libwebsockets_8h.html#a0b056fdcf949a838ff82209b4a627dd9":[11,0,0,0,159],
+"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905f":[11,0,0,0,24],
+"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa7741c12fc97574fa73a810fedae2be76":[11,0,0,0,24,1],
+"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa9ce9c65d4229d1d168fca3cc12e7f535":[11,0,0,0,24,2],
+"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fafdb6cf2797a3ea957c690ad6edff25d6":[11,0,0,0,24,0],
+"libwebsockets_8h.html#a27bb0b3cdcd0af839c928c253b521ff4":[11,0,0,0,56],
+"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedb":[11,0,0,0,20],
+"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba35cf2bed9944faa062d9310197489b2f":[11,0,0,0,20,4],
+"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba60ac587febc583475c185e1409a0210c":[11,0,0,0,20,1],
+"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbaa424646e067c6266bcb4f0190b026d66":[11,0,0,0,20,0]
 };
diff --git a/doc/html/navtreeindex3.js b/doc/html/navtreeindex3.js
index 5cc461fd..219460db 100644
--- a/doc/html/navtreeindex3.js
+++ b/doc/html/navtreeindex3.js
@@ -1,20 +1,22 @@
 var NAVTREEINDEX3 =
 {
-"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad9cdc12a796e6c7d912278834d9c7dde":[9,0,0,0,20,3],
-"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbada3dca91d96bcde5df08a67b5a66e972":[9,0,0,0,20,5],
-"libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2":[9,0,0,0,57],
-"libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672":[9,0,0,0,121],
-"libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536":[9,0,0,0,119],
-"libwebsockets_8h.html#a9032a3062641d334161c29adcc4fa15d":[9,0,0,0,161],
-"libwebsockets_8h.html#a9f2a8506fd963db95a5103823c60fb0a":[9,0,0,0,162],
-"libwebsockets_8h.html#abddb8d337fb2692586d892b494739003":[9,0,0,0,17],
-"libwebsockets_8h.html#ac3abb8b7e6d29a0292797230e4031681":[9,0,0,0,16],
-"libwebsockets_8h.html#adedbc79528b71a5c7f27cde87100c9aa":[9,0,0,0,14],
-"libwebsockets_8h.html#adf4abd01e8c43f07c6e498ce13590c3e":[9,0,0,0,122],
-"libwebsockets_8h.html#aefb2f20fe5bb29d79701a399838ef4ce":[9,0,0,0,160],
-"libwebsockets_8h.html#af52923473c59e643a974d65e12290831":[9,0,0,0,55],
-"libwebsockets_8h.html#aff42d53861afdc1a6edfb999ba688ecb":[9,0,0,0,10],
-"libwebsockets_8h_source.html":[9,0,0,0],
+"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbac8f5f992c6615324108cdf931da903be":[11,0,0,0,20,2],
+"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad655f0eecc9e94be37b8ed07348716ef":[11,0,0,0,20,6],
+"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad9cdc12a796e6c7d912278834d9c7dde":[11,0,0,0,20,3],
+"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbada3dca91d96bcde5df08a67b5a66e972":[11,0,0,0,20,5],
+"libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2":[11,0,0,0,57],
+"libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672":[11,0,0,0,121],
+"libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536":[11,0,0,0,119],
+"libwebsockets_8h.html#a9032a3062641d334161c29adcc4fa15d":[11,0,0,0,161],
+"libwebsockets_8h.html#a9f2a8506fd963db95a5103823c60fb0a":[11,0,0,0,162],
+"libwebsockets_8h.html#abddb8d337fb2692586d892b494739003":[11,0,0,0,17],
+"libwebsockets_8h.html#ac3abb8b7e6d29a0292797230e4031681":[11,0,0,0,16],
+"libwebsockets_8h.html#adedbc79528b71a5c7f27cde87100c9aa":[11,0,0,0,14],
+"libwebsockets_8h.html#adf4abd01e8c43f07c6e498ce13590c3e":[11,0,0,0,122],
+"libwebsockets_8h.html#aefb2f20fe5bb29d79701a399838ef4ce":[11,0,0,0,160],
+"libwebsockets_8h.html#af52923473c59e643a974d65e12290831":[11,0,0,0,55],
+"libwebsockets_8h.html#aff42d53861afdc1a6edfb999ba688ecb":[11,0,0,0,10],
+"libwebsockets_8h_source.html":[11,0,0,0],
 "md_README.build.html":[1],
 "md_README.build.html#bu":[1,2],
 "md_README.build.html#build1":[1,1],
@@ -34,220 +36,218 @@ var NAVTREEINDEX3 =
 "md_README.build.html#mem":[1,14],
 "md_README.build.html#wolf":[1,8],
 "md_README.build.html#wolf1":[1,9],
-"md_README.coding.html":[3],
-"md_README.coding.html#clientasync":[3,13],
-"md_README.coding.html#closing":[3,5],
-"md_README.coding.html#conns":[3,1],
-"md_README.coding.html#cpp":[3,9],
-"md_README.coding.html#dae":[3,0],
-"md_README.coding.html#debuglog":[3,7],
-"md_README.coding.html#ecdh":[3,15],
-"md_README.coding.html#evtloop":[3,2],
-"md_README.coding.html#extopts":[3,18],
-"md_README.coding.html#extpoll":[3,8],
-"md_README.coding.html#fileapi":[3,14],
-"md_README.coding.html#frags":[3,6],
-"md_README.coding.html#headerinfo":[3,10],
-"md_README.coding.html#httpsclient":[3,19],
-"md_README.coding.html#ka":[3,11],
-"md_README.coding.html#libevuv":[3,17],
-"md_README.coding.html#mountcallback":[3,23],
-"md_README.coding.html#mounts":[3,22],
-"md_README.coding.html#otherwr":[3,4],
-"md_README.coding.html#smp":[3,16],
-"md_README.coding.html#sni":[3,21],
-"md_README.coding.html#sslopt":[3,12],
-"md_README.coding.html#vhosts":[3,20],
-"md_README.coding.html#writeable":[3,3],
-"md_README.generic-sessions.html":[4],
-"md_README.generic-sessions.html#gsap":[4,8],
-"md_README.generic-sessions.html#gsconf":[4,4],
-"md_README.generic-sessions.html#gseb":[4,0],
-"md_README.generic-sessions.html#gsi":[4,1],
-"md_README.generic-sessions.html#gsin":[4,2],
-"md_README.generic-sessions.html#gsof":[4,3],
-"md_README.generic-sessions.html#gsprep":[4,6],
-"md_README.generic-sessions.html#gspwc":[4,5],
-"md_README.generic-sessions.html#gsrmail":[4,7],
-"md_README.lwsws.html":[2],
-"md_README.lwsws.html#lwsws":[2,0],
-"md_README.lwsws.html#lwswsb":[2,1],
-"md_README.lwsws.html#lwswsc":[2,2],
-"md_README.lwsws.html#lwswslr":[2,13],
-"md_README.lwsws.html#lwswsm":[2,7],
-"md_README.lwsws.html#lwswsomo":[2,8],
-"md_README.lwsws.html#lwswsovo":[2,6],
-"md_README.lwsws.html#lwswspl":[2,9],
-"md_README.lwsws.html#lwswsplaplp":[2,10],
-"md_README.lwsws.html#lwswspr":[2,5],
-"md_README.lwsws.html#lwswsssp":[2,11],
-"md_README.lwsws.html#lwswssysd":[2,12],
-"md_README.lwsws.html#lwswsv":[2,3],
-"md_README.lwsws.html#lwswsvn":[2,4],
-"md_README.test-apps.html":[5],
-"md_README.test-apps.html#autobahn":[5,13],
-"md_README.test-apps.html#autobahnnotes":[5,14],
-"md_README.test-apps.html#choosingts":[5,4],
-"md_README.test-apps.html#echo":[5,5],
-"md_README.test-apps.html#latency":[5,12],
-"md_README.test-apps.html#sssl":[5,2],
-"md_README.test-apps.html#ta":[5,8],
-"md_README.test-apps.html#talog":[5,10],
-"md_README.test-apps.html#taping":[5,7],
-"md_README.test-apps.html#taproxy":[5,9],
-"md_README.test-apps.html#tassl":[5,6],
-"md_README.test-apps.html#tsb":[5,0],
-"md_README.test-apps.html#tsd":[5,1],
-"md_README.test-apps.html#ws13":[5,11],
-"md_README.test-apps.html#wscl":[5,3],
-"modules.html":[7],
+"md_README.coding.html":[4],
+"md_README.coding.html#clientasync":[4,13],
+"md_README.coding.html#closing":[4,5],
+"md_README.coding.html#conns":[4,1],
+"md_README.coding.html#cpp":[4,9],
+"md_README.coding.html#dae":[4,0],
+"md_README.coding.html#debuglog":[4,7],
+"md_README.coding.html#ecdh":[4,15],
+"md_README.coding.html#evtloop":[4,2],
+"md_README.coding.html#extopts":[4,18],
+"md_README.coding.html#extpoll":[4,8],
+"md_README.coding.html#fileapi":[4,14],
+"md_README.coding.html#frags":[4,6],
+"md_README.coding.html#headerinfo":[4,10],
+"md_README.coding.html#httpsclient":[4,19],
+"md_README.coding.html#ka":[4,11],
+"md_README.coding.html#libevuv":[4,17],
+"md_README.coding.html#mountcallback":[4,23],
+"md_README.coding.html#mounts":[4,22],
+"md_README.coding.html#otherwr":[4,4],
+"md_README.coding.html#smp":[4,16],
+"md_README.coding.html#sni":[4,21],
+"md_README.coding.html#sslopt":[4,12],
+"md_README.coding.html#vhosts":[4,20],
+"md_README.coding.html#writeable":[4,3],
+"md_README.generic-sessions.html":[5],
+"md_README.generic-sessions.html#gsap":[5,8],
+"md_README.generic-sessions.html#gsconf":[5,4],
+"md_README.generic-sessions.html#gseb":[5,0],
+"md_README.generic-sessions.html#gsi":[5,1],
+"md_README.generic-sessions.html#gsin":[5,2],
+"md_README.generic-sessions.html#gsof":[5,3],
+"md_README.generic-sessions.html#gsprep":[5,6],
+"md_README.generic-sessions.html#gspwc":[5,5],
+"md_README.generic-sessions.html#gsrmail":[5,7],
+"md_README.generic-table.html":[6],
+"md_README.generic-table.html#gtc":[6,3],
+"md_README.generic-table.html#gtclick":[6,4],
+"md_README.generic-table.html#gtdirl":[6,6],
+"md_README.generic-table.html#gteb":[6,1],
+"md_README.generic-table.html#gtgj":[6,5],
+"md_README.generic-table.html#gtint":[6,0],
+"md_README.generic-table.html#gtinth":[6,2],
+"md_README.lwsws.html":[3],
+"md_README.lwsws.html#lwsws":[3,0],
+"md_README.lwsws.html#lwswsb":[3,1],
+"md_README.lwsws.html#lwswsc":[3,2],
+"md_README.lwsws.html#lwswslr":[3,13],
+"md_README.lwsws.html#lwswsm":[3,7],
+"md_README.lwsws.html#lwswsomo":[3,8],
+"md_README.lwsws.html#lwswsovo":[3,6],
+"md_README.lwsws.html#lwswspl":[3,9],
+"md_README.lwsws.html#lwswsplaplp":[3,10],
+"md_README.lwsws.html#lwswspr":[3,5],
+"md_README.lwsws.html#lwswsssp":[3,11],
+"md_README.lwsws.html#lwswssysd":[3,12],
+"md_README.lwsws.html#lwswsv":[3,3],
+"md_README.lwsws.html#lwswsvn":[3,4],
+"md_README.problems.html":[2],
+"md_README.test-apps.html":[7],
+"md_README.test-apps.html#autobahn":[7,13],
+"md_README.test-apps.html#autobahnnotes":[7,14],
+"md_README.test-apps.html#choosingts":[7,4],
+"md_README.test-apps.html#echo":[7,5],
+"md_README.test-apps.html#latency":[7,12],
+"md_README.test-apps.html#sssl":[7,2],
+"md_README.test-apps.html#ta":[7,8],
+"md_README.test-apps.html#talog":[7,10],
+"md_README.test-apps.html#taping":[7,7],
+"md_README.test-apps.html#taproxy":[7,9],
+"md_README.test-apps.html#tassl":[7,6],
+"md_README.test-apps.html#tsb":[7,0],
+"md_README.test-apps.html#tsd":[7,1],
+"md_README.test-apps.html#ws13":[7,11],
+"md_README.test-apps.html#wscl":[7,3],
+"modules.html":[9],
 "pages.html":[],
-"structlws__cgi__args.html":[8,0,0],
-"structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d":[8,0,0,3],
-"structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1":[8,0,0,4],
-"structlws__cgi__args.html#a741c11b9aa05997ec45a3400d7fb7739":[8,0,0,2],
-"structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7":[8,0,0,1],
-"structlws__cgi__args.html#adeee220b29aeacc34632c38e50f0f5a5":[8,0,0,0],
-"structlws__client__connect__info.html":[7,2,0],
-"structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a":[7,2,0,14],
-"structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e":[7,2,0,12],
-"structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9":[7,2,0,10],
-"structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be":[7,2,0,17],
-"structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587":[7,2,0,8],
-"structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895":[7,2,0,5],
-"structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185":[7,2,0,9],
-"structlws__client__connect__info.html#a7732b996e977393c3e1076be2a8ded6c":[7,2,0,2],
-"structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c":[7,2,0,7],
-"structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836":[7,2,0,16],
-"structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d":[7,2,0,13],
-"structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3":[7,2,0,15],
-"structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7":[7,2,0,4],
-"structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502":[7,2,0,1],
-"structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db":[7,2,0,6],
-"structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2":[7,2,0,11],
-"structlws__client__connect__info.html#ad47f50d1633dc5df74548606c9a66d73":[7,2,0,0],
-"structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd":[7,2,0,3],
-"structlws__context__creation__info.html":[7,4,1],
-"structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720":[7,4,1,16],
-"structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948":[7,4,1,14],
-"structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb":[7,4,1,23],
-"structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0":[7,4,1,37],
-"structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616":[7,4,1,26],
-"structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8":[7,4,1,17],
-"structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4":[7,4,1,22],
-"structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd":[7,4,1,9],
-"structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410":[7,4,1,10],
-"structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb":[7,4,1,29],
-"structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85":[7,4,1,20],
-"structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646":[7,4,1,4],
-"structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c":[7,4,1,3],
-"structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29":[7,4,1,27],
-"structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209":[7,4,1,24],
-"structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d":[7,4,1,34],
-"structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d":[7,4,1,31],
-"structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a":[7,4,1,8],
-"structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6":[7,4,1,7],
-"structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251":[7,4,1,19],
-"structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6":[7,4,1,12],
-"structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458":[7,4,1,25],
-"structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03":[7,4,1,5],
-"structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724":[7,4,1,18],
-"structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a":[7,4,1,15],
-"structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14":[7,4,1,32],
-"structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122":[7,4,1,21],
-"structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e":[7,4,1,36],
-"structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56":[7,4,1,11],
-"structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103":[7,4,1,28],
-"structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29":[7,4,1,35],
-"structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2":[7,4,1,13],
-"structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9":[7,4,1,38],
-"structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa":[7,4,1,30],
-"structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419":[7,4,1,1],
-"structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3":[7,4,1,6],
-"structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54":[7,4,1,33],
-"structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9":[7,4,1,2],
-"structlws__context__creation__info.html#afce3b59950eca3203faa07381bbed5d7":[7,4,1,0],
-"structlws__email.html":[7,14,0],
-"structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e":[7,14,0,3],
-"structlws__email.html#a2aff78c8e04db243052aa91b4d87e987":[7,14,0,13],
-"structlws__email.html#a39ef6263d58eb40cca417c8697b227d8":[7,14,0,15],
-"structlws__email.html#a472ae23fc9fca6599e5c512bc21458d2":[7,14,0,8],
-"structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3":[7,14,0,4],
-"structlws__email.html#a6453a8b92b3de6d2c2101af3edce685e":[7,14,0,9],
-"structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed":[7,14,0,0],
-"structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be":[7,14,0,16],
-"structlws__email.html#a7bbc1964889c984b3da723c86a210e05":[7,14,0,12],
-"structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82":[7,14,0,2],
-"structlws__email.html#a939e5d7ee0339a16de73bde71ab4d4d9":[7,14,0,7],
-"structlws__email.html#a9747ca85597788c2d118d287df47b7c1":[7,14,0,5],
-"structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168":[7,14,0,11],
-"structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3":[7,14,0,10],
-"structlws__email.html#ad8dc60353ee246d84dd59ec0591e9719":[7,14,0,14],
-"structlws__email.html#add1341456045382c183f4c763bdea6bc":[7,14,0,1],
-"structlws__email.html#af7f0ae934347d81071f63a963301f9e2":[7,14,0,6],
-"structlws__ext__option__arg.html":[7,5,1],
-"structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9":[7,5,1,2],
-"structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1":[7,5,1,3],
-"structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5":[7,5,1,0],
-"structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f":[7,5,1,1],
-"structlws__ext__options.html":[7,5,0],
-"structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e":[7,5,0,0],
-"structlws__ext__options.html#a7c4dbd62dbeba63a9d50d2306bd1cc61":[7,5,0,1],
-"structlws__extension.html":[7,5,2],
-"structlws__extension.html#a1e5018c883d85176f5c2152176843f9e":[7,5,2,2],
-"structlws__extension.html#a36b06c213aedb02bf9a402651751855b":[7,5,2,1],
-"structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af":[7,5,2,0],
-"structlws__gs__event__args.html":[7,10,0,3],
-"structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b":[7,10,0,3,2],
-"structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06":[7,10,0,3,1],
-"structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463":[7,10,0,3,0],
-"structlws__http__mount.html":[7,4,0,1],
-"structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b":[7,4,0,1,15],
-"structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773":[7,4,0,1,9],
-"structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a":[7,4,0,1,13],
-"structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146":[7,4,0,1,2],
-"structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7":[7,4,0,1,8],
-"structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa":[7,4,0,1,5],
-"structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477":[7,4,0,1,0],
-"structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7":[7,4,0,1,14],
-"structlws__http__mount.html#a8316dd183ffbef50419a5a4968d35d84":[7,4,0,1,3],
-"structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c":[7,4,0,1,11],
-"structlws__http__mount.html#aabec1a326780aafe11b977000983be0c":[7,4,0,1,1],
-"structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743":[7,4,0,1,12],
-"structlws__http__mount.html#ad878546ae1c399bbca7d7f8a0baf973d":[7,4,0,1,10],
-"structlws__http__mount.html#ae137203040c6153694bd88a708da5395":[7,4,0,1,4],
-"structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af":[7,4,0,1,6],
-"structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4":[7,4,0,1,7],
-"structlws__plat__file__ops.html":[7,20,0],
-"structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40":[7,20,0,2],
-"structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b":[7,20,0,0],
-"structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793":[7,20,0,4],
-"structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869":[7,20,0,3],
-"structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32":[7,20,0,1],
-"structlws__plugin.html":[7,10,3],
-"structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4":[7,10,3,1],
-"structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22":[7,10,3,3],
-"structlws__plugin.html#ac7f1fdfe8cf8a21f8ee9720c21934a3f":[7,10,3,0],
-"structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105":[7,10,3,4],
-"structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330":[7,10,3,2],
-"structlws__plugin__capability.html":[7,10,2],
-"structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a":[7,10,2,0],
-"structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033":[7,10,2,4],
-"structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623":[7,10,2,3],
-"structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3":[7,10,2,1],
-"structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f":[7,10,2,2],
-"structlws__polarssl__context.html":[8,0,14],
-"structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af":[8,0,14,0],
-"structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270":[8,0,14,2],
-"structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27":[8,0,14,1],
-"structlws__pollargs.html":[8,0,15],
-"structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6":[8,0,15,0],
-"structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8":[8,0,15,2],
-"structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81":[8,0,15,1],
-"structlws__pollfd.html":[8,0,16],
-"structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be":[8,0,16,1],
-"structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9":[8,0,16,0],
-"structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932":[8,0,16,2],
-"structlws__process__html__args.html":[7,6,1,0],
-"structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14":[7,6,1,0,3]
+"structlws__cgi__args.html":[10,0,0],
+"structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d":[10,0,0,3],
+"structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1":[10,0,0,4],
+"structlws__cgi__args.html#a741c11b9aa05997ec45a3400d7fb7739":[10,0,0,2],
+"structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7":[10,0,0,1],
+"structlws__cgi__args.html#adeee220b29aeacc34632c38e50f0f5a5":[10,0,0,0],
+"structlws__client__connect__info.html":[9,2,0],
+"structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a":[9,2,0,14],
+"structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e":[9,2,0,12],
+"structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9":[9,2,0,10],
+"structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be":[9,2,0,17],
+"structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587":[9,2,0,8],
+"structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895":[9,2,0,5],
+"structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185":[9,2,0,9],
+"structlws__client__connect__info.html#a7732b996e977393c3e1076be2a8ded6c":[9,2,0,2],
+"structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c":[9,2,0,7],
+"structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836":[9,2,0,16],
+"structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d":[9,2,0,13],
+"structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3":[9,2,0,15],
+"structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7":[9,2,0,4],
+"structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502":[9,2,0,1],
+"structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db":[9,2,0,6],
+"structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2":[9,2,0,11],
+"structlws__client__connect__info.html#ad47f50d1633dc5df74548606c9a66d73":[9,2,0,0],
+"structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd":[9,2,0,3],
+"structlws__context__creation__info.html":[9,4,1],
+"structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720":[9,4,1,16],
+"structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948":[9,4,1,14],
+"structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb":[9,4,1,23],
+"structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0":[9,4,1,37],
+"structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616":[9,4,1,26],
+"structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8":[9,4,1,17],
+"structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4":[9,4,1,22],
+"structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd":[9,4,1,9],
+"structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410":[9,4,1,10],
+"structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb":[9,4,1,29],
+"structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85":[9,4,1,20],
+"structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646":[9,4,1,4],
+"structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c":[9,4,1,3],
+"structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29":[9,4,1,27],
+"structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209":[9,4,1,24],
+"structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d":[9,4,1,34],
+"structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d":[9,4,1,31],
+"structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a":[9,4,1,8],
+"structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6":[9,4,1,7],
+"structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251":[9,4,1,19],
+"structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6":[9,4,1,12],
+"structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458":[9,4,1,25],
+"structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03":[9,4,1,5],
+"structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724":[9,4,1,18],
+"structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a":[9,4,1,15],
+"structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14":[9,4,1,32],
+"structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122":[9,4,1,21],
+"structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e":[9,4,1,36],
+"structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56":[9,4,1,11],
+"structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103":[9,4,1,28],
+"structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29":[9,4,1,35],
+"structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2":[9,4,1,13],
+"structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9":[9,4,1,38],
+"structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa":[9,4,1,30],
+"structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419":[9,4,1,1],
+"structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3":[9,4,1,6],
+"structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54":[9,4,1,33],
+"structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9":[9,4,1,2],
+"structlws__context__creation__info.html#afce3b59950eca3203faa07381bbed5d7":[9,4,1,0],
+"structlws__email.html":[9,14,0],
+"structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e":[9,14,0,3],
+"structlws__email.html#a2aff78c8e04db243052aa91b4d87e987":[9,14,0,13],
+"structlws__email.html#a39ef6263d58eb40cca417c8697b227d8":[9,14,0,15],
+"structlws__email.html#a472ae23fc9fca6599e5c512bc21458d2":[9,14,0,8],
+"structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3":[9,14,0,4],
+"structlws__email.html#a6453a8b92b3de6d2c2101af3edce685e":[9,14,0,9],
+"structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed":[9,14,0,0],
+"structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be":[9,14,0,16],
+"structlws__email.html#a7bbc1964889c984b3da723c86a210e05":[9,14,0,12],
+"structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82":[9,14,0,2],
+"structlws__email.html#a939e5d7ee0339a16de73bde71ab4d4d9":[9,14,0,7],
+"structlws__email.html#a9747ca85597788c2d118d287df47b7c1":[9,14,0,5],
+"structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168":[9,14,0,11],
+"structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3":[9,14,0,10],
+"structlws__email.html#ad8dc60353ee246d84dd59ec0591e9719":[9,14,0,14],
+"structlws__email.html#add1341456045382c183f4c763bdea6bc":[9,14,0,1],
+"structlws__email.html#af7f0ae934347d81071f63a963301f9e2":[9,14,0,6],
+"structlws__ext__option__arg.html":[9,5,1],
+"structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9":[9,5,1,2],
+"structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1":[9,5,1,3],
+"structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5":[9,5,1,0],
+"structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f":[9,5,1,1],
+"structlws__ext__options.html":[9,5,0],
+"structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e":[9,5,0,0],
+"structlws__ext__options.html#a7c4dbd62dbeba63a9d50d2306bd1cc61":[9,5,0,1],
+"structlws__extension.html":[9,5,2],
+"structlws__extension.html#a1e5018c883d85176f5c2152176843f9e":[9,5,2,2],
+"structlws__extension.html#a36b06c213aedb02bf9a402651751855b":[9,5,2,1],
+"structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af":[9,5,2,0],
+"structlws__gs__event__args.html":[9,10,0,3],
+"structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b":[9,10,0,3,2],
+"structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06":[9,10,0,3,1],
+"structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463":[9,10,0,3,0],
+"structlws__http__mount.html":[9,4,0,1],
+"structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b":[9,4,0,1,15],
+"structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773":[9,4,0,1,9],
+"structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a":[9,4,0,1,13],
+"structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146":[9,4,0,1,2],
+"structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7":[9,4,0,1,8],
+"structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa":[9,4,0,1,5],
+"structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477":[9,4,0,1,0],
+"structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7":[9,4,0,1,14],
+"structlws__http__mount.html#a8316dd183ffbef50419a5a4968d35d84":[9,4,0,1,3],
+"structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c":[9,4,0,1,11],
+"structlws__http__mount.html#aabec1a326780aafe11b977000983be0c":[9,4,0,1,1],
+"structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743":[9,4,0,1,12],
+"structlws__http__mount.html#ad878546ae1c399bbca7d7f8a0baf973d":[9,4,0,1,10],
+"structlws__http__mount.html#ae137203040c6153694bd88a708da5395":[9,4,0,1,4],
+"structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af":[9,4,0,1,6],
+"structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4":[9,4,0,1,7],
+"structlws__plat__file__ops.html":[9,20,0],
+"structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40":[9,20,0,2],
+"structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b":[9,20,0,0],
+"structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793":[9,20,0,4],
+"structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869":[9,20,0,3],
+"structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32":[9,20,0,1],
+"structlws__plugin.html":[9,10,3],
+"structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4":[9,10,3,1],
+"structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22":[9,10,3,3],
+"structlws__plugin.html#ac7f1fdfe8cf8a21f8ee9720c21934a3f":[9,10,3,0],
+"structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105":[9,10,3,4],
+"structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330":[9,10,3,2],
+"structlws__plugin__capability.html":[9,10,2],
+"structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a":[9,10,2,0],
+"structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033":[9,10,2,4],
+"structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623":[9,10,2,3],
+"structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3":[9,10,2,1],
+"structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f":[9,10,2,2],
+"structlws__polarssl__context.html":[10,0,14],
+"structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af":[10,0,14,0],
+"structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270":[10,0,14,2]
 };
diff --git a/doc/html/navtreeindex4.js b/doc/html/navtreeindex4.js
index e9af076f..f1d420fc 100644
--- a/doc/html/navtreeindex4.js
+++ b/doc/html/navtreeindex4.js
@@ -1,53 +1,64 @@
 var NAVTREEINDEX4 =
 {
-"structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475":[7,6,1,0,0],
-"structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef":[7,6,1,0,1],
-"structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99":[7,6,1,0,2],
-"structlws__process__html__state.html":[7,6,1,1],
-"structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077":[7,6,1,1,6],
-"structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20":[7,6,1,1,2],
-"structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644":[7,6,1,1,3],
-"structlws__process__html__state.html#a71982bc1cbd8cf876ca0f545144404eb":[7,6,1,1,5],
-"structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968":[7,6,1,1,0],
-"structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3":[7,6,1,1,4],
-"structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5":[7,6,1,1,1],
-"structlws__protocol__vhost__options.html":[7,4,0,0],
-"structlws__protocol__vhost__options.html":[7,4,2],
-"structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[7,4,2,3],
-"structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[7,4,0,0,3],
-"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[7,4,0,0,1],
-"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[7,4,2,1],
-"structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[7,4,0,0,0],
-"structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[7,4,2,0],
-"structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[7,4,0,0,2],
-"structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[7,4,2,2],
-"structlws__protocols.html":[7,10,1],
-"structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5":[7,10,1,4],
-"structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624":[7,10,1,2],
-"structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e":[7,10,1,5],
-"structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac":[7,10,1,1],
-"structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea":[7,10,1,3],
-"structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d":[7,10,1,0],
-"structlws__session__info.html":[7,10,0,2],
-"structlws__session__info.html#a3d57a70b6e7181d95a8bec429b1a7697":[7,10,0,2,4],
-"structlws__session__info.html#a4353b5dd19400b2b15edfd7cee1e4cd5":[7,10,0,2,3],
-"structlws__session__info.html#a53eed02325e8717a53297391e3e98fac":[7,10,0,2,1],
-"structlws__session__info.html#a94b813cfc6b0da4b182659de30038ad3":[7,10,0,2,0],
-"structlws__session__info.html#afb924864b70f40372920688a5c1c895e":[7,10,0,2,2],
-"structlws__token__limits.html":[7,6,4,1],
-"structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff":[7,6,4,1,0],
-"structlws__tokens.html":[7,6,6],
-"structlws__tokens.html":[7,6,4,0],
-"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[7,6,6,1],
-"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[7,6,4,0,1],
-"structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[7,6,6,0],
-"structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[7,6,4,0,0],
-"structlwsgw__hash.html":[7,10,0,1],
-"structlwsgw__hash.html#a29435f5cf78747d4257695b0f141d164":[7,10,0,1,0],
-"structlwsgw__hash__bin.html":[7,10,0,0],
-"structlwsgw__hash__bin.html#ac92f50d9471058525d110597a4e0de6b":[7,10,0,0,0],
-"structpollfd.html":[8,0,26],
-"structpollfd.html#aafb457d11cac415faf0e1e2b825118c2":[8,0,26,2],
-"structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef":[8,0,26,0],
-"structpollfd.html#af084f089bdece61d177f85782d6673d0":[8,0,26,1]
+"structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27":[10,0,14,1],
+"structlws__pollargs.html":[10,0,15],
+"structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6":[10,0,15,0],
+"structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8":[10,0,15,2],
+"structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81":[10,0,15,1],
+"structlws__pollfd.html":[10,0,16],
+"structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be":[10,0,16,1],
+"structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9":[10,0,16,0],
+"structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932":[10,0,16,2],
+"structlws__process__html__args.html":[9,6,1,0],
+"structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14":[9,6,1,0,3],
+"structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475":[9,6,1,0,0],
+"structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef":[9,6,1,0,1],
+"structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99":[9,6,1,0,2],
+"structlws__process__html__state.html":[9,6,1,1],
+"structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077":[9,6,1,1,6],
+"structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20":[9,6,1,1,2],
+"structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644":[9,6,1,1,3],
+"structlws__process__html__state.html#a71982bc1cbd8cf876ca0f545144404eb":[9,6,1,1,5],
+"structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968":[9,6,1,1,0],
+"structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3":[9,6,1,1,4],
+"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#abc714ddb4171756fc8196e9823a1e21c":[9,4,2,1],
+"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[9,4,0,0,1],
+"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],
+"structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5":[9,10,1,4],
+"structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624":[9,10,1,2],
+"structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e":[9,10,1,5],
+"structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac":[9,10,1,1],
+"structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea":[9,10,1,3],
+"structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d":[9,10,1,0],
+"structlws__session__info.html":[9,10,0,2],
+"structlws__session__info.html#a3d57a70b6e7181d95a8bec429b1a7697":[9,10,0,2,4],
+"structlws__session__info.html#a4353b5dd19400b2b15edfd7cee1e4cd5":[9,10,0,2,3],
+"structlws__session__info.html#a53eed02325e8717a53297391e3e98fac":[9,10,0,2,1],
+"structlws__session__info.html#a94b813cfc6b0da4b182659de30038ad3":[9,10,0,2,0],
+"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,4,0,1],
+"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[9,6,6,1],
+"structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[9,6,6,0],
+"structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[9,6,4,0,0],
+"structlwsgw__hash.html":[9,10,0,1],
+"structlwsgw__hash.html#a29435f5cf78747d4257695b0f141d164":[9,10,0,1,0],
+"structlwsgw__hash__bin.html":[9,10,0,0],
+"structlwsgw__hash__bin.html#ac92f50d9471058525d110597a4e0de6b":[9,10,0,0,0],
+"structpollfd.html":[10,0,26],
+"structpollfd.html#aafb457d11cac415faf0e1e2b825118c2":[10,0,26,2],
+"structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef":[10,0,26,0],
+"structpollfd.html#af084f089bdece61d177f85782d6673d0":[10,0,26,1]
 };
diff --git a/doc/html/pages.html b/doc/html/pages.html
index 880af1c5..f9a0d6f2 100644
--- a/doc/html/pages.html
+++ b/doc/html/pages.html
@@ -68,11 +68,13 @@ $(document).ready(function(){initNavTree('pages.html','');});
 <div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
 <table class="directory">
 <tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_README.build.html" target="_self">Notes about building lws</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_README.lwsws.html" target="_self">Notes about lwsws</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_README.coding.html" target="_self">Notes about coding with lws</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_README.generic-sessions.html" target="_self">Notes about generic-sessions Plugin</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_README.test-apps.html" target="_self">Overview of lws test apps</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="deprecated.html" target="_self">Deprecated List</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_README.problems.html" target="_self">Debugging problems</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_README.lwsws.html" target="_self">Notes about lwsws</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_README.coding.html" target="_self">Notes about coding with lws</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_README.generic-sessions.html" target="_self">Notes about generic-sessions Plugin</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_README.generic-table.html" target="_self">Notes about generic-table</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md_README.test-apps.html" target="_self">Overview of lws test apps</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="deprecated.html" target="_self">Deprecated List</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/doc/latex/classlws__conn.pdf b/doc/latex/classlws__conn.pdf
index b52f4af04559f575bc92c97f5aba80fd8bdbd517..a18b89066775af6fc7a66f882a82deffe74a482e 100644
GIT binary patch
delta 179
zcmaE*@=9gHer`510|P@7qseu=YLj1cXCb)ilbd*)nM@5QALp?IQB1sL2+33gQ+_fB
zp9+GjwmE|DA0tRZgn$B*so~}-fys<c#;)d0MkW?crl#gbt|o47mM*5|W{%EohL&cI
Rt`<&?b~c1mO!gO&1^_n6E>i#i

delta 179
zcmaE*@=9gHer`6?B;#a@)X8<cYLj1cXCb)ilbd*)nM{l)ALp?IQB1sL2+33gQ+_fB
zp9+GjwmE|DA0tRZgn$B*iSgztfys<cW{w6%h9-{YrjC{dmX4MdP9~-nMs60S28NDC
RjuviCb~c1mO!gO&1^}_zFuVW&

diff --git a/doc/latex/classlws__conn__listener.pdf b/doc/latex/classlws__conn__listener.pdf
index c9e91499a67ff97462b4f6b98ed454859cde8d1b..f3ea3a98c043fa160816ee85089b40d16ca6e6bb 100644
GIT binary patch
delta 184
zcmaE*@=9gHer|R%0|P@7BlF4iysDF5b7vv()h0LbI5U|VPCm|K38I*I%aCMKkl1pQ
zIrvnN_^O*D`2I11^h5|KFqs-|t`eBc=wxVMW@+T;=IUf&>1t~3W?*FDW@P4U;pAxI
SXkujKXkuqWNX2A-A!z^vRWAhq

delta 184
zcmaE*@=9gHer|Ttq!d#lleEe8ysDF5b7vv()h0LbI5U};Og_$I38I*I%aCMKkl1pQ
zIrvnN_^O*D`2I11^h5|KFqxQat`eBc=w$3-U~J}O=4xtS;pk*;;ACv-=4xnY>}X`_
S=HlvR>1t;~NX2A-A!z`Yz%n-g

diff --git a/doc/latex/group__context-and-vhost.tex b/doc/latex/group__context-and-vhost.tex
index 3bb241cf..5a50157a 100644
--- a/doc/latex/group__context-and-vhost.tex
+++ b/doc/latex/group__context-and-vhost.tex
@@ -122,6 +122,7 @@ L\+W\+S\+\_\+\+S\+E\+R\+V\+E\+R\+\_\+\+O\+P\+T\+I\+O\+N\+\_\+\+I\+P\+V6\+\_\+\+V
 \end{Desc}
 
 \begin{DoxyCode}
+<<<<<<< current
 1393                          \{
 1394         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092}{LWS\_SERVER\_OPTION\_REQUIRE\_VALID\_OPENSSL\_CLIENT\_CERT}  
       = (1 << 1) |
@@ -143,6 +144,30 @@ L\+W\+S\+\_\+\+S\+E\+R\+V\+E\+R\+\_\+\+O\+P\+T\+I\+O\+N\+\_\+\+I\+P\+V6\+\_\+\+V
 1420         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e}{LWS\_SERVER\_OPTION\_LIBUV}                                  = (1 << 10),
 1422         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada}{LWS\_SERVER\_OPTION\_REDIRECT\_HTTP\_TO\_HTTPS}                = (
       1 << 11) |
+=======
+1392                          \{
+1393         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092}{LWS\_SERVER\_OPTION\_REQUIRE\_VALID\_OPENSSL\_CLIENT\_CERT}  
+      = (1 << 1) |
+1394                                                                   (1 << 12),
+1398         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c}{LWS\_SERVER\_OPTION\_SKIP\_SERVER\_CANONICAL\_NAME}                
+      = (1 << 2),
+1400         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d}{LWS\_SERVER\_OPTION\_ALLOW\_NON\_SSL\_ON\_SSL\_PORT}          = (
+      1 << 3) |
+1401                                                                   (1 << 12),
+1405         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6}{LWS\_SERVER\_OPTION\_LIBEV}                                  = (1 << 4),
+1407         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9}{LWS\_SERVER\_OPTION\_DISABLE\_IPV6}                            = (1 << 5),
+1409         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93}{LWS\_SERVER\_OPTION\_DISABLE\_OS\_CA\_CERTS}                      = (
+      1 << 6),
+1412         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc}{LWS\_SERVER\_OPTION\_PEER\_CERT\_NOT\_REQUIRED}                = (
+      1 << 7),
+1414         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f}{LWS\_SERVER\_OPTION\_VALIDATE\_UTF8}                          = (1 << 8),
+1416         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c}{LWS\_SERVER\_OPTION\_SSL\_ECDH}                            = (1 << 9) |
+1417                                                                   (1 << 12),
+1419         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e}{LWS\_SERVER\_OPTION\_LIBUV}                                  = (1 << 10),
+1421         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada}{LWS\_SERVER\_OPTION\_REDIRECT\_HTTP\_TO\_HTTPS}                = (
+      1 << 11) |
+1422                                                                   (1 << 3) |
+>>>>>>> patched
 1423                                                                   (1 << 12),
 1426         \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a}{LWS\_SERVER\_OPTION\_DO\_SSL\_GLOBAL\_INIT}                        = (
       1 << 12),
diff --git a/doc/latex/group__extensions.tex b/doc/latex/group__extensions.tex
index 9683b0a4..5fe71867 100644
--- a/doc/latex/group__extensions.tex
+++ b/doc/latex/group__extensions.tex
@@ -174,6 +174,7 @@ E\+X\+T\+A\+R\+G\+\_\+\+O\+P\+T\+\_\+\+D\+EC\hypertarget{group__extensions_ggacc
 \end{Desc}
 
 \begin{DoxyCode}
+<<<<<<< current
 995                            \{
 996         \hyperlink{group__extensions_ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c}{EXTARG\_NONE}, 
 997         \hyperlink{group__extensions_ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e}{EXTARG\_DEC},  
@@ -181,6 +182,15 @@ E\+X\+T\+A\+R\+G\+\_\+\+O\+P\+T\+\_\+\+D\+EC\hypertarget{group__extensions_ggacc
 1000         \textcolor{comment}{/* Add new things just above here ---^}
 1001 \textcolor{comment}{         * This is part of the ABI, don't needlessly break compatibility */}
 1002 \};
+=======
+994                            \{
+995         \hyperlink{group__extensions_ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c}{EXTARG\_NONE}, 
+996         \hyperlink{group__extensions_ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e}{EXTARG\_DEC},  
+997         \hyperlink{group__extensions_ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880}{EXTARG\_OPT\_DEC} 
+999         \textcolor{comment}{/* Add new things just above here ---^}
+1000 \textcolor{comment}{         * This is part of the ABI, don't needlessly break compatibility */}
+1001 \};
+>>>>>>> patched
 \end{DoxyCode}
 
 
diff --git a/doc/latex/group__form-parsing.tex b/doc/latex/group__form-parsing.tex
index b6472365..6220e2ae 100644
--- a/doc/latex/group__form-parsing.tex
+++ b/doc/latex/group__form-parsing.tex
@@ -89,11 +89,19 @@ L\+W\+S\+\_\+\+U\+F\+S\+\_\+\+O\+P\+EN\hypertarget{group__form-parsing_gga41a74a
 \end{Desc}
 
 \begin{DoxyCode}
+<<<<<<< current
 2634                                \{
 2635         \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f}{LWS\_UFS\_CONTENT},
 2637         \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7}{LWS\_UFS\_FINAL\_CONTENT},
 2639         \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83}{LWS\_UFS\_OPEN}
 2641 \};
+=======
+2623                                \{
+2624         \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f}{LWS\_UFS\_CONTENT},
+2626         \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7}{LWS\_UFS\_FINAL\_CONTENT},
+2628         \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83}{LWS\_UFS\_OPEN}
+2630 \};
+>>>>>>> patched
 \end{DoxyCode}
 
 
diff --git a/doc/latex/group__generic-sessions.tex b/doc/latex/group__generic-sessions.tex
index e1767b3c..d7133395 100644
--- a/doc/latex/group__generic-sessions.tex
+++ b/doc/latex/group__generic-sessions.tex
@@ -50,10 +50,17 @@ L\+W\+S\+G\+S\+E\+\_\+\+D\+E\+L\+E\+T\+ED\hypertarget{group__generic-sessions_gg
 \end{Desc}
 
 \begin{DoxyCode}
+<<<<<<< current
 1357                   \{
 1358         \hyperlink{group__generic-sessions_ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308}{LWSGSE\_CREATED}, 
 1359         \hyperlink{group__generic-sessions_ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde}{LWSGSE\_DELETED}  
 1360 \};
+=======
+1356                   \{
+1357         \hyperlink{group__generic-sessions_ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308}{LWSGSE\_CREATED}, 
+1358         \hyperlink{group__generic-sessions_ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde}{LWSGSE\_DELETED}  
+1359 \};
+>>>>>>> patched
 \end{DoxyCode}
 \index{plugin\+: generic-\/sessions@{plugin\+: generic-\/sessions}!lwsgs\+\_\+auth\+\_\+bits@{lwsgs\+\_\+auth\+\_\+bits}}
 \index{lwsgs\+\_\+auth\+\_\+bits@{lwsgs\+\_\+auth\+\_\+bits}!plugin\+: generic-\/sessions@{plugin\+: generic-\/sessions}}
@@ -77,10 +84,19 @@ L\+W\+S\+G\+S\+\_\+\+A\+U\+T\+H\+\_\+\+F\+O\+R\+G\+O\+T\+\_\+\+F\+L\+OW\hypertar
 \end{Desc}
 
 \begin{DoxyCode}
+<<<<<<< current
 1339                      \{
 1340         \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57}{LWSGS\_AUTH\_LOGGED\_IN} = 1, 
 1341         \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf}{LWSGS\_AUTH\_ADMIN} = 2,   
 1342         \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887}{LWSGS\_AUTH\_VERIFIED} = 4,  
 1343         \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a}{LWSGS\_AUTH\_FORGOT\_FLOW} = 8,       
 1344 \};
+=======
+1338                      \{
+1339         \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57}{LWSGS\_AUTH\_LOGGED\_IN} = 1, 
+1340         \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf}{LWSGS\_AUTH\_ADMIN} = 2,   
+1341         \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887}{LWSGS\_AUTH\_VERIFIED} = 4,  
+1342         \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a}{LWSGS\_AUTH\_FORGOT\_FLOW} = 8,       
+1343 \};
+>>>>>>> patched
 \end{DoxyCode}
diff --git a/doc/latex/group__sending-data.tex b/doc/latex/group__sending-data.tex
index 4bbfd827..e44af696 100644
--- a/doc/latex/group__sending-data.tex
+++ b/doc/latex/group__sending-data.tex
@@ -57,6 +57,7 @@ L\+W\+S\+\_\+\+W\+R\+I\+T\+E\+\_\+\+C\+L\+I\+E\+N\+T\+\_\+\+I\+G\+N\+O\+R\+E\+\_
 \end{Desc}
 
 \begin{DoxyCode}
+<<<<<<< current
 2975                         \{
 2976         \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db}{LWS\_WRITE\_TEXT}                                            = 0,
 2980         \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2}{LWS\_WRITE\_BINARY}                                        = 1,
@@ -79,6 +80,30 @@ L\+W\+S\+\_\+\+W\+R\+I\+T\+E\+\_\+\+C\+L\+I\+E\+N\+T\+\_\+\+I\+G\+N\+O\+R\+E\+\_
 3009         \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3}{LWS\_WRITE\_NO\_FIN} = 0x40,
 3012         \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce}{LWS\_WRITE\_CLIENT\_IGNORE\_XOR\_MASK} = 0x80
 3016 \};
+=======
+2964                         \{
+2965         \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db}{LWS\_WRITE\_TEXT}                                            = 0,
+2969         \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2}{LWS\_WRITE\_BINARY}                                        = 1,
+2972         \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826}{LWS\_WRITE\_CONTINUATION}                                    = 2,
+2975         \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e}{LWS\_WRITE\_HTTP}                                            = 3,
+2978         \textcolor{comment}{/* LWS\_WRITE\_CLOSE is handled by lws\_close\_reason() */}
+2979         LWS\_WRITE\_PING                                          = 5,
+2980         LWS\_WRITE\_PONG                                          = 6,
+2981 
+2982         \textcolor{comment}{/* Same as write\_http but we know this write ends the transaction */}
+2983         LWS\_WRITE\_HTTP\_FINAL                                    = 7,
+2984 
+2985         \textcolor{comment}{/* HTTP2 */}
+2986 
+2987         \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917}{LWS\_WRITE\_HTTP\_HEADERS}                                    = 8,
+2994         \textcolor{comment}{/****** add new things just above ---^ ******/}
+2995 
+2996         \textcolor{comment}{/* flags */}
+2997 
+2998         \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3}{LWS\_WRITE\_NO\_FIN} = 0x40,
+3001         \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce}{LWS\_WRITE\_CLIENT\_IGNORE\_XOR\_MASK} = 0x80
+3005 \};
+>>>>>>> patched
 \end{DoxyCode}
 
 
diff --git a/doc/latex/group__smtp.tex b/doc/latex/group__smtp.tex
index e5a78748..75149c92 100644
--- a/doc/latex/group__smtp.tex
+++ b/doc/latex/group__smtp.tex
@@ -88,6 +88,7 @@ L\+G\+S\+S\+M\+T\+P\+\_\+\+S\+E\+N\+T\+\_\+\+Q\+U\+IT\hypertarget{group__smtp_gg
 \end{Desc}
 
 \begin{DoxyCode}
+<<<<<<< current
 3897                        \{
 3898         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c}{LGSSMTP\_IDLE}, 
 3899         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933}{LGSSMTP\_CONNECTING}, 
@@ -99,6 +100,19 @@ L\+G\+S\+S\+M\+T\+P\+\_\+\+S\+E\+N\+T\+\_\+\+Q\+U\+IT\hypertarget{group__smtp_gg
 3905         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69}{LGSSMTP\_SENT\_BODY}, 
 3906         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5}{LGSSMTP\_SENT\_QUIT}, 
 3907 \};
+=======
+3886                        \{
+3887         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c}{LGSSMTP\_IDLE}, 
+3888         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933}{LGSSMTP\_CONNECTING}, 
+3889         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d}{LGSSMTP\_CONNECTED}, 
+3890         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad}{LGSSMTP\_SENT\_HELO}, 
+3891         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab}{LGSSMTP\_SENT\_FROM}, 
+3892         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83}{LGSSMTP\_SENT\_TO}, 
+3893         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14}{LGSSMTP\_SENT\_DATA}, 
+3894         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69}{LGSSMTP\_SENT\_BODY}, 
+3895         \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5}{LGSSMTP\_SENT\_QUIT}, 
+3896 \};
+>>>>>>> patched
 \end{DoxyCode}
 
 
diff --git a/doc/latex/group__usercb.tex b/doc/latex/group__usercb.tex
index fc9df2aa..2ad27a29 100644
--- a/doc/latex/group__usercb.tex
+++ b/doc/latex/group__usercb.tex
@@ -79,6 +79,7 @@ enum \hyperlink{group__usercb_gad62860e19975ba4c4af401c3cdb6abf7}{lws\+\_\+callb
 {\bfseries L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+S\+E\+S\+S\+I\+O\+N\+\_\+\+I\+N\+FO} = 54, 
 {\bfseries L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+G\+S\+\_\+\+E\+V\+E\+NT} = 55, 
 \\*
+\hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a}{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO} = 56, 
 \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a}{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER} = 1000
  \}
 \end{DoxyCompactItemize}
@@ -267,7 +268,9 @@ L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+N\+L\+O\+C\+K\+\_\+\+P\+O\+LL\hy
 L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+O\+P\+E\+N\+S\+S\+L\+\_\+\+C\+O\+N\+T\+E\+X\+T\+\_\+\+R\+E\+Q\+U\+I\+R\+E\+S\+\_\+\+P\+R\+I\+V\+A\+T\+E\+\_\+\+K\+EY\hypertarget{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b}{}\label{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b}
 }]if configured for including Open\+S\+SL support but no private key file has been specified (ssl\+\_\+private\+\_\+key\+\_\+filepath is N\+U\+LL), this is called to allow the user to set the private key directly via libopenssl and perform further operations if required; this might be useful in situations where the private key is not directly accessible by the OS, for example if it is stored on a smartcard. user is the server\textquotesingle{}s Open\+S\+SL S\+S\+L\+\_\+\+C\+T\+X$\ast$ \index{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+W\+S\+\_\+\+P\+E\+E\+R\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+D\+\_\+\+C\+L\+O\+SE@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+W\+S\+\_\+\+P\+E\+E\+R\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+D\+\_\+\+C\+L\+O\+SE}!User Callback@{User Callback}}\index{User Callback@{User Callback}!L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+W\+S\+\_\+\+P\+E\+E\+R\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+D\+\_\+\+C\+L\+O\+SE@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+W\+S\+\_\+\+P\+E\+E\+R\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+D\+\_\+\+C\+L\+O\+SE}}\item[{\em 
 L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+W\+S\+\_\+\+P\+E\+E\+R\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+D\+\_\+\+C\+L\+O\+SE\hypertarget{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51}{}\label{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51}
-}]The peer has sent an unsolicited Close WS packet. in and len are the optional close code (first 2 bytes, network order) and the optional additional information which is not defined in the standard, and may be a string or non-\/human-\/ readable data. If you return 0 lws will echo the close and then close the connection. If you return nonzero lws will just close the connection. \index{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER}!User Callback@{User Callback}}\index{User Callback@{User Callback}!L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER}}\item[{\em 
+}]The peer has sent an unsolicited Close WS packet. in and len are the optional close code (first 2 bytes, network order) and the optional additional information which is not defined in the standard, and may be a string or non-\/human-\/ readable data. If you return 0 lws will echo the close and then close the connection. If you return nonzero lws will just close the connection. \index{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO}!User Callback@{User Callback}}\index{User Callback@{User Callback}!L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO}}\item[{\em 
+L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO\hypertarget{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a}{}\label{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a}
+}]per-\/mount options for this connection, called before the normal L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+TP when the mount has per-\/mount options \index{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER}!User Callback@{User Callback}}\index{User Callback@{User Callback}!L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER}}\item[{\em 
 L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER\hypertarget{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a}{}\label{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a}
 }]user code can use any including / above without fear of clashes \end{description}
 \end{Desc}
@@ -326,6 +329,7 @@ L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER\hypertarget{group__usercb_
       = 37,
 873         \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51}{LWS\_CALLBACK\_WS\_PEER\_INITIATED\_CLOSE}                        = 
       38,
+<<<<<<< current
 882         LWS\_CALLBACK\_WS\_EXT\_DEFAULTS                            = 39,
 885         LWS\_CALLBACK\_CGI                                        = 40,
 887         LWS\_CALLBACK\_CGI\_TERMINATED                             = 41,
@@ -347,4 +351,28 @@ L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER\hypertarget{group__usercb_
 920 
 921         \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a}{LWS\_CALLBACK\_USER} = 1000,
 923 \};
+=======
+876         LWS\_CALLBACK\_WS\_EXT\_DEFAULTS                            = 39,
+879         LWS\_CALLBACK\_CGI                                        = 40,
+881         LWS\_CALLBACK\_CGI\_TERMINATED                             = 41,
+883         LWS\_CALLBACK\_CGI\_STDIN\_DATA                             = 42,
+885         LWS\_CALLBACK\_CGI\_STDIN\_COMPLETED                        = 43,
+887         LWS\_CALLBACK\_ESTABLISHED\_CLIENT\_HTTP                    = 44,
+889         LWS\_CALLBACK\_CLOSED\_CLIENT\_HTTP                         = 45,
+891         LWS\_CALLBACK\_RECEIVE\_CLIENT\_HTTP                        = 46,
+893         LWS\_CALLBACK\_COMPLETED\_CLIENT\_HTTP                      = 47,
+895         LWS\_CALLBACK\_RECEIVE\_CLIENT\_HTTP\_READ                   = 48,
+897         LWS\_CALLBACK\_HTTP\_BIND\_PROTOCOL                         = 49,
+899         LWS\_CALLBACK\_HTTP\_DROP\_PROTOCOL                         = 50,
+901         LWS\_CALLBACK\_CHECK\_ACCESS\_RIGHTS                        = 51,
+903         LWS\_CALLBACK\_PROCESS\_HTML                               = 52,
+905         LWS\_CALLBACK\_ADD\_HEADERS                                = 53,
+907         LWS\_CALLBACK\_SESSION\_INFO                               = 54,
+910         LWS\_CALLBACK\_GS\_EVENT                                   = 55,
+912         \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a}{LWS\_CALLBACK\_HTTP\_PMO}                                      = 56,
+918         \textcolor{comment}{/****** add new things just above ---^ ******/}
+919 
+920         \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a}{LWS\_CALLBACK\_USER} = 1000,
+922 \};
+>>>>>>> patched
 \end{DoxyCode}
diff --git a/doc/latex/libwebsockets_8h.tex b/doc/latex/libwebsockets_8h.tex
index c4bfa59e..ebcda1a0 100644
--- a/doc/latex/libwebsockets_8h.tex
+++ b/doc/latex/libwebsockets_8h.tex
@@ -198,6 +198,7 @@ enum \hyperlink{group__usercb_gad62860e19975ba4c4af401c3cdb6abf7}{lws\+\_\+callb
 {\bfseries L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+S\+E\+S\+S\+I\+O\+N\+\_\+\+I\+N\+FO} = 54, 
 {\bfseries L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+G\+S\+\_\+\+E\+V\+E\+NT} = 55, 
 \\*
+\hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a}{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO} = 56, 
 \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a}{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER} = 1000
  \}
 \item 
diff --git a/doc/latex/md_README.generic-table.tex b/doc/latex/md_README.generic-table.tex
index 06008e66..72b8f646 100644
--- a/doc/latex/md_README.generic-table.tex
+++ b/doc/latex/md_README.generic-table.tex
@@ -2,11 +2,135 @@
 
 Generic-\/table is a J\+S\+ON schema and client-\/side JS file that makes it easy to display live, table structured H\+T\+ML over a ws link.
 
-An example plugin and index.\+html using it are provided.
+An example plugin and index.\+html using it are provided, but lwsgt itself doesn\textquotesingle{}t have its own plugin, it\textquotesingle{}s just a J\+S\+ON schema and client-\/side JS that other plugins can use to simplify displaying live, table-\/based data without having to reinvent the wheel each time.
 
 \subsection*{Enabling for build }
 
-Enable at C\+Make with -\/\+D\+L\+W\+S\+\_\+\+W\+I\+T\+H\+\_\+\+P\+L\+U\+G\+I\+NS=1
+Enable the demo plugin at C\+Make with -\/\+D\+L\+W\+S\+\_\+\+W\+I\+T\+H\+\_\+\+P\+L\+U\+G\+I\+NS=1
+
+\subsection*{Integrating with your html }
+
+
+\begin{DoxyItemize}
+\item In your H\+E\+AD section, include lwsgt.\+js
+\end{DoxyItemize}
+
+
+\begin{DoxyCode}
+1 <script src="lwsgt.js"></script>
+\end{DoxyCode}
+
+
+
+\begin{DoxyItemize}
+\item Also in your H\+E\+AD section, style the lwsgt C\+SS, eg
+\end{DoxyItemize}
+
+
+\begin{DoxyCode}
+1 <style>
+2 .lwsgt\_title \{ font-size: 24; text-align:center \}
+3 .lwsgt\_breadcrumbs \{ font-size: 18; text-align:left \}
+4 .lwsgt\_table \{ font-size: 14; padding:12px; margin: 12px; align:center \}
+5 .lwsgt\_hdr \{ font-size: 18; text-align:center;
+6              background-color: rgba(40, 40, 40, 0.8); color: white \}
+7 .lwsgt\_tr \{ padding: 10px  \}
+8 .lwsgt\_td \{ padding: 3px  \}
+9 </style>
+\end{DoxyCode}
+
+
+You can skip this but the result will be less beautiful until some C\+SS is provided.
+
+
+\begin{DoxyItemize}
+\item In your body section, declare a div with an id (can be whatever you want)
+\end{DoxyItemize}
+
+
+\begin{DoxyCode}
+1 <tr><td><div id="lwsgt1" class="group1"></div></td></tr>
+\end{DoxyCode}
+
+
+lwsgt JS will put its content there.
+
+
+\begin{DoxyItemize}
+\item Finally in a $<$script$>$ at the end of your page, instantiate lwsgt and provide a custom callback for clickable links
+\end{DoxyItemize}
+
+
+\begin{DoxyCode}
+1 <script>
+2 var v1 = new lwsgt\_initial("Dir listing demo",
+3                            "protocol-lws-table-dirlisting",
+4                            "lwsgt1", "lwsgt\_dir\_click", "v1");
+5 
+6 function lwsgt\_dir\_click(gt, u, col, row)
+7 \{
+8         if (u[0] == '=') \{ /* change directory */
+9                 window[gt].lwsgt\_ws.send(u.substring(1, u.length));
+10                 return;
+11         \}
+12         var win = window.open(u, '\_blank');
+13         win.focus();
+14 \}
+15 
+16 </script>
+\end{DoxyCode}
+
+
+In the callback, you can recover the ws object by {\ttfamily window\mbox{[}gt\mbox{]}.lwsgt\+\_\+ws}.
+
+\subsection*{Lwsgt constructor }
+
+{\ttfamily var myvar = new lwsgt\+\_\+initial(title, ws\+\_\+protocol, div\+\_\+id, click\+\_\+cb, myvar);}
+
+All of the arguments are strings.
+
+\tabulinesep=1mm
+\begin{longtabu} spread 0pt [c]{*2{|X[-1]}|}
+\hline
+\rowcolor{\tableheadbgcolor}{\bf Parameter }&{\bf Description  }\\\cline{1-2}
+\endfirsthead
+\hline
+\endfoot
+\hline
+\rowcolor{\tableheadbgcolor}{\bf Parameter }&{\bf Description  }\\\cline{1-2}
+\endhead
+title &Title string to go above the table \\\cline{1-2}
+ws\+\_\+protocol &Protocol name string to use when making ws connection \\\cline{1-2}
+div\+\_\+id &H\+T\+ML id of div to fill with content \\\cline{1-2}
+click\+\_\+cb &Callback function name string to handle clickable links \\\cline{1-2}
+myvar &Name of var used to hold this instantiation globally \\\cline{1-2}
+\end{longtabu}
+
+
+\subsection*{Lwsgt click handling function }
+
+When a clickable link produced by lwsgt is clicked, the function named in the click\+\_\+cb parameter to lwsgt\+\_\+initial is called.
+
+That function is expected to take four parameters, eg
+
+{\ttfamily function lwsgt\+\_\+dir\+\_\+click(gt, u, col, row)}
+
+\tabulinesep=1mm
+\begin{longtabu} spread 0pt [c]{*2{|X[-1]}|}
+\hline
+\rowcolor{\tableheadbgcolor}{\bf Parameter }&{\bf Description  }\\\cline{1-2}
+\endfirsthead
+\hline
+\endfoot
+\hline
+\rowcolor{\tableheadbgcolor}{\bf Parameter }&{\bf Description  }\\\cline{1-2}
+\endhead
+gt &Name of global var holding this lwsgt context (ie, myvar) \\\cline{1-2}
+u &Link \char`\"{}url\char`\"{} string \\\cline{1-2}
+col &Table column number link is from \\\cline{1-2}
+row &Table row number link is from \\\cline{1-2}
+\end{longtabu}
+
 
 \subsection*{Generic-\/table J\+S\+ON }
 
@@ -16,14 +140,14 @@ When the ws connection is established, the protocol should send a J\+S\+ON messa
 
 
 \begin{DoxyCode}
-1 msg = "\{\(\backslash\)"cols\(\backslash\)":["
-2       "  \{\(\backslash\)"name\(\backslash\)": \(\backslash\)"Date\(\backslash\)"\},"
-3       "  \{\(\backslash\)"name\(\backslash\)": \(\backslash\)"Size\(\backslash\)", \(\backslash\)"align\(\backslash\)": \(\backslash\)"right\(\backslash\)"\},"
-4       "  \{\(\backslash\)"name\(\backslash\)": \(\backslash\)"Icon\(\backslash\)"\},"
-5       "  \{\(\backslash\)"name\(\backslash\)": \(\backslash\)"Name\(\backslash\)", \(\backslash\)"href\(\backslash\)": \(\backslash\)"uri\(\backslash\)"\},"
-6       "  \{\(\backslash\)"name\(\backslash\)": \(\backslash\)"uri\(\backslash\)", \(\backslash\)"hide\(\backslash\)": \(\backslash\)"1\(\backslash\)" \}"
-7       " ]"
-8       "\}";
+1 "cols": [
+2       \{ "name": "Date" \},
+3       \{ "name": "Size", "align": "right" \},
+4       \{ "name": "Icon" \},
+5       \{ "name": "Name", "href": "uri"\},
+6       \{ "name": "uri", "hide": "1" \}"
+7   ]
+8 \}
 \end{DoxyCode}
 
 
@@ -35,6 +159,34 @@ When the ws connection is established, the protocol should send a J\+S\+ON messa
 \item \char`\"{}\+Size\char`\"{} field should be presented aligned to the right
 \end{DoxyItemize}
 
+\subsubsection*{Breadcrumbs}
+
+When a view is hierarchical, it\textquotesingle{}s useful to provide a \char`\"{}path\char`\"{} with links back in the \char`\"{}path\char`\"{}, known as \char`\"{}breadcrumbs\char`\"{}.
+
+Elements before the last one should provide a \char`\"{}url\char`\"{} member as well as the displayable name, which is used to create the link destination.
+
+The last element, being the current displayed page should not have a url member and be displayed without link style.
+
+
+\begin{DoxyCode}
+1 "breadcrumbs":[\{"name":"top", "url": "/" \}, \{"name":"mydir"\}]
+\end{DoxyCode}
+
+
 \subsubsection*{Table data}
 
-The 
\ No newline at end of file
+The actual file data consists of an array of rows, containing the columns mentioned in the original \char`\"{}cols\char`\"{} section.
+
+
+\begin{DoxyCode}
+1 "data":[
+2         \{
+3          "Icon":" ",
+4          "Date":"2015-Feb-06 03:08:35 +0000",
+5          "Size":"1406",
+6          "uri":"./serve//favicon.ico",
+7          "Name":"favicon.ico"
+8         \}
+9 ]
+\end{DoxyCode}
+ 
\ No newline at end of file
diff --git a/doc/latex/refman.tex b/doc/latex/refman.tex
index 8a9f9e3f..7ba81199 100644
--- a/doc/latex/refman.tex
+++ b/doc/latex/refman.tex
@@ -143,6 +143,10 @@
 \label{md_README.build}
 \hypertarget{md_README.build}{}
 \input{md_README.build}
+\chapter{Debugging problems}
+\label{md_README.problems}
+\hypertarget{md_README.problems}{}
+\input{md_README.problems}
 \chapter{Notes about lwsws}
 \label{md_README.lwsws}
 \hypertarget{md_README.lwsws}{}
@@ -155,6 +159,10 @@
 \label{md_README.generic-sessions}
 \hypertarget{md_README.generic-sessions}{}
 \input{md_README.generic-sessions}
+\chapter{Notes about generic-\/table}
+\label{md_README.generic-table}
+\hypertarget{md_README.generic-table}{}
+\input{md_README.generic-table}
 \chapter{Overview of lws test apps}
 \label{md_README.test-apps}
 \hypertarget{md_README.test-apps}{}
diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c
index 586dab3e..5b1a7f2e 100755
--- a/lib/libwebsockets.c
+++ b/lib/libwebsockets.c
@@ -473,6 +473,13 @@ just_kill_connection:
 	    (wsi->state_pre_close == LWSS_FLUSHING_STORED_SEND_BEFORE_CLOSE) ||
 	    (wsi->mode == LWSCM_WS_CLIENT && wsi->state_pre_close == LWSS_HTTP) ||
 	    (wsi->mode == LWSCM_WS_SERVING && wsi->state_pre_close == LWSS_HTTP))) {
+
+		if (wsi->user_space) {
+			lwsl_debug("%s: doing LWS_CALLBACK_HTTP_DROP_PROTOCOL for %p prot %s", __func__, wsi, wsi->protocol->name);
+			wsi->protocol->callback(wsi,
+					LWS_CALLBACK_HTTP_DROP_PROTOCOL,
+					       wsi->user_space, NULL, 0);
+		}
 		lwsl_debug("calling back CLOSED\n");
 		wsi->protocol->callback(wsi, LWS_CALLBACK_CLOSED,
 					wsi->user_space, NULL, 0);
@@ -1528,6 +1535,11 @@ lws_json_purify(char *escaped, const char *string, int len)
 	const char *p = string;
 	char *q = escaped;
 
+	if (!p) {
+		escaped[0] = '\0';
+		return escaped;
+	}
+
 	while (*p && len-- > 6) {
 		if (*p == '\"' || *p == '\\' || *p < 0x20) {
 			*q++ = '\\';
diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h
index 7c8d8373..c9c83de7 100644
--- a/lib/libwebsockets.h
+++ b/lib/libwebsockets.h
@@ -915,6 +915,11 @@ enum lws_callback_reasons {
 
 	LWS_CALLBACK_GS_EVENT					= 55,
 	/**<  */
+	LWS_CALLBACK_HTTP_PMO					= 56,
+	/**< per-mount options for this connection, called before
+	 * the normal LWS_CALLBACK_HTTP when the mount has per-mount
+	 * options
+	 */
 
 	/****** add new things just above ---^ ******/
 
diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h
index 03ef1c18..7161d411 100644
--- a/lib/private-libwebsockets.h
+++ b/lib/private-libwebsockets.h
@@ -1737,6 +1737,9 @@ lws_protocol_init(struct lws_context *context);
 int
 lws_bind_protocol(struct lws *wsi, const struct lws_protocols *p);
 
+const struct lws_http_mount *
+lws_find_mount(struct lws *wsi, const char *uri_ptr, int uri_len);
+
 /*
  * custom allocator
  */
diff --git a/lib/server-handshake.c b/lib/server-handshake.c
index a0bddff7..3cefa0bd 100644
--- a/lib/server-handshake.c
+++ b/lib/server-handshake.c
@@ -260,6 +260,18 @@ handshake_0405(struct lws_context *context, struct lws *wsi)
 	wsi->state = LWSS_ESTABLISHED;
 	wsi->lws_rx_parse_state = LWS_RXPS_NEW;
 
+	{
+		const char * uri_ptr =
+			lws_hdr_simple_ptr(wsi, WSI_TOKEN_GET_URI);
+		int uri_len = lws_hdr_total_length(wsi, WSI_TOKEN_GET_URI);
+		const struct lws_http_mount *hit =
+			lws_find_mount(wsi, uri_ptr, uri_len);
+		if (hit && hit->cgienv &&
+		    wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP_PMO,
+			wsi->user_space, (void *)hit->cgienv, 0))
+			return 1;
+	}
+
 	return 0;
 
 
diff --git a/lib/server.c b/lib/server.c
index d5272c67..85e65d3f 100644
--- a/lib/server.c
+++ b/lib/server.c
@@ -456,6 +456,35 @@ bail:
 	return -1;
 }
 
+const struct lws_http_mount *
+lws_find_mount(struct lws *wsi, const char *uri_ptr, int uri_len)
+{
+	const struct lws_http_mount *hm, *hit = NULL;
+	int best = 0;
+
+	hm = wsi->vhost->mount_list;
+	while (hm) {
+		if (uri_len >= hm->mountpoint_len &&
+		    !strncmp(uri_ptr, hm->mountpoint, hm->mountpoint_len) &&
+		    (uri_ptr[hm->mountpoint_len] == '\0' ||
+		     uri_ptr[hm->mountpoint_len] == '/' ||
+		     hm->mountpoint_len == 1)
+		    ) {
+			if (hm->origin_protocol == LWSMPRO_CALLBACK ||
+			    ((hm->origin_protocol == LWSMPRO_CGI ||
+			     lws_hdr_total_length(wsi, WSI_TOKEN_GET_URI) ||
+			     hm->protocol) &&
+			    hm->mountpoint_len > best)) {
+				best = hm->mountpoint_len;
+				hit = hm;
+			}
+		}
+		hm = hm->mount_next;
+	}
+
+	return hit;
+}
+
 int
 lws_http_action(struct lws *wsi)
 {
@@ -464,13 +493,13 @@ lws_http_action(struct lws *wsi)
 	enum http_version request_version;
 	char content_length_str[32];
 	struct lws_process_html_args args;
-	const struct lws_http_mount *hm, *hit = NULL;
+	const struct lws_http_mount *hit = NULL;
 	unsigned int n, count = 0;
 	char http_version_str[10];
 	char http_conn_str[20];
 	int http_version_len;
-	char *uri_ptr = NULL;
-	int uri_len = 0, best = 0;
+	char *uri_ptr = NULL, *s;
+	int uri_len = 0;
 	int meth = -1;
 
 	static const unsigned char methods[] = {
@@ -690,226 +719,198 @@ lws_http_action(struct lws *wsi)
 
 	/* can we serve it from the mount list? */
 
-	hm = wsi->vhost->mount_list;
-	while (hm) {
-		if (uri_len >= hm->mountpoint_len &&
-		    !strncmp(uri_ptr, hm->mountpoint, hm->mountpoint_len) &&
-		    (uri_ptr[hm->mountpoint_len] == '\0' ||
-		     uri_ptr[hm->mountpoint_len] == '/' ||
-		     hm->mountpoint_len == 1)
-		    ) {
-			if (hm->origin_protocol == LWSMPRO_CALLBACK ||
-			    ((hm->origin_protocol == LWSMPRO_CGI ||
-			     lws_hdr_total_length(wsi, WSI_TOKEN_GET_URI) ||
-			     hm->protocol) &&
-			    hm->mountpoint_len > best)) {
-				best = hm->mountpoint_len;
-				hit = hm;
-			}
-		}
-		hm = hm->mount_next;
-	}
-	if (hit) {
-		char *s = uri_ptr + hit->mountpoint_len;
+	hit = lws_find_mount(wsi, uri_ptr, uri_len);
+	if (!hit) {
+		/* deferred cleanup and reset to protocols[0] */
 
-		lwsl_debug("*** hit %d %d %s\n", hit->mountpoint_len,
-			   hit->origin_protocol , hit->origin);
+		lwsl_info("no hit\n");
 
-		if (hit->protocol) {
-			const struct lws_protocols *pp = lws_vhost_name_to_protocol(
-					wsi->vhost, hit->protocol);
+		if (lws_bind_protocol(wsi, &wsi->vhost->protocols[0]))
+			return 1;
 
-			if (!pp) {
-				lwsl_err("unknown protocol %s\n", hit->protocol);
-				return 1;
-			}
+		n = wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP,
+				    wsi->user_space, uri_ptr, uri_len);
 
-			if (lws_bind_protocol(wsi, pp))
-				return 1;
-		}
-		lwsl_info("wsi %s protocol '%s'\n", uri_ptr, wsi->protocol->name);
+		goto after;
+	}
 
-		args.p = uri_ptr;
-		args.len = uri_len;
-		args.max_len = hit->auth_mask;
-		args.final = 0; /* used to signal callback dealt with it */
+	s = uri_ptr + hit->mountpoint_len;
 
-		n = wsi->protocol->callback(wsi, LWS_CALLBACK_CHECK_ACCESS_RIGHTS,
-					    wsi->user_space, &args, 0);
-		if (n) {
-			lws_return_http_status(wsi, HTTP_STATUS_UNAUTHORIZED,
-					       NULL);
+	args.p = uri_ptr;
+	args.len = uri_len;
+	args.max_len = hit->auth_mask;
+	args.final = 0; /* used to signal callback dealt with it */
+
+	n = wsi->protocol->callback(wsi, LWS_CALLBACK_CHECK_ACCESS_RIGHTS,
+				    wsi->user_space, &args, 0);
+	if (n) {
+		lws_return_http_status(wsi, HTTP_STATUS_UNAUTHORIZED,
+				       NULL);
+		goto bail_nuke_ah;
+	}
+	if (args.final) /* callback completely handled it well */
+		return 0;
+
+	/*
+	 * if we have a mountpoint like https://xxx.com/yyy
+	 * there is an implied / at the end for our purposes since
+	 * we can only mount on a "directory".
+	 *
+	 * But if we just go with that, the browser cannot understand
+	 * that he is actually looking down one "directory level", so
+	 * even though we give him /yyy/abc.html he acts like the
+	 * current directory level is /.  So relative urls like "x.png"
+	 * wrongly look outside the mountpoint.
+	 *
+	 * Therefore if we didn't come in on a url with an explicit
+	 * / at the end, we must redirect to add it so the browser
+	 * understands he is one "directory level" down.
+	 */
+	if ((hit->mountpoint_len > 1 ||
+	     (hit->origin_protocol == LWSMPRO_REDIR_HTTP ||
+	      hit->origin_protocol == LWSMPRO_REDIR_HTTPS)) &&
+	    (*s != '/' ||
+	     (hit->origin_protocol == LWSMPRO_REDIR_HTTP ||
+	      hit->origin_protocol == LWSMPRO_REDIR_HTTPS)) &&
+	    (hit->origin_protocol != LWSMPRO_CGI &&
+	     hit->origin_protocol != LWSMPRO_CALLBACK //&&
+	     //hit->protocol == NULL
+	     )) {
+		unsigned char *start = pt->serv_buf + LWS_PRE,
+			      *p = start, *end = p + 512;
+
+		lwsl_debug("Doing 301 '%s' org %s\n", s, hit->origin);
+
+		if (!lws_hdr_total_length(wsi, WSI_TOKEN_HOST))
 			goto bail_nuke_ah;
-		}
-		if (args.final) /* callback completely handled it well */
-			return 0;
 
-		/*
-		 * if we have a mountpoint like https://xxx.com/yyy
-		 * there is an implied / at the end for our purposes since
-		 * we can only mount on a "directory".
-		 *
-		 * But if we just go with that, the browser cannot understand
-		 * that he is actually looking down one "directory level", so
-		 * even though we give him /yyy/abc.html he acts like the
-		 * current directory level is /.  So relative urls like "x.png"
-		 * wrongly look outside the mountpoint.
-		 *
-		 * Therefore if we didn't come in on a url with an explicit
-		 * / at the end, we must redirect to add it so the browser
-		 * understands he is one "directory level" down.
-		 */
-		if ((hit->mountpoint_len > 1 ||
-		     (hit->origin_protocol == LWSMPRO_REDIR_HTTP ||
-		      hit->origin_protocol == LWSMPRO_REDIR_HTTPS)) &&
-		    (*s != '/' ||
-		     (hit->origin_protocol == LWSMPRO_REDIR_HTTP ||
-		      hit->origin_protocol == LWSMPRO_REDIR_HTTPS)) &&
-		    (hit->origin_protocol != LWSMPRO_CGI &&
-		     hit->origin_protocol != LWSMPRO_CALLBACK //&&
-		     //hit->protocol == NULL
-		     )) {
-			unsigned char *start = pt->serv_buf + LWS_PRE,
-					      *p = start, *end = p + 512;
-
-			lwsl_debug("Doing 301 '%s' org %s\n", s, hit->origin);
-
-			if (!lws_hdr_total_length(wsi, WSI_TOKEN_HOST))
-				goto bail_nuke_ah;
+		/* > at start indicates deal with by redirect */
+		if (hit->origin_protocol == LWSMPRO_REDIR_HTTP ||
+		    hit->origin_protocol == LWSMPRO_REDIR_HTTPS)
+			n = snprintf((char *)end, 256, "%s%s",
+				    oprot[hit->origin_protocol & 1],
+				    hit->origin);
+		else
+			n = snprintf((char *)end, 256,
+			    "%s%s%s/", oprot[lws_is_ssl(wsi)],
+			    lws_hdr_simple_ptr(wsi, WSI_TOKEN_HOST),
+			    uri_ptr);
 
-			/* > at start indicates deal with by redirect */
-			if (hit->origin_protocol == LWSMPRO_REDIR_HTTP ||
-			    hit->origin_protocol == LWSMPRO_REDIR_HTTPS)
-				n = snprintf((char *)end, 256, "%s%s",
-					    oprot[hit->origin_protocol & 1],
-					    hit->origin);
-			else
-				n = snprintf((char *)end, 256,
-				    "%s%s%s/", oprot[lws_is_ssl(wsi)],
-				    lws_hdr_simple_ptr(wsi, WSI_TOKEN_HOST),
-				    uri_ptr);
-
-			n = lws_http_redirect(wsi, HTTP_STATUS_MOVED_PERMANENTLY,
-					      end, n, &p, end);
-			if ((int)n < 0)
-				goto bail_nuke_ah;
+		n = lws_http_redirect(wsi, HTTP_STATUS_MOVED_PERMANENTLY,
+				      end, n, &p, end);
+		if ((int)n < 0)
+			goto bail_nuke_ah;
 
-			return lws_http_transaction_completed(wsi);
+		return lws_http_transaction_completed(wsi);
+	}
+
+	/*
+	 * A particular protocol callback is mounted here?
+	 *
+	 * For the duration of this http transaction, bind us to the
+	 * associated protocol
+	 */
+	if (hit->origin_protocol == LWSMPRO_CALLBACK || hit->protocol) {
+		const struct lws_protocols *pp;
+		const char *name = hit->origin;
+		if (hit->protocol)
+			name = hit->protocol;
+
+		pp = lws_vhost_name_to_protocol(wsi->vhost, name);
+		if (!pp) {
+			n = -1;
+			lwsl_err("Unable to find plugin '%s'\n",
+				 hit->origin);
+			return 1;
 		}
 
-		/*
-		 * A particular protocol callback is mounted here?
-		 *
-		 * For the duration of this http transaction, bind us to the
-		 * associated protocol
-		 */
+		if (lws_bind_protocol(wsi, pp))
+			return 1;
 
-		if (hit->origin_protocol == LWSMPRO_CALLBACK ||
-		    (hit->protocol && lws_hdr_total_length(wsi, WSI_TOKEN_POST_URI))) {
-			if (! hit->protocol) {
-				for (n = 0; n < (unsigned int)wsi->vhost->count_protocols; n++)
-					if (!strcmp(wsi->vhost->protocols[n].name,
-						   hit->origin)) {
-						if (lws_bind_protocol(wsi, &wsi->vhost->protocols[n]))
-							return 1;
-						break;
-					}
-
-				if (n == wsi->vhost->count_protocols) {
-					n = -1;
-					lwsl_err("Unable to find plugin '%s'\n",
-						 hit->origin);
-				}
-			}
-			n = wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP,
-						    wsi->user_space,
-						    uri_ptr + hit->mountpoint_len,
-						    uri_len - hit->mountpoint_len);
+		if (hit->cgienv && wsi->protocol->callback(wsi,
+				LWS_CALLBACK_HTTP_PMO,
+				wsi->user_space, (void *)hit->cgienv, 0))
+			return 1;
 
+		if (lws_hdr_total_length(wsi, WSI_TOKEN_POST_URI)) {
+			n = wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP,
+					    wsi->user_space,
+					    uri_ptr + hit->mountpoint_len,
+					    uri_len - hit->mountpoint_len);
 			goto after;
 		}
+	}
 
 #ifdef LWS_WITH_CGI
-		/* did we hit something with a cgi:// origin? */
-		if (hit->origin_protocol == LWSMPRO_CGI) {
-			const char *cmd[] = {
-				NULL, /* replace with cgi path */
-				NULL
-			};
-			unsigned char *p, *end, buffer[256];
-
-			lwsl_debug("%s: cgi\n", __func__);
-			cmd[0] = hit->origin;
-
-			n = 5;
-			if (hit->cgi_timeout)
-				n = hit->cgi_timeout;
-
-			n = lws_cgi(wsi, cmd, hit->mountpoint_len, n,
-				    hit->cgienv);
-			if (n) {
-				lwsl_err("%s: cgi failed\n");
-				return -1;
-			}
-			p = buffer + LWS_PRE;
-			end = p + sizeof(buffer) - LWS_PRE;
-
-			if (lws_add_http_header_status(wsi, 200, &p, end))
-				return 1;
-			if (lws_add_http_header_by_token(wsi, WSI_TOKEN_CONNECTION,
-					(unsigned char *)"close", 5, &p, end))
-				return 1;
-			n = lws_write(wsi, buffer + LWS_PRE,
-				      p - (buffer + LWS_PRE),
-				      LWS_WRITE_HTTP_HEADERS);
+	/* did we hit something with a cgi:// origin? */
+	if (hit->origin_protocol == LWSMPRO_CGI) {
+		const char *cmd[] = {
+			NULL, /* replace with cgi path */
+			NULL
+		};
+		unsigned char *p, *end, buffer[256];
 
-			goto deal_body;
-		}
-#endif
+		lwsl_debug("%s: cgi\n", __func__);
+		cmd[0] = hit->origin;
 
-		n = strlen(s);
-		if (s[0] == '\0' || (n == 1 && s[n - 1] == '/'))
-			s = (char *)hit->def;
-		if (!s)
-			s = "index.html";
+		n = 5;
+		if (hit->cgi_timeout)
+			n = hit->cgi_timeout;
 
-		wsi->cache_secs = hit->cache_max_age;
-		wsi->cache_reuse = hit->cache_reusable;
-		wsi->cache_revalidate = hit->cache_revalidate;
-		wsi->cache_intermediaries = hit->cache_intermediaries;
+		n = lws_cgi(wsi, cmd, hit->mountpoint_len, n,
+			    hit->cgienv);
+		if (n) {
+			lwsl_err("%s: cgi failed\n");
+			return -1;
+		}
+		p = buffer + LWS_PRE;
+		end = p + sizeof(buffer) - LWS_PRE;
 
+		if (lws_add_http_header_status(wsi, 200, &p, end))
+			return 1;
+		if (lws_add_http_header_by_token(wsi, WSI_TOKEN_CONNECTION,
+				(unsigned char *)"close", 5, &p, end))
+			return 1;
+		n = lws_write(wsi, buffer + LWS_PRE,
+			      p - (buffer + LWS_PRE),
+			      LWS_WRITE_HTTP_HEADERS);
 
-		n = lws_http_serve(wsi, s, hit->origin, hit);
-		if (n) {
-			/*
-			 * 	lws_return_http_status(wsi, HTTP_STATUS_NOT_FOUND, NULL);
-			 */
-			if (hit->protocol) {
-				const struct lws_protocols *pp = lws_vhost_name_to_protocol(
-						wsi->vhost, hit->protocol);
+		goto deal_body;
+	}
+#endif
 
-				if (lws_bind_protocol(wsi, pp))
-					return 1;
+	n = strlen(s);
+	if (s[0] == '\0' || (n == 1 && s[n - 1] == '/'))
+		s = (char *)hit->def;
+	if (!s)
+		s = "index.html";
 
-				n = pp->callback(wsi, LWS_CALLBACK_HTTP,
-						 wsi->user_space,
-						 uri_ptr + hit->mountpoint_len,
-						 uri_len - hit->mountpoint_len);
-			} else
-				n = wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP,
-					    wsi->user_space, uri_ptr, uri_len);
-		}
-	} else {
-		/* deferred cleanup and reset to protocols[0] */
+	wsi->cache_secs = hit->cache_max_age;
+	wsi->cache_reuse = hit->cache_reusable;
+	wsi->cache_revalidate = hit->cache_revalidate;
+	wsi->cache_intermediaries = hit->cache_intermediaries;
 
-		lwsl_info("no hit\n");
+	n = lws_http_serve(wsi, s, hit->origin, hit);
+	if (n) {
+		/*
+		 * 	lws_return_http_status(wsi, HTTP_STATUS_NOT_FOUND, NULL);
+		 */
+		if (hit->protocol) {
+			const struct lws_protocols *pp = lws_vhost_name_to_protocol(
+					wsi->vhost, hit->protocol);
 
-		if (lws_bind_protocol(wsi, &wsi->vhost->protocols[0]))
-			return 1;
+			if (lws_bind_protocol(wsi, pp))
+				return 1;
 
-		n = wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP,
+			n = pp->callback(wsi, LWS_CALLBACK_HTTP,
+					 wsi->user_space,
+					 uri_ptr + hit->mountpoint_len,
+					 uri_len - hit->mountpoint_len);
+		} else
+			n = wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP,
 				    wsi->user_space, uri_ptr, uri_len);
 	}
+
 after:
 	if (n) {
 		lwsl_info("LWS_CALLBACK_HTTP closing\n");
@@ -1301,7 +1302,7 @@ upgrade_ws:
 			return 1;
 		}
 		wsi->u.ws.rx_ubuf_alloc = n;
-		lwsl_info("Allocating RX buffer %d\n", n);
+		lwsl_debug("Allocating RX buffer %d\n", n);
 #if LWS_POSIX
 		if (setsockopt(wsi->sock, SOL_SOCKET, SO_SNDBUF,
 			       (const char *)&n, sizeof n)) {
@@ -1309,6 +1310,7 @@ upgrade_ws:
 			return 1;
 		}
 #endif
+
 		lwsl_parser("accepted v%02d connection\n",
 			    wsi->ietf_spec_revision);
 
diff --git a/libwebsockets.dox b/libwebsockets.dox
index e00e14a3..e1002850 100644
--- a/libwebsockets.dox
+++ b/libwebsockets.dox
@@ -101,9 +101,9 @@ WARN_LOGFILE           =
 #---------------------------------------------------------------------------
 # Configuration options related to the input files
 #---------------------------------------------------------------------------
-INPUT                  = lib/libwebsockets.h mainpage.md README.build.md README.lwsws.md README.coding.md README.generic-sessions.md README.test-apps.md 
+INPUT                  = lib/libwebsockets.h mainpage.md README.build.md README.problems.md README.lwsws.md README.coding.md README.generic-sessions.md README.generic-table.md README.test-apps.md doc-assets 
 INPUT_ENCODING         = UTF-8
-FILE_PATTERNS          = lib/*.c *.md
+FILE_PATTERNS          = lib/*.c *.md *.png
 RECURSIVE              = NO
 EXCLUDE                =
 EXCLUDE_SYMLINKS       = NO
@@ -112,7 +112,7 @@ EXCLUDE_SYMBOLS        =
 EXAMPLE_PATH           =
 EXAMPLE_PATTERNS       =
 EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             =
+IMAGE_PATH             = doc-assets
 INPUT_FILTER           =
 FILTER_PATTERNS        =
 FILTER_SOURCE_FILES    = NO
@@ -197,7 +197,7 @@ EXTRA_SEARCH_MAPPINGS  =
 #---------------------------------------------------------------------------
 # Configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
-GENERATE_LATEX         = YES
+GENERATE_LATEX         = NO
 LATEX_OUTPUT           = latex
 LATEX_CMD_NAME         = latex
 MAKEINDEX_CMD_NAME     = makeindex
diff --git a/plugins/generic-table/assets/index.html b/plugins/generic-table/assets/index.html
new file mode 100644
index 00000000..1f11f8b6
--- /dev/null
+++ b/plugins/generic-table/assets/index.html
@@ -0,0 +1,75 @@
+<html>
+ <head>
+  <script src="/lws-common.js"></script>
+  <script src="lwsgt.js"></script>
+  <style>
+	.body { font-size: 12 }
+	.gstitle { font-size: 24; text-align:center }
+	.group1 { vertical-align:middle;text-align:center;background:#f0f0e0; 
+		padding:12px; -webkit-border-radius:10px; 
+		-moz-border-radius:10px;border-radius:10px; }
+	.group2 { vertical-align:middle; font-size: 18;text-align:center;
+		margin:auto; align:center;
+		background-color: rgba(255, 255, 255, 0.8); padding:12px;
+		display:inline-block; -webkit-border-radius:10px; 
+		-moz-border-radius:10px; border-radius:10px; }
+
+	.lwsgt_title { font-size: 24; text-align:center }
+	.lwsgt_breadcrumbs { font-size: 18; text-align:left }
+	.lwsgt_table { font-size: 14; padding:12px; margin: 12px; align:center }
+	.lwsgt_hdr { font-size: 18; text-align:center;
+		     background-color: rgba(40, 40, 40, 0.8); color: white }
+	.lwsgt_tr { padding: 10px  }
+	.lwsgt_td { padding: 3px  }
+  </style>
+  </head>
+  <body>
+	<table>
+		<tr><td class="gstitle">
+		 LWS Generic Table demo
+		</td></tr>
+		<tr><td class="group2">
+		This is a demo of lws generic table, using a protocol plugin
+		"protocol-lws-table-dirlisting".  It shows a directory listing,
+		but unlike an oldstyle directory listing done on the
+		server side with a script, this is static html that connects
+		back to the server with a websocket, and gets live JSON from
+		that.
+		<p>
+		Actually the static html is extremely simple, since it uses
+		lwsgt, LWS Generic Table, JS include on the client-side that
+		handles all the table generation from a template sent in JSON
+		over the ws link.   It means there is no custom JS required
+		clientside either.  It's just CSS, this text and a call to
+		initialize lwsgt with the appropriate ws protocol.
+		</td></tr>
+		<tr><td><div id="lwsgt1" class="group1"></div></td></tr>
+		<tr><td class="group2">
+		There's no problem having multiple independent instances per
+		page...
+		</td></tr>
+		<tr><td><div id="lwsgt2" class="group1"></div></td></tr>
+	 </table>
+	<div id="debug"></div>
+
+  <script>
+	var v1 = new lwsgt_initial("Dir listing demo",
+				   "protocol-lws-table-dirlisting",
+				   "lwsgt1", "lwsgt_dir_click", "v1");
+	var v2 = new lwsgt_initial("Dir listing 2",
+				   "protocol-lws-table-dirlisting",
+				   "lwsgt2", "lwsgt_dir_click", "v2");
+	
+function lwsgt_dir_click(gt, u, col, row)
+{
+	if (u[0] == '=') { /* change directory */
+		window[gt].lwsgt_ws.send(u.substring(1, u.length));
+		return;
+	}
+	var win = window.open(u, '_blank');
+  	win.focus();
+}
+
+  </script>
+ </body>
+</html>
\ No newline at end of file
diff --git a/plugins/generic-table/assets/lwsgt.js b/plugins/generic-table/assets/lwsgt.js
new file mode 100644
index 00000000..5eda2af2
--- /dev/null
+++ b/plugins/generic-table/assets/lwsgt.js
@@ -0,0 +1,121 @@
+function lwsgt_get_appropriate_ws_url()
+{
+	var pcol;
+	var u = document.URL;
+
+	if (u.substring(0, 5) == "https") {
+		pcol = "wss://";
+		u = u.substr(8);
+	} else {
+		pcol = "ws://";
+		if (u.substring(0, 4) == "http")
+			u = u.substr(7);
+	}
+
+	return pcol + u;
+}
+
+function lwsgt_app_hdr(j, bc, ws)
+{
+	var s = "", n, m = 0;
+					
+	for (n = 0; n < j.cols.length; n++)
+		if (!j.cols[n].hide)
+			m++;
+
+	s = "<tr><td colspan=\"" + m + "\" class=\"lwsgt_title\">" + ws.lwsgt_title + "</td></tr>"
+
+	if (!!bc) {
+		s += "<tr><td colspan=\"" + m + "\" class=\"lwsgt_breadcrumbs\">";
+		for (n = 0; n < bc.length; n++) {
+			s += " / ";
+			if (!bc[n].url && bc[n].url !== "")
+				s += " " + lws_san(bc[n].name) + " ";
+			else
+				s += " <a href=\"#\"onclick=\"window[\'"+ ws.lwsgt_cb +"\']('" +
+					ws.lwsgt_parent + "', '=" + 
+					lws_san(encodeURI(bc[n].url)) +
+					"', -1, -1); event.preventDefault();\">" +
+					lws_san(bc[n].name) + "</a> ";
+		}
+		s += "</td></tr>";
+	}
+	s += "<tr>";
+	for (n = 0; n < j.cols.length; n++)
+		if (!j.cols[n].hide)
+			s = s + "<td class=\"lwsgt_hdr\">" + lws_san(j.cols[n].name) + "</td>";
+	
+	s += "</tr>";
+	
+	return s;
+} 
+
+function lwsgt_initial(title, pcol, divname, cb, gname)
+{
+	this.divname = divname;
+	
+	lws_gray_out(true,{'zindex':'499'});
+
+	if (typeof MozWebSocket != "undefined")
+		this.lwsgt_ws = new MozWebSocket(lwsgt_get_appropriate_ws_url(), pcol);
+	else
+		this.lwsgt_ws = new WebSocket(lwsgt_get_appropriate_ws_url(), pcol);
+	this.lwsgt_ws.divname = divname;
+	this.lwsgt_ws.lwsgt_cb = cb;
+	this.lwsgt_ws.lwsgt_parent = gname;
+	this.lwsgt_ws.lwsgt_title = title;
+	try {
+		this.lwsgt_ws.onopen = function() {
+			lws_gray_out(false);
+		//	document.getElementById("debug").textContent =
+		//		"ws opened " + lwsgt_get_appropriate_ws_url();
+		}
+		this.lwsgt_ws.onmessage = function got_packet(msg) {
+			var s, m, n, j = JSON.parse(msg.data);
+			// document.getElementById("debug").textContent = msg.data;
+			if (j.cols) {
+				this.hdr = j;
+			}
+			if (j.breadcrumbs) 
+				this.breadcrumbs = j.breadcrumbs;
+
+			if (j.data) {
+				s = "<table class=\"lwsgt_table\">" +
+					lwsgt_app_hdr(this.hdr, this.breadcrumbs, this);
+				for (m = 0; m < j.data.length; m++) {
+					s = s + "<tr class=\"lwsgt_tr\">";
+					for (n = 0; n < this.hdr.cols.length; n++) {
+						if (!this.hdr.cols[n].hide) {
+							if (!this.hdr.cols[n].align)
+								s = s + "<td class=\"lwsgt_td\">";
+							else
+								s = s + "<td class=\"lwsgt_td\" style=\"text-align: right\">";
+
+							if (this.hdr.cols[n].href &&
+							    !!j.data[m][this.hdr.cols[n].href])
+								s = s + "<a href=\"#\" onclick=\"window[\'"+this.lwsgt_cb +"\']('" +
+									this.lwsgt_parent + "', '" + 
+									lws_san(encodeURI(j.data[m][this.hdr.cols[n].href])) +
+									"', " + m + ", " + n + "); event.preventDefault();\">" + 
+									lws_san(j.data[m][this.hdr.cols[n].name]) +
+									"</a>";
+							else
+								s = s + lws_san(j.data[m][this.hdr.cols[n].name]);
+			
+							s = s + "</td>";
+						}
+					}
+	
+					s = s + "</tr>";
+				}
+				s = s + "</table>";
+				document.getElementById(this.divname).innerHTML = s;
+			}		
+		}
+		this.lwsgt_ws.onclose = function(){
+			lws_gray_out(true,{'zindex':'499'});
+		}
+	} catch(exception) {
+		alert('<p>Error' + exception);  
+	}
+}
\ No newline at end of file
diff --git a/plugins/generic-table/protocol_table_dirlisting.c b/plugins/generic-table/protocol_table_dirlisting.c
new file mode 100644
index 00000000..39ab79c2
--- /dev/null
+++ b/plugins/generic-table/protocol_table_dirlisting.c
@@ -0,0 +1,394 @@
+/*
+ * ws protocol handler plugin for dirlisting "generic table" demo
+ *
+ * Copyright (C) 2010-2016 Andy Green <andy@warmcat.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation:
+ * version 2.1 of the License.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
+#define LWS_DLL
+#define LWS_INTERNAL
+#include "../lib/libwebsockets.h"
+
+#include <string.h>
+#include <uv.h>
+
+struct fobj {
+	struct fobj *next;
+	const char *name, *uri, *icon, *date;
+	time_t m;
+	unsigned long size;
+};
+
+struct per_session_data__tbl_dir {
+	struct fobj base;
+	char strings[64 * 1024];
+	char reldir[256];
+	char *p;
+	const char *dir;
+
+#if UV_VERSION_MAJOR > 0
+	uv_fs_event_t *event_req;
+#endif
+	struct lws *wsi;
+};
+
+#if UV_VERSION_MAJOR > 0
+static void
+mon_cb(uv_fs_event_t *handle, const char *filename, int events, int status)
+{
+	struct per_session_data__tbl_dir *pss = handle->data;
+
+	//lwsl_notice("%s\n", __func__);
+
+	if (pss && pss->wsi)
+		lws_callback_on_writable(pss->wsi);
+}
+
+static void lws_uv_close_cb(uv_handle_t *handle)
+{
+	free(handle);
+}
+
+static void
+lws_protocol_dir_kill_monitor(struct per_session_data__tbl_dir *pss)
+{
+	if (!pss->event_req)
+		return;
+	pss->wsi = NULL;
+	pss->event_req->data = NULL;
+	uv_fs_event_stop(pss->event_req);
+	uv_close((uv_handle_t *)pss->event_req, lws_uv_close_cb);
+	pss->event_req = NULL;
+}
+#endif
+
+static int
+scan_dir(struct lws *wsi, struct per_session_data__tbl_dir *pss)
+{
+/* uuh travis... */
+#if UV_VERSION_MAJOR > 0
+	uv_loop_t *loop = lws_uv_getloop(lws_get_context(wsi), 0);
+	char *end = &(pss->strings[sizeof(pss->strings) - 1]);
+	struct fobj *prev = &pss->base;
+	char path[512], da[200];
+	const char *icon;
+	uv_dirent_t dent;
+	struct fobj *f;
+	struct stat st;
+	struct tm *tm;
+	int ret = 0, n;
+	uv_fs_t req;
+
+	lws_protocol_dir_kill_monitor(pss);
+
+	snprintf(path, sizeof(path) - 1, "%s/%s", pss->dir, pss->reldir);
+	//lwsl_notice("path = %s\n", path);
+
+	pss->event_req = malloc(sizeof(*pss->event_req));
+	if (!pss->event_req)
+		return 2;
+
+	pss->wsi = wsi;
+	pss->event_req->data = pss;
+
+        uv_fs_event_init(lws_uv_getloop(lws_get_context(wsi), 0),
+        		 pss->event_req);
+        // The recursive flag watches subdirectories too.
+        n = uv_fs_event_start(pss->event_req, mon_cb, path, UV_FS_EVENT_RECURSIVE);
+        //lwsl_notice("monitoring %s (%d)\n", path, n);
+
+	if (!uv_fs_scandir(loop, &req, path, 0, NULL)) {
+		lwsl_err("Scandir on %s failed\n", path);
+		return 2;
+	}
+
+	pss->p = pss->strings;
+
+	while (uv_fs_scandir_next(&req, &dent) != UV_EOF) {
+		snprintf(path, sizeof(path) - 1, "%s/%s/%s", pss->dir, pss->reldir, dent.name);
+
+		if (stat(path, &st)) {
+			lwsl_info("unable to stat %s\n", path);
+			goto bail;
+		}
+		f = malloc(sizeof(*f));
+		f->next = NULL;
+		f->name = pss->p;
+		n = snprintf(pss->p, end - pss->p, "%s", dent.name);
+		pss->p += n + 1;
+		f->uri = NULL;
+		if ((S_IFMT & st.st_mode) == S_IFDIR) {
+			n = snprintf(pss->p, end - pss->p, "=%s/%s", pss->reldir, dent.name);
+			f->uri = pss->p;
+		}
+		if (lws_get_mimetype(dent.name, NULL)) {
+			n = snprintf(pss->p, end - pss->p, "./serve/%s/%s", pss->reldir, dent.name);
+			f->uri = pss->p;
+		}
+		if (f->uri)
+			pss->p += n + 1;
+
+		if (end - pss->p < 100)
+			break;
+
+		icon = " ";
+		if ((S_IFMT & st.st_mode) == S_IFDIR)
+			icon = "&#x1f4c2;";
+
+		f->icon = pss->p;
+		n = snprintf(pss->p, end - pss->p, icon);
+		pss->p += n + 1;
+
+		f->date = pss->p;
+		tm = gmtime(&st.st_mtime);
+		strftime(da, sizeof(da), "%Y-%b-%d %H:%M:%S %z", tm);
+		n = snprintf(pss->p, end - pss->p, "%s", da);
+		pss->p += n + 1;
+
+		f->size = st.st_size;
+		f->m = st.st_mtime;
+		prev->next = f;
+		prev = f;
+	}
+
+bail:
+	uv_fs_req_cleanup(&req);
+
+	return ret;
+#else
+	return 0;
+#endif
+}
+
+static void
+free_scan_dir(struct per_session_data__tbl_dir *pss)
+{
+	struct fobj *f = pss->base.next, *f1;
+
+	while (f) {
+		f1 = f->next;
+		free(f);
+		f = f1;
+	}
+
+	pss->base.next = NULL;
+}
+
+static int
+callback_lws_table_dirlisting(struct lws *wsi, enum lws_callback_reasons reason,
+			      void *user, void *in, size_t len)
+{
+	struct per_session_data__tbl_dir *pss = (struct per_session_data__tbl_dir *)user;
+	char j[LWS_PRE + 16384], *p = j + LWS_PRE, *start = p, *q, *q1, *w,
+		*end = j + sizeof(j) - LWS_PRE, e[384], s[384], s1[384];
+	const struct lws_protocol_vhost_options *pmo;
+	struct fobj *f;
+	int n, first = 1;
+
+	switch (reason) {
+	case LWS_CALLBACK_PROTOCOL_INIT: /* per vhost */
+		break;
+
+	case LWS_CALLBACK_ESTABLISHED:
+		lwsl_debug("LWS_CALLBACK_ESTABLISHED\n");
+		/*
+		 * send client the lwsgt table layout
+		 */
+		start = "{\"cols\":["
+			"  {\"name\": \"Date\"},"
+			"  {\"name\": \"Size\", \"align\": \"right\"},"
+			"  {\"name\": \"Icon\"},"
+			"  {\"name\": \"Name\", \"href\": \"uri\"},"
+			"  {\"name\": \"uri\", \"hide\": \"1\" }"
+			" ]"
+			"}";
+		if (lws_write(wsi, (unsigned char *)start, strlen(start),
+			      LWS_WRITE_TEXT) < 0)
+			return -1;
+
+		/* send a view update next */
+		lws_callback_on_writable(wsi);
+		break;
+
+	case LWS_CALLBACK_RECEIVE:
+		if (len > sizeof(pss->reldir) - 1)
+			len = sizeof(pss->reldir) - 1;
+		if (!strstr(in, "..") && !strchr(in, '~'))
+			strncpy(pss->reldir, in, len);
+		else
+			len = 0;
+		pss->reldir[len] = '\0';
+		if (pss->reldir[0] == '/' && !pss->reldir[1])
+			pss->reldir[0] = '\0';
+		lwsl_info("%s\n", pss->reldir);
+		lws_callback_on_writable(wsi);
+		break;
+
+	case LWS_CALLBACK_SERVER_WRITEABLE:
+
+		if (scan_dir(wsi, pss))
+			return 1;
+
+		p += snprintf(p, end - p, "{\"breadcrumbs\":[");
+		q = pss->reldir;
+
+		if (!q[0])
+			p += snprintf(p, end - p, "{\"name\":\"top\"}");
+
+		while (*q) {
+
+			q1 = strchr(q, '/');
+			if (!q1) {
+				if (first)
+					strcpy(s, "top1");
+				else
+					strcpy(s, q);
+				s1[0] = '\0';
+				q += strlen(q);
+			} else {
+				n = q1 - q;
+				if (n > sizeof(s) - 1)
+					n = sizeof(s) - 1;
+				if (first) {
+					strcpy(s1, "/");
+					strcpy(s, "top");
+				} else {
+					strncpy(s, q, n);
+					s[n] = '\0';
+
+					n = q1 - pss->reldir;
+					if (n > sizeof(s1) - 1)
+						n = sizeof(s1) - 1;
+					strncpy(s1, pss->reldir, n);
+					s1[n] = '\0';
+				}
+				q = q1 + 1;
+			}
+			if (!first)
+				p += snprintf(p, end - p, ",");
+			else
+				first = 0;
+
+			p += snprintf(p, end - p, "{\"name\":\"%s\"",
+					lws_json_purify(e, s, sizeof(e)));
+			if (*q) {
+				w = s1;
+				while (w[0] == '/' && w[1] == '/')
+					w++;
+				p += snprintf(p, end - p, ",\"url\":\"%s\"",
+					lws_json_purify(e, w, sizeof(e)));
+			}
+			p += snprintf(p, end - p, "}");
+			if (!q1)
+				break;
+		}
+
+		p += snprintf(p, end - p, "],\"data\":[");
+
+		f = pss->base.next;
+		while (f) {
+			/* format in JSON */
+			p += snprintf(p, end - p, "{\"Icon\":\"%s\",",
+					lws_json_purify(e, f->icon, sizeof(e)));
+			p += snprintf(p, end - p, " \"Date\":\"%s\",",
+				lws_json_purify(e, f->date, sizeof(e)));
+			p += snprintf(p, end - p, " \"Size\":\"%ld\",",
+				f->size);
+			if (f->uri)
+				p += snprintf(p, end - p, " \"uri\":\"%s\",",
+						lws_json_purify(e, f->uri, sizeof(e)));
+			p += snprintf(p, end - p, " \"Name\":\"%s\"}",
+				lws_json_purify(e, f->name, sizeof(e)));
+
+			f = f->next;
+
+			if (f)
+				p += snprintf(p, end - p, ",");
+		}
+
+		p += snprintf(p, end - p, "]}");
+
+		free_scan_dir(pss);
+
+		if (lws_write(wsi, (unsigned char *)start, p - start,
+			      LWS_WRITE_TEXT) < 0)
+			return -1;
+
+		break;
+
+	case LWS_CALLBACK_HTTP_PMO:
+		/* find the per-mount options we're interested in */
+		lwsl_debug("LWS_CALLBACK_HTTP_PMO\n");
+		pmo = (struct lws_protocol_vhost_options *)in;
+		while (pmo) {
+			if (!strcmp(pmo->name, "dir")) /* path to list files */
+				pss->dir = pmo->value;
+			pmo = pmo->next;
+		}
+		if (!pss->dir[0]) {
+			lwsl_err("dirlisting: \"dir\" pmo missing\n");
+			return 1;
+		}
+		break;
+
+	case LWS_CALLBACK_HTTP_DROP_PROTOCOL:
+		//lwsl_notice("LWS_CALLBACK_HTTP_DROP_PROTOCOL\n");
+#if UV_VERSION_MAJOR > 0
+		lws_protocol_dir_kill_monitor(pss);
+#endif
+		break;
+
+	default:
+		return 0;
+	}
+
+	return 0;
+
+}
+
+static const struct lws_protocols protocols[] = {
+	{
+		"protocol-lws-table-dirlisting",
+		callback_lws_table_dirlisting,
+		sizeof(struct per_session_data__tbl_dir),
+		0,
+	},
+};
+
+LWS_EXTERN LWS_VISIBLE int
+init_protocol_lws_table_dirlisting(struct lws_context *context,
+			       struct lws_plugin_capability *c)
+{
+	if (c->api_magic != LWS_PLUGIN_API_MAGIC) {
+		lwsl_err("Plugin API %d, library API %d", LWS_PLUGIN_API_MAGIC,
+			 c->api_magic);
+		return 1;
+	}
+
+	c->protocols = protocols;
+	c->count_protocols = ARRAY_SIZE(protocols);
+	c->extensions = NULL;
+	c->count_extensions = 0;
+
+	return 0;
+}
+
+LWS_EXTERN LWS_VISIBLE int
+destroy_protocol_lws_table_dirlisting(struct lws_context *context)
+{
+	return 0;
+}
diff --git a/test-server/lws-common.js b/test-server/lws-common.js
new file mode 100644
index 00000000..917aedf5
--- /dev/null
+++ b/test-server/lws-common.js
@@ -0,0 +1,118 @@
+/*
+ * This section around grayOut came from here:
+ * http://www.codingforums.com/archive/index.php/t-151720.html
+ * Assumed public domain
+ *
+ * Init like this in your main html script, this also reapplies the gray
+ *
+ *    lws_gray_out(true,{'zindex':'499'});
+ *
+ * To remove the gray
+ *
+ *    lws_gray_out(false);
+ *
+ */
+
+function lws_gray_out(vis, options) {
+	var options = options || {};
+	var zindex = options.zindex || 50;
+	var opacity = options.opacity || 70;
+	var opaque = (opacity / 100);
+	var bgcolor = options.bgcolor || '#000000';
+	var dark = document.getElementById('darkenScreenObject');
+
+	if (!dark) {
+		var tbody = document.getElementsByTagName("body")[0];
+		var tnode = document.createElement('div');
+		tnode.style.position = 'absolute';
+		tnode.style.top = '0px';
+		tnode.style.left = '0px';
+		tnode.style.overflow = 'hidden';
+		tnode.style.display ='none';
+		tnode.id = 'darkenScreenObject';
+		tbody.appendChild(tnode);
+		dark = document.getElementById('darkenScreenObject');
+	}
+	if (vis) {
+		dark.style.opacity = opaque;
+		dark.style.MozOpacity = opaque;
+		dark.style.filter ='alpha(opacity='+opacity+')';
+		dark.style.zIndex = zindex;
+		dark.style.backgroundColor = bgcolor;
+		dark.style.width = gsize(1);
+		dark.style.height = gsize(0);
+		dark.style.display ='block';
+		addEvent(window, "resize",
+			function() {
+				dark.style.height = gsize(0);
+				dark.style.width = gsize(1);
+			}
+		);
+	} else {
+		dark.style.display = 'none';
+		removeEvent(window, "resize",
+			function() {
+				dark.style.height = gsize(0);
+				dark.style.width = gsize(1);
+			}
+		);
+	}
+}
+
+function gsize(ptype)
+{
+	var h = document.compatMode == 'CSS1Compat' &&
+		!window.opera ?
+			document.documentElement.clientHeight :
+						document.body.clientHeight;
+	var w = document.compatMode == 'CSS1Compat' &&
+		!window.opera ? 
+			document.documentElement.clientWidth :
+						document.body.clientWidth;
+	if (document.body && 
+		    (document.body.scrollWidth || document.body.scrollHeight)) {
+		var pageWidth = (w > (t = document.body.scrollWidth)) ?
+					("" + w + "px") : ("" + (t) + "px");
+		var pageHeight = (h > (t = document.body.scrollHeight)) ?
+					("" + h + "px") : ("" + (t) + "px");
+	} else if (document.body.offsetWidth) {
+		var pageWidth = (w > (t = document.body.offsetWidth)) ?
+					("" + w + "px") : ("" + (t) + "px");
+		var pageHeight =(h > (t = document.body.offsetHeight)) ?
+					("" + h + "px") : ("" + (t) + "px");
+	} else {
+		var pageWidth = '100%';
+		var pageHeight = '100%';
+	}
+	return (ptype == 1) ? pageWidth : pageHeight;
+}
+
+function addEvent( obj, type, fn ) {
+	if ( obj.attachEvent ) {
+		obj['e' + type + fn] = fn;
+		obj[type+fn] = function() { obj['e' + type+fn]( window.event );}
+		obj.attachEvent('on' + type, obj[type + fn]);
+	} else
+		obj.addEventListener(type, fn, false);
+}
+
+function removeEvent( obj, type, fn ) {
+	if ( obj.detachEvent ) {
+		obj.detachEvent('on' + type, obj[type + fn]);
+		obj[type + fn] = null;
+	} else
+		obj.removeEventListener(type, fn, false);
+}
+
+/*
+ * end of grayOut related stuff
+ */
+ 
+ 
+function lws_san(s)
+{
+	if (s.search("<") != -1)
+		return "invalid string";
+	
+	return s;
+}
-- 
GitLab