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:
Andy Green 2016-09-15 02:22:57 +08:00
parent c15714f35a
commit a496700b3a
35 changed files with 367 additions and 267 deletions

View file

@ -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>

View file

@ -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>

View file

@ -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&#160;</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">&#160;</td></tr>
<tr class="memitem:ga58f906c6be0ca80efd813f694569dd4a"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</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">&#160;</td></tr>
<tr class="memitem:gace5171b1dbbc03ec89a98f8afdb5c9af"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT&#160;</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&#160;</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 *&#160;</td>
<td class="paramname"><em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="libwebsockets_8h.html">lib/libwebsockets.h</a>&gt;</code></p>
<p><a class="el" href="group__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>

View file

@ -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 ]
];

View file

@ -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>&#160; {</div><div class="line"><a name="l04048"></a><span class="lineno"> 4048</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l04049"></a><span class="lineno"> 4049</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l04050"></a><span class="lineno"> 4050</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l04051"></a><span class="lineno"> 4051</span>&#160; <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>&#160; <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>&#160; <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>&#160; <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>&#160; <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>&#160; <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>&#160;};</div><div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h: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>&#160; {</div><div class="line"><a name="l04062"></a><span class="lineno"> 4062</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l04063"></a><span class="lineno"> 4063</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l04064"></a><span class="lineno"> 4064</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l04065"></a><span class="lineno"> 4065</span>&#160; <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>&#160; <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>&#160; <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>&#160; <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>&#160; <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>&#160; <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>&#160;};</div><div class="ttc" id="group__smtp_html_gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"><div class="ttname"><a href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h: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>

View file

@ -868,6 +868,8 @@ LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b
<tr class="separator:gad01014fed09759741b6d23afccfdaacc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga869d8bdffb0f2a7ce08e3ce10d6be3d8"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</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">&#160;</td></tr>
<tr class="memitem:ga9f37d0e357de2ab4170723fcdb665d21"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</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">&#160;</td></tr>
<tr class="memitem:ga58f906c6be0ca80efd813f694569dd4a"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</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">&#160;</td></tr>
<tr class="memitem:gace5171b1dbbc03ec89a98f8afdb5c9af"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">lws_daemonize</a> (const char *_lock_path)</td></tr>

View file

@ -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

View file

@ -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';

View file

@ -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],

View file

@ -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]
};

View file

@ -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]
};

View file

@ -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]
};

View file

@ -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],

View file

@ -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;
}

View file

@ -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;

View file

@ -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

View file

@ -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;
}

View file

@ -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
*

View file

@ -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;
}

View file

@ -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) {

View file

@ -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 --> */

View file

@ -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);

View file

@ -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);

View file

@ -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) !=

View file

@ -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,

View file

@ -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 */

View file

@ -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 = "&#x1f4c2;";
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);

View file

@ -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);

View file

@ -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,

View file

@ -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;

View file

@ -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;

View file

@ -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));

View file

@ -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;

View file

@ -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);