context deprecation

1) This makes lwsws run a parent process with the original permissions.
But this process is only able to respond to SIGHUP, it doesn't do anything
else.

2) You can send this parent process a SIGHUP now to cause it to

 - close listening sockets in existing lwsws processes

 - mark those processes as to exit when the number of active connections
   on the falls to zero

 - spawn a fresh child process from scratch, using latest configuration
   file content, latest plugins, etc.  It can now reopen listening sockets
   if it chooses to, or open different listen ports or whatever.

Notes:

1) lws_context_destroy() has been split into two pieces... the reason for
the split is the first part closes the per-vhost protocols, but since
they may have created libuv objects in the per-vhost protocol storage,
these cannot be freed until after the loop has been run.

That's the purpose of the second part of the context destruction,
lws_context_destroy2().

For compatibility, if you are not using libuv, the first part calls the
second part.  However if you are using libuv, you must now call the
second part from your own main.c after the first part.
This commit is contained in:
Andy Green 2016-12-16 07:37:43 +08:00
parent 0a3859f623
commit be9fb919d1
44 changed files with 1758 additions and 1029 deletions

View file

@ -451,7 +451,7 @@ Enable the protocol like this on a vhost's ws-protocols section
"update-ms": "5000"
}
```
"update-ms" is used to control how often updated JSON is sent on a ws link.
`"update-ms"` is used to control how often updated JSON is sent on a ws link.
And map the provided HTML into the vhost in the mounts section
```
@ -462,8 +462,62 @@ And map the provided HTML into the vhost in the mounts section
}
```
You might choose to put it on its own vhost which has "interface": "lo", so it's not
externally visible.
externally visible, or use the Basic Auth support to require authentication to
access it.
`"hide-vhosts": "{0 | 1}"` lets you control if information about your vhosts is included.
Since this includes mounts, you might not want to leak that information, mount names,
etc.
`"filespath":"{path}"` lets you give a server filepath which is read and sent to the browser
on each refresh. For example, you can provide server temperature information on most
Linux systems by giving an appropriate path down /sys.
This may be given multiple times.
@section lwswsreload Lwsws Configuration Reload
You may send lwsws a `HUP` signal, by, eg
```
$ sudo killall -HUP lwsws
```
This causes lwsws to "deprecate" the existing lwsws process, and remove and close all of
its listen sockets, but otherwise allowing it to continue to run, until all
of its open connections close.
When a deprecated lwsws process has no open connections left, it is destroyed
automatically.
After sending the SIGHUP to the main lwsws process, a new lwsws process, which can
pick up the newly-available listen sockets, and use the current configuration
files, is automatically started.
The new configuration may differ from the original one in arbitrary ways, the new
context is created from scratch each time without reference to the original one.
Notes
1) Protocols that provide a "shared world" like mirror will have as many "worlds"
as there are lwsws processes still active. People connected to a deprecated lwsws
process remain connected to the existing peers.
But any new connections will apply to the new lwsws process, which does not share
per-vhost "shared world" data with the deprecated process. That means no new
connections on the deprecated context, ie a "shrinking world" for those guys, and a
"growing world" for people who connect after the SIGHUP.
2) The new lwsws process owes nothing to the previous one. It starts with fresh
plugins, fresh configuration, fresh root privileges if that how you start it.
The plugins may have been updated in arbitrary ways including struct size changes
etc, and lwsws or lws may also have been updated arbitrarily.
3) A root parent process is left up that is not able to do anything except
respond to SIGHUP or SIGTERM. Actual serving and network listening etc happens
in child processes which use the privileges set in the lwsws config files.
@section lwswssysd Lwsws Integration with Systemd
@ -475,6 +529,7 @@ lwsws needs a service file like this as `/usr/lib/systemd/system/lwsws.service`
[Service]
ExecStart=/usr/local/bin/lwsws
ExecReload=/usr/bin/killall -s SIGHUP lwsws ; sleep 1 ; /usr/local/bin/lwsws
StandardError=null
[Install]

View file

@ -138,6 +138,9 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
<li>lws_close_reason()
: <a class="el" href="group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262">libwebsockets.h</a>
</li>
<li>lws_context_deprecate()
: <a class="el" href="group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232">libwebsockets.h</a>
</li>
<li>lws_context_destroy()
: <a class="el" href="group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb">libwebsockets.h</a>
</li>
@ -262,7 +265,7 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
: <a class="el" href="group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa">libwebsockets.h</a>
</li>
<li>lws_json_dump_context()
: <a class="el" href="group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d">libwebsockets.h</a>
: <a class="el" href="group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135">libwebsockets.h</a>
</li>
<li>lws_json_dump_vhost()
: <a class="el" href="group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6">libwebsockets.h</a>

View file

@ -342,6 +342,9 @@ $(document).ready(function(){initNavTree('globals_l.html','');});
<li>LWS_CLOSE_STATUS_UNEXPECTED_CONDITION
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">libwebsockets.h</a>
</li>
<li>lws_context_deprecate()
: <a class="el" href="group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232">libwebsockets.h</a>
</li>
<li>lws_context_destroy()
: <a class="el" href="group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb">libwebsockets.h</a>
</li>
@ -478,7 +481,7 @@ $(document).ready(function(){initNavTree('globals_l.html','');});
: <a class="el" href="group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa">libwebsockets.h</a>
</li>
<li>lws_json_dump_context()
: <a class="el" href="group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d">libwebsockets.h</a>
: <a class="el" href="group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135">libwebsockets.h</a>
</li>
<li>lws_json_dump_vhost()
: <a class="el" href="group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6">libwebsockets.h</a>

View file

@ -119,7 +119,7 @@ LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><
<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="l02003"></a><span class="lineno"> 2003</span>&#160; {</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; LCCSCF_USE_SSL = (1 &lt;&lt; 0),</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; LCCSCF_ALLOW_SELFSIGNED = (1 &lt;&lt; 1),</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 &lt;&lt; 2),</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; LCCSCF_ALLOW_EXPIRED = (1 &lt;&lt; 3)</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;};</div></div><!-- fragment -->
<div class="fragment"><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; {</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; LCCSCF_USE_SSL = (1 &lt;&lt; 0),</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; LCCSCF_ALLOW_SELFSIGNED = (1 &lt;&lt; 1),</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 &lt;&lt; 2),</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; LCCSCF_ALLOW_EXPIRED = (1 &lt;&lt; 3)</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;};</div></div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>

View file

@ -63,6 +63,7 @@ $(document).ready(function(){initNavTree('group__context-and-vhost.html','');});
<div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
@ -82,6 +83,12 @@ Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga256a49a07d2dd5062d6cf7bdc3668096"><td class="memItemLeft" align="right" valign="top"><a id="ga256a49a07d2dd5062d6cf7bdc3668096"></a>
typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><b>lws_reload_func</b>) (void)</td></tr>
<tr class="separator:ga256a49a07d2dd5062d6cf7bdc3668096"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga41c2d763f78cc248df3b9f8645dbd2a5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5">lws_context_options</a> { <br />
@ -117,6 +124,14 @@ Functions</h2></td></tr>
<tr class="separator:gaf2fff58562caab7510c41eeac85a8648"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8ee0314028755f1ddfa9428e09b4fddb"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb">lws_context_destroy</a> (struct lws_context *context)</td></tr>
<tr class="separator:ga8ee0314028755f1ddfa9428e09b4fddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa327c9d543edaddf06765d2c6131065c"><td class="memItemLeft" align="right" valign="top"><a id="gaa327c9d543edaddf06765d2c6131065c"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_context_destroy2</b> (struct lws_context *context)</td></tr>
<tr class="separator:gaa327c9d543edaddf06765d2c6131065c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1863f0a15ab9da0f07be7bd66230d232"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232">lws_context_deprecate</a> (struct lws_context *context, lws_reload_func cb)</td></tr>
<tr class="separator:ga1863f0a15ab9da0f07be7bd66230d232"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf023d1898a5f773288568f55b82d19e8"><td class="memItemLeft" align="right" valign="top"><a id="gaf023d1898a5f773288568f55b82d19e8"></a>
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_context_is_deprecated</b> (struct lws_context *context)</td></tr>
<tr class="separator:gaf023d1898a5f773288568f55b82d19e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e9d5405547a457d86e0b4f0ae2bb1c4"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4">lws_set_proxy</a> (struct lws_vhost *vhost, const char *proxy)</td></tr>
<tr class="separator:ga7e9d5405547a457d86e0b4f0ae2bb1c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0c54c667ccd9b8b3dddcd123ca72f87c"><td class="memItemLeft" align="right" valign="top">LWS_EXTERN LWS_VISIBLE struct lws_vhost *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c">lws_create_vhost</a> (struct lws_context *context, struct <a class="el" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info)</td></tr>
@ -131,8 +146,8 @@ Functions</h2></td></tr>
<tr class="separator:ga06e77ce2916f8bc9826ef8d9d68e3932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga94e6cc2223c4eec316b13bcebc3628b6"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6">lws_json_dump_vhost</a> (const struct lws_vhost *vh, char *buf, int len)</td></tr>
<tr class="separator:ga94e6cc2223c4eec316b13bcebc3628b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae2134657cdd2ea7a59e13ad314e4c50d"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d">lws_json_dump_context</a> (const struct lws_context *context, char *buf, int len)</td></tr>
<tr class="separator:gae2134657cdd2ea7a59e13ad314e4c50d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1dce5453d72a2037051aba5410e18135"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135">lws_json_dump_context</a> (const struct lws_context *context, char *buf, int len, int hide_vhosts)</td></tr>
<tr class="separator:ga1dce5453d72a2037051aba5410e18135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb12f934bfd178bd2132a9e73fc641da"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da">lws_context_user</a> (struct lws_context *context)</td></tr>
<tr class="separator:gaeb12f934bfd178bd2132a9e73fc641da"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@ -215,6 +230,60 @@ Functions</h2></td></tr>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga1863f0a15ab9da0f07be7bd66230d232"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1863f0a15ab9da0f07be7bd66230d232">&sect;&nbsp;</a></span>lws_context_deprecate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lws_context_deprecate </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lws_reload_func&#160;</td>
<td class="paramname"><em>cb</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="libwebsockets_8h.html">lib/libwebsockets.h</a>&gt;</code></p>
<p><a class="el" href="group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232">lws_context_deprecate()</a> - Deprecate the websocket context </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Websocket context <pre class="fragment"> This function is used on an existing context before superceding it
with a new context.
It closes any listen sockets in the context, so new connections are
not possible.
And it marks the context to be deleted when the number of active
connections into it falls to zero.
Otherwise if you attach the deprecated context to the replacement
context when it has been created using lws_context_attach_deprecated()
both any deprecated and the new context will service their connections.
This is aimed at allowing seamless configuration reloads.
The callback cb will be called after the listen sockets are actually
closed and may be reopened. In the callback the new context should be
configured and created. (With libuv, socket close happens async after
more loop events).</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga8ee0314028755f1ddfa9428e09b4fddb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8ee0314028755f1ddfa9428e09b4fddb">&sect;&nbsp;</a></span>lws_context_destroy()</h2>
@ -389,8 +458,8 @@ Functions</h2></td></tr>
</div>
</div>
<a id="gae2134657cdd2ea7a59e13ad314e4c50d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae2134657cdd2ea7a59e13ad314e4c50d">&sect;&nbsp;</a></span>lws_json_dump_context()</h2>
<a id="ga1dce5453d72a2037051aba5410e18135"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1dce5453d72a2037051aba5410e18135">&sect;&nbsp;</a></span>lws_json_dump_context()</h2>
<div class="memitem">
<div class="memproto">
@ -411,7 +480,13 @@ Functions</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>hide_vhosts</em>&#160;</td>
</tr>
<tr>
<td></td>
@ -422,7 +497,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="libwebsockets_8h.html">lib/libwebsockets.h</a>&gt;</code></p>
<p><a class="el" href="group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d">lws_json_dump_context()</a> - describe context state and stats in JSON</p>
<p><a class="el" href="group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135">lws_json_dump_context()</a> - describe context state and stats in JSON</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>the context </td></tr>

View file

@ -72,12 +72,13 @@ var group__context_and_vhost =
[ "LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160", null ],
[ "LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd", null ]
] ],
[ "lws_context_deprecate", "group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232", null ],
[ "lws_context_destroy", "group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb", null ],
[ "lws_context_user", "group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da", null ],
[ "lws_create_context", "group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648", null ],
[ "lws_create_vhost", "group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c", null ],
[ "lws_get_vhost", "group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932", null ],
[ "lws_json_dump_context", "group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d", null ],
[ "lws_json_dump_context", "group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135", null ],
[ "lws_json_dump_vhost", "group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6", null ],
[ "lws_set_proxy", "group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4", null ],
[ "lws_vhost_get", "group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c", null ],

View file

@ -156,9 +156,9 @@ Functions</h2></td></tr>
<tr><td class="fieldname"><a id="gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"></a>LWS_UFS_OPEN&#160;</td><td class="fielddoc"><p>a new file is starting to arrive </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>&#160; {</div><div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>&#160; <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,</div><div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>&#160; <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,</div><div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>&#160; <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="line"><a name="l02854"></a><span class="lineno"> 2854</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:2850</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:2852</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:2848</div></div>
<div class="fragment"><div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160; {</div><div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160; <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,</div><div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>&#160; <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,</div><div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>&#160; <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="line"><a name="l02890"></a><span class="lineno"> 2890</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:2886</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:2888</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:2884</div></div>
</div><!-- fragment -->
</div>
</div>

View file

@ -124,13 +124,13 @@ Functions</h2></td></tr>
<tr><td class="fieldname"><a id="gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"></a>LWS_WRITE_CLIENT_IGNORE_XOR_MASK&#160;</td><td class="fielddoc"><p>client packet payload goes out on wire unmunged only useful for security tests since normal servers cannot decode the content if used </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l03191"></a><span class="lineno"> 3191</span>&#160; {</div><div class="line"><a name="l03192"></a><span class="lineno"> 3192</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a> = 0,</div><div class="line"><a name="l03196"></a><span class="lineno"> 3196</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a> = 1,</div><div class="line"><a name="l03199"></a><span class="lineno"> 3199</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a> = 2,</div><div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a> = 3,</div><div class="line"><a name="l03205"></a><span class="lineno"> 3205</span>&#160; <span class="comment">/* LWS_WRITE_CLOSE is handled by lws_close_reason() */</span></div><div class="line"><a name="l03206"></a><span class="lineno"> 3206</span>&#160; LWS_WRITE_PING = 5,</div><div class="line"><a name="l03207"></a><span class="lineno"> 3207</span>&#160; LWS_WRITE_PONG = 6,</div><div class="line"><a name="l03208"></a><span class="lineno"> 3208</span>&#160;</div><div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>&#160; <span class="comment">/* Same as write_http but we know this write ends the transaction */</span></div><div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>&#160; LWS_WRITE_HTTP_FINAL = 7,</div><div class="line"><a name="l03211"></a><span class="lineno"> 3211</span>&#160;</div><div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>&#160; <span class="comment">/* HTTP2 */</span></div><div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>&#160;</div><div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a> = 8,</div><div class="line"><a name="l03221"></a><span class="lineno"> 3221</span>&#160; <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03222"></a><span class="lineno"> 3222</span>&#160;</div><div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>&#160; <span class="comment">/* flags */</span></div><div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>&#160;</div><div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,</div><div class="line"><a name="l03228"></a><span class="lineno"> 3228</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="l03232"></a><span class="lineno"> 3232</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:3202</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:3225</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:3192</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:3196</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:3228</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:3199</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:3214</div></div>
<div class="fragment"><div class="line"><a name="l03230"></a><span class="lineno"> 3230</span>&#160; {</div><div class="line"><a name="l03231"></a><span class="lineno"> 3231</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a> = 0,</div><div class="line"><a name="l03235"></a><span class="lineno"> 3235</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a> = 1,</div><div class="line"><a name="l03238"></a><span class="lineno"> 3238</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a> = 2,</div><div class="line"><a name="l03241"></a><span class="lineno"> 3241</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a> = 3,</div><div class="line"><a name="l03244"></a><span class="lineno"> 3244</span>&#160; <span class="comment">/* LWS_WRITE_CLOSE is handled by lws_close_reason() */</span></div><div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>&#160; LWS_WRITE_PING = 5,</div><div class="line"><a name="l03246"></a><span class="lineno"> 3246</span>&#160; LWS_WRITE_PONG = 6,</div><div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160;</div><div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>&#160; <span class="comment">/* Same as write_http but we know this write ends the transaction */</span></div><div class="line"><a name="l03249"></a><span class="lineno"> 3249</span>&#160; LWS_WRITE_HTTP_FINAL = 7,</div><div class="line"><a name="l03250"></a><span class="lineno"> 3250</span>&#160;</div><div class="line"><a name="l03251"></a><span class="lineno"> 3251</span>&#160; <span class="comment">/* HTTP2 */</span></div><div class="line"><a name="l03252"></a><span class="lineno"> 3252</span>&#160;</div><div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a> = 8,</div><div class="line"><a name="l03260"></a><span class="lineno"> 3260</span>&#160; <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>&#160;</div><div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>&#160; <span class="comment">/* flags */</span></div><div class="line"><a name="l03263"></a><span class="lineno"> 3263</span>&#160;</div><div class="line"><a name="l03264"></a><span class="lineno"> 3264</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,</div><div class="line"><a name="l03267"></a><span class="lineno"> 3267</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="l03271"></a><span class="lineno"> 3271</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:3241</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:3264</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:3231</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:3235</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:3267</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:3238</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:3253</div></div>
</div><!-- fragment -->
</div>
</div>

View file

@ -149,15 +149,15 @@ Functions</h2></td></tr>
<tr><td class="fieldname"><a id="gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5"></a>LGSSMTP_SENT_QUIT&#160;</td><td class="fielddoc"><p>sent the session quit </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l04146"></a><span class="lineno"> 4146</span>&#160; {</div><div class="line"><a name="l04147"></a><span class="lineno"> 4147</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l04148"></a><span class="lineno"> 4148</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l04149"></a><span class="lineno"> 4149</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l04150"></a><span class="lineno"> 4150</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l04151"></a><span class="lineno"> 4151</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l04152"></a><span class="lineno"> 4152</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l04153"></a><span class="lineno"> 4153</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l04154"></a><span class="lineno"> 4154</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l04155"></a><span class="lineno"> 4155</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l04156"></a><span class="lineno"> 4156</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:4149</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:4154</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:4147</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:4148</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:4152</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:4151</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:4155</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:4150</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:4153</div></div>
<div class="fragment"><div class="line"><a name="l04185"></a><span class="lineno"> 4185</span>&#160; {</div><div class="line"><a name="l04186"></a><span class="lineno"> 4186</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l04187"></a><span class="lineno"> 4187</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l04188"></a><span class="lineno"> 4188</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l04189"></a><span class="lineno"> 4189</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l04190"></a><span class="lineno"> 4190</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l04191"></a><span class="lineno"> 4191</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l04192"></a><span class="lineno"> 4192</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l04193"></a><span class="lineno"> 4193</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l04194"></a><span class="lineno"> 4194</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l04195"></a><span class="lineno"> 4195</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:4188</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:4193</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:4186</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:4187</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:4191</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:4190</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:4194</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:4189</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:4192</div></div>
</div><!-- fragment -->
</div>
</div>

View file

@ -78,6 +78,9 @@ LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><
<tr class="memitem:ga3c75cd6ec3f80fc0a0c8ead4c4e71a15"><td class="memItemLeft" align="right" valign="top"><a id="ga3c75cd6ec3f80fc0a0c8ead4c4e71a15"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_libuv_stop</b> (struct lws_context *context)</td></tr>
<tr class="separator:ga3c75cd6ec3f80fc0a0c8ead4c4e71a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa17758e1f852017a2271d8fb3e9305aa"><td class="memItemLeft" align="right" valign="top"><a id="gaa17758e1f852017a2271d8fb3e9305aa"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_libuv_stop_without_kill</b> (const struct lws_context *context, int tsi)</td></tr>
<tr class="separator:gaa17758e1f852017a2271d8fb3e9305aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad85ce3bfc53ff754988d36bf5de39e21"><td class="memItemLeft" align="right" valign="top"><a id="gad85ce3bfc53ff754988d36bf5de39e21"></a>
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_uv_initloop</b> (struct lws_context *context, uv_loop_t *loop, int tsi)</td></tr>
<tr class="separator:gad85ce3bfc53ff754988d36bf5de39e21"><td class="memSeparator" colspan="2">&#160;</td></tr>

View file

@ -123,13 +123,13 @@ Enumerations</h2></td></tr>
<tr><td class="fieldname"><a id="gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"></a>LWSMPRO_CALLBACK&#160;</td><td class="fielddoc"><p>hand by named protocol's callback </p>
</td></tr>
</table>
<div class="fragment"><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; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a> = 0, </div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a> = 1, </div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a> = 2, </div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a> = 3, </div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a> = 4, </div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a> = 5, </div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a> = 6, </div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</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:1930</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:1928</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:1929</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:1931</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:1932</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:1927</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:1933</div></div>
<div class="fragment"><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; {</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a> = 0, </div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a> = 1, </div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a> = 2, </div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a> = 3, </div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a> = 4, </div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a> = 5, </div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a> = 6, </div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</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:1966</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:1964</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:1965</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:1967</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:1968</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:1963</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:1969</div></div>
</div><!-- fragment -->
</div>
</div>

View file

@ -74,7 +74,8 @@ $(document).ready(function(){initNavTree('index.html','');});
<li>account management (including registration, email verification, lost pw etc)</li>
<li>strong ssl PFS support (A+ on SSLlabs test)</li>
</ul>
<p>You can browse by api category <a href="modules.html">here</a>. </p>
<p>You can browse by api category <a href="modules.html">here</a></p>
<p>A collection of READMEs for build, coding, lwsws etc are <a href="pages.html">here</a> </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->

View file

@ -161,6 +161,9 @@ typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><b>lws_plugin_i
<tr class="memitem:ga83f7a924ba790fa273476075a59f08b0"><td class="memItemLeft" align="right" valign="top">
typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><b>lws_plugin_destroy_func</b>) (struct lws_context *)</td></tr>
<tr class="separator:ga83f7a924ba790fa273476075a59f08b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga256a49a07d2dd5062d6cf7bdc3668096"><td class="memItemLeft" align="right" valign="top">
typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><b>lws_reload_func</b>) (void)</td></tr>
<tr class="separator:ga256a49a07d2dd5062d6cf7bdc3668096"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga669d3d7ce2d5f193473f649a89b3e7ac"><td class="memItemLeft" align="right" valign="top">
typedef const char *(*&#160;</td><td class="memItemRight" valign="bottom"><b>lws_process_html_state_cb</b>) (void *data, int index)</td></tr>
<tr class="separator:ga669d3d7ce2d5f193473f649a89b3e7ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -696,6 +699,14 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>ets_timer_arm_new</b>
<tr class="separator:gaf2fff58562caab7510c41eeac85a8648"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8ee0314028755f1ddfa9428e09b4fddb"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb">lws_context_destroy</a> (struct lws_context *context)</td></tr>
<tr class="separator:ga8ee0314028755f1ddfa9428e09b4fddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa327c9d543edaddf06765d2c6131065c"><td class="memItemLeft" align="right" valign="top">
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_context_destroy2</b> (struct lws_context *context)</td></tr>
<tr class="separator:gaa327c9d543edaddf06765d2c6131065c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1863f0a15ab9da0f07be7bd66230d232"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232">lws_context_deprecate</a> (struct lws_context *context, lws_reload_func cb)</td></tr>
<tr class="separator:ga1863f0a15ab9da0f07be7bd66230d232"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf023d1898a5f773288568f55b82d19e8"><td class="memItemLeft" align="right" valign="top">
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_context_is_deprecated</b> (struct lws_context *context)</td></tr>
<tr class="separator:gaf023d1898a5f773288568f55b82d19e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e9d5405547a457d86e0b4f0ae2bb1c4"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4">lws_set_proxy</a> (struct lws_vhost *vhost, const char *proxy)</td></tr>
<tr class="separator:ga7e9d5405547a457d86e0b4f0ae2bb1c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0c54c667ccd9b8b3dddcd123ca72f87c"><td class="memItemLeft" align="right" valign="top">LWS_EXTERN LWS_VISIBLE struct lws_vhost *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c">lws_create_vhost</a> (struct lws_context *context, struct <a class="el" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info)</td></tr>
@ -710,8 +721,8 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>ets_timer_arm_new</b>
<tr class="separator:ga06e77ce2916f8bc9826ef8d9d68e3932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga94e6cc2223c4eec316b13bcebc3628b6"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6">lws_json_dump_vhost</a> (const struct lws_vhost *vh, char *buf, int len)</td></tr>
<tr class="separator:ga94e6cc2223c4eec316b13bcebc3628b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae2134657cdd2ea7a59e13ad314e4c50d"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d">lws_json_dump_context</a> (const struct lws_context *context, char *buf, int len)</td></tr>
<tr class="separator:gae2134657cdd2ea7a59e13ad314e4c50d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1dce5453d72a2037051aba5410e18135"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135">lws_json_dump_context</a> (const struct lws_context *context, char *buf, int len, int hide_vhosts)</td></tr>
<tr class="separator:ga1dce5453d72a2037051aba5410e18135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb12f934bfd178bd2132a9e73fc641da"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da">lws_context_user</a> (struct lws_context *context)</td></tr>
<tr class="separator:gaeb12f934bfd178bd2132a9e73fc641da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0c966136905f467816307cfba6deb5fd"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__client.html#ga0c966136905f467816307cfba6deb5fd">lws_client_connect_via_info</a> (struct <a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</a> *ccinfo)</td></tr>
@ -819,6 +830,9 @@ LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><
<tr class="memitem:ga3c75cd6ec3f80fc0a0c8ead4c4e71a15"><td class="memItemLeft" align="right" valign="top">
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_libuv_stop</b> (struct lws_context *context)</td></tr>
<tr class="separator:ga3c75cd6ec3f80fc0a0c8ead4c4e71a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa17758e1f852017a2271d8fb3e9305aa"><td class="memItemLeft" align="right" valign="top">
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_libuv_stop_without_kill</b> (const struct lws_context *context, int tsi)</td></tr>
<tr class="separator:gaa17758e1f852017a2271d8fb3e9305aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad85ce3bfc53ff754988d36bf5de39e21"><td class="memItemLeft" align="right" valign="top">
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_uv_initloop</b> (struct lws_context *context, uv_loop_t *loop, int tsi)</td></tr>
<tr class="separator:gad85ce3bfc53ff754988d36bf5de39e21"><td class="memSeparator" colspan="2">&#160;</td></tr>

View file

@ -15,6 +15,7 @@ var libwebsockets_8h =
[ "lws_plugin_destroy_func", "group__Protocols-and-Plugins.html#ga83f7a924ba790fa273476075a59f08b0", null ],
[ "lws_plugin_init_func", "group__Protocols-and-Plugins.html#ga40994491e1567f91f579d2b444775266", null ],
[ "lws_process_html_state_cb", "group__html-chunked-substitution.html#ga669d3d7ce2d5f193473f649a89b3e7ac", null ],
[ "lws_reload_func", "group__context-and-vhost.html#ga256a49a07d2dd5062d6cf7bdc3668096", null ],
[ "lws_sockfd_type", "libwebsockets_8h.html#adedbc79528b71a5c7f27cde87100c9aa", null ],
[ "lws_spa_fileupload_cb", "group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e", null ],
[ "SSL", "libwebsockets_8h.html#ac3abb8b7e6d29a0292797230e4031681", null ],
@ -414,7 +415,10 @@ var libwebsockets_8h =
[ "lws_client_connect_via_info", "group__client.html#ga0c966136905f467816307cfba6deb5fd", null ],
[ "lws_client_http_body_pending", "group__client.html#ga26588fb345083076c14169dd5859f57a", null ],
[ "lws_close_reason", "group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262", null ],
[ "lws_context_deprecate", "group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232", null ],
[ "lws_context_destroy", "group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb", null ],
[ "lws_context_destroy2", "group__context-and-vhost.html#gaa327c9d543edaddf06765d2c6131065c", null ],
[ "lws_context_is_deprecated", "group__context-and-vhost.html#gaf023d1898a5f773288568f55b82d19e8", null ],
[ "lws_context_user", "group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da", null ],
[ "lws_create_context", "group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648", null ],
[ "lws_create_vhost", "group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c", null ],
@ -459,11 +463,12 @@ var libwebsockets_8h =
[ "lws_is_cgi", "group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1", null ],
[ "lws_is_final_fragment", "group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37", null ],
[ "lws_is_ssl", "group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa", null ],
[ "lws_json_dump_context", "group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d", null ],
[ "lws_json_dump_context", "group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135", null ],
[ "lws_json_dump_vhost", "group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6", null ],
[ "lws_json_purify", "group__pur.html#gab15187efcfa256b7c928562c182b92a3", null ],
[ "lws_libuv_run", "group__uv.html#ga097c89497824d4de225a85a00661fc89", null ],
[ "lws_libuv_stop", "group__uv.html#ga3c75cd6ec3f80fc0a0c8ead4c4e71a15", null ],
[ "lws_libuv_stop_without_kill", "group__uv.html#gaa17758e1f852017a2271d8fb3e9305aa", null ],
[ "lws_now_secs", "group__misc.html#ga33bf2635033710b25f931b57ed663e1e", null ],
[ "lws_parse_uri", "group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa", null ],
[ "lws_partial_buffered", "group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85", null ],

File diff suppressed because one or more lines are too long

View file

@ -184,11 +184,27 @@ Additional plugin search paths</h1>
<p>Packages that have their own lws plugins can install them in their own preferred dir and ask lwsws to scan there by using a config fragment like this, in its own conf.d/ file managed by the other package </p><div class="fragment"><div class="line">{</div><div class="line"> &quot;global&quot;: {</div><div class="line"> &quot;plugin-dir&quot;: &quot;/usr/local/share/coherent-timeline/plugins&quot;</div><div class="line"> }</div><div class="line">}</div></div><!-- fragment --><h1><a class="anchor" id="lwswsssp"></a>
lws-server-status plugin</h1>
<p>One provided protocol can be used to monitor the server status.</p>
<p>Enable the protocol like this on a vhost's ws-protocols section </p><div class="fragment"><div class="line">&quot;lws-server-status&quot;: {</div><div class="line"> &quot;status&quot;: &quot;ok&quot;,</div><div class="line"> &quot;update-ms&quot;: &quot;5000&quot;</div><div class="line">}</div></div><!-- fragment --><p> "update-ms" is used to control how often updated JSON is sent on a ws link.</p>
<p>And map the provided HTML into the vhost in the mounts section </p><div class="fragment"><div class="line">{</div><div class="line"> &quot;mountpoint&quot;: &quot;/server-status&quot;,</div><div class="line"> &quot;origin&quot;: &quot;file:///usr/local/share/libwebsockets-test-server/server-status&quot;,</div><div class="line"> &quot;default&quot;: &quot;server-status.html&quot;</div><div class="line">}</div></div><!-- fragment --><p> You might choose to put it on its own vhost which has "interface": "lo", so it's not externally visible.</p>
<p>Enable the protocol like this on a vhost's ws-protocols section </p><div class="fragment"><div class="line">&quot;lws-server-status&quot;: {</div><div class="line"> &quot;status&quot;: &quot;ok&quot;,</div><div class="line"> &quot;update-ms&quot;: &quot;5000&quot;</div><div class="line">}</div></div><!-- fragment --><p> <code>"update-ms"</code> is used to control how often updated JSON is sent on a ws link.</p>
<p>And map the provided HTML into the vhost in the mounts section </p><div class="fragment"><div class="line">{</div><div class="line"> &quot;mountpoint&quot;: &quot;/server-status&quot;,</div><div class="line"> &quot;origin&quot;: &quot;file:///usr/local/share/libwebsockets-test-server/server-status&quot;,</div><div class="line"> &quot;default&quot;: &quot;server-status.html&quot;</div><div class="line">}</div></div><!-- fragment --><p> You might choose to put it on its own vhost which has "interface": "lo", so it's not externally visible, or use the Basic Auth support to require authentication to access it.</p>
<p><code>"hide-vhosts": "{0 | 1}"</code> lets you control if information about your vhosts is included. Since this includes mounts, you might not want to leak that information, mount names, etc.</p>
<p><code>"filespath":"{path}"</code> lets you give a server filepath which is read and sent to the browser on each refresh. For example, you can provide server temperature information on most Linux systems by giving an appropriate path down /sys.</p>
<p>This may be given multiple times.</p>
<h1><a class="anchor" id="lwswsreload"></a>
Lwsws Configuration Reload</h1>
<p>You may send lwsws a <code>HUP</code> signal, by, eg</p>
<div class="fragment"><div class="line">$ sudo killall -HUP lwsws</div></div><!-- fragment --><p>This causes lwsws to "deprecate" the existing lwsws process, and remove and close all of its listen sockets, but otherwise allowing it to continue to run, until all of its open connections close.</p>
<p>When a deprecated lwsws process has no open connections left, it is destroyed automatically.</p>
<p>After sending the SIGHUP to the main lwsws process, a new lwsws process, which can pick up the newly-available listen sockets, and use the current configuration files, is automatically started.</p>
<p>The new configuration may differ from the original one in arbitrary ways, the new context is created from scratch each time without reference to the original one.</p>
<p>Notes</p>
<p>1) Protocols that provide a "shared world" like mirror will have as many "worlds" as there are lwsws processes still active. People connected to a deprecated lwsws process remain connected to the existing peers.</p>
<p>But any new connections will apply to the new lwsws process, which does not share per-vhost "shared world" data with the deprecated process. That means no new connections on the deprecated context, ie a "shrinking world" for those guys, and a "growing world" for people who connect after the SIGHUP.</p>
<p>2) The new lwsws process owes nothing to the previous one. It starts with fresh plugins, fresh configuration, fresh root privileges if that how you start it.</p>
<p>The plugins may have been updated in arbitrary ways including struct size changes etc, and lwsws or lws may also have been updated arbitrarily.</p>
<p>3) A root parent process is left up that is not able to do anything except respond to SIGHUP or SIGTERM. Actual serving and network listening etc happens in child processes which use the privileges set in the lwsws config files.</p>
<h1><a class="anchor" id="lwswssysd"></a>
Lwsws Integration with Systemd</h1>
<p>lwsws needs a service file like this as <code>/usr/lib/systemd/system/lwsws.service</code> </p><div class="fragment"><div class="line">[Unit]</div><div class="line">Description=Libwebsockets Web Server</div><div class="line">After=syslog.target</div><div class="line"></div><div class="line">[Service]</div><div class="line">ExecStart=/usr/local/bin/lwsws</div><div class="line">StandardError=null</div><div class="line"></div><div class="line">[Install]</div><div class="line">WantedBy=multi-user.target</div></div><!-- fragment --><p>You can find this prepared in <code>./lwsws/usr-lib-systemd-system-lwsws.service</code></p>
<p>lwsws needs a service file like this as <code>/usr/lib/systemd/system/lwsws.service</code> </p><div class="fragment"><div class="line">[Unit]</div><div class="line">Description=Libwebsockets Web Server</div><div class="line">After=syslog.target</div><div class="line"></div><div class="line">[Service]</div><div class="line">ExecStart=/usr/local/bin/lwsws </div><div class="line">ExecReload=/usr/bin/killall -s SIGHUP lwsws ; sleep 1 ; /usr/local/bin/lwsws</div><div class="line">StandardError=null</div><div class="line"></div><div class="line">[Install]</div><div class="line">WantedBy=multi-user.target</div></div><!-- fragment --><p>You can find this prepared in <code>./lwsws/usr-lib-systemd-system-lwsws.service</code></p>
<h1><a class="anchor" id="lwswslr"></a>
Lwsws Integration with logrotate</h1>
<p>For correct operation with logrotate, <code>/etc/logrotate.d/lwsws</code> (if that's where we're putting the logs) should contain </p><div class="fragment"><div class="line">/var/log/lwsws/*log {</div><div class="line"> copytruncate</div><div class="line"> missingok</div><div class="line"> notifempty</div><div class="line"> delaycompress</div><div class="line">}</div></div><!-- fragment --><p> You can find this prepared in <code>/lwsws/etc-logrotate.d-lwsws</code></p>

View file

@ -38,6 +38,7 @@ var NAVTREE =
[ "Lwsws Plugins", "md_README_8lwsws.html#lwswspl", null ],
[ "Additional plugin search paths", "md_README_8lwsws.html#lwswsplaplp", null ],
[ "lws-server-status plugin", "md_README_8lwsws.html#lwswsssp", null ],
[ "Lwsws Configuration Reload", "md_README_8lwsws.html#lwswsreload", null ],
[ "Lwsws Integration with Systemd", "md_README_8lwsws.html#lwswssysd", null ],
[ "Lwsws Integration with logrotate", "md_README_8lwsws.html#lwswslr", null ]
] ],
@ -133,10 +134,10 @@ var NAVTREE =
var NAVTREEINDEX =
[
"annotated.html",
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd",
"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2",
"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd",
"structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146"
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93",
"group__service.html#ga29c246707997ab7a466aa709aecd2d7b",
"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421",
"structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463"
];
var SYNCONMSG = 'click to disable panel synchronisation';

View file

@ -38,216 +38,216 @@ var NAVTREEINDEX0 =
"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,48],
"group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6":[11,0,0,0,49],
"group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8":[9,6,3,0],
"group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8":[11,0,0,0,45],
"group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8":[11,0,0,0,46],
"group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b":[9,6,3,4],
"group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b":[11,0,0,0,85],
"group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b":[11,0,0,0,89],
"group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf":[9,6,3,2],
"group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf":[11,0,0,0,47],
"group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf":[11,0,0,0,48],
"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[9,6,3,1],
"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[11,0,0,0,46],
"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[11,0,0,0,47],
"group__HTTP-headers-read.html":[9,6,4],
"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[11,0,0,0,155],
"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[11,0,0,0,160],
"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[9,6,4,7],
"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[11,0,0,0,110],
"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[9,6,4,5],
"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[11,0,0,0,106],
"group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77":[9,6,4,3],
"group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77":[11,0,0,0,104],
"group__HTTP-headers-read.html#ga6e747906f9d76532ec118d6ef418b82e":[11,0,0,0,34],
"group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77":[11,0,0,0,108],
"group__HTTP-headers-read.html#ga6e747906f9d76532ec118d6ef418b82e":[11,0,0,0,35],
"group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2":[9,6,4,2],
"group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2":[11,0,0,0,102],
"group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2":[11,0,0,0,106],
"group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8":[11,0,0,0,111],
"group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8":[9,6,4,6],
"group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8":[11,0,0,0,107],
"group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9":[9,6,4,4],
"group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9":[11,0,0,0,105],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea03293996964a8bb617215508908048d4":[11,0,0,0,34,42],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea05c73ad09f25570a50068de13333e41a":[11,0,0,0,34,57],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0784fa0e5bdbacd1e14c2d6ba0c42992":[11,0,0,0,34,27],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0830a0c1c62c444ade7cf15599e92345":[11,0,0,0,34,47],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0a3c723f67cb6d95dba0c0ccc7d898f8":[11,0,0,0,34,69],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0dd5ce6fa8932e0d378b86c393d8f726":[11,0,0,0,34,11],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea11ed9b0cc3b4525c830de7185fd8d7df":[11,0,0,0,34,62],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1347e093d73e88489ba3ebda56a393a5":[11,0,0,0,34,32],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea138fedfdb81765272d22b0eca9aec22b":[11,0,0,0,34,9],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea157c1db7d8edd3cd3b649e7756a559c8":[11,0,0,0,34,81],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea166e60d6689436c1fb9169438d5db1b9":[11,0,0,0,34,13],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1d41be78df2704c54b906f7f0abbaa30":[11,0,0,0,34,51],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1ee866e12a483229599f4e3cfc358b36":[11,0,0,0,34,53],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea21ac48d2a499f6afa44cee92cebd8ae3":[11,0,0,0,34,83],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea220975eeb65cac57691adb3761a492bb":[11,0,0,0,34,50],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea228ece9e187ddbb80236851e9a09145c":[11,0,0,0,34,84],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea277d11b0d5e7fdfc6b5fb45470e6f63e":[11,0,0,0,34,39],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2be8537e80387a88197d3ed62ac3b954":[11,0,0,0,34,45],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2efae4ba6646ba040c371706f7f3a125":[11,0,0,0,34,56],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3733863fb466c1df6b00c9384a53e544":[11,0,0,0,34,86],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea385f0e1933f81529307fff61eb08ff8d":[11,0,0,0,34,54],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ac4744411849aff89001ee0350aed75":[11,0,0,0,34,60],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3cf47b821d473b717002b22619a9814e":[11,0,0,0,34,7],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ef26b531c1c2416850ebd539f08ba5e":[11,0,0,0,34,17],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3fd7c7c9587953adc8f317a615df6b83":[11,0,0,0,34,14],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea400831fe4ba52d4c454364a81ea3bfe4":[11,0,0,0,34,92],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea428409a7aaea6446b660574e4097c0bd":[11,0,0,0,34,91],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea439ada24e20de209e08e7dd398ca61ac":[11,0,0,0,34,66],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea525ee6d2330fca0929df75ffb8dec68e":[11,0,0,0,34,33],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea52a30bd1a5ca619ab19bb8178138e42f":[11,0,0,0,34,58],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea549fcdd8300f0c7434289db6326ec06a":[11,0,0,0,34,22],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea56913c617d46273743bb187bcd8e90c2":[11,0,0,0,34,65],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea569588399651cdd6b81de40be4b73fd8":[11,0,0,0,34,46],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea57ff348ebbae88bf904bc64ef284d83b":[11,0,0,0,34,20],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea598578cda71fe6ca34320bbd6ba1e887":[11,0,0,0,34,55],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5dcd48b2643d8a82a97b7abbc3928ea8":[11,0,0,0,34,82],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5e005569744e3246ba40d524f9a84fe4":[11,0,0,0,34,44],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea6164d17e9598f89c822b4be55814de0a":[11,0,0,0,34,48],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea63e1e08da7555313caf632a819db27d4":[11,0,0,0,34,41],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea669e4eea57595f569f329bfba900a15d":[11,0,0,0,34,3],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea693a74f3cd695016120bfdae3d3ced1a":[11,0,0,0,34,68],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea70b452bb6ce670e32c30fa237bceb731":[11,0,0,0,34,15],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7460d076c52a9fae65c9e00bac05ef19":[11,0,0,0,34,76],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea751322eb9f58fa33bf1f6e4923ff9abb":[11,0,0,0,34,1],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7708c82134391d257d6c354ae7bf1429":[11,0,0,0,34,31],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78834452a5833032294abe1aa42055c6":[11,0,0,0,34,64],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7892390328672ed812b3b68bc3e0fe40":[11,0,0,0,34,52],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78fbb32e1809d5767e55de3181d454b0":[11,0,0,0,34,19],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7e80eff7eefa68741f0a776d6d8feeae":[11,0,0,0,34,78],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea832a110c8b9eb42890f252a756c81bde":[11,0,0,0,34,36],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea86b3c4cf71dc5c5b441243db99ca696a":[11,0,0,0,34,61],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea883a86db0c05266214affd78d37e871f":[11,0,0,0,34,87],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8913c5b1378b1ffad7e2da975c454d15":[11,0,0,0,34,26],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d7393b324a076186bbde01a2cfe6b62":[11,0,0,0,34,49],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d9809cf381705f73af48d8f6809412b":[11,0,0,0,34,24],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8f6a44a37c29cb5ade4c5989467a880b":[11,0,0,0,34,75],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8ff0b2f6666e008de14d9b9721b87ead":[11,0,0,0,34,90],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea9004d6ff6b16b8877f760545a3c7be60":[11,0,0,0,34,63],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa0cad0c7a20ac23945a33dbc3d726718":[11,0,0,0,34,30],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa566f2c37d9a459ca95eee347cca68d0":[11,0,0,0,34,67],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa76ea751f1ee86567d27e9e30075d6db":[11,0,0,0,34,40],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa84e4902ebeb7ab468e3a4bd4acf4f90":[11,0,0,0,34,85],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa8c8eb9b32feb43ec214d8469655a0df":[11,0,0,0,34,88],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaab4585e187936b4f2abf22e9138ee271":[11,0,0,0,34,5],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaae70d627de34f9c881445f6fbcfcc2dd":[11,0,0,0,34,38],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaafce2cb6a31235606d12fb65a32a41c5":[11,0,0,0,34,80],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab0926aa28ea9bb73d2b0124c05c30a78":[11,0,0,0,34,89],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab2339b9e75c79dae3547255d1fb046cd":[11,0,0,0,34,2],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab460c34b18e1ae54219c3fb9e60544ef":[11,0,0,0,34,4],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaba11ed0aa8c8c7bd71d971a234df0a72":[11,0,0,0,34,21],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eabfb2738a1148ec7c039f2af640b28430":[11,0,0,0,34,71],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac7157acd472d24de05aee3de57b8dc8a":[11,0,0,0,34,12],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac9a937e393da4c3a77cf82463265dcee":[11,0,0,0,34,6],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead32022a286b9cc6fbe60b1a0411370a7":[11,0,0,0,34,28],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead603502e2545c533c4c01ba39e35a2b0":[11,0,0,0,34,16],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadb08a1c7b1f76e2962d44149bf488bf8":[11,0,0,0,34,34],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadbb64ba8a29fee913ded2163a5d16615":[11,0,0,0,34,10],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadff4760ab45fc182ab1e1fb68afa6714":[11,0,0,0,34,70],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae215f7e72fea4458fd971cdcb45d8e04":[11,0,0,0,34,18],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae24b2d70918c70e034ff574a516e0023":[11,0,0,0,34,59],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae5d5ca0131fbea1df03d7ad6d69ebfbd":[11,0,0,0,34,25],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae6286060884d4c80a88fa94fec58dda3":[11,0,0,0,34,0],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae898ee2a1e374f7d98aa483940c91511":[11,0,0,0,34,73],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae9d2323ce213a112ac90361f04a1ee5a":[11,0,0,0,34,43],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec69fb61493d1c67316c02259b86bdc2":[11,0,0,0,34,35],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec821397393facee38ddd4119473b992":[11,0,0,0,34,29],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaee14b94fcd4ab788e313e0789bec0cdc":[11,0,0,0,34,77],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaeef14469c992ebb09a43a8548db37401":[11,0,0,0,34,23],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf2b7eac7ff98aea6d9b240f6f51995c3":[11,0,0,0,34,72],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf48e3b9c89dba34054ea0833dbad4b57":[11,0,0,0,34,8],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf567d4d400062fab44f1b96c64cb93ac":[11,0,0,0,34,37],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf64cb8232e172aaa019c38b398d0a0bb":[11,0,0,0,34,74],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eafc1e8568187b2de76e2ddd5cc692908e":[11,0,0,0,34,79],
"group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9":[11,0,0,0,109],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea03293996964a8bb617215508908048d4":[11,0,0,0,35,42],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea05c73ad09f25570a50068de13333e41a":[11,0,0,0,35,57],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0784fa0e5bdbacd1e14c2d6ba0c42992":[11,0,0,0,35,27],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0830a0c1c62c444ade7cf15599e92345":[11,0,0,0,35,47],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0a3c723f67cb6d95dba0c0ccc7d898f8":[11,0,0,0,35,69],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0dd5ce6fa8932e0d378b86c393d8f726":[11,0,0,0,35,11],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea11ed9b0cc3b4525c830de7185fd8d7df":[11,0,0,0,35,62],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1347e093d73e88489ba3ebda56a393a5":[11,0,0,0,35,32],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea138fedfdb81765272d22b0eca9aec22b":[11,0,0,0,35,9],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea157c1db7d8edd3cd3b649e7756a559c8":[11,0,0,0,35,81],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea166e60d6689436c1fb9169438d5db1b9":[11,0,0,0,35,13],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1d41be78df2704c54b906f7f0abbaa30":[11,0,0,0,35,51],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1ee866e12a483229599f4e3cfc358b36":[11,0,0,0,35,53],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea21ac48d2a499f6afa44cee92cebd8ae3":[11,0,0,0,35,83],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea220975eeb65cac57691adb3761a492bb":[11,0,0,0,35,50],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea228ece9e187ddbb80236851e9a09145c":[11,0,0,0,35,84],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea277d11b0d5e7fdfc6b5fb45470e6f63e":[11,0,0,0,35,39],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2be8537e80387a88197d3ed62ac3b954":[11,0,0,0,35,45],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2efae4ba6646ba040c371706f7f3a125":[11,0,0,0,35,56],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3733863fb466c1df6b00c9384a53e544":[11,0,0,0,35,86],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea385f0e1933f81529307fff61eb08ff8d":[11,0,0,0,35,54],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ac4744411849aff89001ee0350aed75":[11,0,0,0,35,60],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3cf47b821d473b717002b22619a9814e":[11,0,0,0,35,7],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ef26b531c1c2416850ebd539f08ba5e":[11,0,0,0,35,17],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3fd7c7c9587953adc8f317a615df6b83":[11,0,0,0,35,14],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea400831fe4ba52d4c454364a81ea3bfe4":[11,0,0,0,35,92],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea428409a7aaea6446b660574e4097c0bd":[11,0,0,0,35,91],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea439ada24e20de209e08e7dd398ca61ac":[11,0,0,0,35,66],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea525ee6d2330fca0929df75ffb8dec68e":[11,0,0,0,35,33],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea52a30bd1a5ca619ab19bb8178138e42f":[11,0,0,0,35,58],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea549fcdd8300f0c7434289db6326ec06a":[11,0,0,0,35,22],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea56913c617d46273743bb187bcd8e90c2":[11,0,0,0,35,65],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea569588399651cdd6b81de40be4b73fd8":[11,0,0,0,35,46],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea57ff348ebbae88bf904bc64ef284d83b":[11,0,0,0,35,20],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea598578cda71fe6ca34320bbd6ba1e887":[11,0,0,0,35,55],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5dcd48b2643d8a82a97b7abbc3928ea8":[11,0,0,0,35,82],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5e005569744e3246ba40d524f9a84fe4":[11,0,0,0,35,44],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea6164d17e9598f89c822b4be55814de0a":[11,0,0,0,35,48],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea63e1e08da7555313caf632a819db27d4":[11,0,0,0,35,41],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea669e4eea57595f569f329bfba900a15d":[11,0,0,0,35,3],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea693a74f3cd695016120bfdae3d3ced1a":[11,0,0,0,35,68],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea70b452bb6ce670e32c30fa237bceb731":[11,0,0,0,35,15],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7460d076c52a9fae65c9e00bac05ef19":[11,0,0,0,35,76],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea751322eb9f58fa33bf1f6e4923ff9abb":[11,0,0,0,35,1],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7708c82134391d257d6c354ae7bf1429":[11,0,0,0,35,31],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78834452a5833032294abe1aa42055c6":[11,0,0,0,35,64],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7892390328672ed812b3b68bc3e0fe40":[11,0,0,0,35,52],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78fbb32e1809d5767e55de3181d454b0":[11,0,0,0,35,19],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7e80eff7eefa68741f0a776d6d8feeae":[11,0,0,0,35,78],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea832a110c8b9eb42890f252a756c81bde":[11,0,0,0,35,36],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea86b3c4cf71dc5c5b441243db99ca696a":[11,0,0,0,35,61],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea883a86db0c05266214affd78d37e871f":[11,0,0,0,35,87],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8913c5b1378b1ffad7e2da975c454d15":[11,0,0,0,35,26],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d7393b324a076186bbde01a2cfe6b62":[11,0,0,0,35,49],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d9809cf381705f73af48d8f6809412b":[11,0,0,0,35,24],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8f6a44a37c29cb5ade4c5989467a880b":[11,0,0,0,35,75],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8ff0b2f6666e008de14d9b9721b87ead":[11,0,0,0,35,90],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea9004d6ff6b16b8877f760545a3c7be60":[11,0,0,0,35,63],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa0cad0c7a20ac23945a33dbc3d726718":[11,0,0,0,35,30],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa566f2c37d9a459ca95eee347cca68d0":[11,0,0,0,35,67],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa76ea751f1ee86567d27e9e30075d6db":[11,0,0,0,35,40],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa84e4902ebeb7ab468e3a4bd4acf4f90":[11,0,0,0,35,85],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa8c8eb9b32feb43ec214d8469655a0df":[11,0,0,0,35,88],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaab4585e187936b4f2abf22e9138ee271":[11,0,0,0,35,5],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaae70d627de34f9c881445f6fbcfcc2dd":[11,0,0,0,35,38],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaafce2cb6a31235606d12fb65a32a41c5":[11,0,0,0,35,80],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab0926aa28ea9bb73d2b0124c05c30a78":[11,0,0,0,35,89],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab2339b9e75c79dae3547255d1fb046cd":[11,0,0,0,35,2],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab460c34b18e1ae54219c3fb9e60544ef":[11,0,0,0,35,4],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaba11ed0aa8c8c7bd71d971a234df0a72":[11,0,0,0,35,21],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eabfb2738a1148ec7c039f2af640b28430":[11,0,0,0,35,71],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac7157acd472d24de05aee3de57b8dc8a":[11,0,0,0,35,12],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac9a937e393da4c3a77cf82463265dcee":[11,0,0,0,35,6],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead32022a286b9cc6fbe60b1a0411370a7":[11,0,0,0,35,28],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead603502e2545c533c4c01ba39e35a2b0":[11,0,0,0,35,16],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadb08a1c7b1f76e2962d44149bf488bf8":[11,0,0,0,35,34],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadbb64ba8a29fee913ded2163a5d16615":[11,0,0,0,35,10],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadff4760ab45fc182ab1e1fb68afa6714":[11,0,0,0,35,70],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae215f7e72fea4458fd971cdcb45d8e04":[11,0,0,0,35,18],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae24b2d70918c70e034ff574a516e0023":[11,0,0,0,35,59],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae5d5ca0131fbea1df03d7ad6d69ebfbd":[11,0,0,0,35,25],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae6286060884d4c80a88fa94fec58dda3":[11,0,0,0,35,0],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae898ee2a1e374f7d98aa483940c91511":[11,0,0,0,35,73],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae9d2323ce213a112ac90361f04a1ee5a":[11,0,0,0,35,43],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec69fb61493d1c67316c02259b86bdc2":[11,0,0,0,35,35],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec821397393facee38ddd4119473b992":[11,0,0,0,35,29],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaee14b94fcd4ab788e313e0789bec0cdc":[11,0,0,0,35,77],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaeef14469c992ebb09a43a8548db37401":[11,0,0,0,35,23],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf2b7eac7ff98aea6d9b240f6f51995c3":[11,0,0,0,35,72],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf48e3b9c89dba34054ea0833dbad4b57":[11,0,0,0,35,8],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf567d4d400062fab44f1b96c64cb93ac":[11,0,0,0,35,37],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf64cb8232e172aaa019c38b398d0a0bb":[11,0,0,0,35,74],
"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eafc1e8568187b2de76e2ddd5cc692908e":[11,0,0,0,35,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,86],
"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[11,0,0,0,163],
"group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43":[11,0,0,0,90],
"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[11,0,0,0,168],
"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[9,10,9],
"group__Protocols-and-Plugins.html#ga40994491e1567f91f579d2b444775266":[11,0,0,0,13],
"group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112":[9,10,5],
"group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112":[11,0,0,0,98],
"group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112":[11,0,0,0,102],
"group__Protocols-and-Plugins.html#ga83f7a924ba790fa273476075a59f08b0":[11,0,0,0,12],
"group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030":[11,0,0,0,125],
"group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030":[11,0,0,0,130],
"group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030":[9,10,6],
"group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1":[11,0,0,0,127],
"group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1":[11,0,0,0,132],
"group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1":[9,10,8],
"group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129":[11,0,0,0,126],
"group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129":[11,0,0,0,131],
"group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129":[9,10,7],
"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,54],
"group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053":[11,0,0,0,55],
"group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5":[9,1,5],
"group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5":[11,0,0,0,59],
"group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5":[11,0,0,0,60],
"group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8":[9,1,4],
"group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8":[11,0,0,0,58],
"group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8":[11,0,0,0,59],
"group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d":[9,1,2],
"group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d":[11,0,0,0,56],
"group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d":[11,0,0,0,57],
"group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba":[9,1,7],
"group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba":[11,0,0,0,101],
"group__callback-when-writeable.html#gaad3d524a84d2be08ac85153bc158504b":[11,0,0,0,55],
"group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107":[11,0,0,0,57],
"group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba":[11,0,0,0,105],
"group__callback-when-writeable.html#gaad3d524a84d2be08ac85153bc158504b":[11,0,0,0,56],
"group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107":[9,1,3],
"group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107":[11,0,0,0,58],
"group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde":[9,1,6],
"group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde":[11,0,0,0,97],
"group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde":[11,0,0,0,101],
"group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70":[11,0,0,0,54],
"group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70":[9,1,0],
"group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70":[11,0,0,0,53],
"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,69],
"group__client.html#ga26588fb345083076c14169dd5859f57a":[11,0,0,0,70],
"group__client.html#ga4450c34200bf9dab3beb90ef23221870":[11,0,0,0,109],
"group__client.html#ga0c966136905f467816307cfba6deb5fd":[11,0,0,0,70],
"group__client.html#ga26588fb345083076c14169dd5859f57a":[11,0,0,0,71],
"group__client.html#ga4450c34200bf9dab3beb90ef23221870":[11,0,0,0,113],
"group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3":[9,2,2],
"group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3":[11,0,0,0,67],
"group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340":[11,0,0,0,112],
"group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3":[11,0,0,0,68],
"group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340":[11,0,0,0,116],
"group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340":[9,2,6],
"group__client.html#ga715efffc0c4e8fbf72a4293008eb2187":[11,0,0,0,112],
"group__client.html#ga715efffc0c4e8fbf72a4293008eb2187":[9,2,5],
"group__client.html#ga715efffc0c4e8fbf72a4293008eb2187":[11,0,0,0,108],
"group__client.html#ga96f3dbad54b2853969cfa933d66871ce":[9,2,1],
"group__client.html#ga96f3dbad54b2853969cfa933d66871ce":[11,0,0,0,24],
"group__client.html#ga96f3dbad54b2853969cfa933d66871ce":[11,0,0,0,25],
"group__client.html#gac6a8558b4410961a880241c2ac1271e2":[9,2,3],
"group__client.html#gac6a8558b4410961a880241c2ac1271e2":[11,0,0,0,68],
"group__client.html#gga96f3dbad54b2853969cfa933d66871cea3e952d09a44cf5818d73e0cd89dded0a":[11,0,0,0,24,3],
"group__client.html#gga96f3dbad54b2853969cfa933d66871cea7051e79bb97b69862f2ff00ae5298ec7":[11,0,0,0,24,0],
"group__client.html#gga96f3dbad54b2853969cfa933d66871cea89866ab6a749aaa1684158c55f826b35":[11,0,0,0,24,2],
"group__client.html#gga96f3dbad54b2853969cfa933d66871ceafc72c0ffbc7462bdddd4ce7bd99ac092":[11,0,0,0,24,1],
"group__client.html#gac6a8558b4410961a880241c2ac1271e2":[11,0,0,0,69],
"group__client.html#gga96f3dbad54b2853969cfa933d66871cea3e952d09a44cf5818d73e0cd89dded0a":[11,0,0,0,25,3],
"group__client.html#gga96f3dbad54b2853969cfa933d66871cea7051e79bb97b69862f2ff00ae5298ec7":[11,0,0,0,25,0],
"group__client.html#gga96f3dbad54b2853969cfa933d66871cea89866ab6a749aaa1684158c55f826b35":[11,0,0,0,25,2],
"group__client.html#gga96f3dbad54b2853969cfa933d66871ceafc72c0ffbc7462bdddd4ce7bd99ac092":[11,0,0,0,25,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,103],
"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[11,0,0,0,75],
"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[9,4,7],
"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[9,4,14],
"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[11,0,0,0,170],
"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[11,0,0,0,26],
"group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932":[9,4,9],
"group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932":[11,0,0,0,107],
"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[11,0,0,0,79],
"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[9,4,8],
"group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232":[11,0,0,0,73],
"group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232":[9,4,4],
"group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135":[11,0,0,0,121],
"group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135":[9,4,10],
"group__context-and-vhost.html#ga256a49a07d2dd5062d6cf7bdc3668096":[11,0,0,0,15],
"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[9,4,15],
"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[11,0,0,0,175],
"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[11,0,0,0,27],
"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[9,4,3],
"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[9,4,11],
"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[11,0,0,0,144],
"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[9,4,12],
"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[11,0,0,0,162],
"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[11,0,0,0,72],
"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[9,4,4],
"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[11,0,0,0,118],
"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[9,4,10],
"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[9,4,13],
"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[11,0,0,0,169],
"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[11,0,0,0,117],
"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[9,4,9],
"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[11,0,0,0,73],
"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[9,4,5],
"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[11,0,0,0,74],
"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[9,4,6],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[11,0,0,0,26,8],
"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[9,4,12],
"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[11,0,0,0,149],
"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[11,0,0,0,167],
"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[9,4,13],
"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[11,0,0,0,74],
"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[9,4,5],
"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[9,4,11],
"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[11,0,0,0,122],
"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[9,4,14],
"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[11,0,0,0,174],
"group__context-and-vhost.html#gaa327c9d543edaddf06765d2c6131065c":[11,0,0,0,75],
"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[11,0,0,0,77],
"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[9,4,6],
"group__context-and-vhost.html#gaf023d1898a5f773288568f55b82d19e8":[11,0,0,0,76],
"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[11,0,0,0,78],
"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[9,4,7],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[11,0,0,0,27,8],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[9,4,3,8],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[11,0,0,0,26,2],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[11,0,0,0,27,2],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[9,4,3,2],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6":[11,0,0,0,26,3],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6":[11,0,0,0,27,3],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6":[9,4,3,3],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092":[11,0,0,0,26,0],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092":[11,0,0,0,27,0],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092":[9,4,3,0],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9":[11,0,0,0,26,4],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9":[11,0,0,0,27,4],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9":[9,4,3,4],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada":[11,0,0,0,26,10],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada":[11,0,0,0,27,10],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada":[9,4,3,10],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[11,0,0,0,26,5],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[9,4,3,5],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[11,0,0,0,26,1],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[9,4,3,1],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[11,0,0,0,26,11],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[9,4,3,11]
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[11,0,0,0,27,5]
};

View file

@ -1,253 +1,253 @@
var NAVTREEINDEX1 =
{
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd":[11,0,0,0,26,17],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[9,4,3,5],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[11,0,0,0,27,1],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[9,4,3,1],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[11,0,0,0,27,11],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[9,4,3,11],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd":[11,0,0,0,27,17],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd":[9,4,3,17],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941":[11,0,0,0,26,13],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941":[11,0,0,0,27,13],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941":[9,4,3,13],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f":[11,0,0,0,26,7],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f":[11,0,0,0,27,7],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f":[9,4,3,7],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc":[11,0,0,0,26,6],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc":[11,0,0,0,27,6],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc":[9,4,3,6],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016":[11,0,0,0,26,14],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016":[11,0,0,0,27,14],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016":[9,4,3,14],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160":[11,0,0,0,26,16],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160":[11,0,0,0,27,16],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160":[9,4,3,16],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e":[11,0,0,0,26,12],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e":[11,0,0,0,27,12],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e":[9,4,3,12],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8":[11,0,0,0,26,15],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8":[11,0,0,0,27,15],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8":[9,4,3,15],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[11,0,0,0,26,9],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[11,0,0,0,27,9],
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[9,4,3,9],
"group__ev.html":[9,21],
"group__ev.html#ga3b0ffd4d2b4fa791c0fd75353a330208":[11,0,0,0,9],
"group__ev.html#ga3fdd23ded693b21853356dc9eaef5ccc":[11,0,0,0,80],
"group__ev.html#ga5caf14a420a2a0bd687a1fc952f8d64e":[11,0,0,0,82],
"group__ev.html#gaabfc0880d6a98133550c61aa01ef3563":[11,0,0,0,81],
"group__ev.html#ga3fdd23ded693b21853356dc9eaef5ccc":[11,0,0,0,84],
"group__ev.html#ga5caf14a420a2a0bd687a1fc952f8d64e":[11,0,0,0,86],
"group__ev.html#gaabfc0880d6a98133550c61aa01ef3563":[11,0,0,0,85],
"group__extensions.html":[9,5],
"group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e":[9,5,6],
"group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e":[11,0,0,0,84],
"group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e":[11,0,0,0,88],
"group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b":[9,5,5],
"group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b":[11,0,0,0,83],
"group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b":[11,0,0,0,87],
"group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0":[9,5,3],
"group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0":[11,0,0,0,10],
"group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e":[9,5,4],
"group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e":[11,0,0,0,28],
"group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9":[11,0,0,0,142],
"group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e":[11,0,0,0,29],
"group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9":[11,0,0,0,147],
"group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9":[9,5,7],
"group__extensions.html#gae9993815eee72c6070300a0ae2f022d7":[11,0,0,0,29],
"group__extensions.html#gae9993815eee72c6070300a0ae2f022d7":[11,0,0,0,30],
"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e":[9,5,4,1],
"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e":[11,0,0,0,28,1],
"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e":[11,0,0,0,29,1],
"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880":[9,5,4,2],
"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880":[11,0,0,0,28,2],
"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880":[11,0,0,0,29,2],
"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c":[9,5,4,0],
"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c":[11,0,0,0,28,0],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a05b74161bfab0f815d7fd47b85e20bfc":[11,0,0,0,29,9],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a0b220da55b7d7a9579175f1ec81579fb":[11,0,0,0,29,17],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a22a8130d0db03d62154d0502b1737a48":[11,0,0,0,29,22],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a246b82fadb41dc04cf4d40fd42987458":[11,0,0,0,29,19],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a25ceebb1ee06c2f0963b44165065efb9":[11,0,0,0,29,26],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a270b950562f97510ec06b02dbcbace11":[11,0,0,0,29,23],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a5a4cacc86ebddc8cb5a3f4ec91ba3fba":[11,0,0,0,29,12],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a648e8e3988ca8bdf20ddcfd2a14e3f10":[11,0,0,0,29,13],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a6cbdd5cfd6d39e3cacd4ca02e2ae54e3":[11,0,0,0,29,8],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a741d5d795895b192cbde6adbc851a822":[11,0,0,0,29,11],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a7fe88715ded486af17228050a1d05e90":[11,0,0,0,29,2],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a83dff5bb6cd4c6e0cc85cb12fb9c0178":[11,0,0,0,29,5],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a862b122e8f17a50f5ab6e7b56087c09c":[11,0,0,0,29,20],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a866a849e7d59a3a44c92ecdfb1393e4e":[11,0,0,0,29,0],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a8e4e3c201d029c8d78457fb4fdddef4a":[11,0,0,0,29,7],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa2901960832871f606354d58e58b6453":[11,0,0,0,29,4],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa4eb48182ed8bd10d257df5a8b154cc2":[11,0,0,0,29,24],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa6d94d15f31176a4e1214c4c31edd5f8":[11,0,0,0,29,18],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aaf81548db378fa156a7cf290abff87ad":[11,0,0,0,29,21],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abb36b02569c81df4509f58f964a8155b":[11,0,0,0,29,3],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abc92c2b16b0d54b3a9736e62a520a446":[11,0,0,0,29,10],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac2af19277affbbc731379ddfb38f820e":[11,0,0,0,29,16],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac5d7be02c676c836bb8ec448803dd606":[11,0,0,0,29,14],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad113e96df806fb20fd4f02dbe19e4f4b":[11,0,0,0,29,6],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad426ef79eec1b6e036118f64e6fa62f5":[11,0,0,0,29,25],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ae57bedd24d5a29f5f381f8155c2ab3b8":[11,0,0,0,29,15],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7afa4a8739f6424c4dac3eead479628002":[11,0,0,0,29,1],
"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c":[11,0,0,0,29,0],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a05b74161bfab0f815d7fd47b85e20bfc":[11,0,0,0,30,9],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a0b220da55b7d7a9579175f1ec81579fb":[11,0,0,0,30,17],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a22a8130d0db03d62154d0502b1737a48":[11,0,0,0,30,22],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a246b82fadb41dc04cf4d40fd42987458":[11,0,0,0,30,19],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a25ceebb1ee06c2f0963b44165065efb9":[11,0,0,0,30,26],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a270b950562f97510ec06b02dbcbace11":[11,0,0,0,30,23],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a5a4cacc86ebddc8cb5a3f4ec91ba3fba":[11,0,0,0,30,12],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a648e8e3988ca8bdf20ddcfd2a14e3f10":[11,0,0,0,30,13],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a6cbdd5cfd6d39e3cacd4ca02e2ae54e3":[11,0,0,0,30,8],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a741d5d795895b192cbde6adbc851a822":[11,0,0,0,30,11],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a7fe88715ded486af17228050a1d05e90":[11,0,0,0,30,2],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a83dff5bb6cd4c6e0cc85cb12fb9c0178":[11,0,0,0,30,5],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a862b122e8f17a50f5ab6e7b56087c09c":[11,0,0,0,30,20],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a866a849e7d59a3a44c92ecdfb1393e4e":[11,0,0,0,30,0],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a8e4e3c201d029c8d78457fb4fdddef4a":[11,0,0,0,30,7],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa2901960832871f606354d58e58b6453":[11,0,0,0,30,4],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa4eb48182ed8bd10d257df5a8b154cc2":[11,0,0,0,30,24],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa6d94d15f31176a4e1214c4c31edd5f8":[11,0,0,0,30,18],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aaf81548db378fa156a7cf290abff87ad":[11,0,0,0,30,21],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abb36b02569c81df4509f58f964a8155b":[11,0,0,0,30,3],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abc92c2b16b0d54b3a9736e62a520a446":[11,0,0,0,30,10],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac2af19277affbbc731379ddfb38f820e":[11,0,0,0,30,16],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac5d7be02c676c836bb8ec448803dd606":[11,0,0,0,30,14],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad113e96df806fb20fd4f02dbe19e4f4b":[11,0,0,0,30,6],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad426ef79eec1b6e036118f64e6fa62f5":[11,0,0,0,30,25],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ae57bedd24d5a29f5f381f8155c2ab3b8":[11,0,0,0,30,15],
"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7afa4a8739f6424c4dac3eead479628002":[11,0,0,0,30,1],
"group__fops.html":[9,20],
"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[9,20,1],
"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[11,0,0,0,91],
"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[11,0,0,0,95],
"group__form-parsing.html":[9,6,0],
"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[11,0,0,0,148],
"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[11,0,0,0,153],
"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[9,6,0,2],
"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[11,0,0,0,152],
"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[11,0,0,0,157],
"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[9,6,0,6],
"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[11,0,0,0,151],
"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[11,0,0,0,156],
"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,33],
"group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae":[11,0,0,0,34],
"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[9,6,0,0],
"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[11,0,0,0,16],
"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[11,0,0,0,150],
"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[11,0,0,0,17],
"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[11,0,0,0,155],
"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[9,6,0,4],
"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[11,0,0,0,153],
"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[11,0,0,0,158],
"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[9,6,0,7],
"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[11,0,0,0,149],
"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[11,0,0,0,154],
"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,33,2],
"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83":[11,0,0,0,34,2],
"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[9,6,0,1,1],
"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[11,0,0,0,33,1],
"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[11,0,0,0,34,1],
"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f":[9,6,0,1,0],
"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f":[11,0,0,0,33,0],
"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f":[11,0,0,0,34,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,36],
"group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1":[11,0,0,0,37],
"group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e":[9,10,0,4],
"group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e":[11,0,0,0,30],
"group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e":[11,0,0,0,31],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf":[9,10,0,5,1],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf":[11,0,0,0,36,1],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf":[11,0,0,0,37,1],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a":[9,10,0,5,3],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a":[11,0,0,0,36,3],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a":[11,0,0,0,37,3],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887":[9,10,0,5,2],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887":[11,0,0,0,36,2],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887":[11,0,0,0,37,2],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57":[9,10,0,5,0],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57":[11,0,0,0,36,0],
"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57":[11,0,0,0,37,0],
"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308":[9,10,0,4,0],
"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308":[11,0,0,0,30,0],
"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308":[11,0,0,0,31,0],
"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde":[9,10,0,4,1],
"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde":[11,0,0,0,30,1],
"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde":[11,0,0,0,31,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,66],
"group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60":[11,0,0,0,67],
"group__html-chunked-substitution.html#ga669d3d7ce2d5f193473f649a89b3e7ac":[11,0,0,0,14],
"group__html-chunked-substitution.html#gabc3b93f68c8bdd857ad32913628dfa8d":[11,0,0,0,21],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da08107f6b0e1d7c9e2ca100700cc7200f":[11,0,0,0,21,23],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da145570ed1178d3d90ad9b7652fea83cf":[11,0,0,0,21,21],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da1558c42d80f54def5f3277dc879d2844":[11,0,0,0,21,12],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2637ec8a704c0d7fcb7ff8ce5d871be0":[11,0,0,0,21,20],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da299a2d262210540b593420fe89e01b32":[11,0,0,0,21,24],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2e57a633f7a2422f67bf207648519e30":[11,0,0,0,21,22],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da36b5bcf2059ae3c84a47e080822239c7":[11,0,0,0,21,14],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da40246e02220192ce8d7f86591ca1cfe4":[11,0,0,0,21,13],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da419c919f74b88d18803358141ab9471c":[11,0,0,0,21,9],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da49cf9c4c184f9e4d265ceae249e92477":[11,0,0,0,21,6],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da53df069872b37830e4296f32e7ec20d8":[11,0,0,0,21,4],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da63eb71a406e943d4634c357d60dd96df":[11,0,0,0,21,11],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da67278d96cfa0eb507535b94338810d65":[11,0,0,0,21,16],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da6964f9591ba7284dc4bd388d40c106a9":[11,0,0,0,21,15],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da9632802fcd318d1676be7589e6004e96":[11,0,0,0,21,3],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daa55ceddb5bb2104bfcfefb16995192a4":[11,0,0,0,21,2],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daafd60e3a2073e04b8f2247f8f9ac9710":[11,0,0,0,21,19],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab355dd546e62b1478fe3ef94b554f75c":[11,0,0,0,21,27],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab42dfcbd67b4e66096e3a8e924b6d6c9":[11,0,0,0,21,17],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac3d4da4de851d5c8f95748145b59716a":[11,0,0,0,21,18],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac96829d2c2cb76feb1549f0fac72c69e":[11,0,0,0,21,26],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac9c5b4e80aa858cfe2763656db1f16e3":[11,0,0,0,21,25],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad000a2e30c534c201201dd74fac8d2f9":[11,0,0,0,21,1],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad34cd21de350cd4fa83b8099e3993b91":[11,0,0,0,21,0],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad771b2a0ab88db11b2719c8e5086fb48":[11,0,0,0,21,7],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dadd02813da14cfdc7fe83029b8779ea4b":[11,0,0,0,21,29],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dae301c12d0cf56920659cb7b947a95267":[11,0,0,0,21,5],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daefdfc7b525c87b911d6e92a30e36cfec":[11,0,0,0,21,28],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daf06c31278cb67d7eec4b2b8157b9ad25":[11,0,0,0,21,10],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dafac24097912a70f224166528ce44b83b":[11,0,0,0,21,8],
"group__html-chunked-substitution.html#gabc3b93f68c8bdd857ad32913628dfa8d":[11,0,0,0,22],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da08107f6b0e1d7c9e2ca100700cc7200f":[11,0,0,0,22,23],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da145570ed1178d3d90ad9b7652fea83cf":[11,0,0,0,22,21],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da1558c42d80f54def5f3277dc879d2844":[11,0,0,0,22,12],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2637ec8a704c0d7fcb7ff8ce5d871be0":[11,0,0,0,22,20],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da299a2d262210540b593420fe89e01b32":[11,0,0,0,22,24],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2e57a633f7a2422f67bf207648519e30":[11,0,0,0,22,22],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da36b5bcf2059ae3c84a47e080822239c7":[11,0,0,0,22,14],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da40246e02220192ce8d7f86591ca1cfe4":[11,0,0,0,22,13],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da419c919f74b88d18803358141ab9471c":[11,0,0,0,22,9],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da49cf9c4c184f9e4d265ceae249e92477":[11,0,0,0,22,6],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da53df069872b37830e4296f32e7ec20d8":[11,0,0,0,22,4],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da63eb71a406e943d4634c357d60dd96df":[11,0,0,0,22,11],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da67278d96cfa0eb507535b94338810d65":[11,0,0,0,22,16],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da6964f9591ba7284dc4bd388d40c106a9":[11,0,0,0,22,15],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da9632802fcd318d1676be7589e6004e96":[11,0,0,0,22,3],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daa55ceddb5bb2104bfcfefb16995192a4":[11,0,0,0,22,2],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daafd60e3a2073e04b8f2247f8f9ac9710":[11,0,0,0,22,19],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab355dd546e62b1478fe3ef94b554f75c":[11,0,0,0,22,27],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab42dfcbd67b4e66096e3a8e924b6d6c9":[11,0,0,0,22,17],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac3d4da4de851d5c8f95748145b59716a":[11,0,0,0,22,18],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac96829d2c2cb76feb1549f0fac72c69e":[11,0,0,0,22,26],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac9c5b4e80aa858cfe2763656db1f16e3":[11,0,0,0,22,25],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad000a2e30c534c201201dd74fac8d2f9":[11,0,0,0,22,1],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad34cd21de350cd4fa83b8099e3993b91":[11,0,0,0,22,0],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad771b2a0ab88db11b2719c8e5086fb48":[11,0,0,0,22,7],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dadd02813da14cfdc7fe83029b8779ea4b":[11,0,0,0,22,29],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dae301c12d0cf56920659cb7b947a95267":[11,0,0,0,22,5],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daefdfc7b525c87b911d6e92a30e36cfec":[11,0,0,0,22,28],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daf06c31278cb67d7eec4b2b8157b9ad25":[11,0,0,0,22,10],
"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dafac24097912a70f224166528ce44b83b":[11,0,0,0,22,8],
"group__http.html":[9,6],
"group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25":[11,0,0,0,114],
"group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25":[9,6,7],
"group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25":[11,0,0,0,110],
"group__http.html#gac8a4a71240857dc6b2ed70456b6923f4":[11,0,0,0,130],
"group__http.html#gac8a4a71240857dc6b2ed70456b6923f4":[11,0,0,0,135],
"group__http.html#gac8a4a71240857dc6b2ed70456b6923f4":[9,6,9],
"group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a":[11,0,0,0,115],
"group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a":[9,6,8],
"group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a":[11,0,0,0,111],
"group__httpft.html":[9,6,2],
"group__httpft.html#ga29e1123f6d56cd777b3e5bf9ca40f9e5":[11,0,0,0,135],
"group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7":[11,0,0,0,134],
"group__httpft.html#ga29e1123f6d56cd777b3e5bf9ca40f9e5":[11,0,0,0,140],
"group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7":[11,0,0,0,139],
"group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7":[9,6,2,1],
"group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[9,6,2,0],
"group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[11,0,0,0,93],
"group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[11,0,0,0,97],
"group__log.html":[9,7],
"group__log.html#ga14542b84d2c76efa7814124bb10f9c5f":[11,0,0,0,31],
"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[11,0,0,0,143],
"group__log.html#ga14542b84d2c76efa7814124bb10f9c5f":[11,0,0,0,32],
"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[11,0,0,0,148],
"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[9,7,0],
"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[11,0,0,0,168],
"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[11,0,0,0,173],
"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[9,7,3],
"group__log.html#ga74eb146969f0595e12ea835851b4588e":[11,0,0,0,40],
"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[11,0,0,0,167],
"group__log.html#ga74eb146969f0595e12ea835851b4588e":[11,0,0,0,41],
"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[11,0,0,0,172],
"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[9,7,2],
"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[11,0,0,0,166],
"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[11,0,0,0,171],
"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[9,7,1],
"group__log.html#gaf5f07837692b2f231a79da8a058288aa":[11,0,0,0,39],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa083a44e71966a0e768426e477e1bc358":[11,0,0,0,31,8],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa2be9c1d50d05756078e9abc72c9e50cc":[11,0,0,0,31,5],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa52e5cd60bbb85f30ec0078a2c4be0c59":[11,0,0,0,31,3],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa6353ac9650d35e8958981eebcb4b67a9":[11,0,0,0,31,7],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faa12195bd6dd442763a8321c463a2c906":[11,0,0,0,31,1],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faacc8fe5891eba3cf4537bee50eaaa8fa":[11,0,0,0,31,10],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5facef27c02b70f1bc9140685bdfafe0942":[11,0,0,0,31,6],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad0b18841adbb4792c39981ec05702744":[11,0,0,0,31,4],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad40a82f6c94e6408dd003cf3f0231212":[11,0,0,0,31,2],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fae4235ca28326353e283bc7dd1b39bd86":[11,0,0,0,31,9],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faff4895280366d59ef0c5e9f4578241af":[11,0,0,0,31,0],
"group__log.html#gaf5f07837692b2f231a79da8a058288aa":[11,0,0,0,40],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa083a44e71966a0e768426e477e1bc358":[11,0,0,0,32,8],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa2be9c1d50d05756078e9abc72c9e50cc":[11,0,0,0,32,5],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa52e5cd60bbb85f30ec0078a2c4be0c59":[11,0,0,0,32,3],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa6353ac9650d35e8958981eebcb4b67a9":[11,0,0,0,32,7],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faa12195bd6dd442763a8321c463a2c906":[11,0,0,0,32,1],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faacc8fe5891eba3cf4537bee50eaaa8fa":[11,0,0,0,32,10],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5facef27c02b70f1bc9140685bdfafe0942":[11,0,0,0,32,6],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad0b18841adbb4792c39981ec05702744":[11,0,0,0,32,4],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad40a82f6c94e6408dd003cf3f0231212":[11,0,0,0,32,2],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fae4235ca28326353e283bc7dd1b39bd86":[11,0,0,0,32,9],
"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faff4895280366d59ef0c5e9f4578241af":[11,0,0,0,32,0],
"group__misc.html":[9,8],
"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[9,8,2],
"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[11,0,0,0,89],
"group__misc.html#ga0e705d498e8c8500649a26ba30a1e106":[11,0,0,0,128],
"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[11,0,0,0,123],
"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[11,0,0,0,93],
"group__misc.html#ga0e705d498e8c8500649a26ba30a1e106":[11,0,0,0,133],
"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[11,0,0,0,128],
"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[9,8,8],
"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[11,0,0,0,122],
"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[11,0,0,0,127],
"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[9,8,7],
"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[9,8,6],
"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[11,0,0,0,99],
"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[11,0,0,0,103],
"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[9,8,3],
"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[11,0,0,0,90],
"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[11,0,0,0,94],
"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[9,8,5],
"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[11,0,0,0,94],
"group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21":[11,0,0,0,147],
"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[11,0,0,0,98],
"group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21":[11,0,0,0,152],
"group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21":[9,8,10],
"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[11,0,0,0,165],
"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[11,0,0,0,170],
"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[9,8,11],
"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[11,0,0,0,141],
"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[9,8,9],
"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[11,0,0,0,146],
"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[9,8,4],
"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[11,0,0,0,92],
"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[11,0,0,0,96],
"group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234":[9,8,1],
"group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234":[11,0,0,0,88],
"group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234":[11,0,0,0,92],
"group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af":[9,8,0],
"group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af":[11,0,0,0,76],
"group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af":[11,0,0,0,80],
"group__net.html":[9,9],
"group__net.html#ga092e5f473b3347f03ffeef8a950080f3":[9,9,1],
"group__net.html#ga092e5f473b3347f03ffeef8a950080f3":[11,0,0,0,95],
"group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8":[11,0,0,0,113],
"group__net.html#ga092e5f473b3347f03ffeef8a950080f3":[11,0,0,0,99],
"group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8":[9,9,3],
"group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8":[11,0,0,0,117],
"group__net.html#gad01014fed09759741b6d23afccfdaacc":[9,9,2],
"group__net.html#gad01014fed09759741b6d23afccfdaacc":[11,0,0,0,96],
"group__net.html#gad01014fed09759741b6d23afccfdaacc":[11,0,0,0,100],
"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[9,9,0],
"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[11,0,0,0,62],
"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[11,0,0,0,63],
"group__pur.html":[9,12],
"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[11,0,0,0,154],
"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[11,0,0,0,159],
"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[9,12,1],
"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[11,0,0,0,123],
"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[9,12,0],
"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[11,0,0,0,119],
"group__sending-data.html":[9,13],
"group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d":[9,13,0],
"group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d":[11,0,0,0,35],
"group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001":[11,0,0,0,164],
"group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d":[11,0,0,0,36],
"group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001":[11,0,0,0,169],
"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,35,2],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826":[11,0,0,0,36,2],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3":[9,13,0,5],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3":[11,0,0,0,35,8],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3":[11,0,0,0,36,8],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce":[9,13,0,6],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce":[11,0,0,0,35,9],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da6e556322ff8f205bf311608f7f6e6559":[11,0,0,0,35,4],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce":[11,0,0,0,36,9],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da6e556322ff8f205bf311608f7f6e6559":[11,0,0,0,36,4],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db":[9,13,0,0],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db":[11,0,0,0,35,0],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dab7e7a62cf6f456c09c21dff24dad9039":[11,0,0,0,35,5],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db":[11,0,0,0,36,0],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dab7e7a62cf6f456c09c21dff24dad9039":[11,0,0,0,36,5],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[9,13,0,3],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[11,0,0,0,35,3],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dae7d8a025a65524652fe9e24c2654c935":[11,0,0,0,35,6],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[11,0,0,0,36,3],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dae7d8a025a65524652fe9e24c2654c935":[11,0,0,0,36,6],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[9,13,0,1],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[11,0,0,0,35,1],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[11,0,0,0,36,1],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917":[9,13,0,4],
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917":[11,0,0,0,35,7],
"group__service.html":[9,0],
"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[9,0,1],
"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[11,0,0,0,61],
"group__service.html#ga4fd9d714434ca499e2b3f7dbba86f241":[11,0,0,0,137],
"group__service.html#ga4fd9d714434ca499e2b3f7dbba86f241":[9,0,3],
"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[9,0,0]
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917":[11,0,0,0,36,7],
"group__service.html":[9,0]
};

View file

@ -1,253 +1,253 @@
var NAVTREEINDEX2 =
{
"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[11,0,0,0,60],
"group__service.html#ga9b3cc4473fd8848e5bbee7f310712939":[11,0,0,0,140],
"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[9,0,1],
"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[11,0,0,0,62],
"group__service.html#ga4fd9d714434ca499e2b3f7dbba86f241":[11,0,0,0,142],
"group__service.html#ga4fd9d714434ca499e2b3f7dbba86f241":[9,0,3],
"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[9,0,0],
"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[11,0,0,0,61],
"group__service.html#ga9b3cc4473fd8848e5bbee7f310712939":[11,0,0,0,145],
"group__service.html#ga9b3cc4473fd8848e5bbee7f310712939":[9,0,6],
"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[11,0,0,0,138],
"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[11,0,0,0,143],
"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[9,0,4],
"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[11,0,0,0,139],
"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[9,0,5],
"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[11,0,0,0,136],
"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[11,0,0,0,144],
"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[11,0,0,0,141],
"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[9,0,2],
"group__sha.html":[9,11],
"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[9,11,0],
"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[11,0,0,0,51],
"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[11,0,0,0,146],
"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[11,0,0,0,52],
"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[11,0,0,0,151],
"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[9,11,2],
"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[9,11,1],
"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[11,0,0,0,52],
"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[11,0,0,0,53],
"group__smtp.html":[9,14],
"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[9,14,1],
"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[11,0,0,0,37],
"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[11,0,0,0,38],
"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[11,0,0,0,82],
"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[9,14,3],
"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[11,0,0,0,78],
"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[11,0,0,0,77],
"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[11,0,0,0,81],
"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[9,14,2],
"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[11,0,0,0,79],
"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[9,14,4],
"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[11,0,0,0,83],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad":[9,14,1,3],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad":[11,0,0,0,37,3],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad":[11,0,0,0,38,3],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c":[9,14,1,0],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c":[11,0,0,0,37,0],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5":[11,0,0,0,37,8],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c":[11,0,0,0,38,0],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5":[11,0,0,0,38,8],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5":[9,14,1,8],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69":[11,0,0,0,38,7],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69":[9,14,1,7],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69":[11,0,0,0,37,7],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[11,0,0,0,38,6],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[9,14,1,6],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[11,0,0,0,37,6],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[11,0,0,0,37,4],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[9,14,1,4],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[11,0,0,0,37,5],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[11,0,0,0,38,4],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[9,14,1,5],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[11,0,0,0,38,5],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[9,14,1,2],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[11,0,0,0,37,2],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[11,0,0,0,38,2],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[9,14,1,1],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[11,0,0,0,37,1],
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[11,0,0,0,38,1],
"group__sock-adopt.html":[9,15],
"group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b":[11,0,0,0,51],
"group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b":[9,15,1],
"group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b":[11,0,0,0,50],
"group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af":[11,0,0,0,49],
"group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af":[9,15,0],
"group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af":[11,0,0,0,50],
"group__timeout.html":[9,3],
"group__timeout.html#ga2c0aa4b9c3c55bae7b35cbfac3246c87":[11,0,0,0,38],
"group__timeout.html#ga2c0aa4b9c3c55bae7b35cbfac3246c87":[11,0,0,0,39],
"group__timeout.html#gaced9f9237f6172fed9f730a2af51345a":[9,3,0],
"group__timeout.html#gaced9f9237f6172fed9f730a2af51345a":[11,0,0,0,145],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0d6b956db11acb6d263af3ea054a914e":[11,0,0,0,38,12],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0eef059426f37d00b75142d4dc3e25e3":[11,0,0,0,38,3],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a1104c39d0177378713a9332ab7a9d7fe":[11,0,0,0,38,4],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a11292263c9eccd090294e7e316200d7f":[11,0,0,0,38,13],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a13527b2b1f61d9b2709eb432acd0a248":[11,0,0,0,38,7],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a211dd9910c37aa3a3a45fd532c76bf6e":[11,0,0,0,38,5],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a44feda6cc9507a8613b9263b1acc8ce1":[11,0,0,0,38,8],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a52236b42ec5ffe65d4cdbadeb6c4fcb0":[11,0,0,0,38,2],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a5fe48ea6f3f5363cca55d39b78490b45":[11,0,0,0,38,15],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a62ae208399be1f872e14843fd15f9e06":[11,0,0,0,38,17],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a65785467c0b560bead865231fdd405d7":[11,0,0,0,38,0],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a73f61afae387e16f7ab8a4f299aca8d2":[11,0,0,0,38,14],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a7d5b3bcc88ccbddfa57674e174a78c2d":[11,0,0,0,38,9],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a8587dc22f946c45e2f38c4045479fda5":[11,0,0,0,38,18],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87aaac32d9ca2f7c31f5649ad4059d7b985":[11,0,0,0,38,16],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87aaf69f440c2e000787efae5ad6f39e74c":[11,0,0,0,38,11],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ab20463ee983bcd68cd8a501319da56d3":[11,0,0,0,38,6],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ad7ebebb506afd30c48e1e5e3a578cd30":[11,0,0,0,38,1],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ae8b3de955cec5da5ea52fe040f914501":[11,0,0,0,38,10],
"group__timeout.html#gaced9f9237f6172fed9f730a2af51345a":[11,0,0,0,150],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0d6b956db11acb6d263af3ea054a914e":[11,0,0,0,39,12],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0eef059426f37d00b75142d4dc3e25e3":[11,0,0,0,39,3],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a1104c39d0177378713a9332ab7a9d7fe":[11,0,0,0,39,4],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a11292263c9eccd090294e7e316200d7f":[11,0,0,0,39,13],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a13527b2b1f61d9b2709eb432acd0a248":[11,0,0,0,39,7],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a211dd9910c37aa3a3a45fd532c76bf6e":[11,0,0,0,39,5],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a44feda6cc9507a8613b9263b1acc8ce1":[11,0,0,0,39,8],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a52236b42ec5ffe65d4cdbadeb6c4fcb0":[11,0,0,0,39,2],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a5fe48ea6f3f5363cca55d39b78490b45":[11,0,0,0,39,15],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a62ae208399be1f872e14843fd15f9e06":[11,0,0,0,39,17],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a65785467c0b560bead865231fdd405d7":[11,0,0,0,39,0],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a73f61afae387e16f7ab8a4f299aca8d2":[11,0,0,0,39,14],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a7d5b3bcc88ccbddfa57674e174a78c2d":[11,0,0,0,39,9],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a8587dc22f946c45e2f38c4045479fda5":[11,0,0,0,39,18],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87aaac32d9ca2f7c31f5649ad4059d7b985":[11,0,0,0,39,16],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87aaf69f440c2e000787efae5ad6f39e74c":[11,0,0,0,39,11],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ab20463ee983bcd68cd8a501319da56d3":[11,0,0,0,39,6],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ad7ebebb506afd30c48e1e5e3a578cd30":[11,0,0,0,39,1],
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ae8b3de955cec5da5ea52fe040f914501":[11,0,0,0,39,10],
"group__urlendec.html":[9,6,5],
"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[11,0,0,0,156],
"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[11,0,0,0,161],
"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[9,6,5,0],
"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[11,0,0,0,157],
"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[11,0,0,0,162],
"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[9,6,5,1],
"group__usercb.html":[9,16],
"group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f":[11,0,0,0,8],
"group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f":[9,16,0],
"group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7":[11,0,0,0,22],
"group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7":[11,0,0,0,23],
"group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7":[9,16,1],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6":[11,0,0,0,22,17],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6":[11,0,0,0,23,17],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6":[9,16,1,17],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0418587d5083bb4850faa438648496ba":[11,0,0,0,22,49],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493":[11,0,0,0,22,22],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0418587d5083bb4850faa438648496ba":[11,0,0,0,23,49],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493":[11,0,0,0,23,22],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493":[9,16,1,22],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79":[11,0,0,0,22,36],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79":[11,0,0,0,23,36],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79":[9,16,1,36],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9":[11,0,0,0,22,9],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9":[11,0,0,0,23,9],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9":[9,16,1,9],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a182a4a14c3278784505cea6d516a8308":[11,0,0,0,22,47],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46":[11,0,0,0,22,26],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a182a4a14c3278784505cea6d516a8308":[11,0,0,0,23,47],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46":[11,0,0,0,23,26],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46":[9,16,1,26],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768":[11,0,0,0,22,33],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768":[11,0,0,0,23,33],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768":[9,16,1,33],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a23b90b5e5146e760bc3123ae1fd2a6e5":[11,0,0,0,22,40],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[11,0,0,0,22,0],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a23b90b5e5146e760bc3123ae1fd2a6e5":[11,0,0,0,23,40],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[11,0,0,0,23,0],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[9,16,1,0],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[11,0,0,0,22,7],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[11,0,0,0,23,7],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[9,16,1,7],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[11,0,0,0,22,14],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[11,0,0,0,23,14],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[9,16,1,14],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[11,0,0,0,22,25],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[11,0,0,0,23,25],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[9,16,1,25],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a45d538082dec32dbecfe9d9a05ddfecd":[11,0,0,0,22,50],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8":[11,0,0,0,22,4],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a45d538082dec32dbecfe9d9a05ddfecd":[11,0,0,0,23,50],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8":[11,0,0,0,23,4],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8":[9,16,1,4],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c":[11,0,0,0,22,6],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c":[11,0,0,0,23,6],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c":[9,16,1,6],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa":[11,0,0,0,22,28],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa":[11,0,0,0,23,28],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa":[9,16,1,28],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a659539cfa65c66e0d813113b09900d31":[11,0,0,0,22,42],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a6a09ee9c01c4a233aedbe6697e29cc01":[11,0,0,0,22,44],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c":[11,0,0,0,22,18],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a659539cfa65c66e0d813113b09900d31":[11,0,0,0,23,42],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a6a09ee9c01c4a233aedbe6697e29cc01":[11,0,0,0,23,44],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c":[11,0,0,0,23,18],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c":[9,16,1,18],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[9,16,1,3],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[11,0,0,0,22,3],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[11,0,0,0,22,11],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[11,0,0,0,23,3],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[11,0,0,0,23,11],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[9,16,1,11],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[11,0,0,0,22,5],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[11,0,0,0,23,5],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[9,16,1,5],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[11,0,0,0,22,35],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[11,0,0,0,23,35],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[9,16,1,35],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a89862929a72bff65257ca1d51a0fce4d":[11,0,0,0,22,52],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514":[11,0,0,0,22,10],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a89862929a72bff65257ca1d51a0fce4d":[11,0,0,0,23,52],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514":[9,16,1,10],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f":[11,0,0,0,22,24],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514":[11,0,0,0,23,10],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f":[11,0,0,0,23,24],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f":[9,16,1,24],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[11,0,0,0,22,58],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[11,0,0,0,23,58],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[9,16,1,41],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[11,0,0,0,22,37],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[11,0,0,0,23,37],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[9,16,1,37],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[11,0,0,0,22,2],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[9,16,1,2],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a":[11,0,0,0,22,56],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[11,0,0,0,23,2],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a":[11,0,0,0,23,56],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a":[9,16,1,39],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[11,0,0,0,22,15],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[11,0,0,0,23,15],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[9,16,1,15],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e":[11,0,0,0,22,34],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e":[11,0,0,0,23,34],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e":[9,16,1,34],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aaffd08a5cae791c9f3c38ee242203900":[11,0,0,0,22,46],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412":[11,0,0,0,22,32],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aaffd08a5cae791c9f3c38ee242203900":[11,0,0,0,23,46],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412":[11,0,0,0,23,32],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412":[9,16,1,32],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab884f3d5f8a6126a0d34c0172f5e3725":[11,0,0,0,22,53],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab884f3d5f8a6126a0d34c0172f5e3725":[11,0,0,0,23,53],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1":[11,0,0,0,23,8],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1":[9,16,1,8],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1":[11,0,0,0,22,8],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abcf9c720cd3d361a83d1ac65bf052a25":[11,0,0,0,22,39],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac11c336f7052abf3618962902a71ebc8":[11,0,0,0,22,54],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51":[11,0,0,0,22,38],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abcf9c720cd3d361a83d1ac65bf052a25":[11,0,0,0,23,39],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac11c336f7052abf3618962902a71ebc8":[11,0,0,0,23,54],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51":[11,0,0,0,23,38],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51":[9,16,1,38],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac432e9f891c733ba8f968c1bf57c0ddc":[11,0,0,0,22,45],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae":[11,0,0,0,22,13],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac432e9f891c733ba8f968c1bf57c0ddc":[11,0,0,0,23,45],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae":[11,0,0,0,23,13],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae":[9,16,1,13],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac8c0ae966ef1877e0020c0077ff2e4a4":[11,0,0,0,22,41],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e":[11,0,0,0,22,30],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac8c0ae966ef1877e0020c0077ff2e4a4":[11,0,0,0,23,41],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e":[11,0,0,0,23,30],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e":[9,16,1,30],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d":[11,0,0,0,22,20],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d":[11,0,0,0,23,20],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d":[9,16,1,20],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49":[11,0,0,0,22,27],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49":[11,0,0,0,23,27],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49":[9,16,1,27],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad724974204d51d688f569c5d387b967d":[11,0,0,0,22,43],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad87774f1c7784cf632e1e2f5b51036e1":[11,0,0,0,22,48],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad724974204d51d688f569c5d387b967d":[11,0,0,0,23,43],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad87774f1c7784cf632e1e2f5b51036e1":[11,0,0,0,23,48],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[9,16,1,1],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[11,0,0,0,22,1],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[11,0,0,0,22,31],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[11,0,0,0,23,1],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[11,0,0,0,23,31],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[9,16,1,31],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[11,0,0,0,23,21],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[9,16,1,21],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[11,0,0,0,22,21],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac":[11,0,0,0,22,23],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac":[11,0,0,0,23,23],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac":[9,16,1,23],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[11,0,0,0,22,12],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[11,0,0,0,23,12],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[9,16,1,12],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[11,0,0,0,22,19],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[11,0,0,0,23,19],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[9,16,1,19],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6":[11,0,0,0,22,57],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6":[11,0,0,0,23,57],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6":[9,16,1,40],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7af6cf80e57aae8ba0a57a5c456b1fe026":[11,0,0,0,22,55],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afc4b2f72cc9e424a750b506ce0cc4310":[11,0,0,0,22,51],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[11,0,0,0,22,29],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7af6cf80e57aae8ba0a57a5c456b1fe026":[11,0,0,0,23,55],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afc4b2f72cc9e424a750b506ce0cc4310":[11,0,0,0,23,51],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[11,0,0,0,23,29],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[9,16,1,29],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09":[11,0,0,0,22,16],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09":[11,0,0,0,23,16],
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09":[9,16,1,16],
"group__uv.html":[9,22],
"group__uv.html#ga097c89497824d4de225a85a00661fc89":[11,0,0,0,120],
"group__uv.html#ga3c75cd6ec3f80fc0a0c8ead4c4e71a15":[11,0,0,0,121],
"group__uv.html#ga99099e045993383f251a8026e1e40414":[11,0,0,0,161],
"group__uv.html#gaa5e3593c94f91910d9d928dfa0c18f6c":[11,0,0,0,158],
"group__uv.html#gac5f60dba13a45e5d554b4fb7df7b9610":[11,0,0,0,160],
"group__uv.html#gad85ce3bfc53ff754988d36bf5de39e21":[11,0,0,0,159],
"group__uv.html#ga097c89497824d4de225a85a00661fc89":[11,0,0,0,124],
"group__uv.html#ga3c75cd6ec3f80fc0a0c8ead4c4e71a15":[11,0,0,0,125],
"group__uv.html#ga99099e045993383f251a8026e1e40414":[11,0,0,0,166],
"group__uv.html#gaa17758e1f852017a2271d8fb3e9305aa":[11,0,0,0,126],
"group__uv.html#gaa5e3593c94f91910d9d928dfa0c18f6c":[11,0,0,0,163],
"group__uv.html#gac5f60dba13a45e5d554b4fb7df7b9610":[11,0,0,0,165],
"group__uv.html#gad85ce3bfc53ff754988d36bf5de39e21":[11,0,0,0,164],
"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,32],
"group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437":[11,0,0,0,33],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[9,4,0,2,3],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[11,0,0,0,32,3],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[11,0,0,0,32,0],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[11,0,0,0,33,3],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[9,4,0,2,0],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[11,0,0,0,33,0],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[9,4,0,2,2],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[11,0,0,0,32,2],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[11,0,0,0,33,2],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67":[9,4,0,2,5],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67":[11,0,0,0,32,5],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67":[11,0,0,0,33,5],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da":[9,4,0,2,6],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da":[11,0,0,0,32,6],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da":[11,0,0,0,33,6],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970":[9,4,0,2,4],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970":[11,0,0,0,32,4],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970":[11,0,0,0,33,4],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1":[9,4,0,2,1],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1":[11,0,0,0,32,1],
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1":[11,0,0,0,33,1],
"group__wsclose.html":[9,17],
"group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262":[9,17,1],
"group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262":[11,0,0,0,71],
"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[11,0,0,0,25],
"group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262":[11,0,0,0,72],
"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[11,0,0,0,26],
"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[9,17,0],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[9,17,0,2],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[11,0,0,0,25,3],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[11,0,0,0,26,3],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[11,0,0,0,26,10],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[9,17,0,9],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[11,0,0,0,25,10],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a32c38edab10d1379febac0c479ab2e9c":[11,0,0,0,25,14],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[11,0,0,0,25,1],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a32c38edab10d1379febac0c479ab2e9c":[11,0,0,0,26,14],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[11,0,0,0,26,1],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[9,17,0,0],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276":[11,0,0,0,25,4],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276":[11,0,0,0,26,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,25,6],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[11,0,0,0,25,7],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044":[11,0,0,0,26,6],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[11,0,0,0,26,7],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[9,17,0,6],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[11,0,0,0,25,8],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[11,0,0,0,26,8],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[9,17,0,7],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[11,0,0,0,25,2],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[11,0,0,0,26,2],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[9,17,0,1],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[11,0,0,0,25,11],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[9,17,0,10],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985acc9a317c70363dd88e823e066b2c73b7":[11,0,0,0,25,0],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[11,0,0,0,26,11],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985acc9a317c70363dd88e823e066b2c73b7":[11,0,0,0,26,0],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[9,17,0,11],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[11,0,0,0,25,12],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[11,0,0,0,25,9],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[11,0,0,0,26,12],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[11,0,0,0,26,9],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[9,17,0,8],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[11,0,0,0,25,13],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[9,17,0,12],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[11,0,0,0,25,5],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[11,0,0,0,26,13],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[9,17,0,4],
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[11,0,0,0,26,5],
"group__wsstatus.html":[9,18],
"group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37":[11,0,0,0,119],
"group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37":[9,18,3],
"group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37":[11,0,0,0,115],
"group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[9,18,4],
"group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[11,0,0,0,116],
"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[11,0,0,0,133],
"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[9,18,6],
"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[11,0,0,0,100],
"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[9,18,1],
"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[9,18,2],
"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[11,0,0,0,114]
"group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[11,0,0,0,120]
};

View file

@ -1,46 +1,52 @@
var NAVTREEINDEX3 =
{
"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[11,0,0,0,138],
"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[9,18,6],
"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[9,18,1],
"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[11,0,0,0,104],
"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[9,18,2],
"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[11,0,0,0,118],
"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[9,18,0],
"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[11,0,0,0,87],
"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[11,0,0,0,91],
"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[11,0,0,0,129],
"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[9,18,5],
"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[11,0,0,0,124],
"hierarchy.html":[10,2],
"index.html":[],
"index.html":[0],
"libwebsockets_8h.html":[11,0,0,0],
"libwebsockets_8h.html#a0b056fdcf949a838ff82209b4a627dd9":[11,0,0,0,171],
"libwebsockets_8h.html#a17f5fc891b31d2920bd18b0d66d6cb25":[11,0,0,0,176],
"libwebsockets_8h.html#a1b12016562c728eb306c7f954c804bef":[11,0,0,0,20],
"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905f":[11,0,0,0,27],
"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa7741c12fc97574fa73a810fedae2be76":[11,0,0,0,27,1],
"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa9ce9c65d4229d1d168fca3cc12e7f535":[11,0,0,0,27,2],
"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fafdb6cf2797a3ea957c690ad6edff25d6":[11,0,0,0,27,0],
"libwebsockets_8h.html#a27551d6899b1e4de4b2b5854e805c6eb":[11,0,0,0,19],
"libwebsockets_8h.html#a27bb0b3cdcd0af839c928c253b521ff4":[11,0,0,0,64],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedb":[11,0,0,0,23],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba35cf2bed9944faa062d9310197489b2f":[11,0,0,0,23,4],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba60ac587febc583475c185e1409a0210c":[11,0,0,0,23,1],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbaa424646e067c6266bcb4f0190b026d66":[11,0,0,0,23,0],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbac8f5f992c6615324108cdf931da903be":[11,0,0,0,23,2],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad655f0eecc9e94be37b8ed07348716ef":[11,0,0,0,23,6],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad9cdc12a796e6c7d912278834d9c7dde":[11,0,0,0,23,3],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbada3dca91d96bcde5df08a67b5a66e972":[11,0,0,0,23,5],
"libwebsockets_8h.html#a4e877a4f0bb027d05d3a90c8e6a632de":[11,0,0,0,41],
"libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2":[11,0,0,0,65],
"libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672":[11,0,0,0,131],
"libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536":[11,0,0,0,129],
"libwebsockets_8h.html#a75e9827318684877deb4189121a8cd2a":[11,0,0,0,43],
"libwebsockets_8h.html#a863bdd5bca33bcbaa424c42fb7b2fc96":[11,0,0,0,175],
"libwebsockets_8h.html#a9032a3062641d334161c29adcc4fa15d":[11,0,0,0,173],
"libwebsockets_8h.html#a9b1bfc6f34319188d2aa40500d825bab":[11,0,0,0,42],
"libwebsockets_8h.html#a9b878fb94f4596226c982eef4f42a607":[11,0,0,0,44],
"libwebsockets_8h.html#a9f2a8506fd963db95a5103823c60fb0a":[11,0,0,0,174],
"libwebsockets_8h.html#abddb8d337fb2692586d892b494739003":[11,0,0,0,18],
"libwebsockets_8h.html#ac3abb8b7e6d29a0292797230e4031681":[11,0,0,0,17],
"libwebsockets_8h.html#adedbc79528b71a5c7f27cde87100c9aa":[11,0,0,0,15],
"libwebsockets_8h.html#adf4abd01e8c43f07c6e498ce13590c3e":[11,0,0,0,132],
"libwebsockets_8h.html#aefb2f20fe5bb29d79701a399838ef4ce":[11,0,0,0,172],
"libwebsockets_8h.html#af52923473c59e643a974d65e12290831":[11,0,0,0,63],
"libwebsockets_8h.html#a0b056fdcf949a838ff82209b4a627dd9":[11,0,0,0,176],
"libwebsockets_8h.html#a17f5fc891b31d2920bd18b0d66d6cb25":[11,0,0,0,181],
"libwebsockets_8h.html#a1b12016562c728eb306c7f954c804bef":[11,0,0,0,21],
"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905f":[11,0,0,0,28],
"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa7741c12fc97574fa73a810fedae2be76":[11,0,0,0,28,1],
"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa9ce9c65d4229d1d168fca3cc12e7f535":[11,0,0,0,28,2],
"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fafdb6cf2797a3ea957c690ad6edff25d6":[11,0,0,0,28,0],
"libwebsockets_8h.html#a27551d6899b1e4de4b2b5854e805c6eb":[11,0,0,0,20],
"libwebsockets_8h.html#a27bb0b3cdcd0af839c928c253b521ff4":[11,0,0,0,65],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedb":[11,0,0,0,24],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba35cf2bed9944faa062d9310197489b2f":[11,0,0,0,24,4],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba60ac587febc583475c185e1409a0210c":[11,0,0,0,24,1],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbaa424646e067c6266bcb4f0190b026d66":[11,0,0,0,24,0],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbac8f5f992c6615324108cdf931da903be":[11,0,0,0,24,2],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad655f0eecc9e94be37b8ed07348716ef":[11,0,0,0,24,6],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad9cdc12a796e6c7d912278834d9c7dde":[11,0,0,0,24,3],
"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbada3dca91d96bcde5df08a67b5a66e972":[11,0,0,0,24,5],
"libwebsockets_8h.html#a4e877a4f0bb027d05d3a90c8e6a632de":[11,0,0,0,42],
"libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2":[11,0,0,0,66],
"libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672":[11,0,0,0,136],
"libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536":[11,0,0,0,134],
"libwebsockets_8h.html#a75e9827318684877deb4189121a8cd2a":[11,0,0,0,44],
"libwebsockets_8h.html#a863bdd5bca33bcbaa424c42fb7b2fc96":[11,0,0,0,180],
"libwebsockets_8h.html#a9032a3062641d334161c29adcc4fa15d":[11,0,0,0,178],
"libwebsockets_8h.html#a9b1bfc6f34319188d2aa40500d825bab":[11,0,0,0,43],
"libwebsockets_8h.html#a9b878fb94f4596226c982eef4f42a607":[11,0,0,0,45],
"libwebsockets_8h.html#a9f2a8506fd963db95a5103823c60fb0a":[11,0,0,0,179],
"libwebsockets_8h.html#abddb8d337fb2692586d892b494739003":[11,0,0,0,19],
"libwebsockets_8h.html#ac3abb8b7e6d29a0292797230e4031681":[11,0,0,0,18],
"libwebsockets_8h.html#adedbc79528b71a5c7f27cde87100c9aa":[11,0,0,0,16],
"libwebsockets_8h.html#adf4abd01e8c43f07c6e498ce13590c3e":[11,0,0,0,137],
"libwebsockets_8h.html#aefb2f20fe5bb29d79701a399838ef4ce":[11,0,0,0,177],
"libwebsockets_8h.html#af52923473c59e643a974d65e12290831":[11,0,0,0,64],
"libwebsockets_8h.html#aff42d53861afdc1a6edfb999ba688ecb":[11,0,0,0,11],
"libwebsockets_8h_source.html":[11,0,0,0],
"md_README_8build.html":[1],
@ -111,15 +117,16 @@ var NAVTREEINDEX3 =
"md_README_8lwsws.html#lwsws":[3,0],
"md_README_8lwsws.html#lwswsb":[3,1],
"md_README_8lwsws.html#lwswsc":[3,2],
"md_README_8lwsws.html#lwswslr":[3,14],
"md_README_8lwsws.html#lwswslr":[3,15],
"md_README_8lwsws.html#lwswsm":[3,8],
"md_README_8lwsws.html#lwswsomo":[3,9],
"md_README_8lwsws.html#lwswsovo":[3,7],
"md_README_8lwsws.html#lwswspl":[3,10],
"md_README_8lwsws.html#lwswsplaplp":[3,11],
"md_README_8lwsws.html#lwswspr":[3,6],
"md_README_8lwsws.html#lwswsreload":[3,13],
"md_README_8lwsws.html#lwswsssp":[3,12],
"md_README_8lwsws.html#lwswssysd":[3,13],
"md_README_8lwsws.html#lwswssysd":[3,14],
"md_README_8lwsws.html#lwswsv":[3,4],
"md_README_8lwsws.html#lwswsvn":[3,5],
"md_README_8problems.html":[2],
@ -242,12 +249,5 @@ var NAVTREEINDEX3 =
"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#a0109baf93f23c07c824c997c3533ee44":[9,4,0,1,12],
"structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b":[9,4,0,1,17],
"structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773":[9,4,0,1,11],
"structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a":[9,4,0,1,15],
"structlws__http__mount.html#a2f6c7dbc2d714b7259c67b7744d4ff98":[9,4,0,1,2]
"structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06":[9,10,0,3,1]
};

View file

@ -1,5 +1,12 @@
var NAVTREEINDEX4 =
{
"structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463":[9,10,0,3,0],
"structlws__http__mount.html":[9,4,0,1],
"structlws__http__mount.html#a0109baf93f23c07c824c997c3533ee44":[9,4,0,1,12],
"structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b":[9,4,0,1,17],
"structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773":[9,4,0,1,11],
"structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a":[9,4,0,1,15],
"structlws__http__mount.html#a2f6c7dbc2d714b7259c67b7744d4ff98":[9,4,0,1,2],
"structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146":[9,4,0,1,4],
"structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7":[9,4,0,1,10],
"structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa":[9,4,0,1,7],
@ -56,16 +63,16 @@ var NAVTREEINDEX4 =
"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,2],
"structlws__protocol__vhost__options.html":[9,4,0,0],
"structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[9,4,2,3],
"structlws__protocol__vhost__options.html":[9,4,2],
"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#a0640a92513c70ee6b9b295a9ad1658e7":[9,4,2,3],
"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[9,4,0,0,1],
"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[9,4,2,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__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[9,4,2,2],
"structlws__protocols.html":[9,10,1],
"structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5":[9,10,1,4],
"structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624":[9,10,1,2],
@ -81,10 +88,10 @@ var NAVTREEINDEX4 =
"structlws__session__info.html#afb924864b70f40372920688a5c1c895e":[9,10,0,2,2],
"structlws__token__limits.html":[9,6,4,1],
"structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff":[9,6,4,1,0],
"structlws__tokens.html":[9,6,6],
"structlws__tokens.html":[9,6,4,0],
"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[9,6,4,0,1],
"structlws__tokens.html":[9,6,6],
"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[9,6,6,1],
"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[9,6,4,0,1],
"structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[9,6,4,0,0],
"structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[9,6,6,0],
"structlwsgw__hash.html":[9,10,0,1],

View file

@ -610,6 +610,7 @@ lws_create_context(struct lws_context_creation_info *info)
info->external_baggage_free_on_destroy;
context->time_up = time(NULL);
#ifndef LWS_NO_DAEMONIZE
if (pid_daemon) {
context->started_with_parent = pid_daemon;
@ -824,22 +825,79 @@ bail:
return NULL;
}
LWS_VISIBLE LWS_EXTERN void
lws_context_deprecate(struct lws_context *context, lws_reload_func cb)
{
struct lws_vhost *vh = context->vhost_list, *vh1;
struct lws *wsi;
/*
* "deprecation" means disable the context from accepting any new
* connections and free up listen sockets to be used by a replacement
* context.
*
* Otherwise the deprecated context remains operational, until its
* number of connected sockets falls to zero, when it is deleted.
*/
/* for each vhost, close his listen socket */
while (vh) {
wsi = vh->lserv_wsi;
if (wsi) {
wsi->socket_is_permanently_unusable = 1;
lws_close_free_wsi(wsi, LWS_CLOSE_STATUS_NOSTATUS);
wsi->context->deprecation_pending_listen_close_count++;
/*
* other vhosts can share the listen port, they
* point to the same wsi. So zap those too.
*/
vh1 = context->vhost_list;
while (vh1) {
if (vh1->lserv_wsi == wsi)
vh1->lserv_wsi = NULL;
vh1 = vh1->vhost_next;
}
}
vh = vh->vhost_next;
}
context->deprecated = 1;
context->deprecation_cb = cb;
}
LWS_VISIBLE LWS_EXTERN int
lws_context_is_deprecated(struct lws_context *context)
{
return context->deprecated;
}
LWS_VISIBLE void
lws_context_destroy2(struct lws_context *context);
LWS_VISIBLE void
lws_context_destroy(struct lws_context *context)
{
const struct lws_protocols *protocol = NULL;
struct lws_context_per_thread *pt;
struct lws_vhost *vh = NULL, *vh1;
struct lws_vhost *vh = NULL;
struct lws wsi;
int n, m;
lwsl_notice("%s\n", __func__);
if (!context)
if (!context) {
lwsl_notice("%s: ctx %p\n", __func__, context);
return;
}
if (context->being_destroyed1) {
lwsl_notice("%s: ctx %p: already being destroyed\n", __func__, context);
return;
}
lwsl_notice("%s: ctx %p\n", __func__, context);
m = context->count_threads;
context->being_destroyed = 1;
context->being_destroyed1 = 1;
memset(&wsi, 0, sizeof(wsi));
wsi.context = context;
@ -864,6 +922,7 @@ lws_context_destroy(struct lws_context *context)
}
lws_pt_mutex_destroy(pt);
}
/*
* give all extensions a chance to clean up any per-context
* allocations they might have made
@ -913,12 +972,30 @@ lws_context_destroy(struct lws_context *context)
lws_free(pt->http_header_data);
}
lws_plat_context_early_destroy(context);
lws_ssl_context_destroy(context);
if (context->pt[0].fds)
lws_free_set_NULL(context->pt[0].fds);
/* free all the vhost allocations */
if (!LWS_LIBUV_ENABLED(context))
lws_context_destroy2(context);
}
/*
* call the second one after the event loop has been shut down cleanly
*/
LWS_VISIBLE void
lws_context_destroy2(struct lws_context *context)
{
const struct lws_protocols *protocol = NULL;
struct lws_vhost *vh = NULL, *vh1;
int n;
lwsl_notice("%s: ctx %p\n", __func__, context);
/*
* free all the per-vhost allocations
*/
vh = context->vhost_list;
while (vh) {
@ -928,6 +1005,7 @@ lws_context_destroy(struct lws_context *context)
while (n < vh->count_protocols) {
if (vh->protocol_vh_privs &&
vh->protocol_vh_privs[n]) {
// lwsl_notice(" %s: freeing per-vhost protocol data %p\n", __func__, vh->protocol_vh_privs[n]);
lws_free(vh->protocol_vh_privs[n]);
vh->protocol_vh_privs[n] = NULL;
}
@ -957,10 +1035,12 @@ lws_context_destroy(struct lws_context *context)
vh = vh1;
}
lws_ssl_context_destroy(context);
lws_plat_context_late_destroy(context);
if (context->external_baggage_free_on_destroy)
free(context->external_baggage_free_on_destroy);
lws_free(context);
}

View file

@ -45,6 +45,8 @@ child_handler(int signum)
break;
case SIGUSR1: /* positive confirmation we daemonized well */
if (lock_path) {
/* Create the lock file as the current user */
fd = open(lock_path, O_TRUNC | O_RDWR | O_CREAT, 0640);
@ -52,7 +54,7 @@ child_handler(int signum)
fprintf(stderr,
"unable to create lock file %s, code=%d (%s)\n",
lock_path, errno, strerror(errno));
exit(5);
exit(0);
}
len = sprintf(sz, "%u", pid_daemon);
sent = write(fd, sz, len);
@ -62,11 +64,12 @@ child_handler(int signum)
lock_path, errno, strerror(errno));
close(fd);
}
exit(0);
//!!(sent == len));
case SIGCHLD: /* daemonization failed */
exit(6);
exit(0);
break;
}
}
@ -102,6 +105,7 @@ lws_daemonize(const char *_lock_path)
// if (getppid() == 1)
// return 1;
if (_lock_path) {
fd = open(_lock_path, O_RDONLY);
if (fd >= 0) {
n = read(fd, buf, sizeof(buf));
@ -128,6 +132,7 @@ lws_daemonize(const char *_lock_path)
return 1;
}
strcpy(lock_path, _lock_path);
}
/* Trap signals that we expect to receive */
signal(SIGCHLD, child_handler); /* died */

View file

@ -551,8 +551,8 @@ lejp_vhosts_cb(struct lejp_ctx *ctx, char reason)
a->p += n;
mp_cgienv->value = a->p;
mp_cgienv->options = NULL;
lwsl_notice(" adding pmo / cgi-env '%s' = '%s'\n", mp_cgienv->name,
mp_cgienv->value);
//lwsl_notice(" adding pmo / cgi-env '%s' = '%s'\n", mp_cgienv->name,
// mp_cgienv->value);
goto dostring;
case LEJPVP_PROTOCOL_NAME_OPT:
@ -703,10 +703,13 @@ lwsws_get_config_d(void *user, const char *d, const char * const *paths,
uv_dirent_t dent;
uv_fs_t req;
char path[256];
int ret = 0;
int ret = 0, ir;
uv_loop_t loop;
uv_loop_init(&loop);
ir = uv_loop_init(&loop);
if (ir) {
lwsl_err("%s: loop init failed %d\n", __func__, ir);
}
if (!uv_fs_scandir(&loop, &req, d, 0, NULL)) {
lwsl_err("Scandir on %s failed\n", d);

View file

@ -67,7 +67,7 @@ lws_io_cb(uv_poll_t *watcher, int status, int revents)
struct lws_io_watcher *lws_io = lws_container_of(watcher,
struct lws_io_watcher, uv_watcher);
struct lws *wsi = lws_container_of(lws_io, struct lws, w_read);
struct lws_context *context = lws_io->context;
struct lws_context *context = wsi->context;
struct lws_pollfd eventfd;
#if defined(WIN32) || defined(_WIN32)
@ -141,7 +141,7 @@ lws_uv_timeout_cb(uv_timer_t *timer
lws_service_fd_tsi(pt->context, NULL, pt->tid);
}
static const int sigs[] = { SIGINT, SIGTERM, SIGSEGV, SIGFPE };
static const int sigs[] = { SIGINT, SIGTERM, SIGSEGV, SIGFPE, SIGHUP };
int
lws_uv_initvhost(struct lws_vhost* vh, struct lws* wsi)
@ -265,6 +265,7 @@ void
lws_libuv_destroyloop(struct lws_context *context, int tsi)
{
struct lws_context_per_thread *pt = &context->pt[tsi];
// struct lws_context *ctx;
int m, budget = 100, ns;
if (!lws_check_opt(context->options, LWS_SERVER_OPTION_LIBUV))
@ -273,6 +274,8 @@ lws_libuv_destroyloop(struct lws_context *context, int tsi)
if (!pt->io_loop_uv)
return;
lwsl_notice("%s: closing signals + timers context %p\n", __func__, context);
if (context->use_ev_sigint) {
uv_signal_stop(&pt->w_sigint.uv_watcher);
@ -292,11 +295,13 @@ lws_libuv_destroyloop(struct lws_context *context, int tsi)
uv_idle_stop(&pt->uv_idle);
uv_close((uv_handle_t *)&pt->uv_idle, lws_uv_close_cb);
if (pt->ev_loop_foreign)
return;
while (budget-- && uv_run(pt->io_loop_uv, UV_RUN_NOWAIT))
;
if (pt->ev_loop_foreign)
return;
lwsl_notice("%s: closing all loop handles context %p\n", __func__, context);
uv_stop(pt->io_loop_uv);
@ -404,15 +409,24 @@ lws_libuv_run(const struct lws_context *context, int tsi)
uv_run(context->pt[tsi].io_loop_uv, 0);
}
LWS_VISIBLE void
lws_libuv_stop_without_kill(const struct lws_context *context, int tsi)
{
if (context->pt[tsi].io_loop_uv && LWS_LIBUV_ENABLED(context))
uv_stop(context->pt[tsi].io_loop_uv);
}
static void
lws_libuv_kill(const struct lws_context *context)
{
int n;
lwsl_notice("%s\n", __func__);
for (n = 0; n < context->count_threads; n++)
if (context->pt[n].io_loop_uv &&
LWS_LIBUV_ENABLED(context) &&
!context->pt[n].ev_loop_foreign)
LWS_LIBUV_ENABLED(context) )//&&
//!context->pt[n].ev_loop_foreign)
uv_stop(context->pt[n].io_loop_uv);
}
@ -472,9 +486,25 @@ lws_libuv_closewsi(uv_handle_t* handle)
struct lws *n = NULL, *wsi = (struct lws *)(((char *)handle) -
(char *)(&n->w_read.uv_watcher));
struct lws_context *context = lws_get_context(wsi);
int lspd = 0;
if (wsi->mode == LWSCM_SERVER_LISTENER &&
wsi->context->deprecated) {
lspd = 1;
context->deprecation_pending_listen_close_count--;
if (!context->deprecation_pending_listen_close_count)
lspd = 2;
}
lws_close_free_wsi_final(wsi);
if (lspd == 2 && context->deprecation_cb) {
lwsl_notice("calling deprecation callback\n");
context->deprecation_cb();
}
//lwsl_notice("%s: ctx %p: wsi left %d\n", __func__, context, context->count_wsi_allocated);
if (context->requested_kill && context->count_wsi_allocated == 0)
lws_libuv_kill(context);
}
@ -584,6 +614,7 @@ bail:
d++;
}
uv_run(&loop, UV_RUN_NOWAIT);
uv_loop_close(&loop);
return ret;

View file

@ -392,6 +392,21 @@ just_kill_connection:
lwsl_err("%s: failed to detach from parent\n",
__func__);
}
#if 0
/* manage the vhost same protocol list entry */
if (wsi->same_vh_protocol_prev) { // we are on the vh list
// make guy who pointed to us, point to what our next was pointing to
*wsi->same_vh_protocol_prev = wsi->same_vh_protocol_next;
// if we had a next guy...
if (wsi->same_vh_protocol_next)
// have him point back to our prev
wsi->same_vh_protocol_next->same_vh_protocol_prev =
wsi->same_vh_protocol_prev;
}
#endif
#if LWS_POSIX
/*
@ -583,9 +598,13 @@ lws_close_free_wsi_final(struct lws *wsi)
#ifdef LWS_WITH_CGI
if (wsi->cgi) {
for (n = 0; n < 6; n++)
for (n = 0; n < 6; n++) {
if (wsi->cgi->pipe_fds[n / 2][n & 1] == 0)
lwsl_err("ZERO FD IN CGI CLOSE");
if (wsi->cgi->pipe_fds[n / 2][n & 1] >= 0)
close(wsi->cgi->pipe_fds[n / 2][n & 1]);
}
lws_free(wsi->cgi);
}
@ -2516,6 +2535,25 @@ lws_access_log(struct lws *wsi)
}
#endif
void
lws_sum_stats(const struct lws_context *ctx, struct lws_conn_stats *cs)
{
const struct lws_vhost *vh = ctx->vhost_list;
while (vh) {
cs->rx += vh->conn_stats.rx;
cs->tx += vh->conn_stats.tx;
cs->conn += vh->conn_stats.conn;
cs->trans += vh->conn_stats.trans;
cs->ws_upg += vh->conn_stats.ws_upg;
cs->http2_upg += vh->conn_stats.http2_upg;
cs->rejected += vh->conn_stats.rejected;
vh = vh->vhost_next;
}
}
#ifdef LWS_WITH_SERVER_STATUS
LWS_EXTERN int
@ -2546,6 +2584,7 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)
" \"conn\":\"%lu\",\n"
" \"trans\":\"%lu\",\n"
" \"ws_upg\":\"%lu\",\n"
" \"rejected\":\"%lu\",\n"
" \"http2_upg\":\"%lu\""
,
vh->name, vh->listen_port,
@ -2555,8 +2594,11 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)
0,
#endif
!!(vh->options & LWS_SERVER_OPTION_STS),
vh->rx, vh->tx, vh->conn, vh->trans, vh->ws_upgrades,
vh->http2_upgrades
vh->conn_stats.rx, vh->conn_stats.tx,
vh->conn_stats.conn, vh->conn_stats.trans,
vh->conn_stats.ws_upg,
vh->conn_stats.rejected,
vh->conn_stats.http2_upg
);
if (vh->mount_list) {
@ -2618,31 +2660,30 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)
LWS_EXTERN LWS_VISIBLE int
lws_json_dump_context(const struct lws_context *context, char *buf, int len)
lws_json_dump_context(const struct lws_context *context, char *buf, int len,
int hide_vhosts)
{
char *orig = buf, *end = buf + len - 1, first = 1;
const struct lws_vhost *vh = context->vhost_list;
const struct lws_context_per_thread *pt;
time_t t = time(NULL);
int n, cc = 0, listening = 0, cgi_count = 0;
struct lws_conn_stats cs;
double d = 0;
#ifdef LWS_WITH_CGI
struct lws_cgi * const *pcgi;
#endif
const struct lws_context_per_thread *pt;
time_t t = time(NULL);
int listening = 0, cgi_count = 0, n;
#ifdef LWS_USE_LIBUV
uv_uptime(&d);
#endif
buf += lws_snprintf(buf, end - buf, "{ "
"\"version\":\"%s\",\n"
"\"uptime\":\"%ld\",\n"
"\"cgi_spawned\":\"%d\",\n"
"\"pt_fd_max\":\"%d\",\n"
"\"ah_pool_max\":\"%d\",\n"
"\"wsi_alive\":\"%d\",\n",
"\"uptime\":\"%ld\",\n",
lws_get_library_version(),
(unsigned long)(t - context->time_up),
context->count_cgi_spawned,
context->fd_limit_per_thread,
context->max_http_header_pool,
context->count_wsi_allocated);
(long)d);
#ifdef LWS_HAVE_GETLOADAVG
{
double d[3];
@ -2657,6 +2698,25 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len)
}
#endif
buf += lws_snprintf(buf, end - buf, "\"contexts\":[\n");
if (cc++)
buf += lws_snprintf(buf, end - buf, ",");
buf += lws_snprintf(buf, end - buf, "{ "
"\"context_uptime\":\"%ld\",\n"
"\"cgi_spawned\":\"%d\",\n"
"\"pt_fd_max\":\"%d\",\n"
"\"ah_pool_max\":\"%d\",\n"
"\"deprecated\":\"%d\",\n"
"\"wsi_alive\":\"%d\",\n",
(unsigned long)(t - context->time_up),
context->count_cgi_spawned,
context->fd_limit_per_thread,
context->max_http_header_pool,
context->deprecated,
context->count_wsi_allocated);
buf += lws_snprintf(buf, end - buf, "\"pt\":[\n ");
for (n = 0; n < context->count_threads; n++) {
pt = &context->pt[n];
@ -2673,21 +2733,41 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len)
pt->ah_wait_list_length);
}
buf += lws_snprintf(buf, end - buf, "], \"vhosts\":[\n ");
buf += lws_snprintf(buf, end - buf, "]");
buf += lws_snprintf(buf, end - buf, ", \"vhosts\":[\n ");
first = 1;
vh = context->vhost_list;
listening = 0;
cs = context->conn_stats;
lws_sum_stats(context, &cs);
while (vh) {
if (!hide_vhosts) {
if (!first)
if(buf != end)
*buf++ = ',';
buf += lws_json_dump_vhost(vh, buf, end - buf);
first = 0;
}
if (vh->lserv_wsi)
listening++;
vh = vh->vhost_next;
}
buf += lws_snprintf(buf, end - buf, "],\n\"listen_wsi\":\"%d\"",
listening);
buf += lws_snprintf(buf, end - buf,
"],\n\"listen_wsi\":\"%d\",\n"
" \"rx\":\"%llu\",\n"
" \"tx\":\"%llu\",\n"
" \"conn\":\"%lu\",\n"
" \"trans\":\"%lu\",\n"
" \"ws_upg\":\"%lu\",\n"
" \"rejected\":\"%lu\",\n"
" \"http2_upg\":\"%lu\"",
listening,
cs.rx, cs.tx, cs.conn, cs.trans,
cs.ws_upg, cs.rejected, cs.http2_upg);
#ifdef LWS_WITH_CGI
for (n = 0; n < context->count_threads; n++) {
@ -2704,7 +2784,10 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len)
buf += lws_snprintf(buf, end - buf, ",\n \"cgi_alive\":\"%d\"\n ",
cgi_count);
buf += lws_snprintf(buf, end - buf, "}\n ");
buf += lws_snprintf(buf, end - buf, "}");
buf += lws_snprintf(buf, end - buf, "]}\n ");
return buf - orig;
}

View file

@ -1782,6 +1782,41 @@ lws_create_context(struct lws_context_creation_info *info);
LWS_VISIBLE LWS_EXTERN void
lws_context_destroy(struct lws_context *context);
LWS_VISIBLE LWS_EXTERN void
lws_context_destroy2(struct lws_context *context);
typedef int (*lws_reload_func)(void);
/**
* lws_context_deprecate() - Deprecate the websocket context
* \param context: Websocket context
*
* This function is used on an existing context before superceding it
* with a new context.
*
* It closes any listen sockets in the context, so new connections are
* not possible.
*
* And it marks the context to be deleted when the number of active
* connections into it falls to zero.
*
* Otherwise if you attach the deprecated context to the replacement
* context when it has been created using lws_context_attach_deprecated()
* both any deprecated and the new context will service their connections.
*
* This is aimed at allowing seamless configuration reloads.
*
* The callback cb will be called after the listen sockets are actually
* closed and may be reopened. In the callback the new context should be
* configured and created. (With libuv, socket close happens async after
* more loop events).
*/
LWS_VISIBLE LWS_EXTERN void
lws_context_deprecate(struct lws_context *context, lws_reload_func cb);
LWS_VISIBLE LWS_EXTERN int
lws_context_is_deprecated(struct lws_context *context);
/**
* lws_set_proxy() - Setups proxy to lws_context.
* \param vhost: pointer to struct lws_vhost you want set proxy for
@ -1886,7 +1921,8 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len);
* \param len: max length of buf
*/
LWS_VISIBLE LWS_EXTERN int
lws_json_dump_context(const struct lws_context *context, char *buf, int len);
lws_json_dump_context(const struct lws_context *context, char *buf, int len,
int hide_vhosts);
/**
* lws_context_user() - get the user data associated with the context
@ -3102,6 +3138,9 @@ lws_libuv_run(const struct lws_context *context, int tsi);
LWS_VISIBLE LWS_EXTERN void
lws_libuv_stop(struct lws_context *context);
LWS_VISIBLE LWS_EXTERN void
lws_libuv_stop_without_kill(const struct lws_context *context, int tsi);
LWS_VISIBLE LWS_EXTERN int
lws_uv_initloop(struct lws_context *context, uv_loop_t *loop, int tsi);

View file

@ -479,10 +479,15 @@ lws_plat_context_late_destroy(struct lws_context *context)
lws_free(context->lws_lookup);
while (m--) {
if (pt->dummy_pipe_fds[0])
close(pt->dummy_pipe_fds[0]);
if (pt->dummy_pipe_fds[1])
close(pt->dummy_pipe_fds[1]);
pt++;
}
if (!context->fd_random)
lwsl_err("ZERO RANDOM FD\n");
if (context->fd_random != LWS_INVALID_FILE)
close(context->fd_random);
}

View file

@ -635,3 +635,17 @@ lws_plat_init(struct lws_context *context,
return 0;
}
int kill(int pid, int sig)
{
lwsl_err("Sorry Windows doesn't support kill().");
exit(0);
}
int fork(void)
{
lwsl_err("Sorry Windows doesn't support fork().");
exit(0);
}

View file

@ -107,15 +107,35 @@ bail:
return ret;
}
#ifndef LWS_NO_SERVER
static void
lws_accept_modulation(struct lws_context_per_thread *pt, int allow)
{
// multithread listen seems broken
#if 0
struct lws_vhost *vh = context->vhost_list;
struct lws_pollargs pa1;
while (vh) {
if (allow)
_lws_change_pollfd(pt->wsi_listening,
0, LWS_POLLIN, &pa1);
else
_lws_change_pollfd(pt->wsi_listening,
LWS_POLLIN, 0, &pa1);
vh = vh->vhost_next;
}
#endif
}
#endif
int
insert_wsi_socket_into_fds(struct lws_context *context, struct lws *wsi)
{
struct lws_pollargs pa = { wsi->sock, LWS_POLLIN, 0 };
struct lws_context_per_thread *pt = &context->pt[(int)wsi->tsi];
int ret = 0;
#ifndef LWS_NO_SERVER
struct lws_pollargs pa1;
#endif
lwsl_debug("%s: %p: tsi=%d, sock=%d, pos-in-fds=%d\n",
__func__, wsi, wsi->tsi, wsi->sock, pt->fds_count);
@ -169,7 +189,7 @@ insert_wsi_socket_into_fds(struct lws_context *context, struct lws *wsi)
#ifndef LWS_NO_SERVER
/* if no more room, defeat accepts on this thread */
if ((unsigned int)pt->fds_count == context->fd_limit_per_thread - 1)
_lws_change_pollfd(pt->wsi_listening, LWS_POLLIN, 0, &pa1);
lws_accept_modulation(pt, 0);
#endif
lws_pt_unlock(pt);
@ -186,9 +206,6 @@ remove_wsi_socket_from_fds(struct lws *wsi)
struct lws_context *context = wsi->context;
struct lws_pollargs pa = { wsi->sock, 0, 0 };
#if !defined(LWS_WITH_ESP8266)
#ifndef LWS_NO_SERVER
struct lws_pollargs pa1;
#endif
struct lws_context_per_thread *pt = &context->pt[(int)wsi->tsi];
struct lws *end_wsi;
int v;
@ -230,6 +247,9 @@ remove_wsi_socket_from_fds(struct lws *wsi)
} //else
//lwsl_err("null wsi->next\n");
wsi->same_vh_protocol_prev = NULL;
wsi->same_vh_protocol_next = NULL;
/* the guy who is to be deleted's slot index in pt->fds */
m = wsi->position_in_fds_table;
@ -272,7 +292,7 @@ remove_wsi_socket_from_fds(struct lws *wsi)
if (!context->being_destroyed)
/* if this made some room, accept connects on this thread */
if ((unsigned int)pt->fds_count < context->fd_limit_per_thread - 1)
_lws_change_pollfd(pt->wsi_listening, 0, LWS_POLLIN, &pa1);
lws_accept_modulation(pt, 1);
#endif
lws_pt_unlock(pt);

View file

@ -144,6 +144,13 @@ char *ets_strchr(const char *s, int c);
#define lws_snprintf _snprintf
#endif
/* we don't have an implementation for this on windows... */
int kill(int pid, int sig);
int fork(void);
#ifndef SIGINT
#define SIGINT 2
#endif
#else /* not windows --> */
#include <fcntl.h>
@ -696,9 +703,6 @@ struct lws_context_per_thread {
#ifdef LWS_OPENSSL_SUPPORT
struct lws *pending_read_list; /* linked list */
#endif
#ifndef LWS_NO_SERVER
struct lws *wsi_listening;
#endif
#if defined(LWS_USE_LIBEV)
struct ev_loop *io_loop_ev;
#endif
@ -735,6 +739,14 @@ struct lws_context_per_thread {
unsigned char lock_depth;
};
struct lws_conn_stats {
unsigned long long rx, tx;
unsigned long conn, trans, ws_upg, http2_upg, rejected;
};
void
lws_sum_stats(const struct lws_context *ctx, struct lws_conn_stats *cs);
/*
* virtual host -related context information
* vhostwide SSL context
@ -762,6 +774,7 @@ struct lws_vhost {
/* listen sockets need a place to hang their hat */
esp_tcp tcp;
#endif
struct lws_conn_stats conn_stats;
struct lws_context *context;
struct lws_vhost *vhost_next;
const struct lws_http_mount *mount_list;
@ -780,8 +793,6 @@ struct lws_vhost {
#ifndef LWS_NO_EXTENSIONS
const struct lws_extension *extensions;
#endif
unsigned long long rx, tx;
unsigned long conn, trans, ws_upgrades, http2_upgrades;
int listen_port;
unsigned int http_proxy_port;
@ -819,6 +830,7 @@ struct lws_context {
time_t time_up;
struct lws_plat_file_ops fops;
struct lws_context_per_thread pt[LWS_MAX_SMP];
struct lws_conn_stats conn_stats;
#ifdef _WIN32
/* different implementation between unix and windows */
struct lws_fd_hashtable fd_hashtable[FD_HASHTABLE_MODULUS];
@ -834,11 +846,13 @@ struct lws_context {
#endif
struct lws_vhost *vhost_list;
struct lws_plugin *plugin_list;
void *external_baggage_free_on_destroy;
const struct lws_token_limits *token_limits;
void *user_space;
const char *server_string;
const struct lws_protocol_vhost_options *reject_service_keywords;
lws_reload_func deprecation_cb;
#if defined(LWS_USE_LIBEV)
lws_ev_signal_cb_t * lws_ev_sigint_cb;
@ -879,6 +893,12 @@ struct lws_context {
unsigned int pt_serv_buf_size;
int max_http_header_data;
unsigned int deprecated:1;
unsigned int being_destroyed:1;
unsigned int being_destroyed1:1;
unsigned int requested_kill:1;
unsigned int protocol_init_done:1;
/*
* set to the Thread ID that's doing the service loop just before entry
* to poll indicates service thread likely idling in poll()
@ -894,10 +914,7 @@ struct lws_context {
short plugin_extension_count;
short server_string_len;
unsigned short ws_ping_pong_interval;
unsigned int being_destroyed:1;
unsigned int requested_kill:1;
unsigned int protocol_init_done:1;
unsigned short deprecation_pending_listen_close_count;
};
#define lws_get_context_protocol(ctx, x) ctx->vhost_list->protocols[x]
@ -1445,6 +1462,7 @@ struct lws {
unsigned int sending_chunked:1;
unsigned int already_did_cce:1;
unsigned int told_user_closed:1;
unsigned int :1;
#if defined(LWS_WITH_ESP8266)
unsigned int pending_send_completion:3;
unsigned int close_is_pending_send_completion:1;
@ -1907,12 +1925,9 @@ lws_server_socket_service(struct lws_context *context, struct lws *wsi,
struct lws_pollfd *pollfd);
LWS_EXTERN int
lws_handshake_server(struct lws *wsi, unsigned char **buf, size_t len);
LWS_EXTERN int
_lws_server_listen_accept_flow_control(struct lws *twsi, int on);
#else
#define lws_server_socket_service(_a, _b, _c) (0)
#define lws_handshake_server(_a, _b, _c) (0)
#define _lws_server_listen_accept_flow_control(a, b) (0)
#endif
#ifdef LWS_WITH_ACCESS_LOG

View file

@ -152,8 +152,6 @@ lws_context_init_server(struct lws_context_creation_info *info,
wsi->vhost = vhost;
wsi->listener = 1;
vhost->context->pt[m].wsi_listening = wsi;
#ifdef LWS_USE_LIBUV
if (LWS_LIBUV_ENABLED(vhost->context))
lws_uv_initvhost(vhost, wsi);
@ -192,27 +190,6 @@ bail:
return 1;
}
int
_lws_server_listen_accept_flow_control(struct lws *twsi, int on)
{
struct lws_context_per_thread *pt = &twsi->context->pt[(int)twsi->tsi];
struct lws *wsi = pt->wsi_listening;
int n;
if (!wsi || twsi->context->being_destroyed)
return 0;
lwsl_debug("%s: Thr %d: LISTEN wsi %p: state %d\n",
__func__, twsi->tsi, (void *)wsi, on);
if (on)
n = lws_change_pollfd(wsi, 0, LWS_POLLIN);
else
n = lws_change_pollfd(wsi, LWS_POLLIN, 0);
return n;
}
#if defined(LWS_WITH_ESP8266)
#undef strchr
#define strchr ets_strchr
@ -1208,6 +1185,8 @@ lws_handshake_server(struct lws *wsi, unsigned char **buf, size_t len)
msg++;
lws_return_http_status(wsi, atoi(rej->value), msg);
wsi->vhost->conn_stats.rejected++;
goto bail_nuke_ah;
}
rej = rej->next;
@ -1227,9 +1206,9 @@ lws_handshake_server(struct lws *wsi, unsigned char **buf, size_t len)
} else
lwsl_info("no host\n");
wsi->vhost->trans++;
wsi->vhost->conn_stats.trans++;
if (!wsi->conn_stat_done) {
wsi->vhost->conn++;
wsi->vhost->conn_stats.conn++;
wsi->conn_stat_done = 1;
}
@ -1241,14 +1220,14 @@ lws_handshake_server(struct lws *wsi, unsigned char **buf, size_t len)
if (lws_hdr_total_length(wsi, WSI_TOKEN_UPGRADE)) {
if (!strcasecmp(lws_hdr_simple_ptr(wsi, WSI_TOKEN_UPGRADE),
"websocket")) {
wsi->vhost->ws_upgrades++;
wsi->vhost->conn_stats.ws_upg++;
lwsl_info("Upgrade to ws\n");
goto upgrade_ws;
}
#ifdef LWS_USE_HTTP2
if (!strcasecmp(lws_hdr_simple_ptr(wsi, WSI_TOKEN_UPGRADE),
"h2c")) {
wsi->vhost->http2_upgrades++;
wsi->vhost->conn_stats.http2_upg++;
lwsl_info("Upgrade to h2c\n");
goto upgrade_h2c;
}
@ -1591,7 +1570,8 @@ lws_create_new_server_wsi(struct lws_vhost *vhost)
}
new_wsi->tsi = n;
lwsl_info("Accepted %p to tsi %d\n", new_wsi, new_wsi->tsi);
lwsl_notice("Accepted wsi %p to context %p, tsi %d\n", new_wsi,
vhost->context, new_wsi->tsi);
new_wsi->vhost = vhost;
new_wsi->context = vhost->context;

View file

@ -695,6 +695,14 @@ lws_service_fd_tsi(struct lws_context *context, struct lws_pollfd *pollfd, int t
lws_plat_service_periodic(context);
/* retire unused deprecated context */
if (context->deprecated && !context->count_wsi_allocated) {
lwsl_notice("%s: ending deprecated context\n", __func__);
kill(getpid(), SIGINT);
return 0;
}
/* global timeout check once per second */
if (pollfd)

View file

@ -211,6 +211,7 @@ lws_email_init(struct lws_email *email, uv_loop_t *loop, int max_content)
email->content = lws_malloc(max_content);
if (!email->content)
return 1;
email->max_content_size = max_content;
uv_timer_init(loop, &email->timeout_email);
@ -235,5 +236,6 @@ lws_email_destroy(struct lws_email *email)
lws_free_set_NULL(email->content);
uv_timer_stop(&email->timeout_email);
uv_close((uv_handle_t *)&email->timeout_email, NULL);
}

View file

@ -35,6 +35,9 @@ static int urandom_bytes(void *ctx, unsigned char *dest, size_t len)
int cur;
int fd = open("/dev/urandom", O_RDONLY);
if (fd < 0)
return -1;
while (len) {
cur = read(fd, dest, len);
if (cur < 0)
@ -290,7 +293,7 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)
}
if (wsi->vhost)
wsi->vhost->rx += n;
wsi->vhost->conn_stats.rx += n;
lws_restart_ws_ping_pong_timer(wsi);

View file

@ -32,14 +32,28 @@
#include <syslog.h>
#include <sys/time.h>
#include <unistd.h>
#include <sys/wait.h>
#else
#include <io.h>
#include "gettimeofday.h"
int fork(void)
{
fprintf(stderr, "Sorry Windows doesn't support fork().");
exit(0);
}
#endif
#include "../lib/libwebsockets.h"
#include <uv.h>
static struct lws_context *context;
static char config_dir[128];
static int opts = 0, do_reload = 1;
static uv_loop_t loop;
static uv_signal_t signal_outer;
static int pids[32];
#define LWSWS_CONFIG_STRING_SIZE (32 * 1024)
@ -61,97 +75,38 @@ static struct option options[] = {
{ "help", no_argument, NULL, 'h' },
{ "debug", required_argument, NULL, 'd' },
{ "configdir", required_argument, NULL, 'c' },
#ifndef LWS_NO_DAEMONIZE
{ "daemonize", no_argument, NULL, 'D' },
#endif
{ NULL, 0, 0, 0 }
};
void signal_cb(uv_signal_t *watcher, int signum)
{
lwsl_err("Signal %d caught, exiting...\n", watcher->signum);
switch (watcher->signum) {
case SIGTERM:
case SIGINT:
break;
case SIGHUP:
if (lws_context_is_deprecated(context))
return;
lwsl_notice("Dropping listen sockets\n");
lws_context_deprecate(context, NULL);
return;
default:
signal(SIGABRT, SIG_DFL);
abort();
break;
}
lwsl_err("Signal %d caught\n", watcher->signum);
lws_libuv_stop(context);
}
int main(int argc, char **argv)
static int
context_creation(void)
{
int cs_len = LWSWS_CONFIG_STRING_SIZE - 1;
struct lws_context_creation_info info;
char *cs;
int opts = 0, cs_len = LWSWS_CONFIG_STRING_SIZE - 1;
int n = 0;
#ifndef _WIN32
int syslog_options = LOG_PID | LOG_PERROR;
#endif
#ifndef LWS_NO_DAEMONIZE
int daemonize = 0;
#endif
int debug_level = 7;
char config_dir[128];
char *config_strings;
memset(&info, 0, sizeof info);
strcpy(config_dir, "/etc/lwsws");
while (n >= 0) {
n = getopt_long(argc, argv, "hd:c:D", options, NULL);
if (n < 0)
continue;
switch (n) {
#ifndef LWS_NO_DAEMONIZE
case 'D':
daemonize = 1;
#ifndef _WIN32
syslog_options &= ~LOG_PERROR;
#endif
printf("Daemonizing...\n");
break;
#endif
case 'd':
debug_level = atoi(optarg);
break;
case 'c':
strncpy(config_dir, optarg, sizeof(config_dir) - 1);
config_dir[sizeof(config_dir) - 1] = '\0';
break;
case 'h':
fprintf(stderr, "Usage: lwsws [-c <config dir>] "
"[-d <log bitfield>] [-D] [--help]\n");
exit(1);
}
}
#if !defined(LWS_NO_DAEMONIZE) && !defined(WIN32)
/*
* normally lock path would be /var/lock/lwsts or similar, to
* simplify getting started without having to take care about
* permissions or running as root, set to /tmp/.lwsts-lock
*/
if (daemonize && lws_daemonize("/tmp/.lwsts-lock")) {
fprintf(stderr, "Failed to daemonize\n");
return 10;
}
if (daemonize)
lwsl_notice("Daemonized\n");
#endif
#ifndef _WIN32
/* we will only try to log things according to our debug_level */
setlogmask(LOG_UPTO (LOG_DEBUG));
openlog("lwsws", syslog_options, LOG_DAEMON);
#endif
lws_set_log_level(debug_level, lwsl_emit_syslog);
lwsl_notice("lwsws libwebsockets web server - license CC0 + LGPL2.1\n");
lwsl_notice("(C) Copyright 2010-2016 Andy Green <andy@warmcat.com>\n");
char *cs, *config_strings;
cs = config_strings = malloc(LWSWS_CONFIG_STRING_SIZE);
if (!config_strings) {
@ -182,6 +137,9 @@ int main(int argc, char **argv)
goto init_failed;
}
lws_uv_sigint_cfg(context, 1, signal_cb);
lws_uv_initloop(context, &loop, 0);
/*
* then create the vhosts... protocols are entirely coming from
* plugins, so we leave it NULL
@ -189,24 +147,9 @@ int main(int argc, char **argv)
info.extensions = exts;
if (!lwsws_get_config_vhosts(context, &info, config_dir,
&cs, &cs_len)) {
/* run the server */
lws_uv_sigint_cfg(context, 1, signal_cb);
lws_uv_initloop(context, NULL, 0);
lws_libuv_run(context, 0);
}
lws_context_destroy(context);
fprintf(stderr, "lwsws exited cleanly\n");
#ifndef _WIN32
closelog();
#endif
if (lwsws_get_config_vhosts(context, &info, config_dir,
&cs, &cs_len))
return 1;
return 0;
@ -215,3 +158,162 @@ init_failed:
return 1;
}
/*
* root-level sighup handler
*/
static void
reload_handler(int signum)
{
#ifndef _WIN32
int m;
switch (signum) {
case SIGHUP: /* reload */
fprintf(stderr, "root process receives reload\n");
if (!do_reload) {
fprintf(stderr, "passing HUP to child processes\n");
for (m = 0; m < ARRAY_SIZE(pids); m++)
if (pids[m])
kill(pids[m], SIGHUP);
sleep(1);
}
do_reload = 1;
break;
case SIGINT:
case SIGTERM:
case SIGKILL:
fprintf(stderr, "killing service processes\n");
for (m = 0; m < ARRAY_SIZE(pids); m++)
if (pids[m])
kill(pids[m], SIGTERM);
exit(0);
}
#else
// kill() implementation needed for WIN32
#endif
}
int main(int argc, char **argv)
{
int n = 0, m, debug_level = 7;
#ifndef _WIN32
int status, syslog_options = LOG_PID | LOG_PERROR;
#endif
strcpy(config_dir, "/etc/lwsws");
while (n >= 0) {
n = getopt_long(argc, argv, "hd:c:", options, NULL);
if (n < 0)
continue;
switch (n) {
case 'd':
debug_level = atoi(optarg);
break;
case 'c':
strncpy(config_dir, optarg, sizeof(config_dir) - 1);
config_dir[sizeof(config_dir) - 1] = '\0';
break;
case 'h':
fprintf(stderr, "Usage: lwsws [-c <config dir>] "
"[-d <log bitfield>] [-D] [--help]\n");
exit(1);
}
}
/*
* We leave our original process up permanently, because that
* suits systemd.
*
* Otherwise we get into problems when reload spawns new processes and
* the original one dies randomly.
*/
signal(SIGHUP, reload_handler);
signal(SIGINT, reload_handler);
fprintf(stderr, "Root process is %u\n", getpid());
while (1) {
if (do_reload) {
do_reload = 0;
n = fork();
if (n == 0) /* new */
break;
/* old */
if (n > 0)
for (m = 0; m < ARRAY_SIZE(pids); m++)
if (!pids[m]) {
// fprintf(stderr, "added child pid %d\n", n);
pids[m] = n;
break;
}
}
#ifndef _WIN32
sleep(2);
n = waitpid(-1, &status, WNOHANG);
if (n > 0)
for (m = 0; m < ARRAY_SIZE(pids); m++)
if (pids[m] == n) {
// fprintf(stderr, "reaped child pid %d\n", pids[m]);
pids[m] = 0;
break;
}
#else
// !!! implemenation needed
#endif
}
/* child process */
#ifndef _WIN32
/* we will only try to log things according to our debug_level */
setlogmask(LOG_UPTO (LOG_DEBUG));
openlog("lwsws", syslog_options, LOG_DAEMON);
#endif
lws_set_log_level(debug_level, lwsl_emit_syslog);
lwsl_notice("lwsws libwebsockets web server - license CC0 + LGPL2.1\n");
lwsl_notice("(C) Copyright 2010-2016 Andy Green <andy@warmcat.com>\n");
#if (UV_VERSION_MAJOR > 0) // Travis...
uv_loop_init(&loop);
#else
fprintf(stderr, "Your libuv is too old!\n");
return 0;
#endif
uv_signal_init(&loop, &signal_outer);
uv_signal_start(&signal_outer, signal_cb, SIGINT);
uv_signal_start(&signal_outer, signal_cb, SIGHUP);
if (context_creation()) {
lwsl_err("Context creation failed\n");
return 1;
}
lws_libuv_run(context, 0);
uv_signal_stop(&signal_outer);
lws_context_destroy(context);
#if (UV_VERSION_MAJOR > 0) // Travis...
n = 0;
while (n++ < 1024 && uv_loop_close(&loop))
uv_run(&loop, UV_RUN_NOWAIT);
#endif
lws_context_destroy2(context);
fprintf(stderr, "lwsws exited cleanly\n");
#ifndef _WIN32
closelog();
#endif
return 0;
}

View file

@ -4,6 +4,8 @@ After=syslog.target
[Service]
ExecStart=/usr/local/bin/lwsws
ExecReload=/usr/bin/kill -HUP $MAINPID
ExecStop=/usr/bin/killall lwsws
StandardError=null
[Install]

View file

@ -10,4 +10,7 @@ Libwebsockets covers a lot of interesting features for people making embedded se
- account management (including registration, email verification, lost pw etc)
- strong ssl PFS support (A+ on SSLlabs test)
You can browse by api category <a href="modules.html">here</a>.
You can browse by api category <a href="modules.html">here</a>
A collection of READMEs for build, coding, lwsws etc are <a href="pages.html">here</a>

View file

@ -63,6 +63,7 @@ struct lwsgs_user {
struct per_vhost_data__gs {
struct lws_email email;
struct lwsgs_user u;
struct lws_context *context;
char session_db[256];
char admin_user[32];
@ -78,7 +79,7 @@ struct per_vhost_data__gs {
int timeout_anon_absolute_secs;
int timeout_email_secs;
time_t last_session_expire;
struct lwsgs_user u;
char email_inited;
};
struct per_session_data__gs {

View file

@ -403,14 +403,20 @@ callback_generic_sessions(struct lws *wsi, enum lws_callback_reasons reason,
lws_email_init(&vhd->email, lws_uv_getloop(vhd->context, 0),
LWSGS_EMAIL_CONTENT_SIZE);
vhd->email_inited = 1;
break;
case LWS_CALLBACK_PROTOCOL_DESTROY:
// lwsl_notice("gs: LWS_CALLBACK_PROTOCOL_DESTROY: v=%p, ctx=%p\n", vhd, vhd->context);
if (vhd->pdb) {
sqlite3_close(vhd->pdb);
vhd->pdb = NULL;
}
if (vhd->email_inited) {
lws_email_destroy(&vhd->email);
vhd->email_inited = 0;
}
break;
case LWS_CALLBACK_HTTP:

View file

@ -88,7 +88,9 @@ callback_dumb_increment(struct lws *wsi, enum lws_callback_reasons reason,
case LWS_CALLBACK_PROTOCOL_DESTROY:
if (!vhd)
break;
// lwsl_notice("di: LWS_CALLBACK_PROTOCOL_DESTROY: v=%p, ctx=%p\n", vhd, vhd->context);
uv_timer_stop(&vhd->timeout_watcher);
uv_close((uv_handle_t *)&vhd->timeout_watcher, NULL);
break;
case LWS_CALLBACK_ESTABLISHED:

View file

@ -29,6 +29,11 @@ struct lws_ss_load_sample {
int load_x100;
};
struct lws_ss_filepath {
struct lws_ss_filepath *next;
char filepath[128];
};
struct lws_ss_dumps {
char buf[32768];
int length;
@ -38,16 +43,20 @@ struct lws_ss_dumps {
int load_tail;
};
static struct lws_ss_dumps d;
static uv_timer_t timeout_watcher;
static struct lws_context *context;
static int tow_flag;
struct per_session_data__server_status {
int ver;
int pos;
};
struct per_vhost_data__lws_server_status {
uv_timer_t timeout_watcher;
struct lws_context *context;
int hide_vhosts;
int tow_flag;
struct lws_ss_dumps d;
struct lws_ss_filepath *fp;
};
static const struct lws_protocols protocols[1];
static void
@ -57,30 +66,58 @@ uv_timeout_cb_server_status(uv_timer_t *w
#endif
)
{
char *p = d.buf + LWS_PRE;
struct per_vhost_data__lws_server_status *v = lws_container_of(w,
struct per_vhost_data__lws_server_status,
timeout_watcher);
struct lws_ss_filepath *fp;
char *p = v->d.buf + LWS_PRE, contents[256], pure[256];
int n, l, first = 1, fd;
#if 0
#ifdef LWS_HAVE_GETLOADAVG
double l = 0.0;
l = sizeof(v->d.buf) - LWS_PRE;
getloadavg(&l, 1);
d.load[d.load_head].load_x100 = (int)(l * 100);
d.load[d.load_head].t = lws_now_secs();
d.load_head++;
if (d.load_head == ARRAY_SIZE(d.load))
d.load_head = 0;
if (d.load_head == d.load_tail) {
d.load_tail++;
if (d.load_tail == ARRAY_SIZE(d.load))
d.load_tail = 0;
n = lws_snprintf(p, l, "{\"i\":");
p += n;
l -= n;
n = lws_json_dump_context(v->context, p, l, v->hide_vhosts);
p += n;
l -= n;
n = lws_snprintf(p, l, ", \"files\": [");
p += n;
l -= n;
fp = v->fp;
while (fp) {
if (!first) {
n = lws_snprintf(p, l, ",");
p += n;
l -= n;
}
#endif
#endif
fd = open(fp->filepath, LWS_O_RDONLY);
if (fd != LWS_INVALID_FILE) {
n = read(fd, contents, sizeof(contents) - 1);
if (n >= 0) {
contents[n] = '\0';
lws_json_purify(pure, contents, sizeof(pure));
d.length = lws_json_dump_context(context, p,
sizeof(d.buf) - LWS_PRE);
n = lws_snprintf(p, l, "{\"path\":\"%s\",\"val\":\"%s\"}",
fp->filepath, pure);
p += n;
l -= n;
first = 0;
}
close(fd);
}
fp = fp->next;
}
n = lws_snprintf(p, l, "]}");
p += n;
l -= n;
lws_callback_on_writable_all_protocol(context, &protocols[0]);
v->d.length = p - (v->d.buf + LWS_PRE);
lws_callback_on_writable_all_protocol(v->context, &protocols[0]);
}
static int
@ -89,6 +126,11 @@ callback_lws_server_status(struct lws *wsi, enum lws_callback_reasons reason,
{
const struct lws_protocol_vhost_options *pvo =
(const struct lws_protocol_vhost_options *)in;
struct per_vhost_data__lws_server_status *v =
(struct per_vhost_data__lws_server_status *)
lws_protocol_vh_priv_get(lws_get_vhost(wsi),
lws_get_protocol(wsi));
struct lws_ss_filepath *fp, *fp1, **fp_old;
int m, period = 1000;
switch (reason) {
@ -99,30 +141,55 @@ callback_lws_server_status(struct lws *wsi, enum lws_callback_reasons reason,
break;
case LWS_CALLBACK_PROTOCOL_INIT: /* per vhost */
if (tow_flag)
if (v)
break;
lws_protocol_vh_priv_zalloc(lws_get_vhost(wsi),
lws_get_protocol(wsi),
sizeof(struct per_vhost_data__lws_server_status));
v = (struct per_vhost_data__lws_server_status *)
lws_protocol_vh_priv_get(lws_get_vhost(wsi),
lws_get_protocol(wsi));
fp_old = &v->fp;
while (pvo) {
if (!strcmp(pvo->name, "hide-vhosts"))
v->hide_vhosts = atoi(pvo->value);
if (!strcmp(pvo->name, "update-ms"))
period = atoi(pvo->value);
if (!strcmp(pvo->name, "filepath")) {
fp = malloc(sizeof(*fp));
fp->next = NULL;
lws_snprintf(&fp->filepath[0], sizeof(fp->filepath), "%s", pvo->value);
*fp_old = fp;
fp_old = &fp->next;
}
pvo = pvo->next;
}
context = lws_get_context(wsi);
uv_timer_init(lws_uv_getloop(context, 0), &timeout_watcher);
uv_timer_start(&timeout_watcher,
v->context = lws_get_context(wsi);
uv_timer_init(lws_uv_getloop(v->context, 0), &v->timeout_watcher);
uv_timer_start(&v->timeout_watcher,
uv_timeout_cb_server_status, 2000, period);
tow_flag = 1;
break;
case LWS_CALLBACK_PROTOCOL_DESTROY: /* per vhost */
if (!tow_flag)
// lwsl_notice("ss: LWS_CALLBACK_PROTOCOL_DESTROY: v=%p, ctx=%p\n", v, v->context);
if (!v)
break;
uv_timer_stop(&timeout_watcher);
tow_flag = 0;
uv_timer_stop(&v->timeout_watcher);
uv_close((uv_handle_t *)&v->timeout_watcher, NULL);
fp = v->fp;
while (fp) {
fp1= fp->next;
free(fp);
fp = fp1;
}
break;
case LWS_CALLBACK_SERVER_WRITEABLE:
m = lws_write(wsi, (unsigned char *)d.buf + LWS_PRE, d.length,
LWS_WRITE_TEXT);
m = lws_write(wsi, (unsigned char *)v->d.buf + LWS_PRE,
v->d.length, LWS_WRITE_TEXT);
if (m < 0)
return -1;
break;

View file

@ -48,6 +48,13 @@
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px; }
td.dl { vertical-align:middle;
text-align:center;
background:#c0c0c0;
padding:3px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px; }
td.c { vertical-align:middle;
text-align:center;
background:#c0c0a0;
@ -55,6 +62,27 @@
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px; }
td.c0 { vertical-align:middle;
text-align:center;
background:#b0b090;
padding:3px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px; }
td.dc0 { vertical-align:middle;
text-align:center;
background:#a0a0a0;
padding:3px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px; }
td.c1 { vertical-align:middle;
text-align:center;
background:#c0c0c0;
padding:3px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px; }
td.t { vertical-align:middle;
text-align:center;
background:#e0e0c0;
@ -113,6 +141,7 @@
<tr><td><img src="./lwsws-logo.png"></td><td><span id=title class=title>Server status</span></td></tr>
<tr><td align=center colspan=2>
<div id="conninfo">...</div>
<div id="json"></div>
</td></tr>
@ -200,89 +229,133 @@ function get_appropriate_ws_url()
}
socket_status.onmessage =function got_packet(msg) {
var u;
//document.getElementById("conninfo").innerHTML = "<pre>"+msg.data+"</pre>";
var u, ci, n;
//document.getElementById("json").innerHTML = "<pre>"+msg.data+"</pre>";
jso = JSON.parse(msg.data);
u = parseInt(san(jso.uptime));
s = "<table><tr><td class=\"c\">" +
"Context</td><td>" +
u = parseInt(san(jso.i.uptime));
if (parseInt(jso.i.contexts[0].deprecated) == 0)
s = "<table><tr><td></td><td class=\"c0\">";
else
s = "<table><tr><td></td><td class=\"dc0\">";
s +=
"Server</td><td>" +
"<span class=n>Version:</span> <span class=v>" +
san(jso.version) + "</span><br>" +
san(jso.i.version) + "</span><br>" +
"<span class=n>Uptime:</span> <span class=v>" +
((u / (24 * 3600)) | 0) + "d " +
(((u % (24 * 3600)) / 3600) | 0) + "h " +
(((u % 3600) / 60) | 0) + "m</span>";
if (jso.l1)
s = s + ", <span class=n>Load:</span> <span class=v>" + san(jso.l1) + " ";
if (jso.l2)
s = s + san(jso.l2) + " ";
if (jso.l3)
s = s + san(jso.l3);
if (jso.l1)
if (jso.i.l1)
s = s + ", <span class=n>Load:</span> <span class=v>" + san(jso.i.l1) + " ";
if (jso.i.l2)
s = s + san(jso.i.l2) + " ";
if (jso.i.l3)
s = s + san(jso.i.l3);
if (jso.i.l1)
s =s + "<span>";
for (n = 0; n < jso.files.length; n++) {
s += "<br><span class=n>" + san(jso.files[n].path) + ":</span><br> " + san(jso.files[n].val);
}
s += "</td></tr>";
for (ci = 0; ci < jso.i.contexts.length; ci++) {
if (parseInt(jso.i.contexts[ci].deprecated) == 0)
s += "<tr><td></td><td class=\"c\">" +
"Active Context</td><td>";
else
s += "<tr><td></td><td class=\"c1\">" +
"Deprecated Context " + ci + "</td><td>";
u = parseInt(san(jso.i.contexts[ci].context_uptime));
s += "<span class=n>Uptime:</span> <span class=v>" +
((u / (24 * 3600)) | 0) + "d " +
(((u % (24 * 3600)) / 3600) | 0) + "h " +
(((u % 3600) / 60) | 0) + "m</span>";
s = s +
"<br>" +
"<span class=n>Listening wsi:</span> <span class=v>" + san(jso.listen_wsi) + "</span>, " +
"<span class=n>Current wsi alive:</span> <span class=v>" + (parseInt(san(jso.wsi_alive)) -
parseInt(san(jso.listen_wsi))) + "</span><br>" +
"<span class=n>Current cgi alive:</span> <span class=v>" + san(jso.cgi_alive) + "</span>, " +
"<span class=n>Total CGI spawned:</span> <span class=v>" + san(jso.cgi_spawned) +
"</span></td></tr>";
var n;
for (n = 0; n < jso.pt.length; n++) {
"<span class=n>Listening wsi:</span> <span class=v>" + san(jso.i.contexts[ci].listen_wsi) + "</span>, " +
"<span class=n>Current wsi alive:</span> <span class=v>" + (parseInt(san(jso.i.contexts[ci].wsi_alive)) -
parseInt(san(jso.i.contexts[ci].listen_wsi))) + "</span><br>" +
"<span class=n>Total Rx:</span> <span class=v>" + humanize(san(jso.i.contexts[ci].rx)) +"</span>, " +
"<span class=n>Total Tx:</span> <span class=v>" + humanize(san(jso.i.contexts[ci].tx)) +"</span><br>" +
"<span class=n>Total connections:</span> <span class=v>" + san(jso.i.contexts[ci].conn) +"</span>, " +
"<span class=n>Total HTTP Transactions:</span> <span class=v>" + san(jso.i.contexts[ci].trans) +"</span><br>" +
"<span class=n>Total ws upgrades:</span> <span class=v>" + san(jso.i.contexts[ci].ws_upg) +"</span>, " +
"<span class=n>Total h2 upgrades:</span> <span class=v>" + san(jso.i.contexts[ci].http2_upg) +"</span>, " +
"<span class=n>Total Rejected:</span> <span class=v>" + san(jso.i.contexts[ci].rejected) +"</span><br>" +
"<span class=n>Current cgi alive:</span> <span class=v>" + san(jso.i.contexts[ci].cgi_alive) + "</span>, " +
"<span class=n>Total CGI spawned:</span> <span class=v>" + san(jso.i.contexts[ci].cgi_spawned) +
"</span><table>";
s = s + "<tr><td class=\"l\">service thread " + (n + 1) +
"</td><td>" +
"<span class=n>fds:</span> <span class=v>" + san(jso.pt[n].fds_count) + " / " +
san(jso.pt_fd_max) + "</span>, ";
s = s + "<span class=n>ah pool:</span> <span class=v>" + san(jso.pt[n].ah_pool_inuse) + " / " +
san(jso.ah_pool_max) + "</span>, " +
"<span class=n>ah waiting list:</span> <span class=v>" + san(jso.pt[n].ah_wait_list);
for (n = 0; n < jso.i.contexts[ci].pt.length; n++) {
if (parseInt(jso.i.contexts[ci].deprecated) == 0)
s += "<tr><td>&nbsp;&nbsp;</td><td class=\"l\">service thread " + (n + 1);
else
s += "<tr><td>&nbsp;&nbsp;</td><td class=\"dl\">service thread " + (n + 1);
s += "</td><td>" +
"<span class=n>fds:</span> <span class=v>" + san(jso.i.contexts[ci].pt[n].fds_count) + " / " +
san(jso.i.contexts[ci].pt_fd_max) + "</span>, ";
s = s + "<span class=n>ah pool:</span> <span class=v>" + san(jso.i.contexts[ci].pt[n].ah_pool_inuse) + " / " +
san(jso.i.contexts[ci].ah_pool_max) + "</span>, " +
"<span class=n>ah waiting list:</span> <span class=v>" + san(jso.i.contexts[ci].pt[n].ah_wait_list);
s = s + "</span></td></tr>";
}
for (n = 0; n < jso.vhosts.length; n++) {
s = s + "<tr><td class=\"l\">vhost " + (n + 1) +
"</td><td><span class=\"mountname\">";
if (jso.vhosts[n].use_ssl == '1')
for (n = 0; n < jso.i.contexts[ci].vhosts.length; n++) {
if (parseInt(jso.i.contexts[ci].deprecated) == 0)
s += "<tr><td>&nbsp;&nbsp;</td><td class=\"l\">vhost " + (n + 1);
else
s += "<tr><td>&nbsp;&nbsp;</td><td class=\"dl\">vhost " + (n + 1);
s += "</td><td><span class=\"mountname\">";
if (jso.i.contexts[ci].vhosts[n].use_ssl == '1')
s = s + "https://";
else
s = s + "http://";
s = s + san(jso.vhosts[n].name) + ":" +
san(jso.vhosts[n].port) + "</span>";
if (jso.vhosts[n].sts == '1')
s = s + san(jso.i.contexts[ci].vhosts[n].name) + ":" +
san(jso.i.contexts[ci].vhosts[n].port) + "</span>";
if (jso.i.contexts[ci].vhosts[n].sts == '1')
s = s + " (STS)";
s = s +"<br>" +
"<span class=n>rx:</span> <span class=v>" + humanize(san(jso.vhosts[n].rx)) + "B</span>, " +
"<span class=n>tx</span> <span class=v>" + humanize(san(jso.vhosts[n].tx)) + "B</span><br>" +
"<span class=n>total connections</span> <span class=v>" + san(jso.vhosts[n].conn) + "</span>, " +
"<span class=n>total http transactions</span> <span class=v>" + san(jso.vhosts[n].trans) + "</span><br>" +
"<span class=n>Upgrades to ws:</span> <span class=v>" + san(jso.vhosts[n].ws_upg) + "</span>, " +
"<span class=n>to http/2:</span> <span class=v>" + san(jso.vhosts[n].http2_upg) + "</span><br>" +
"<span class=n>rx:</span> <span class=v>" + humanize(san(jso.i.contexts[ci].vhosts[n].rx)) + "B</span>, " +
"<span class=n>tx</span> <span class=v>" + humanize(san(jso.i.contexts[ci].vhosts[n].tx)) + "B</span><br>" +
"<span class=n>vh connections</span> <span class=v>" + san(jso.i.contexts[ci].vhosts[n].conn) + "</span>, " +
"<span class=n>vh http transactions</span> <span class=v>" + san(jso.i.contexts[ci].vhosts[n].trans) + "</span><br>" +
"<span class=n>vh upgrades to ws:</span> <span class=v>" + san(jso.i.contexts[ci].vhosts[n].ws_upg) + "</span>, " +
"<span class=n>to http/2:</span> <span class=v>" + san(jso.i.contexts[ci].vhosts[n].http2_upg) + "</span>, " +
"<span class=n>rejected:</span> <span class=v>" + san(jso.i.contexts[ci].vhosts[n].rejected) + "</span><br>" +
"<table style=\"margin-left:16px\"><tr><td class=t>Mountpoint</td><td class=t>Origin</td><td class=t>Cache Policy</td></tr>";
var m;
for (m = 0; m < jso.vhosts[n].mounts.length; m++) {
for (m = 0; m < jso.i.contexts[ci].vhosts[n].mounts.length; m++) {
s = s + "<tr><td>";
s = s + "<span class=\"m1\">" + san(jso.vhosts[n].mounts[m].mountpoint) +
s = s + "<span class=\"m1\">" + san(jso.i.contexts[ci].vhosts[n].mounts[m].mountpoint) +
"</span></td><td><span class=\"m2\">" +
san(jso.vhosts[n].mounts[m].origin) +
san(jso.i.contexts[ci].vhosts[n].mounts[m].origin) +
"</span></td><td>";
if (parseInt(san(jso.vhosts[n].mounts[m].cache_max_age)))
if (parseInt(san(jso.i.contexts[ci].vhosts[n].mounts[m].cache_max_age)))
s = s + "<span class=n>max-age:</span> <span class=v>" +
san(jso.vhosts[n].mounts[m].cache_max_age) +
san(jso.i.contexts[ci].vhosts[n].mounts[m].cache_max_age) +
"</span>, <span class=n>reuse:</span> <span class=v>" +
san(jso.vhosts[n].mounts[m].cache_reuse) +
san(jso.i.contexts[ci].vhosts[n].mounts[m].cache_reuse) +
"</span>, <span class=n>reval:</span> <span class=v>" +
san(jso.vhosts[n].mounts[m].cache_revalidate) +
san(jso.i.contexts[ci].vhosts[n].mounts[m].cache_revalidate) +
"</span>, <span class=n>inter:</span> <span class=v>" +
san(jso.vhosts[n].mounts[m].cache_intermediaries);
san(jso.i.contexts[ci].vhosts[n].mounts[m].cache_intermediaries);
s = s + "</span></td></tr>"
}
s = s + "</table>";
s = s + "</td></tr>";
}
s += "</table></td></tr>";
} // context
s = s + "</table>";
document.getElementById("conninfo").innerHTML = s;