lws_snprintf
Thanks to Fabrice Gilot for reporting the problem that led to uncovering this. Due to a misunderstanding of the return value of snprintf (it is not truncated according to the max size passed in) in several places relying on snprintf to truncate the length overflows are possible. This patch wraps snprintf with a new lws_snprintf() which does truncate its length to allow the buffer limiting scheme to work properly. All users should update with these fixes.
This commit is contained in:
parent
c15714f35a
commit
a496700b3a
35 changed files with 367 additions and 267 deletions
|
@ -354,6 +354,9 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
|
|||
<li>lws_SHA1()
|
||||
: <a class="el" href="group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5">libwebsockets.h</a>
|
||||
</li>
|
||||
<li>lws_snprintf()
|
||||
: <a class="el" href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">libwebsockets.h</a>
|
||||
</li>
|
||||
<li>lws_spa_create()
|
||||
: <a class="el" href="group__form-parsing.html#ga162f86762173a2bc8c28497941d74815">libwebsockets.h</a>
|
||||
</li>
|
||||
|
|
|
@ -628,6 +628,9 @@ $(document).ready(function(){initNavTree('globals_l.html','');});
|
|||
<li>lws_SHA1()
|
||||
: <a class="el" href="group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5">libwebsockets.h</a>
|
||||
</li>
|
||||
<li>lws_snprintf()
|
||||
: <a class="el" href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">libwebsockets.h</a>
|
||||
</li>
|
||||
<li>lws_spa_create()
|
||||
: <a class="el" href="group__form-parsing.html#ga162f86762173a2bc8c28497941d74815">libwebsockets.h</a>
|
||||
</li>
|
||||
|
|
|
@ -70,6 +70,8 @@ $(document).ready(function(){initNavTree('group__misc.html','');});
|
|||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:ga9f37d0e357de2ab4170723fcdb665d21"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">lws_snprintf</a> (char *str, size_t size, const char *format,...)</td></tr>
|
||||
<tr class="separator:ga9f37d0e357de2ab4170723fcdb665d21"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga58f906c6be0ca80efd813f694569dd4a"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga58f906c6be0ca80efd813f694569dd4a">lws_get_random</a> (struct lws_context *context, void *buf, int len)</td></tr>
|
||||
<tr class="separator:ga58f906c6be0ca80efd813f694569dd4a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gace5171b1dbbc03ec89a98f8afdb5c9af"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">lws_daemonize</a> (const char *_lock_path)</td></tr>
|
||||
|
@ -391,6 +393,57 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga9f37d0e357de2ab4170723fcdb665d21"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_snprintf </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>str</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>size</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const char * </td>
|
||||
<td class="paramname"><em>format</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname"><em>...</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p><code>#include <<a class="el" href="libwebsockets_8h.html">lib/libwebsockets.h</a>></code></p>
|
||||
<p><a class="el" href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">lws_snprintf()</a>: snprintf that truncates the returned length too</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">str</td><td>destination buffer </td></tr>
|
||||
<tr><td class="paramname">size</td><td>bytes left in destination buffer </td></tr>
|
||||
<tr><td class="paramname">format</td><td>format string </td></tr>
|
||||
<tr><td class="paramname">...</td><td>args for format</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>This lets you correctly truncate buffers by concatenating lengths, if you reach the limit the reported length doesn't exceed the limit. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaa194584fff9698f3b280658f770ccd0f"></a>
|
||||
|
|
|
@ -10,5 +10,6 @@ var group__misc =
|
|||
[ "lws_now_secs", "group__misc.html#ga33bf2635033710b25f931b57ed663e1e", null ],
|
||||
[ "lws_parse_uri", "group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa", null ],
|
||||
[ "lws_set_allocator", "group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b", null ],
|
||||
[ "lws_snprintf", "group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21", null ],
|
||||
[ "lws_wsi_user", "group__misc.html#gaa194584fff9698f3b280658f770ccd0f", null ]
|
||||
];
|
|
@ -157,15 +157,15 @@ Functions</h2></td></tr>
|
|||
<p>sent the session quit </p>
|
||||
</td></tr>
|
||||
</table>
|
||||
<div class="fragment"><div class="line"><a name="l04047"></a><span class="lineno"> 4047</span>  {</div><div class="line"><a name="l04048"></a><span class="lineno"> 4048</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l04049"></a><span class="lineno"> 4049</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l04050"></a><span class="lineno"> 4050</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l04051"></a><span class="lineno"> 4051</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l04052"></a><span class="lineno"> 4052</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l04053"></a><span class="lineno"> 4053</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l04054"></a><span class="lineno"> 4054</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l04055"></a><span class="lineno"> 4055</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l04056"></a><span class="lineno"> 4056</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l04057"></a><span class="lineno"> 4057</span> };</div><div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4050</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:4055</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:4048</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:4049</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:4053</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:4052</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:4056</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:4051</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:4054</div></div>
|
||||
<div class="fragment"><div class="line"><a name="l04061"></a><span class="lineno"> 4061</span>  {</div><div class="line"><a name="l04062"></a><span class="lineno"> 4062</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l04063"></a><span class="lineno"> 4063</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l04064"></a><span class="lineno"> 4064</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l04065"></a><span class="lineno"> 4065</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l04066"></a><span class="lineno"> 4066</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l04067"></a><span class="lineno"> 4067</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l04068"></a><span class="lineno"> 4068</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l04069"></a><span class="lineno"> 4069</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l04070"></a><span class="lineno"> 4070</span>  <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l04071"></a><span class="lineno"> 4071</span> };</div><div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:4064</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:4069</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:4062</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:4063</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:4067</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:4066</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:4070</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:4065</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:4068</div></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -868,6 +868,8 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
<tr class="separator:gad01014fed09759741b6d23afccfdaacc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga869d8bdffb0f2a7ce08e3ce10d6be3d8"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8">lws_interface_to_sa</a> (int ipv6, const char *ifname, struct sockaddr_in *addr, size_t addrlen)</td></tr>
|
||||
<tr class="separator:ga869d8bdffb0f2a7ce08e3ce10d6be3d8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga9f37d0e357de2ab4170723fcdb665d21"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21">lws_snprintf</a> (char *str, size_t size, const char *format,...)</td></tr>
|
||||
<tr class="separator:ga9f37d0e357de2ab4170723fcdb665d21"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga58f906c6be0ca80efd813f694569dd4a"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga58f906c6be0ca80efd813f694569dd4a">lws_get_random</a> (struct lws_context *context, void *buf, int len)</td></tr>
|
||||
<tr class="separator:ga58f906c6be0ca80efd813f694569dd4a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gace5171b1dbbc03ec89a98f8afdb5c9af"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">lws_daemonize</a> (const char *_lock_path)</td></tr>
|
||||
|
|
|
@ -484,6 +484,7 @@ var libwebsockets_8h =
|
|||
[ "lws_set_proxy", "group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4", null ],
|
||||
[ "lws_set_timeout", "group__timeout.html#gaced9f9237f6172fed9f730a2af51345a", null ],
|
||||
[ "lws_SHA1", "group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5", null ],
|
||||
[ "lws_snprintf", "group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21", null ],
|
||||
[ "lws_spa_create", "group__form-parsing.html#ga162f86762173a2bc8c28497941d74815", null ],
|
||||
[ "lws_spa_destroy", "group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b", null ],
|
||||
[ "lws_spa_finalize", "group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24", null ],
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -133,9 +133,9 @@ var NAVTREEINDEX =
|
|||
[
|
||||
"annotated.html",
|
||||
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f",
|
||||
"group__sha.html",
|
||||
"libwebsockets_8h.html#a17f5fc891b31d2920bd18b0d66d6cb25",
|
||||
"structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40"
|
||||
"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8",
|
||||
"libwebsockets_8h.html",
|
||||
"structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4"
|
||||
];
|
||||
|
||||
var SYNCONMSG = 'click to disable panel synchronisation';
|
||||
|
|
|
@ -48,7 +48,7 @@ var NAVTREEINDEX0 =
|
|||
"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[9,6,3,1],
|
||||
"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[11,0,0,0,46],
|
||||
"group__HTTP-headers-read.html":[9,6,4],
|
||||
"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[11,0,0,0,152],
|
||||
"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[11,0,0,0,153],
|
||||
"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[9,6,4,7],
|
||||
"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[9,6,4,5],
|
||||
"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[11,0,0,0,106],
|
||||
|
@ -156,7 +156,7 @@ var NAVTREEINDEX0 =
|
|||
"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,160],
|
||||
"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[11,0,0,0,161],
|
||||
"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],
|
||||
|
@ -208,26 +208,26 @@ var NAVTREEINDEX0 =
|
|||
"group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932":[11,0,0,0,103],
|
||||
"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[9,4,7],
|
||||
"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[11,0,0,0,75],
|
||||
"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[11,0,0,0,167],
|
||||
"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[11,0,0,0,168],
|
||||
"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[9,4,14],
|
||||
"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[11,0,0,0,26],
|
||||
"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[9,4,3],
|
||||
"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[11,0,0,0,142],
|
||||
"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[9,4,11],
|
||||
"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[11,0,0,0,159],
|
||||
"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[11,0,0,0,160],
|
||||
"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[9,4,12],
|
||||
"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":[9,4,10],
|
||||
"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[11,0,0,0,117],
|
||||
"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[11,0,0,0,166],
|
||||
"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[11,0,0,0,167],
|
||||
"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[9,4,13],
|
||||
"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[9,4,9],
|
||||
"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[11,0,0,0,116],
|
||||
"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#gaf2fff58562caab7510c41eeac85a8648":[11,0,0,0,74],
|
||||
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[11,0,0,0,26,8],
|
||||
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[9,4,3,8],
|
||||
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[11,0,0,0,26,2],
|
||||
|
|
|
@ -68,22 +68,22 @@ var NAVTREEINDEX1 =
|
|||
"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[9,20,1],
|
||||
"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[11,0,0,0,91],
|
||||
"group__form-parsing.html":[9,6,0],
|
||||
"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[11,0,0,0,145],
|
||||
"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[11,0,0,0,146],
|
||||
"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[9,6,0,2],
|
||||
"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[11,0,0,0,149],
|
||||
"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[11,0,0,0,150],
|
||||
"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[9,6,0,6],
|
||||
"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[11,0,0,0,148],
|
||||
"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[11,0,0,0,149],
|
||||
"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#ga5a70527c0861c2ffa3d29333a6aa7f8e":[9,6,0,0],
|
||||
"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[11,0,0,0,16],
|
||||
"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[11,0,0,0,147],
|
||||
"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[11,0,0,0,148],
|
||||
"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[9,6,0,4],
|
||||
"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[11,0,0,0,150],
|
||||
"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[11,0,0,0,151],
|
||||
"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[9,6,0,7],
|
||||
"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[11,0,0,0,146],
|
||||
"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[9,6,0,3],
|
||||
"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[11,0,0,0,147],
|
||||
"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#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[9,6,0,1,1],
|
||||
|
@ -158,12 +158,12 @@ var NAVTREEINDEX1 =
|
|||
"group__log.html#ga14542b84d2c76efa7814124bb10f9c5f":[11,0,0,0,31],
|
||||
"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[11,0,0,0,141],
|
||||
"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[9,7,0],
|
||||
"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[11,0,0,0,165],
|
||||
"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[11,0,0,0,166],
|
||||
"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[9,7,3],
|
||||
"group__log.html#ga74eb146969f0595e12ea835851b4588e":[11,0,0,0,40],
|
||||
"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[11,0,0,0,164],
|
||||
"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[11,0,0,0,165],
|
||||
"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[9,7,2],
|
||||
"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[11,0,0,0,163],
|
||||
"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[11,0,0,0,164],
|
||||
"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],
|
||||
|
@ -181,8 +181,8 @@ var NAVTREEINDEX1 =
|
|||
"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[9,8,2],
|
||||
"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[11,0,0,0,89],
|
||||
"group__misc.html#ga0e705d498e8c8500649a26ba30a1e106":[11,0,0,0,127],
|
||||
"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[9,8,8],
|
||||
"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[11,0,0,0,122],
|
||||
"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[9,8,8],
|
||||
"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[9,8,7],
|
||||
"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[11,0,0,0,121],
|
||||
"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[9,8,6],
|
||||
|
@ -191,8 +191,10 @@ var NAVTREEINDEX1 =
|
|||
"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[11,0,0,0,90],
|
||||
"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[9,8,5],
|
||||
"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[11,0,0,0,94],
|
||||
"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[11,0,0,0,162],
|
||||
"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[9,8,10],
|
||||
"group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21":[11,0,0,0,145],
|
||||
"group__misc.html#ga9f37d0e357de2ab4170723fcdb665d21":[9,8,10],
|
||||
"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[11,0,0,0,163],
|
||||
"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[9,8,11],
|
||||
"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[11,0,0,0,139],
|
||||
"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[9,8,9],
|
||||
"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[9,8,4],
|
||||
|
@ -211,14 +213,14 @@ var NAVTREEINDEX1 =
|
|||
"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[9,9,0],
|
||||
"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[11,0,0,0,62],
|
||||
"group__pur.html":[9,12],
|
||||
"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[11,0,0,0,151],
|
||||
"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[11,0,0,0,152],
|
||||
"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[9,12,1],
|
||||
"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[9,12,0],
|
||||
"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[11,0,0,0,118],
|
||||
"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,161],
|
||||
"group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001":[11,0,0,0,162],
|
||||
"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],
|
||||
|
@ -230,8 +232,8 @@ var NAVTREEINDEX1 =
|
|||
"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#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[11,0,0,0,35,3],
|
||||
"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#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[9,13,0,1],
|
||||
"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[11,0,0,0,35,1],
|
||||
|
@ -247,7 +249,5 @@ var NAVTREEINDEX1 =
|
|||
"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[11,0,0,0,136],
|
||||
"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[9,0,3],
|
||||
"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[11,0,0,0,137],
|
||||
"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[9,0,4],
|
||||
"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[11,0,0,0,135],
|
||||
"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[9,0,2]
|
||||
"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[9,0,4]
|
||||
};
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
var NAVTREEINDEX2 =
|
||||
{
|
||||
"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[11,0,0,0,135],
|
||||
"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[9,0,2],
|
||||
"group__sha.html":[9,11],
|
||||
"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[11,0,0,0,51],
|
||||
"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[9,11,0],
|
||||
"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[11,0,0,0,51],
|
||||
"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[11,0,0,0,144],
|
||||
"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[9,11,2],
|
||||
"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[9,11,1],
|
||||
|
@ -10,8 +12,8 @@ var NAVTREEINDEX2 =
|
|||
"group__smtp.html":[9,14],
|
||||
"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[9,14,1],
|
||||
"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[11,0,0,0,37],
|
||||
"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[9,14,3],
|
||||
"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[11,0,0,0,78],
|
||||
"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[9,14,3],
|
||||
"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[11,0,0,0,77],
|
||||
"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[9,14,2],
|
||||
"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[9,14,4],
|
||||
|
@ -28,10 +30,10 @@ var NAVTREEINDEX2 =
|
|||
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[9,14,1,6],
|
||||
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[9,14,1,4],
|
||||
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[11,0,0,0,37,4],
|
||||
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[9,14,1,5],
|
||||
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[11,0,0,0,37,5],
|
||||
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[11,0,0,0,37,2],
|
||||
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[9,14,1,5],
|
||||
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[9,14,1,2],
|
||||
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[11,0,0,0,37,2],
|
||||
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[9,14,1,1],
|
||||
"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[11,0,0,0,37,1],
|
||||
"group__sock-adopt.html":[9,15],
|
||||
|
@ -63,9 +65,9 @@ var NAVTREEINDEX2 =
|
|||
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ad7ebebb506afd30c48e1e5e3a578cd30":[11,0,0,0,38,1],
|
||||
"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ae8b3de955cec5da5ea52fe040f914501":[11,0,0,0,38,10],
|
||||
"group__urlendec.html":[9,6,5],
|
||||
"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[11,0,0,0,153],
|
||||
"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[11,0,0,0,154],
|
||||
"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[9,6,5,0],
|
||||
"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[11,0,0,0,154],
|
||||
"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[11,0,0,0,155],
|
||||
"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[9,6,5,1],
|
||||
"group__usercb.html":[9,16],
|
||||
"group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f":[11,0,0,0,8],
|
||||
|
@ -89,8 +91,8 @@ var NAVTREEINDEX2 =
|
|||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a23b90b5e5146e760bc3123ae1fd2a6e5":[11,0,0,0,22,40],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[9,16,1,0],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[11,0,0,0,22,0],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[9,16,1,7],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[11,0,0,0,22,7],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[9,16,1,7],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[11,0,0,0,22,14],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[9,16,1,14],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[11,0,0,0,22,25],
|
||||
|
@ -110,8 +112,8 @@ var NAVTREEINDEX2 =
|
|||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[11,0,0,0,22,3],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[11,0,0,0,22,11],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[9,16,1,11],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[9,16,1,5],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[11,0,0,0,22,5],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[9,16,1,5],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[11,0,0,0,22,35],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[9,16,1,35],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a89862929a72bff65257ca1d51a0fce4d":[11,0,0,0,22,52],
|
||||
|
@ -123,8 +125,8 @@ var NAVTREEINDEX2 =
|
|||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[9,16,1,41],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[11,0,0,0,22,37],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[9,16,1,37],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[9,16,1,2],
|
||||
"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#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a":[9,16,1,39],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[11,0,0,0,22,15],
|
||||
|
@ -157,16 +159,16 @@ var NAVTREEINDEX2 =
|
|||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[11,0,0,0,22,1],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[11,0,0,0,22,31],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[9,16,1,31],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[11,0,0,0,22,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":[9,16,1,23],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[11,0,0,0,22,12],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[9,16,1,12],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[11,0,0,0,22,19],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[9,16,1,19],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6":[11,0,0,0,22,57],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6":[9,16,1,40],
|
||||
"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6":[11,0,0,0,22,57],
|
||||
"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],
|
||||
|
@ -176,15 +178,15 @@ var NAVTREEINDEX2 =
|
|||
"group__uv.html":[9,22],
|
||||
"group__uv.html#ga097c89497824d4de225a85a00661fc89":[11,0,0,0,119],
|
||||
"group__uv.html#ga3c75cd6ec3f80fc0a0c8ead4c4e71a15":[11,0,0,0,120],
|
||||
"group__uv.html#ga99099e045993383f251a8026e1e40414":[11,0,0,0,158],
|
||||
"group__uv.html#gaa5e3593c94f91910d9d928dfa0c18f6c":[11,0,0,0,155],
|
||||
"group__uv.html#gac5f60dba13a45e5d554b4fb7df7b9610":[11,0,0,0,157],
|
||||
"group__uv.html#gad85ce3bfc53ff754988d36bf5de39e21":[11,0,0,0,156],
|
||||
"group__uv.html#ga99099e045993383f251a8026e1e40414":[11,0,0,0,159],
|
||||
"group__uv.html#gaa5e3593c94f91910d9d928dfa0c18f6c":[11,0,0,0,156],
|
||||
"group__uv.html#gac5f60dba13a45e5d554b4fb7df7b9610":[11,0,0,0,158],
|
||||
"group__uv.html#gad85ce3bfc53ff754988d36bf5de39e21":[11,0,0,0,157],
|
||||
"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#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[9,4,0,2,3],
|
||||
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[11,0,0,0,32,3],
|
||||
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[9,4,0,2,3],
|
||||
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[9,4,0,2,0],
|
||||
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[11,0,0,0,32,0],
|
||||
"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[9,4,0,2,2],
|
||||
|
@ -204,8 +206,8 @@ var NAVTREEINDEX2 =
|
|||
"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[9,17,0],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[11,0,0,0,25,3],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[9,17,0,2],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[11,0,0,0,25,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#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[9,17,0,0],
|
||||
|
@ -215,8 +217,8 @@ var NAVTREEINDEX2 =
|
|||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044":[9,17,0,5],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[11,0,0,0,25,7],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[9,17,0,6],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[11,0,0,0,25,8],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[9,17,0,7],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[11,0,0,0,25,8],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[11,0,0,0,25,2],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[9,17,0,1],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[9,17,0,10],
|
||||
|
@ -226,8 +228,8 @@ var NAVTREEINDEX2 =
|
|||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[11,0,0,0,25,12],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[11,0,0,0,25,9],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[9,17,0,8],
|
||||
"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[9,17,0,12],
|
||||
"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#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[9,17,0,4],
|
||||
"group__wsstatus.html":[9,18],
|
||||
|
@ -239,15 +241,13 @@ var NAVTREEINDEX2 =
|
|||
"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[11,0,0,0,132],
|
||||
"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[9,18,1],
|
||||
"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[11,0,0,0,100],
|
||||
"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[9,18,2],
|
||||
"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[11,0,0,0,113],
|
||||
"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[9,18,0],
|
||||
"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[9,18,2],
|
||||
"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[11,0,0,0,87],
|
||||
"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[9,18,5],
|
||||
"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[9,18,0],
|
||||
"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[11,0,0,0,123],
|
||||
"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[9,18,5],
|
||||
"hierarchy.html":[10,2],
|
||||
"index.html":[0],
|
||||
"index.html":[],
|
||||
"libwebsockets_8h.html":[11,0,0,0],
|
||||
"libwebsockets_8h.html#a0b056fdcf949a838ff82209b4a627dd9":[11,0,0,0,168]
|
||||
"index.html":[0]
|
||||
};
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
var NAVTREEINDEX3 =
|
||||
{
|
||||
"libwebsockets_8h.html#a17f5fc891b31d2920bd18b0d66d6cb25":[11,0,0,0,173],
|
||||
"libwebsockets_8h.html":[11,0,0,0],
|
||||
"libwebsockets_8h.html#a0b056fdcf949a838ff82209b4a627dd9":[11,0,0,0,169],
|
||||
"libwebsockets_8h.html#a17f5fc891b31d2920bd18b0d66d6cb25":[11,0,0,0,174],
|
||||
"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],
|
||||
|
@ -21,16 +23,16 @@ var NAVTREEINDEX3 =
|
|||
"libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672":[11,0,0,0,130],
|
||||
"libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536":[11,0,0,0,128],
|
||||
"libwebsockets_8h.html#a75e9827318684877deb4189121a8cd2a":[11,0,0,0,43],
|
||||
"libwebsockets_8h.html#a863bdd5bca33bcbaa424c42fb7b2fc96":[11,0,0,0,172],
|
||||
"libwebsockets_8h.html#a9032a3062641d334161c29adcc4fa15d":[11,0,0,0,170],
|
||||
"libwebsockets_8h.html#a863bdd5bca33bcbaa424c42fb7b2fc96":[11,0,0,0,173],
|
||||
"libwebsockets_8h.html#a9032a3062641d334161c29adcc4fa15d":[11,0,0,0,171],
|
||||
"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,171],
|
||||
"libwebsockets_8h.html#a9f2a8506fd963db95a5103823c60fb0a":[11,0,0,0,172],
|
||||
"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,131],
|
||||
"libwebsockets_8h.html#aefb2f20fe5bb29d79701a399838ef4ce":[11,0,0,0,169],
|
||||
"libwebsockets_8h.html#aefb2f20fe5bb29d79701a399838ef4ce":[11,0,0,0,170],
|
||||
"libwebsockets_8h.html#af52923473c59e643a974d65e12290831":[11,0,0,0,63],
|
||||
"libwebsockets_8h.html#aff42d53861afdc1a6edfb999ba688ecb":[11,0,0,0,11],
|
||||
"libwebsockets_8h_source.html":[11,0,0,0],
|
||||
|
@ -247,7 +249,5 @@ var NAVTREEINDEX3 =
|
|||
"structlws__http__mount.html#aabec1a326780aafe11b977000983be0c":[9,4,0,1,1],
|
||||
"structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743":[9,4,0,1,12],
|
||||
"structlws__http__mount.html#ae137203040c6153694bd88a708da5395":[9,4,0,1,4],
|
||||
"structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af":[9,4,0,1,6],
|
||||
"structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4":[9,4,0,1,7],
|
||||
"structlws__plat__file__ops.html":[9,20,0]
|
||||
"structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af":[9,4,0,1,6]
|
||||
};
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
var NAVTREEINDEX4 =
|
||||
{
|
||||
"structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4":[9,4,0,1,7],
|
||||
"structlws__plat__file__ops.html":[9,20,0],
|
||||
"structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40":[9,20,0,2],
|
||||
"structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b":[9,20,0,0],
|
||||
"structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793":[9,20,0,4],
|
||||
|
@ -42,16 +44,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,0,0,3],
|
||||
"structlws__protocol__vhost__options.html":[9,4,2],
|
||||
"structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[9,4,2,3],
|
||||
"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[9,4,2,1],
|
||||
"structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[9,4,0,0,3],
|
||||
"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[9,4,0,0,1],
|
||||
"structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[9,4,2,0],
|
||||
"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[9,4,2,1],
|
||||
"structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[9,4,0,0,0],
|
||||
"structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[9,4,0,0,2],
|
||||
"structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[9,4,2,0],
|
||||
"structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[9,4,2,2],
|
||||
"structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[9,4,0,0,2],
|
||||
"structlws__protocols.html":[9,10,1],
|
||||
"structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5":[9,10,1,4],
|
||||
"structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624":[9,10,1,2],
|
||||
|
@ -67,8 +69,8 @@ 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":[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,6,0],
|
||||
|
|
|
@ -380,7 +380,7 @@ html_parser_cb(const hubbub_token *token, void *pw)
|
|||
switch (token->type) {
|
||||
case HUBBUB_TOKEN_DOCTYPE:
|
||||
|
||||
p += snprintf(p, end - p, "<!DOCTYPE %.*s %s ",
|
||||
p += lws_snprintf(p, end - p, "<!DOCTYPE %.*s %s ",
|
||||
(int) token->data.doctype.name.len,
|
||||
token->data.doctype.name.ptr,
|
||||
token->data.doctype.force_quirks ?
|
||||
|
@ -389,20 +389,20 @@ html_parser_cb(const hubbub_token *token, void *pw)
|
|||
if (token->data.doctype.public_missing)
|
||||
printf("\tpublic: missing\n");
|
||||
else
|
||||
p += snprintf(p, end - p, "PUBLIC \"%.*s\"\n",
|
||||
p += lws_snprintf(p, end - p, "PUBLIC \"%.*s\"\n",
|
||||
(int) token->data.doctype.public_id.len,
|
||||
token->data.doctype.public_id.ptr);
|
||||
|
||||
if (token->data.doctype.system_missing)
|
||||
printf("\tsystem: missing\n");
|
||||
else
|
||||
p += snprintf(p, end - p, " \"%.*s\">\n",
|
||||
p += lws_snprintf(p, end - p, " \"%.*s\">\n",
|
||||
(int) token->data.doctype.system_id.len,
|
||||
token->data.doctype.system_id.ptr);
|
||||
|
||||
break;
|
||||
case HUBBUB_TOKEN_START_TAG:
|
||||
p += snprintf(p, end - p, "<%.*s", (int)token->data.tag.name.len,
|
||||
p += lws_snprintf(p, end - p, "<%.*s", (int)token->data.tag.name.len,
|
||||
token->data.tag.name.ptr);
|
||||
|
||||
/* (token->data.tag.self_closing) ?
|
||||
|
@ -422,23 +422,23 @@ html_parser_cb(const hubbub_token *token, void *pw)
|
|||
pp += r->from_len;
|
||||
plen -= r->from_len;
|
||||
}
|
||||
p += snprintf(p, end - p, " %.*s=\"%s/%.*s\"",
|
||||
p += lws_snprintf(p, end - p, " %.*s=\"%s/%.*s\"",
|
||||
(int) token->data.tag.attributes[i].name.len,
|
||||
token->data.tag.attributes[i].name.ptr,
|
||||
r->to, plen, pp);
|
||||
|
||||
} else
|
||||
|
||||
p += snprintf(p, end - p, " %.*s=\"%.*s\"",
|
||||
p += lws_snprintf(p, end - p, " %.*s=\"%.*s\"",
|
||||
(int) token->data.tag.attributes[i].name.len,
|
||||
token->data.tag.attributes[i].name.ptr,
|
||||
(int) token->data.tag.attributes[i].value.len,
|
||||
token->data.tag.attributes[i].value.ptr);
|
||||
}
|
||||
p += snprintf(p, end - p, ">\n");
|
||||
p += lws_snprintf(p, end - p, ">\n");
|
||||
break;
|
||||
case HUBBUB_TOKEN_END_TAG:
|
||||
p += snprintf(p, end - p, "</%.*s", (int) token->data.tag.name.len,
|
||||
p += lws_snprintf(p, end - p, "</%.*s", (int) token->data.tag.name.len,
|
||||
token->data.tag.name.ptr);
|
||||
/*
|
||||
(token->data.tag.self_closing) ?
|
||||
|
@ -447,25 +447,25 @@ html_parser_cb(const hubbub_token *token, void *pw)
|
|||
"attributes:" : "");
|
||||
*/
|
||||
for (i = 0; i < token->data.tag.n_attributes; i++) {
|
||||
p += snprintf(p, end - p, " %.*s='%.*s'\n",
|
||||
p += lws_snprintf(p, end - p, " %.*s='%.*s'\n",
|
||||
(int) token->data.tag.attributes[i].name.len,
|
||||
token->data.tag.attributes[i].name.ptr,
|
||||
(int) token->data.tag.attributes[i].value.len,
|
||||
token->data.tag.attributes[i].value.ptr);
|
||||
}
|
||||
p += snprintf(p, end - p, ">\n");
|
||||
p += lws_snprintf(p, end - p, ">\n");
|
||||
break;
|
||||
case HUBBUB_TOKEN_COMMENT:
|
||||
p += snprintf(p, end - p, "<!-- %.*s -->\n",
|
||||
p += lws_snprintf(p, end - p, "<!-- %.*s -->\n",
|
||||
(int) token->data.comment.len,
|
||||
token->data.comment.ptr);
|
||||
break;
|
||||
case HUBBUB_TOKEN_CHARACTER:
|
||||
p += snprintf(p, end - p, "%.*s", (int) token->data.character.len,
|
||||
p += lws_snprintf(p, end - p, "%.*s", (int) token->data.character.len,
|
||||
token->data.character.ptr);
|
||||
break;
|
||||
case HUBBUB_TOKEN_EOF:
|
||||
p += snprintf(p, end - p, "\n");
|
||||
p += lws_snprintf(p, end - p, "\n");
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -247,7 +247,7 @@ lejp_globals_cb(struct lejp_ctx *ctx, char reason)
|
|||
return 0;
|
||||
}
|
||||
|
||||
a->p += snprintf(a->p, a->end - a->p, "%s", ctx->buf);
|
||||
a->p += lws_snprintf(a->p, a->end - a->p, "%s", ctx->buf);
|
||||
*(a->p)++ = '\0';
|
||||
|
||||
return 0;
|
||||
|
@ -613,11 +613,11 @@ dostring:
|
|||
n = a->end - a->p;
|
||||
strncpy(a->p, p, n);
|
||||
a->p += n;
|
||||
a->p += snprintf(a->p, a->end - a->p, "%s", LWS_INSTALL_DATADIR);
|
||||
a->p += lws_snprintf(a->p, a->end - a->p, "%s", LWS_INSTALL_DATADIR);
|
||||
p += n + strlen(ESC_INSTALL_DATADIR);
|
||||
}
|
||||
|
||||
a->p += snprintf(a->p, a->end - a->p, "%s", p);
|
||||
a->p += lws_snprintf(a->p, a->end - a->p, "%s", p);
|
||||
*(a->p)++ = '\0';
|
||||
|
||||
return 0;
|
||||
|
@ -684,7 +684,7 @@ lwsws_get_config_d(void *user, const char *d, const char * const *paths,
|
|||
}
|
||||
|
||||
while (uv_fs_scandir_next(&req, &dent) != UV_EOF) {
|
||||
snprintf(path, sizeof(path) - 1, "%s/%s", d, dent.name);
|
||||
lws_snprintf(path, sizeof(path) - 1, "%s/%s", d, dent.name);
|
||||
ret = lwsws_get_config(user, path, paths, count_paths, cb);
|
||||
if (ret)
|
||||
goto bail;
|
||||
|
@ -724,7 +724,7 @@ lwsws_get_config_d(void *user, const char *d, const char * const *paths,
|
|||
}
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
snprintf(path, sizeof(path) - 1, "%s/%s", d,
|
||||
lws_snprintf(path, sizeof(path) - 1, "%s/%s", d,
|
||||
namelist[i]->d_name);
|
||||
ret = lwsws_get_config(user, path, paths, count_paths, cb);
|
||||
if (ret) {
|
||||
|
@ -773,11 +773,11 @@ lwsws_get_config_globals(struct lws_context_creation_info *info, const char *d,
|
|||
old++;
|
||||
}
|
||||
|
||||
snprintf(dd, sizeof(dd) - 1, "%s/conf", d);
|
||||
lws_snprintf(dd, sizeof(dd) - 1, "%s/conf", d);
|
||||
if (lwsws_get_config(&a, dd, paths_global,
|
||||
ARRAY_SIZE(paths_global), lejp_globals_cb) > 1)
|
||||
return 1;
|
||||
snprintf(dd, sizeof(dd) - 1, "%s/conf.d", d);
|
||||
lws_snprintf(dd, sizeof(dd) - 1, "%s/conf.d", d);
|
||||
if (lwsws_get_config_d(&a, dd, paths_global,
|
||||
ARRAY_SIZE(paths_global), lejp_globals_cb) > 1)
|
||||
return 1;
|
||||
|
@ -808,11 +808,11 @@ lwsws_get_config_vhosts(struct lws_context *context,
|
|||
a.protocols = info->protocols;
|
||||
a.extensions = info->extensions;
|
||||
|
||||
snprintf(dd, sizeof(dd) - 1, "%s/conf", d);
|
||||
lws_snprintf(dd, sizeof(dd) - 1, "%s/conf", d);
|
||||
if (lwsws_get_config(&a, dd, paths_vhosts,
|
||||
ARRAY_SIZE(paths_vhosts), lejp_vhosts_cb) > 1)
|
||||
return 1;
|
||||
snprintf(dd, sizeof(dd) - 1, "%s/conf.d", d);
|
||||
lws_snprintf(dd, sizeof(dd) - 1, "%s/conf.d", d);
|
||||
if (lwsws_get_config_d(&a, dd, paths_vhosts,
|
||||
ARRAY_SIZE(paths_vhosts), lejp_vhosts_cb) > 1)
|
||||
return 1;
|
||||
|
|
10
lib/libuv.c
10
lib/libuv.c
|
@ -492,7 +492,7 @@ lws_plat_plugins_init(struct lws_context * context, const char * const *d)
|
|||
|
||||
lwsl_notice(" %s\n", dent.name);
|
||||
|
||||
snprintf(path, sizeof(path) - 1, "%s/%s", *d, dent.name);
|
||||
lws_snprintf(path, sizeof(path) - 1, "%s/%s", *d, dent.name);
|
||||
if (uv_dlopen(path, &lib)) {
|
||||
uv_dlerror(&lib);
|
||||
lwsl_err("Error loading DSO: %s\n", lib.errmsg);
|
||||
|
@ -500,11 +500,11 @@ lws_plat_plugins_init(struct lws_context * context, const char * const *d)
|
|||
}
|
||||
/* we could open it, can we get his init function? */
|
||||
#if !defined(WIN32)
|
||||
m = snprintf(path, sizeof(path) - 1, "init_%s",
|
||||
m = lws_snprintf(path, sizeof(path) - 1, "init_%s",
|
||||
dent.name + 3 /* snip lib... */);
|
||||
path[m - 3] = '\0'; /* snip the .so */
|
||||
#else
|
||||
m = snprintf(path, sizeof(path) - 1, "init_%s",
|
||||
m = lws_snprintf(path, sizeof(path) - 1, "init_%s",
|
||||
dent.name);
|
||||
path[m - 4] = '\0'; /* snip the .dll */
|
||||
#endif
|
||||
|
@ -569,10 +569,10 @@ lws_plat_plugins_destroy(struct lws_context * context)
|
|||
while (plugin) {
|
||||
p = plugin;
|
||||
#if !defined(WIN32)
|
||||
m = snprintf(path, sizeof(path) - 1, "destroy_%s", plugin->name + 3);
|
||||
m = lws_snprintf(path, sizeof(path) - 1, "destroy_%s", plugin->name + 3);
|
||||
path[m - 3] = '\0';
|
||||
#else
|
||||
m = snprintf(path, sizeof(path) - 1, "destroy_%s", plugin->name);
|
||||
m = lws_snprintf(path, sizeof(path) - 1, "destroy_%s", plugin->name);
|
||||
path[m - 4] = '\0';
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1124,7 +1124,7 @@ lwsl_timestamp(int level, char *p, int len)
|
|||
continue;
|
||||
now = time_in_microseconds() / 100;
|
||||
if (ptm)
|
||||
n = snprintf(p, len,
|
||||
n = lws_snprintf(p, len,
|
||||
"[%04d/%02d/%02d %02d:%02d:%02d:%04d] %s: ",
|
||||
ptm->tm_year + 1900,
|
||||
ptm->tm_mon + 1,
|
||||
|
@ -1134,7 +1134,7 @@ lwsl_timestamp(int level, char *p, int len)
|
|||
ptm->tm_sec,
|
||||
(int)(now % 10000), log_level_names[n]);
|
||||
else
|
||||
n = snprintf(p, len, "[%llu:%04d] %s: ",
|
||||
n = lws_snprintf(p, len, "[%llu:%04d] %s: ",
|
||||
(unsigned long long) now / 10000,
|
||||
(int)(now % 10000), log_level_names[n]);
|
||||
return n;
|
||||
|
@ -1717,6 +1717,26 @@ lws_finalize_startup(struct lws_context *context)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
lws_snprintf(char *str, size_t size, const char *format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
int n;
|
||||
|
||||
if (!size)
|
||||
return 0;
|
||||
|
||||
va_start(ap, format);
|
||||
n = vsnprintf(str, size, format, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (n >= size)
|
||||
return size;
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
|
||||
LWS_VISIBLE LWS_EXTERN int
|
||||
lws_is_cgi(struct lws *wsi) {
|
||||
#ifdef LWS_WITH_CGI
|
||||
|
@ -1910,18 +1930,18 @@ lws_cgi(struct lws *wsi, const char * const *exec_array, int script_uri_path_len
|
|||
if (uritok < 0)
|
||||
goto bail3;
|
||||
|
||||
snprintf(cgi_path, sizeof(cgi_path) - 1, "REQUEST_URI=%s",
|
||||
lws_snprintf(cgi_path, sizeof(cgi_path) - 1, "REQUEST_URI=%s",
|
||||
lws_hdr_simple_ptr(wsi, uritok));
|
||||
cgi_path[sizeof(cgi_path) - 1] = '\0';
|
||||
env_array[n++] = cgi_path;
|
||||
|
||||
env_array[n++] = p;
|
||||
p += snprintf(p, end - p, "REQUEST_METHOD=%s",
|
||||
p += lws_snprintf(p, end - p, "REQUEST_METHOD=%s",
|
||||
meth_names[m]);
|
||||
p++;
|
||||
|
||||
env_array[n++] = p;
|
||||
p += snprintf(p, end - p, "QUERY_STRING=");
|
||||
p += lws_snprintf(p, end - p, "QUERY_STRING=");
|
||||
/* dump the individual URI Arg parameters */
|
||||
m = 0;
|
||||
while (1) {
|
||||
|
@ -1946,55 +1966,55 @@ lws_cgi(struct lws *wsi, const char * const *exec_array, int script_uri_path_len
|
|||
*p++ = '\0';
|
||||
|
||||
env_array[n++] = p;
|
||||
p += snprintf(p, end - p, "PATH_INFO=%s",
|
||||
p += lws_snprintf(p, end - p, "PATH_INFO=%s",
|
||||
lws_hdr_simple_ptr(wsi, uritok) +
|
||||
script_uri_path_len);
|
||||
p++;
|
||||
}
|
||||
if (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_REFERER)) {
|
||||
env_array[n++] = p;
|
||||
p += snprintf(p, end - p, "HTTP_REFERER=%s",
|
||||
p += lws_snprintf(p, end - p, "HTTP_REFERER=%s",
|
||||
lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_REFERER));
|
||||
p++;
|
||||
}
|
||||
if (lws_hdr_total_length(wsi, WSI_TOKEN_HOST)) {
|
||||
env_array[n++] = p;
|
||||
p += snprintf(p, end - p, "HTTP_HOST=%s",
|
||||
p += lws_snprintf(p, end - p, "HTTP_HOST=%s",
|
||||
lws_hdr_simple_ptr(wsi, WSI_TOKEN_HOST));
|
||||
p++;
|
||||
}
|
||||
if (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_COOKIE)) {
|
||||
env_array[n++] = p;
|
||||
p += snprintf(p, end - p, "HTTP_COOKIE=%s",
|
||||
p += lws_snprintf(p, end - p, "HTTP_COOKIE=%s",
|
||||
lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_COOKIE));
|
||||
p++;
|
||||
}
|
||||
if (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_USER_AGENT)) {
|
||||
env_array[n++] = p;
|
||||
p += snprintf(p, end - p, "USER_AGENT=%s",
|
||||
p += lws_snprintf(p, end - p, "USER_AGENT=%s",
|
||||
lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_USER_AGENT));
|
||||
p++;
|
||||
}
|
||||
if (uritok == WSI_TOKEN_POST_URI) {
|
||||
if (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE)) {
|
||||
env_array[n++] = p;
|
||||
p += snprintf(p, end - p, "CONTENT_TYPE=%s",
|
||||
p += lws_snprintf(p, end - p, "CONTENT_TYPE=%s",
|
||||
lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE));
|
||||
p++;
|
||||
}
|
||||
if (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_CONTENT_LENGTH)) {
|
||||
env_array[n++] = p;
|
||||
p += snprintf(p, end - p, "CONTENT_LENGTH=%s",
|
||||
p += lws_snprintf(p, end - p, "CONTENT_LENGTH=%s",
|
||||
lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_CONTENT_LENGTH));
|
||||
p++;
|
||||
}
|
||||
}
|
||||
env_array[n++] = p;
|
||||
p += snprintf(p, end - p, "SCRIPT_PATH=%s", exec_array[0]) + 1;
|
||||
p += lws_snprintf(p, end - p, "SCRIPT_PATH=%s", exec_array[0]) + 1;
|
||||
|
||||
while (mp_cgienv) {
|
||||
env_array[n++] = p;
|
||||
p += snprintf(p, end - p, "%s=%s", mp_cgienv->name,
|
||||
p += lws_snprintf(p, end - p, "%s=%s", mp_cgienv->name,
|
||||
mp_cgienv->value);
|
||||
lwsl_debug(" Applying mount-specific cgi env '%s'\n",
|
||||
env_array[n - 1]);
|
||||
|
@ -2431,7 +2451,7 @@ lws_access_log(struct lws *wsi)
|
|||
if (!p)
|
||||
p = "";
|
||||
|
||||
l = snprintf(ass, sizeof(ass) - 1, "%s %d %lu %s\n",
|
||||
l = lws_snprintf(ass, sizeof(ass) - 1, "%s %d %lu %s\n",
|
||||
wsi->access_log.header_log,
|
||||
wsi->access_log.response, wsi->access_log.sent, p);
|
||||
|
||||
|
@ -2475,7 +2495,7 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)
|
|||
if (len < 100)
|
||||
return 0;
|
||||
|
||||
buf += snprintf(buf, end - buf,
|
||||
buf += lws_snprintf(buf, end - buf,
|
||||
"{\n \"name\":\"%s\",\n"
|
||||
" \"port\":\"%d\",\n"
|
||||
" \"use_ssl\":\"%d\",\n"
|
||||
|
@ -2501,11 +2521,11 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)
|
|||
if (vh->mount_list) {
|
||||
const struct lws_http_mount *m = vh->mount_list;
|
||||
|
||||
buf += snprintf(buf, end - buf, ",\n \"mounts\":[");
|
||||
buf += lws_snprintf(buf, end - buf, ",\n \"mounts\":[");
|
||||
while (m) {
|
||||
if (!first)
|
||||
buf += snprintf(buf, end - buf, ",");
|
||||
buf += snprintf(buf, end - buf,
|
||||
buf += lws_snprintf(buf, end - buf, ",");
|
||||
buf += lws_snprintf(buf, end - buf,
|
||||
"\n {\n \"mountpoint\":\"%s\",\n"
|
||||
" \"origin\":\"%s%s\",\n"
|
||||
" \"cache_max_age\":\"%d\",\n"
|
||||
|
@ -2521,25 +2541,25 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)
|
|||
m->cache_revalidate,
|
||||
m->cache_intermediaries);
|
||||
if (m->def)
|
||||
buf += snprintf(buf, end - buf,
|
||||
buf += lws_snprintf(buf, end - buf,
|
||||
",\n \"default\":\"%s\"",
|
||||
m->def);
|
||||
buf += snprintf(buf, end - buf, "\n }");
|
||||
buf += lws_snprintf(buf, end - buf, "\n }");
|
||||
first = 0;
|
||||
m = m->mount_next;
|
||||
}
|
||||
buf += snprintf(buf, end - buf, "\n ]");
|
||||
buf += lws_snprintf(buf, end - buf, "\n ]");
|
||||
}
|
||||
|
||||
if (vh->protocols) {
|
||||
n = 0;
|
||||
first = 1;
|
||||
|
||||
buf += snprintf(buf, end - buf, ",\n \"ws-protocols\":[");
|
||||
buf += lws_snprintf(buf, end - buf, ",\n \"ws-protocols\":[");
|
||||
while (n < vh->count_protocols) {
|
||||
if (!first)
|
||||
buf += snprintf(buf, end - buf, ",");
|
||||
buf += snprintf(buf, end - buf,
|
||||
buf += lws_snprintf(buf, end - buf, ",");
|
||||
buf += lws_snprintf(buf, end - buf,
|
||||
"\n {\n \"%s\":{\n"
|
||||
" \"status\":\"ok\"\n }\n }"
|
||||
,
|
||||
|
@ -2547,10 +2567,10 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)
|
|||
first = 0;
|
||||
n++;
|
||||
}
|
||||
buf += snprintf(buf, end - buf, "\n ]");
|
||||
buf += lws_snprintf(buf, end - buf, "\n ]");
|
||||
}
|
||||
|
||||
buf += snprintf(buf, end - buf, "\n}");
|
||||
buf += lws_snprintf(buf, end - buf, "\n}");
|
||||
|
||||
return buf - orig;
|
||||
}
|
||||
|
@ -2569,7 +2589,7 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len)
|
|||
time_t t = time(NULL);
|
||||
int listening = 0, cgi_count = 0, n;
|
||||
|
||||
buf += snprintf(buf, end - buf, "{ "
|
||||
buf += lws_snprintf(buf, end - buf, "{ "
|
||||
"\"version\":\"%s\",\n"
|
||||
"\"uptime\":\"%ld\",\n"
|
||||
"\"cgi_spawned\":\"%d\",\n"
|
||||
|
@ -2589,19 +2609,19 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len)
|
|||
|
||||
m = getloadavg(d, 3);
|
||||
for (n = 0; n < m; n++) {
|
||||
buf += snprintf(buf, end - buf,
|
||||
buf += lws_snprintf(buf, end - buf,
|
||||
"\"l%d\":\"%.2f\",\n",
|
||||
n + 1, d[n]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
buf += snprintf(buf, end - buf, "\"pt\":[\n ");
|
||||
buf += lws_snprintf(buf, end - buf, "\"pt\":[\n ");
|
||||
for (n = 0; n < context->count_threads; n++) {
|
||||
pt = &context->pt[n];
|
||||
if (n)
|
||||
buf += snprintf(buf, end - buf, ",");
|
||||
buf += snprintf(buf, end - buf,
|
||||
buf += lws_snprintf(buf, end - buf, ",");
|
||||
buf += lws_snprintf(buf, end - buf,
|
||||
"\n {\n"
|
||||
" \"fds_count\":\"%d\",\n"
|
||||
" \"ah_pool_inuse\":\"%d\",\n"
|
||||
|
@ -2612,7 +2632,7 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len)
|
|||
pt->ah_wait_list_length);
|
||||
}
|
||||
|
||||
buf += snprintf(buf, end - buf, "], \"vhosts\":[\n ");
|
||||
buf += lws_snprintf(buf, end - buf, "], \"vhosts\":[\n ");
|
||||
|
||||
while (vh) {
|
||||
if (!first)
|
||||
|
@ -2625,7 +2645,7 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len)
|
|||
vh = vh->vhost_next;
|
||||
}
|
||||
|
||||
buf += snprintf(buf, end - buf, "],\n\"listen_wsi\":\"%d\"",
|
||||
buf += lws_snprintf(buf, end - buf, "],\n\"listen_wsi\":\"%d\"",
|
||||
listening);
|
||||
|
||||
#ifdef LWS_WITH_CGI
|
||||
|
@ -2640,10 +2660,10 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len)
|
|||
}
|
||||
}
|
||||
#endif
|
||||
buf += snprintf(buf, end - buf, ",\n \"cgi_alive\":\"%d\"\n ",
|
||||
buf += lws_snprintf(buf, end - buf, ",\n \"cgi_alive\":\"%d\"\n ",
|
||||
cgi_count);
|
||||
|
||||
buf += snprintf(buf, end - buf, "}\n ");
|
||||
buf += lws_snprintf(buf, end - buf, "}\n ");
|
||||
|
||||
return buf - orig;
|
||||
}
|
||||
|
|
|
@ -149,7 +149,7 @@ struct sockaddr_in;
|
|||
#define LWS_O_RDONLY _O_RDONLY
|
||||
|
||||
#if !defined(_MSC_VER) || _MSC_VER < 1900 /* Visual Studio 2015 already defines this in <stdio.h> */
|
||||
#define snprintf _snprintf
|
||||
#define lws_snprintf _snprintf
|
||||
#endif
|
||||
|
||||
#ifndef __func__
|
||||
|
@ -3567,6 +3567,20 @@ lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr,
|
|||
*/
|
||||
///@{
|
||||
|
||||
/**
|
||||
* lws_snprintf(): snprintf that truncates the returned length too
|
||||
*
|
||||
* \param str: destination buffer
|
||||
* \param size: bytes left in destination buffer
|
||||
* \param format: format string
|
||||
* \param ...: args for format
|
||||
*
|
||||
* This lets you correctly truncate buffers by concatenating lengths, if you
|
||||
* reach the limit the reported length doesn't exceed the limit.
|
||||
*/
|
||||
LWS_VISIBLE LWS_EXTERN int
|
||||
lws_snprintf(char *str, size_t size, const char *format, ...);
|
||||
|
||||
/**
|
||||
* lws_get_random(): fill a buffer with platform random data
|
||||
*
|
||||
|
|
|
@ -249,7 +249,7 @@ lws_plat_get_peer_simple(struct lws *wsi, char *name, int namelen)
|
|||
{
|
||||
unsigned char *p = wsi->sock->proto.tcp->remote_ip;
|
||||
|
||||
snprintf(name, namelen, "%u.%u.%u.%u", p[0], p[1], p[2], p[3]);
|
||||
lws_snprintf(name, namelen, "%u.%u.%u.%u", p[0], p[1], p[2], p[3]);
|
||||
|
||||
return name;
|
||||
}
|
||||
|
|
|
@ -327,7 +327,7 @@ lws_plat_plugins_init(struct lws_context * context, const char * const *d)
|
|||
|
||||
lwsl_notice(" %s\n", namelist[i]->d_name);
|
||||
|
||||
snprintf(path, sizeof(path) - 1, "%s/%s", *d,
|
||||
lws_snprintf(path, sizeof(path) - 1, "%s/%s", *d,
|
||||
namelist[i]->d_name);
|
||||
l = dlopen(path, RTLD_NOW);
|
||||
if (!l) {
|
||||
|
@ -337,7 +337,7 @@ lws_plat_plugins_init(struct lws_context * context, const char * const *d)
|
|||
goto bail;
|
||||
}
|
||||
/* we could open it, can we get his init function? */
|
||||
m = snprintf(path, sizeof(path) - 1, "init_%s",
|
||||
m = lws_snprintf(path, sizeof(path) - 1, "init_%s",
|
||||
namelist[i]->d_name + 3 /* snip lib... */);
|
||||
path[m - 3] = '\0'; /* snip the .so */
|
||||
initfunc = dlsym(l, path);
|
||||
|
@ -402,7 +402,7 @@ lws_plat_plugins_destroy(struct lws_context * context)
|
|||
|
||||
while (plugin) {
|
||||
p = plugin;
|
||||
m = snprintf(path, sizeof(path) - 1, "destroy_%s", plugin->name + 3);
|
||||
m = lws_snprintf(path, sizeof(path) - 1, "destroy_%s", plugin->name + 3);
|
||||
path[m - 3] = '\0';
|
||||
func = dlsym(plugin->l, path);
|
||||
if (!func) {
|
||||
|
|
|
@ -141,7 +141,7 @@ char *ets_strchr(const char *s, int c);
|
|||
#endif
|
||||
|
||||
#ifdef LWS_HAVE__SNPRINTF
|
||||
#define snprintf _snprintf
|
||||
#define lws_snprintf _snprintf
|
||||
#endif
|
||||
|
||||
#else /* not windows --> */
|
||||
|
|
12
lib/server.c
12
lib/server.c
|
@ -356,7 +356,7 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin,
|
|||
#endif
|
||||
int n;
|
||||
|
||||
snprintf(path, sizeof(path) - 1, "%s/%s", origin, uri);
|
||||
lws_snprintf(path, sizeof(path) - 1, "%s/%s", origin, uri);
|
||||
|
||||
#if !defined(_WIN32_WCE) && !defined(LWS_WITH_ESP8266)
|
||||
do {
|
||||
|
@ -377,12 +377,12 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin,
|
|||
}
|
||||
sym[len] = '\0';
|
||||
lwsl_debug("symlink %s -> %s\n", path, sym);
|
||||
snprintf(path, sizeof(path) - 1, "%s", sym);
|
||||
lws_snprintf(path, sizeof(path) - 1, "%s", sym);
|
||||
}
|
||||
#endif
|
||||
if ((S_IFMT & st.st_mode) == S_IFDIR) {
|
||||
lwsl_debug("default filename append to dir\n");
|
||||
snprintf(path, sizeof(path) - 1, "%s/%s/index.html",
|
||||
lws_snprintf(path, sizeof(path) - 1, "%s/%s/index.html",
|
||||
origin, uri);
|
||||
}
|
||||
|
||||
|
@ -729,7 +729,7 @@ lws_http_action(struct lws *wsi)
|
|||
else
|
||||
me = "unknown";
|
||||
|
||||
snprintf(wsi->access_log.header_log, l,
|
||||
lws_snprintf(wsi->access_log.header_log, l,
|
||||
"%s - - [%s] \"%s %s %s\"",
|
||||
pa, da, me, uri_ptr,
|
||||
hver[wsi->u.http.request_version]);
|
||||
|
@ -818,11 +818,11 @@ lws_http_action(struct lws *wsi)
|
|||
/* > at start indicates deal with by redirect */
|
||||
if (hit->origin_protocol == LWSMPRO_REDIR_HTTP ||
|
||||
hit->origin_protocol == LWSMPRO_REDIR_HTTPS)
|
||||
n = snprintf((char *)end, 256, "%s%s",
|
||||
n = lws_snprintf((char *)end, 256, "%s%s",
|
||||
oprot[hit->origin_protocol & 1],
|
||||
hit->origin);
|
||||
else
|
||||
n = snprintf((char *)end, 256,
|
||||
n = lws_snprintf((char *)end, 256,
|
||||
"%s%s%s/", oprot[lws_is_ssl(wsi)],
|
||||
lws_hdr_simple_ptr(wsi, WSI_TOKEN_HOST),
|
||||
uri_ptr);
|
||||
|
|
|
@ -39,7 +39,7 @@ lwsgs_handler_confirm(struct per_vhost_data__gs *vhd, struct lws *wsi,
|
|||
goto verf_fail;
|
||||
|
||||
u.username[0] = '\0';
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"select username,email,verified from users where token = '%s';",
|
||||
lws_sql_purify(esc, &cookie[6], sizeof(esc) - 1));
|
||||
if (sqlite3_exec(vhd->pdb, s, lwsgs_lookup_callback_user, &u, NULL) !=
|
||||
|
@ -55,7 +55,7 @@ lwsgs_handler_confirm(struct per_vhost_data__gs *vhd, struct lws *wsi,
|
|||
}
|
||||
|
||||
lwsl_notice("Verifying %s\n", u.username);
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"update users set verified=%d where username='%s';",
|
||||
LWSGS_VERIFIED_ACCEPTED,
|
||||
lws_sql_purify(esc, u.username, sizeof(esc) - 1));
|
||||
|
@ -74,7 +74,7 @@ lwsgs_handler_confirm(struct per_vhost_data__gs *vhd, struct lws *wsi,
|
|||
a.email = u.email;
|
||||
lws_callback_vhost_protocols(wsi, LWS_CALLBACK_GS_EVENT, &a, 0);
|
||||
|
||||
snprintf(pss->onward, sizeof(pss->onward),
|
||||
lws_snprintf(pss->onward, sizeof(pss->onward),
|
||||
"%s/post-verify-ok.html", vhd->email_confirm_url);
|
||||
|
||||
pss->login_expires = lws_now_secs() + vhd->timeout_absolute_secs;
|
||||
|
@ -98,7 +98,7 @@ verf_fail:
|
|||
lwsgs_get_sid_from_wsi(wsi, &pss->delete_session);
|
||||
pss->login_expires = 0;
|
||||
|
||||
snprintf(pss->onward, sizeof(pss->onward), "%s/post-verify-fail.html",
|
||||
lws_snprintf(pss->onward, sizeof(pss->onward), "%s/post-verify-fail.html",
|
||||
vhd->email_confirm_url);
|
||||
|
||||
return 1;
|
||||
|
@ -119,7 +119,7 @@ lwsgs_handler_forgot(struct per_vhost_data__gs *vhd, struct lws *wsi,
|
|||
goto forgot_fail;
|
||||
|
||||
u.username[0] = '\0';
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"select username,verified from users where verified=%d and "
|
||||
"token = '%s' and token_time != 0;",
|
||||
LWSGS_VERIFIED_ACCEPTED,
|
||||
|
@ -140,7 +140,7 @@ lwsgs_handler_forgot(struct per_vhost_data__gs *vhd, struct lws *wsi,
|
|||
|
||||
/* mark user as having validated forgot flow just now */
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"update users set token_time=0,last_forgot_validated=%lu "
|
||||
"where username='%s';",
|
||||
(unsigned long)lws_now_secs(),
|
||||
|
@ -157,7 +157,7 @@ lwsgs_handler_forgot(struct per_vhost_data__gs *vhd, struct lws *wsi,
|
|||
if (!a)
|
||||
a = "broken-forget-post-good-url";
|
||||
|
||||
snprintf(pss->onward, sizeof(pss->onward),
|
||||
lws_snprintf(pss->onward, sizeof(pss->onward),
|
||||
"%s/%s", vhd->email_confirm_url, a);
|
||||
|
||||
pss->login_expires = lws_now_secs() + vhd->timeout_absolute_secs;
|
||||
|
@ -185,7 +185,7 @@ forgot_fail:
|
|||
if (!a)
|
||||
a = "broken-forget-post-bad-url";
|
||||
|
||||
snprintf(pss->onward, sizeof(pss->onward), "%s/%s",
|
||||
lws_snprintf(pss->onward, sizeof(pss->onward), "%s/%s",
|
||||
vhd->email_confirm_url, a);
|
||||
|
||||
return 1;
|
||||
|
@ -227,7 +227,7 @@ lwsgs_handler_check(struct per_vhost_data__gs *vhd,
|
|||
goto reply;
|
||||
}
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"select username, email from users where %s = '%s';",
|
||||
colname[n], lws_sql_purify(esc, pc, sizeof(esc) - 1));
|
||||
if (sqlite3_exec(vhd->pdb, s, lwsgs_lookup_callback_user, &u, NULL) !=
|
||||
|
@ -320,7 +320,7 @@ lwsgs_handler_change_password(struct per_vhost_data__gs *vhd, struct lws *wsi,
|
|||
a.email = "";
|
||||
lws_callback_vhost_protocols(wsi, LWS_CALLBACK_GS_EVENT, &a, 0);
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"delete from users where username='%s';"
|
||||
"delete from sessions where username='%s';",
|
||||
lws_sql_purify(esc, u.username, sizeof(esc) - 1),
|
||||
|
@ -333,7 +333,7 @@ lwsgs_handler_change_password(struct per_vhost_data__gs *vhd, struct lws *wsi,
|
|||
|
||||
lwsl_notice("updating password hash\n");
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"update users set pwhash='%s', pwsalt='%s', "
|
||||
"last_forgot_validated=0 where username='%s';",
|
||||
u.pwhash.id, u.pwsalt.id,
|
||||
|
@ -385,13 +385,13 @@ lwsgs_handler_forgot_pw_form(struct per_vhost_data__gs *vhd,
|
|||
|
||||
u.username[0] = '\0';
|
||||
if (lws_spa_get_string(pss->spa, FGS_USERNAME))
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"select username,email "
|
||||
"from users where username = '%s';",
|
||||
lws_sql_purify(esc, lws_spa_get_string(pss->spa, FGS_USERNAME),
|
||||
sizeof(esc) - 1));
|
||||
else
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"select username,email "
|
||||
"from users where email = '%s';",
|
||||
lws_sql_purify(esc, lws_spa_get_string(pss->spa, FGS_EMAIL), sizeof(esc) - 1));
|
||||
|
@ -414,7 +414,7 @@ lwsgs_handler_forgot_pw_form(struct per_vhost_data__gs *vhd,
|
|||
return 1;
|
||||
}
|
||||
sha1_to_lwsgw_hash(sid_rand, &hash);
|
||||
n = snprintf(s, sizeof(s),
|
||||
n = lws_snprintf(s, sizeof(s),
|
||||
"From: Forgot Password Assistant Noreply <%s>\n"
|
||||
"To: %s <%s>\n"
|
||||
"Subject: Password reset request\n"
|
||||
|
@ -427,7 +427,7 @@ lwsgs_handler_forgot_pw_form(struct per_vhost_data__gs *vhd,
|
|||
lws_sql_purify(esc2, u.email, sizeof(esc2) - 1),
|
||||
lws_sql_purify(esc3, u.username, sizeof(esc3) - 1),
|
||||
lws_sql_purify(esc4, pss->ip, sizeof(esc4) - 1));
|
||||
snprintf(s + n, sizeof(s) -n,
|
||||
lws_snprintf(s + n, sizeof(s) -n,
|
||||
"%s/lwsgs-forgot?token=%s"
|
||||
"&good=%s"
|
||||
"&bad=%s\n\n"
|
||||
|
@ -446,7 +446,7 @@ lwsgs_handler_forgot_pw_form(struct per_vhost_data__gs *vhd,
|
|||
sizeof(esc3) - 1),
|
||||
vhd->email_contact_person);
|
||||
|
||||
snprintf((char *)buffer, sizeof(buffer) - 1,
|
||||
lws_snprintf((char *)buffer, sizeof(buffer) - 1,
|
||||
"insert into email(username, content)"
|
||||
" values ('%s', '%s');",
|
||||
lws_sql_purify(esc, u.username, sizeof(esc) - 1), s);
|
||||
|
@ -457,7 +457,7 @@ lwsgs_handler_forgot_pw_form(struct per_vhost_data__gs *vhd,
|
|||
return 1;
|
||||
}
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"update users set token='%s',token_time='%ld' where username='%s';",
|
||||
hash.id, (long)lws_now_secs(),
|
||||
lws_sql_purify(esc, u.username, sizeof(esc) - 1));
|
||||
|
@ -513,7 +513,7 @@ lwsgs_handler_register_form(struct per_vhost_data__gs *vhd,
|
|||
}
|
||||
|
||||
u.username[0] = '\0';
|
||||
snprintf(s, sizeof(s) - 1, "select username, email from users where email = '%s';",
|
||||
lws_snprintf(s, sizeof(s) - 1, "select username, email from users where email = '%s';",
|
||||
lws_sql_purify(esc, lws_spa_get_string(pss->spa, FGS_EMAIL),
|
||||
sizeof(esc) - 1));
|
||||
|
||||
|
@ -543,7 +543,7 @@ lwsgs_handler_register_form(struct per_vhost_data__gs *vhd,
|
|||
}
|
||||
sha1_to_lwsgw_hash(sid_rand, &hash);
|
||||
|
||||
snprintf((char *)buffer, sizeof(buffer) - 1,
|
||||
lws_snprintf((char *)buffer, sizeof(buffer) - 1,
|
||||
"insert into users(username,"
|
||||
" creation_time, ip, email, verified,"
|
||||
" pwhash, pwsalt, token, last_forgot_validated)"
|
||||
|
@ -561,7 +561,7 @@ lwsgs_handler_register_form(struct per_vhost_data__gs *vhd,
|
|||
return 1;
|
||||
}
|
||||
|
||||
snprintf(s, sizeof(s),
|
||||
lws_snprintf(s, sizeof(s),
|
||||
"From: Noreply <%s>\n"
|
||||
"To: %s <%s>\n"
|
||||
"Subject: Registration verification\n"
|
||||
|
@ -584,7 +584,7 @@ lwsgs_handler_register_form(struct per_vhost_data__gs *vhd,
|
|||
vhd->email_confirm_url, hash.id,
|
||||
vhd->email_contact_person);
|
||||
|
||||
snprintf((char *)buffer, sizeof(buffer) - 1,
|
||||
lws_snprintf((char *)buffer, sizeof(buffer) - 1,
|
||||
"insert into email(username, content) values ('%s', '%s');",
|
||||
lws_sql_purify(esc, lws_spa_get_string(pss->spa, FGS_USERNAME),
|
||||
sizeof(esc) - 1), s);
|
||||
|
|
|
@ -77,7 +77,7 @@ lwsgs_email_cb_get_body(struct lws_email *email, char *buf, int len)
|
|||
a.buf = buf;
|
||||
a.len = len;
|
||||
|
||||
snprintf(ss, sizeof(ss) - 1,
|
||||
lws_snprintf(ss, sizeof(ss) - 1,
|
||||
"select content from email where username='%s';",
|
||||
lws_sql_purify(esc, vhd->u.username, sizeof(esc) - 1));
|
||||
|
||||
|
@ -100,7 +100,7 @@ lwsgs_email_cb_sent(struct lws_email *email)
|
|||
char s[200], esc[50];
|
||||
|
||||
/* mark the user as having sent the verification email */
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"update users set verified=1 where username='%s' and verified==0;",
|
||||
lws_sql_purify(esc, vhd->u.username, sizeof(esc) - 1));
|
||||
if (sqlite3_exec(vhd->pdb, s, NULL, NULL, NULL) != SQLITE_OK) {
|
||||
|
@ -109,7 +109,7 @@ lwsgs_email_cb_sent(struct lws_email *email)
|
|||
return 1;
|
||||
}
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"delete from email where username='%s';",
|
||||
lws_sql_purify(esc, vhd->u.username, sizeof(esc) - 1));
|
||||
if (sqlite3_exec(vhd->pdb, s, NULL, NULL, NULL) != SQLITE_OK) {
|
||||
|
@ -132,7 +132,7 @@ lwsgs_email_cb_on_next(struct lws_email *email)
|
|||
/*
|
||||
* users not verified in 24h get deleted
|
||||
*/
|
||||
snprintf(s, sizeof(s) - 1, "delete from users where ((verified != %d)"
|
||||
lws_snprintf(s, sizeof(s) - 1, "delete from users where ((verified != %d)"
|
||||
" and (creation_time <= %lu));", LWSGS_VERIFIED_ACCEPTED,
|
||||
(unsigned long)now - vhd->timeout_email_secs);
|
||||
if (sqlite3_exec(vhd->pdb, s, NULL, NULL, NULL) != SQLITE_OK) {
|
||||
|
@ -141,7 +141,7 @@ lwsgs_email_cb_on_next(struct lws_email *email)
|
|||
return 1;
|
||||
}
|
||||
|
||||
snprintf(s, sizeof(s) - 1, "update users set token_time=0 where "
|
||||
lws_snprintf(s, sizeof(s) - 1, "update users set token_time=0 where "
|
||||
"(token_time <= %lu);",
|
||||
(unsigned long)now - vhd->timeout_email_secs);
|
||||
if (sqlite3_exec(vhd->pdb, s, NULL, NULL, NULL) != SQLITE_OK) {
|
||||
|
@ -151,14 +151,14 @@ lwsgs_email_cb_on_next(struct lws_email *email)
|
|||
}
|
||||
|
||||
vhd->u.username[0] = '\0';
|
||||
snprintf(s, sizeof(s) - 1, "select username from email limit 1;");
|
||||
lws_snprintf(s, sizeof(s) - 1, "select username from email limit 1;");
|
||||
if (sqlite3_exec(vhd->pdb, s, lwsgs_lookup_callback_user, &vhd->u,
|
||||
NULL) != SQLITE_OK) {
|
||||
lwsl_err("Unable to lookup user: %s\n", sqlite3_errmsg(vhd->pdb));
|
||||
return 1;
|
||||
}
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"select username, creation_time, email, ip, verified, token"
|
||||
" from users where username='%s' limit 1;",
|
||||
lws_sql_purify(esc, vhd->u.username, sizeof(esc) - 1));
|
||||
|
@ -207,7 +207,7 @@ lwsgs_subst(void *data, int index)
|
|||
a->pss->delete_session = sid;
|
||||
return NULL;
|
||||
}
|
||||
snprintf(s, sizeof(s) - 1, "select username,email "
|
||||
lws_snprintf(s, sizeof(s) - 1, "select username,email "
|
||||
"from users where username = '%s';",
|
||||
lws_sql_purify(esc, a->pss->result, sizeof(esc) - 1));
|
||||
if (sqlite3_exec(a->vhd->pdb, s, lwsgs_lookup_callback_user,
|
||||
|
@ -467,7 +467,7 @@ callback_generic_sessions(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
if (lws_hdr_copy(wsi, cookie, sizeof(cookie) - 1,
|
||||
WSI_TOKEN_HOST) < 0)
|
||||
return 1;
|
||||
snprintf(pss->onward, sizeof(pss->onward) - 1,
|
||||
lws_snprintf(pss->onward, sizeof(pss->onward) - 1,
|
||||
"%s%s%s", oprot[lws_is_ssl(wsi)],
|
||||
cookie, args->p);
|
||||
lwsl_notice("redirecting to ourselves with cookie refresh\n");
|
||||
|
@ -504,7 +504,7 @@ callback_generic_sessions(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
if (lwsgs_lookup_session(vhd, &sid, username, sizeof(username)))
|
||||
break;
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"select username, email from users where username='%s';",
|
||||
username);
|
||||
if (sqlite3_exec(vhd->pdb, s, lwsgs_lookup_callback_user, &u, NULL) !=
|
||||
|
|
|
@ -132,7 +132,7 @@ post_message(struct lws *wsi, struct per_vhost_data__gs_mb *vhd,
|
|||
vhd->gsp->callback(wsi, LWS_CALLBACK_SESSION_INFO,
|
||||
pss->pss_gs, &sinfo, 0);
|
||||
|
||||
snprintf((char *)s, sizeof(s) - 1,
|
||||
lws_snprintf((char *)s, sizeof(s) - 1,
|
||||
"insert into msg(time, username, email, ip, content)"
|
||||
" values (%lu, '%s', '%s', '%s', '%s');",
|
||||
(unsigned long)lws_now_secs(), sinfo.username, sinfo.email, sinfo.ip,
|
||||
|
@ -253,16 +253,16 @@ callback_messageboard(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
}
|
||||
|
||||
/* format in JSON */
|
||||
p += snprintf(p, end - p,
|
||||
p += lws_snprintf(p, end - p,
|
||||
"{\"idx\":\"%lu\",\"time\":\"%lu\",",
|
||||
m.idx, m.time);
|
||||
p += snprintf(p, end - p, " \"username\":\"%s\",",
|
||||
p += lws_snprintf(p, end - p, " \"username\":\"%s\",",
|
||||
lws_json_purify(e, m.username, sizeof(e)));
|
||||
p += snprintf(p, end - p, " \"email\":\"%s\",",
|
||||
p += lws_snprintf(p, end - p, " \"email\":\"%s\",",
|
||||
lws_json_purify(e, m.email, sizeof(e)));
|
||||
p += snprintf(p, end - p, " \"ip\":\"%s\",",
|
||||
p += lws_snprintf(p, end - p, " \"ip\":\"%s\",",
|
||||
lws_json_purify(e, m.ip, sizeof(e)));
|
||||
p += snprintf(p, end - p, " \"content\":\"%s\"}",
|
||||
p += lws_snprintf(p, end - p, " \"content\":\"%s\"}",
|
||||
lws_json_purify(e, m.content, sizeof(e)));
|
||||
|
||||
if (lws_write(wsi, (unsigned char *)start, p - start,
|
||||
|
|
|
@ -64,16 +64,16 @@ lwsgw_cookie_from_session(lwsgw_hash *sid, time_t expires, char **p, char *end)
|
|||
struct tm *tm = gmtime(&expires);
|
||||
time_t n = lws_now_secs();
|
||||
|
||||
*p += snprintf(*p, end - *p, "id=%s;Expires=", sid->id);
|
||||
*p += lws_snprintf(*p, end - *p, "id=%s;Expires=", sid->id);
|
||||
#ifdef WIN32
|
||||
*p += strftime(*p, end - *p, "%Y %H:%M %Z", tm);
|
||||
#else
|
||||
*p += strftime(*p, end - *p, "%F %H:%M %Z", tm);
|
||||
#endif
|
||||
*p += snprintf(*p, end - *p, ";path=/");
|
||||
*p += snprintf(*p, end - *p, ";Max-Age=%lu", (unsigned long)(expires - n));
|
||||
// *p += snprintf(*p, end - *p, ";secure");
|
||||
*p += snprintf(*p, end - *p, ";HttpOnly");
|
||||
*p += lws_snprintf(*p, end - *p, ";path=/");
|
||||
*p += lws_snprintf(*p, end - *p, ";Max-Age=%lu", (unsigned long)(expires - n));
|
||||
// *p += lws_snprintf(*p, end - *p, ";secure");
|
||||
*p += lws_snprintf(*p, end - *p, ";HttpOnly");
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -87,7 +87,7 @@ lwsgw_expire_old_sessions(struct per_vhost_data__gs *vhd)
|
|||
|
||||
vhd->last_session_expire = n;
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"delete from sessions where "
|
||||
"expire <= %lu;", (unsigned long)n);
|
||||
|
||||
|
@ -112,7 +112,7 @@ lwsgw_update_session(struct per_vhost_data__gs *vhd,
|
|||
else
|
||||
n += vhd->timeout_anon_absolute_secs;
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"update sessions set expire=%lu,username='%s' where name='%s';",
|
||||
(unsigned long)n,
|
||||
lws_sql_purify(esc, user, sizeof(esc)),
|
||||
|
@ -222,7 +222,7 @@ lwsgs_lookup_session(struct per_vhost_data__gs *vhd,
|
|||
|
||||
lwsgw_expire_old_sessions(vhd);
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"select username from sessions where name = '%s';",
|
||||
lws_sql_purify(esc, sid->id, sizeof(esc) - 1));
|
||||
|
||||
|
@ -300,7 +300,7 @@ lwsgs_lookup_user(struct per_vhost_data__gs *vhd,
|
|||
char s[150], esc[50];
|
||||
|
||||
u->username[0] = '\0';
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"select username,creation_time,ip,email,verified,pwhash,pwsalt,last_forgot_validated "
|
||||
"from users where username = '%s';",
|
||||
lws_sql_purify(esc, username, sizeof(esc) - 1));
|
||||
|
@ -340,7 +340,7 @@ lwsgs_new_session_id(struct per_vhost_data__gs *vhd,
|
|||
|
||||
sha1_to_lwsgw_hash(sid_rand, sid);
|
||||
|
||||
snprintf(s, sizeof(s) - 1,
|
||||
lws_snprintf(s, sizeof(s) - 1,
|
||||
"insert into sessions(name, username, expire) "
|
||||
"values ('%s', '%s', %u);",
|
||||
lws_sql_purify(esc, sid->id, sizeof(esc) - 1),
|
||||
|
@ -398,7 +398,7 @@ lwsgs_check_credentials(struct per_vhost_data__gs *vhd,
|
|||
lwsl_info("user %s found, salt '%s'\n", username, u.pwsalt.id);
|
||||
|
||||
/* [password in ascii][salt] */
|
||||
n = snprintf((char *)buffer, sizeof(buffer) - 1,
|
||||
n = lws_snprintf((char *)buffer, sizeof(buffer) - 1,
|
||||
"%s-%s-%s", password, vhd->confounder, u.pwsalt.id);
|
||||
|
||||
/* sha1sum of password + salt */
|
||||
|
@ -439,7 +439,7 @@ lwsgs_hash_password(struct per_vhost_data__gs *vhd,
|
|||
sha1_to_lwsgw_hash(sid_rand, &hash);
|
||||
|
||||
/* [password in ascii][salt] */
|
||||
n = snprintf((char *)buffer, sizeof(buffer) - 1,
|
||||
n = lws_snprintf((char *)buffer, sizeof(buffer) - 1,
|
||||
"%s-%s-%s", password, vhd->confounder, u->pwsalt.id);
|
||||
|
||||
/* sha1sum of password + salt */
|
||||
|
|
|
@ -95,7 +95,7 @@ scan_dir(struct lws *wsi, struct per_session_data__tbl_dir *pss)
|
|||
|
||||
lws_protocol_dir_kill_monitor(pss);
|
||||
|
||||
snprintf(path, sizeof(path) - 1, "%s/%s", pss->dir, pss->reldir);
|
||||
lws_snprintf(path, sizeof(path) - 1, "%s/%s", pss->dir, pss->reldir);
|
||||
//lwsl_notice("path = %s\n", path);
|
||||
|
||||
pss->event_req = malloc(sizeof(*pss->event_req));
|
||||
|
@ -119,7 +119,7 @@ scan_dir(struct lws *wsi, struct per_session_data__tbl_dir *pss)
|
|||
pss->p = pss->strings;
|
||||
|
||||
while (uv_fs_scandir_next(&req, &dent) != UV_EOF) {
|
||||
snprintf(path, sizeof(path) - 1, "%s/%s/%s", pss->dir, pss->reldir, dent.name);
|
||||
lws_snprintf(path, sizeof(path) - 1, "%s/%s/%s", pss->dir, pss->reldir, dent.name);
|
||||
|
||||
if (stat(path, &st)) {
|
||||
lwsl_info("unable to stat %s\n", path);
|
||||
|
@ -128,15 +128,15 @@ scan_dir(struct lws *wsi, struct per_session_data__tbl_dir *pss)
|
|||
f = malloc(sizeof(*f));
|
||||
f->next = NULL;
|
||||
f->name = pss->p;
|
||||
n = snprintf(pss->p, end - pss->p, "%s", dent.name);
|
||||
n = lws_snprintf(pss->p, end - pss->p, "%s", dent.name);
|
||||
pss->p += n + 1;
|
||||
f->uri = NULL;
|
||||
if ((S_IFMT & st.st_mode) == S_IFDIR) {
|
||||
n = snprintf(pss->p, end - pss->p, "=%s/%s", pss->reldir, dent.name);
|
||||
n = lws_snprintf(pss->p, end - pss->p, "=%s/%s", pss->reldir, dent.name);
|
||||
f->uri = pss->p;
|
||||
}
|
||||
if (lws_get_mimetype(dent.name, NULL)) {
|
||||
n = snprintf(pss->p, end - pss->p, "./serve/%s/%s", pss->reldir, dent.name);
|
||||
n = lws_snprintf(pss->p, end - pss->p, "./serve/%s/%s", pss->reldir, dent.name);
|
||||
f->uri = pss->p;
|
||||
}
|
||||
if (f->uri)
|
||||
|
@ -152,13 +152,13 @@ scan_dir(struct lws *wsi, struct per_session_data__tbl_dir *pss)
|
|||
icon = "📂";
|
||||
|
||||
f->icon = pss->p;
|
||||
n = snprintf(pss->p, end - pss->p, "%s", icon);
|
||||
n = lws_snprintf(pss->p, end - pss->p, "%s", icon);
|
||||
pss->p += n + 1;
|
||||
|
||||
f->date = pss->p;
|
||||
tm = gmtime(&st.st_mtime);
|
||||
strftime(da, sizeof(da), "%Y-%b-%d %H:%M:%S %z", tm);
|
||||
n = snprintf(pss->p, end - pss->p, "%s", da);
|
||||
n = lws_snprintf(pss->p, end - pss->p, "%s", da);
|
||||
pss->p += n + 1;
|
||||
|
||||
f->size = st.st_size;
|
||||
|
@ -244,11 +244,11 @@ callback_lws_table_dirlisting(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
if (scan_dir(wsi, pss))
|
||||
return 1;
|
||||
|
||||
p += snprintf(p, end - p, "{\"breadcrumbs\":[");
|
||||
p += lws_snprintf(p, end - p, "{\"breadcrumbs\":[");
|
||||
q = pss->reldir;
|
||||
|
||||
if (!q[0])
|
||||
p += snprintf(p, end - p, "{\"name\":\"top\"}");
|
||||
p += lws_snprintf(p, end - p, "{\"name\":\"top\"}");
|
||||
|
||||
while (*q) {
|
||||
|
||||
|
@ -280,48 +280,48 @@ callback_lws_table_dirlisting(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
q = q1 + 1;
|
||||
}
|
||||
if (!first)
|
||||
p += snprintf(p, end - p, ",");
|
||||
p += lws_snprintf(p, end - p, ",");
|
||||
else
|
||||
first = 0;
|
||||
|
||||
p += snprintf(p, end - p, "{\"name\":\"%s\"",
|
||||
p += lws_snprintf(p, end - p, "{\"name\":\"%s\"",
|
||||
lws_json_purify(e, s, sizeof(e)));
|
||||
if (*q) {
|
||||
w = s1;
|
||||
while (w[0] == '/' && w[1] == '/')
|
||||
w++;
|
||||
p += snprintf(p, end - p, ",\"url\":\"%s\"",
|
||||
p += lws_snprintf(p, end - p, ",\"url\":\"%s\"",
|
||||
lws_json_purify(e, w, sizeof(e)));
|
||||
}
|
||||
p += snprintf(p, end - p, "}");
|
||||
p += lws_snprintf(p, end - p, "}");
|
||||
if (!q1)
|
||||
break;
|
||||
}
|
||||
|
||||
p += snprintf(p, end - p, "],\"data\":[");
|
||||
p += lws_snprintf(p, end - p, "],\"data\":[");
|
||||
|
||||
f = pss->base.next;
|
||||
while (f) {
|
||||
/* format in JSON */
|
||||
p += snprintf(p, end - p, "{\"Icon\":\"%s\",",
|
||||
p += lws_snprintf(p, end - p, "{\"Icon\":\"%s\",",
|
||||
lws_json_purify(e, f->icon, sizeof(e)));
|
||||
p += snprintf(p, end - p, " \"Date\":\"%s\",",
|
||||
p += lws_snprintf(p, end - p, " \"Date\":\"%s\",",
|
||||
lws_json_purify(e, f->date, sizeof(e)));
|
||||
p += snprintf(p, end - p, " \"Size\":\"%ld\",",
|
||||
p += lws_snprintf(p, end - p, " \"Size\":\"%ld\",",
|
||||
f->size);
|
||||
if (f->uri)
|
||||
p += snprintf(p, end - p, " \"uri\":\"%s\",",
|
||||
p += lws_snprintf(p, end - p, " \"uri\":\"%s\",",
|
||||
lws_json_purify(e, f->uri, sizeof(e)));
|
||||
p += snprintf(p, end - p, " \"Name\":\"%s\"}",
|
||||
p += lws_snprintf(p, end - p, " \"Name\":\"%s\"}",
|
||||
lws_json_purify(e, f->name, sizeof(e)));
|
||||
|
||||
f = f->next;
|
||||
|
||||
if (f)
|
||||
p += snprintf(p, end - p, ",");
|
||||
p += lws_snprintf(p, end - p, ",");
|
||||
}
|
||||
|
||||
p += snprintf(p, end - p, "]}");
|
||||
p += lws_snprintf(p, end - p, "]}");
|
||||
|
||||
free_scan_dir(pss);
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ callback_dumb_increment(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
break;
|
||||
|
||||
case LWS_CALLBACK_SERVER_WRITEABLE:
|
||||
n = snprintf((char *)p, sizeof(buf) - LWS_PRE, "%d", pss->number++);
|
||||
n = lws_snprintf((char *)p, sizeof(buf) - LWS_PRE, "%d", pss->number++);
|
||||
m = lws_write(wsi, p, n, LWS_WRITE_TEXT);
|
||||
if (m < n) {
|
||||
lwsl_err("ERROR %d writing to di socket\n", n);
|
||||
|
|
|
@ -130,7 +130,7 @@ callback_lws_status(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
switch (pss->walk) {
|
||||
case WALK_INITIAL:
|
||||
n = LWS_WRITE_TEXT | LWS_WRITE_NO_FIN;;
|
||||
p += snprintf(p, end - p,
|
||||
p += lws_snprintf(p, end - p,
|
||||
"{ \"version\":\"%s\","
|
||||
" \"hostname\":\"%s\","
|
||||
" \"wsi\":\"%d\", \"conns\":[",
|
||||
|
@ -166,7 +166,7 @@ callback_lws_status(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
}
|
||||
|
||||
lws_get_peer_simple(pss->walk_next->wsi, ip, sizeof(ip));
|
||||
p += snprintf(p, end - p,
|
||||
p += lws_snprintf(p, end - p,
|
||||
"{\"peer\":\"%s\",\"time\":\"%ld\","
|
||||
"\"ua\":\"%s\"}",
|
||||
ip, (unsigned long)pss->walk_next->time_est,
|
||||
|
|
|
@ -147,16 +147,16 @@ callback_post_demo(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
"<table><tr><td>Name</td><td>Length</td><td>Value</td></tr>");
|
||||
|
||||
for (n = 0; n < ARRAY_SIZE(param_names); n++)
|
||||
p += snprintf((char *)p, end - p,
|
||||
p += lws_snprintf((char *)p, end - p,
|
||||
"<tr><td><b>%s</b></td><td>%d</td><td>%s</td></tr>",
|
||||
param_names[n],
|
||||
lws_spa_get_length(pss->spa, n),
|
||||
lws_spa_get_string(pss->spa, n));
|
||||
|
||||
p += snprintf((char *)p, end - p, "</table><br><b>filename:</b> %s, <b>length</b> %ld",
|
||||
p += lws_snprintf((char *)p, end - p, "</table><br><b>filename:</b> %s, <b>length</b> %ld",
|
||||
pss->filename, pss->file_length);
|
||||
|
||||
p += snprintf((char *)p, end - p, "</body></html>");
|
||||
p += lws_snprintf((char *)p, end - p, "</body></html>");
|
||||
pss->result_len = p - (unsigned char *)(pss->result + LWS_PRE);
|
||||
|
||||
n = LWS_PRE + 1024;
|
||||
|
|
|
@ -349,7 +349,7 @@ int main(int argc, char **argv)
|
|||
struct lws_client_connect_info i;
|
||||
|
||||
address = argv[optind];
|
||||
snprintf(ads_port, sizeof(ads_port), "%s:%u",
|
||||
lws_snprintf(ads_port, sizeof(ads_port), "%s:%u",
|
||||
address, port & 65535);
|
||||
memset(&i, 0, sizeof(i));
|
||||
i.context = context;
|
||||
|
|
|
@ -457,7 +457,7 @@ int main(int argc, char **argv)
|
|||
/* create client websockets using dumb increment protocol */
|
||||
|
||||
address = argv[optind];
|
||||
snprintf(ads_port, sizeof(ads_port), "%s:%u",
|
||||
lws_snprintf(ads_port, sizeof(ads_port), "%s:%u",
|
||||
address, port & 65535);
|
||||
lwsl_notice("Connecting to %s...\n", ads_port);
|
||||
memset(&i, 0, sizeof(i));
|
||||
|
|
|
@ -460,16 +460,16 @@ int callback_http(struct lws *wsi, enum lws_callback_reasons reason, void *user,
|
|||
"<table><tr><td>Name</td><td>Length</td><td>Value</td></tr>");
|
||||
|
||||
for (n = 0; n < ARRAY_SIZE(param_names); n++)
|
||||
p += snprintf((char *)p, end - p,
|
||||
p += lws_snprintf((char *)p, end - p,
|
||||
"<tr><td><b>%s</b></td><td>%d</td><td>%s</td></tr>",
|
||||
param_names[n],
|
||||
lws_spa_get_length(pss->spa, n),
|
||||
lws_spa_get_string(pss->spa, n));
|
||||
|
||||
p += snprintf((char *)p, end - p, "</table><br><b>filename:</b> %s, <b>length</b> %ld",
|
||||
p += lws_snprintf((char *)p, end - p, "</table><br><b>filename:</b> %s, <b>length</b> %ld",
|
||||
pss->filename, pss->file_length);
|
||||
|
||||
p += snprintf((char *)p, end - p, "</body></html>");
|
||||
p += lws_snprintf((char *)p, end - p, "</body></html>");
|
||||
pss->result_len = p - (unsigned char *)(pss->result + LWS_PRE);
|
||||
|
||||
p = buffer + LWS_PRE;
|
||||
|
|
|
@ -42,7 +42,7 @@ update_status(struct lws *wsi, struct per_session_data__lws_status *pss)
|
|||
struct tm tm;
|
||||
#endif
|
||||
|
||||
p += snprintf(p, 512, " { %s, \"wsi\":\"%d\", \"conns\":[",
|
||||
p += lws_snprintf(p, 512, " { %s, \"wsi\":\"%d\", \"conns\":[",
|
||||
server_info, live_wsi);
|
||||
|
||||
/* render the list */
|
||||
|
@ -67,7 +67,7 @@ update_status(struct lws *wsi, struct per_session_data__lws_status *pss)
|
|||
if (subsequent)
|
||||
*p++ = ',';
|
||||
subsequent = 1;
|
||||
p += snprintf(p, sizeof(cache) - (p - start) - 1,
|
||||
p += lws_snprintf(p, sizeof(cache) - (p - start) - 1,
|
||||
"{\"peer\":\"%s\",\"time\":\"%s\","
|
||||
"\"ua\":\"%s\"}",
|
||||
(*pp)->ip, date, (*pp)->user_agent);
|
||||
|
|
Loading…
Add table
Reference in a new issue