docs: remove in-tree version

It's a nice idea having them in-tree, but it leaves too much jumk
in the patches.

The up-to-date api for master will continue to be here

https://libwebsockets.org/lws-api-doc-master/html/index.html
This commit is contained in:
Andy Green 2017-02-27 12:54:58 +08:00
parent ab89246467
commit 6d0c96e06a
194 changed files with 0 additions and 28859 deletions

View file

@ -1,108 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Data Structures</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('annotated.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Data Structures</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__cgi__args.html" target="_self">lws_cgi_args</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__client__connect__info.html" target="_self">lws_client_connect_info</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__context__creation__info.html" target="_self">lws_context_creation_info</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__email.html" target="_self">lws_email</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__ext__option__arg.html" target="_self">lws_ext_option_arg</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__ext__options.html" target="_self">lws_ext_options</a></td><td class="desc"></td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__extension.html" target="_self">lws_extension</a></td><td class="desc"></td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__gs__event__args.html" target="_self">lws_gs_event_args</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__http__mount.html" target="_self">lws_http_mount</a></td><td class="desc"></td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__plat__file__ops.html" target="_self">lws_plat_file_ops</a></td><td class="desc"></td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__plugin.html" target="_self">lws_plugin</a></td><td class="desc"></td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__plugin__capability.html" target="_self">lws_plugin_capability</a></td><td class="desc"></td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__polarssl__context.html" target="_self">lws_polarssl_context</a></td><td class="desc"></td></tr>
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__pollargs.html" target="_self">lws_pollargs</a></td><td class="desc"></td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__pollfd.html" target="_self">lws_pollfd</a></td><td class="desc"></td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__process__html__args.html" target="_self">lws_process_html_args</a></td><td class="desc"></td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__process__html__state.html" target="_self">lws_process_html_state</a></td><td class="desc"></td></tr>
<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__protocol__vhost__options.html" target="_self">lws_protocol_vhost_options</a></td><td class="desc"></td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__protocols.html" target="_self">lws_protocols</a></td><td class="desc"></td></tr>
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__session__info.html" target="_self">lws_session_info</a></td><td class="desc"></td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__token__limits.html" target="_self">lws_token_limits</a></td><td class="desc"></td></tr>
<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__tokens.html" target="_self">lws_tokens</a></td><td class="desc"></td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlwsgw__hash.html" target="_self">lwsgw_hash</a></td><td class="desc"></td></tr>
<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlwsgw__hash__bin.html" target="_self">lwsgw_hash_bin</a></td><td class="desc"></td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpollfd.html" target="_self">pollfd</a></td><td class="desc"></td></tr>
<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtimer__mapping.html" target="_self">timer_mapping</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,29 +0,0 @@
var annotated_dup =
[
[ "lws_cgi_args", "structlws__cgi__args.html", "structlws__cgi__args" ],
[ "lws_client_connect_info", "structlws__client__connect__info.html", "structlws__client__connect__info" ],
[ "lws_context_creation_info", "structlws__context__creation__info.html", "structlws__context__creation__info" ],
[ "lws_email", "structlws__email.html", "structlws__email" ],
[ "lws_ext_option_arg", "structlws__ext__option__arg.html", "structlws__ext__option__arg" ],
[ "lws_ext_options", "structlws__ext__options.html", "structlws__ext__options" ],
[ "lws_extension", "structlws__extension.html", "structlws__extension" ],
[ "lws_gs_event_args", "structlws__gs__event__args.html", "structlws__gs__event__args" ],
[ "lws_http_mount", "structlws__http__mount.html", "structlws__http__mount" ],
[ "lws_plat_file_ops", "structlws__plat__file__ops.html", "structlws__plat__file__ops" ],
[ "lws_plugin", "structlws__plugin.html", "structlws__plugin" ],
[ "lws_plugin_capability", "structlws__plugin__capability.html", "structlws__plugin__capability" ],
[ "lws_polarssl_context", "structlws__polarssl__context.html", "structlws__polarssl__context" ],
[ "lws_pollargs", "structlws__pollargs.html", "structlws__pollargs" ],
[ "lws_pollfd", "structlws__pollfd.html", "structlws__pollfd" ],
[ "lws_process_html_args", "structlws__process__html__args.html", "structlws__process__html__args" ],
[ "lws_process_html_state", "structlws__process__html__state.html", "structlws__process__html__state" ],
[ "lws_protocol_vhost_options", "structlws__protocol__vhost__options.html", "structlws__protocol__vhost__options" ],
[ "lws_protocols", "structlws__protocols.html", "structlws__protocols" ],
[ "lws_session_info", "structlws__session__info.html", "structlws__session__info" ],
[ "lws_token_limits", "structlws__token__limits.html", "structlws__token__limits" ],
[ "lws_tokens", "structlws__tokens.html", "structlws__tokens" ],
[ "lwsgw_hash", "structlwsgw__hash.html", "structlwsgw__hash" ],
[ "lwsgw_hash_bin", "structlwsgw__hash__bin.html", "structlwsgw__hash__bin" ],
[ "pollfd", "structpollfd.html", "structpollfd" ],
[ "timer_mapping", "structtimer__mapping.html", "structtimer__mapping" ]
];

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

View file

@ -1,94 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Data Structure Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classes.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Data Structure Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_t">t</a></div>
<table class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="structlws__ext__options.html">lws_ext_options</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__polarssl__context.html">lws_polarssl_context</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__session__info.html">lws_session_info</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
</td></tr>
<tr><td valign="top"><a class="el" href="structlws__extension.html">lws_extension</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__pollargs.html">lws_pollargs</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__token__limits.html">lws_token_limits</a>&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structlws__cgi__args.html">lws_cgi_args</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__gs__event__args.html">lws_gs_event_args</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__pollfd.html">lws_pollfd</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__tokens.html">lws_tokens</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtimer__mapping.html">timer_mapping</a>&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__http__mount.html">lws_http_mount</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__process__html__args.html">lws_process_html_args</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlwsgw__hash.html">lwsgw_hash</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="structlws__context__creation__info.html">lws_context_creation_info</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__plat__file__ops.html">lws_plat_file_ops</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__process__html__state.html">lws_process_html_state</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlwsgw__hash__bin.html">lwsgw_hash_bin</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="structlws__email.html">lws_email</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__plugin.html">lws_plugin</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
</td><td></td></tr>
<tr><td valign="top"><a class="el" href="structlws__ext__option__arg.html">lws_ext_option_arg</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__plugin__capability.html">lws_plugin_capability</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlws__protocols.html">lws_protocols</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="structpollfd.html">pollfd</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_t">t</a></div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,134 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: lws_conn Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classlws__conn.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Data Fields</a> </div>
<div class="headertitle">
<div class="title">lws_conn Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for lws_conn:</div>
<div class="dyncontent">
<div class="center">
<img src="classlws__conn.png" usemap="#lws_5Fconn_map" alt=""/>
<map id="lws_5Fconn_map" name="lws_conn_map">
<area href="classlws__conn__listener.html" alt="lws_conn_listener" shape="rect" coords="0,56,113,80"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:afe73e53da2070f659ad6e7fd14878c7e"><td class="memItemLeft" align="right" valign="top"><a id="afe73e53da2070f659ad6e7fd14878c7e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_wsi</b> (struct lws *_wsi)</td></tr>
<tr class="separator:afe73e53da2070f659ad6e7fd14878c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef530971372f55e862f2e09bc98f1029"><td class="memItemLeft" align="right" valign="top"><a id="aef530971372f55e862f2e09bc98f1029"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>actual_onRX</b> (Socket *s)</td></tr>
<tr class="separator:aef530971372f55e862f2e09bc98f1029"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba42bdd763a36c3a331b62410969b6ba"><td class="memItemLeft" align="right" valign="top"><a id="aba42bdd763a36c3a331b62410969b6ba"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>onRX</b> (Socket *s)</td></tr>
<tr class="separator:aba42bdd763a36c3a331b62410969b6ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fb477fad697ce1faf8ec7a884ea6c6b"><td class="memItemLeft" align="right" valign="top"><a id="a4fb477fad697ce1faf8ec7a884ea6c6b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>onError</b> (Socket *s, socket_error_t err)</td></tr>
<tr class="separator:a4fb477fad697ce1faf8ec7a884ea6c6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49f87612c6a3098cd1587f8382b8c85b"><td class="memItemLeft" align="right" valign="top"><a id="a49f87612c6a3098cd1587f8382b8c85b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>onDisconnect</b> (TCPStream *s)</td></tr>
<tr class="separator:a49f87612c6a3098cd1587f8382b8c85b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad7d2406618e560114650a91c729a596"><td class="memItemLeft" align="right" valign="top"><a id="aad7d2406618e560114650a91c729a596"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>onSent</b> (Socket *s, uint16_t len)</td></tr>
<tr class="separator:aad7d2406618e560114650a91c729a596"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accc57581269c554291dac840ed135231"><td class="memItemLeft" align="right" valign="top"><a id="accc57581269c554291dac840ed135231"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>serialized_writeable</b> (struct lws *wsi)</td></tr>
<tr class="separator:accc57581269c554291dac840ed135231"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a5cad031b6b779da42b37f4007cae541b"><td class="memItemLeft" align="right" valign="top"><a id="a5cad031b6b779da42b37f4007cae541b"></a>
TCPStream *&#160;</td><td class="memItemRight" valign="bottom"><b>ts</b></td></tr>
<tr class="separator:a5cad031b6b779da42b37f4007cae541b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e504bd449ffb51c7ab1d2126613ebc3"><td class="memItemLeft" align="right" valign="top"><a id="a7e504bd449ffb51c7ab1d2126613ebc3"></a>
struct lws *&#160;</td><td class="memItemRight" valign="bottom"><b>wsi</b></td></tr>
<tr class="separator:a7e504bd449ffb51c7ab1d2126613ebc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e1fdd467b7f66fc438dc70ae979b938"><td class="memItemLeft" align="right" valign="top"><a id="a8e1fdd467b7f66fc438dc70ae979b938"></a>
char&#160;</td><td class="memItemRight" valign="bottom"><b>writeable</b></td></tr>
<tr class="separator:a8e1fdd467b7f66fc438dc70ae979b938"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5226010afdf5421f279454e5cbb282a4"><td class="memItemLeft" align="right" valign="top"><a id="a5226010afdf5421f279454e5cbb282a4"></a>
char&#160;</td><td class="memItemRight" valign="bottom"><b>awaiting_on_writeable</b></td></tr>
<tr class="separator:a5226010afdf5421f279454e5cbb282a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>lib/<a class="el" href="libwebsockets_8h_source.html">libwebsockets.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classlws__conn.html">lws_conn</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,15 +0,0 @@
var classlws__conn =
[
[ "lws_conn", "classlws__conn.html#af0e213af91d53d1e1aef70ed7816191f", null ],
[ "actual_onRX", "classlws__conn.html#aef530971372f55e862f2e09bc98f1029", null ],
[ "onDisconnect", "classlws__conn.html#a49f87612c6a3098cd1587f8382b8c85b", null ],
[ "onError", "classlws__conn.html#a4fb477fad697ce1faf8ec7a884ea6c6b", null ],
[ "onRX", "classlws__conn.html#aba42bdd763a36c3a331b62410969b6ba", null ],
[ "onSent", "classlws__conn.html#aad7d2406618e560114650a91c729a596", null ],
[ "serialized_writeable", "classlws__conn.html#accc57581269c554291dac840ed135231", null ],
[ "set_wsi", "classlws__conn.html#afe73e53da2070f659ad6e7fd14878c7e", null ],
[ "awaiting_on_writeable", "classlws__conn.html#a5226010afdf5421f279454e5cbb282a4", null ],
[ "ts", "classlws__conn.html#a5cad031b6b779da42b37f4007cae541b", null ],
[ "writeable", "classlws__conn.html#a8e1fdd467b7f66fc438dc70ae979b938", null ],
[ "wsi", "classlws__conn.html#a7e504bd449ffb51c7ab1d2126613ebc3", null ]
];

Binary file not shown.

Before

Width:  |  Height:  |  Size: 480 B

View file

@ -1,266 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: lws_conn_listener Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classlws__conn__listener.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Data Fields</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> </div>
<div class="headertitle">
<div class="title">lws_conn_listener Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for lws_conn_listener:</div>
<div class="dyncontent">
<div class="center">
<img src="classlws__conn__listener.png" usemap="#lws_5Fconn_5Flistener_map" alt=""/>
<map id="lws_5Fconn_5Flistener_map" name="lws_conn_listener_map">
<area href="classlws__conn.html" alt="lws_conn" shape="rect" coords="0,0,113,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3c19c314f2ea2b758407b4041e4c4010"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlws__conn__listener.html#a3c19c314f2ea2b758407b4041e4c4010">start</a> (const uint16_t port)</td></tr>
<tr class="separator:a3c19c314f2ea2b758407b4041e4c4010"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:aa7076f8965bb9df268798fd9a0283374"><td class="memItemLeft" align="right" valign="top"><a id="aa7076f8965bb9df268798fd9a0283374"></a>
TCPListener&#160;</td><td class="memItemRight" valign="bottom"><b>srv</b></td></tr>
<tr class="separator:aa7076f8965bb9df268798fd9a0283374"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ab3bc839797ba14554ac70ad09fd155c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlws__conn__listener.html#ab3bc839797ba14554ac70ad09fd155c7">onRX</a> (Socket *s)</td></tr>
<tr class="separator:ab3bc839797ba14554ac70ad09fd155c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a271ac4f8ad5770b3bc96cce5b265b72c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlws__conn__listener.html#a271ac4f8ad5770b3bc96cce5b265b72c">onError</a> (Socket *s, socket_error_t err)</td></tr>
<tr class="separator:a271ac4f8ad5770b3bc96cce5b265b72c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab432a456c3a961ec562e06141897806b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlws__conn__listener.html#ab432a456c3a961ec562e06141897806b">onIncoming</a> (TCPListener *s, void *impl)</td></tr>
<tr class="separator:ab432a456c3a961ec562e06141897806b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab3c7bf550a8f15d20f1e093125c2e60"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlws__conn__listener.html#aab3c7bf550a8f15d20f1e093125c2e60">onDisconnect</a> (TCPStream *s)</td></tr>
<tr class="separator:aab3c7bf550a8f15d20f1e093125c2e60"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aab3c7bf550a8f15d20f1e093125c2e60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab3c7bf550a8f15d20f1e093125c2e60">&sect;&nbsp;</a></span>onDisconnect()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void lws_conn_listener::onDisconnect </td>
<td>(</td>
<td class="paramtype">TCPStream *&#160;</td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>disconnection </p>
</div>
</div>
<a id="a271ac4f8ad5770b3bc96cce5b265b72c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a271ac4f8ad5770b3bc96cce5b265b72c">&sect;&nbsp;</a></span>onError()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void lws_conn_listener::onError </td>
<td>(</td>
<td class="paramtype">Socket *&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">socket_error_t&#160;</td>
<td class="paramname"><em>err</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>if error occurs </p>
</div>
</div>
<a id="ab432a456c3a961ec562e06141897806b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab432a456c3a961ec562e06141897806b">&sect;&nbsp;</a></span>onIncoming()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void lws_conn_listener::onIncoming </td>
<td>(</td>
<td class="paramtype">TCPListener *&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>impl</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>new connection </p>
</div>
</div>
<a id="ab3bc839797ba14554ac70ad09fd155c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3bc839797ba14554ac70ad09fd155c7">&sect;&nbsp;</a></span>onRX()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void lws_conn_listener::onRX </td>
<td>(</td>
<td class="paramtype">Socket *&#160;</td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>incoming data ready </p>
</div>
</div>
<a id="a3c19c314f2ea2b758407b4041e4c4010"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c19c314f2ea2b758407b4041e4c4010">&sect;&nbsp;</a></span>start()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lws_conn_listener::start </td>
<td>(</td>
<td class="paramtype">const uint16_t&#160;</td>
<td class="paramname"><em>port</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>start listening </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>lib/<a class="el" href="libwebsockets_8h_source.html">libwebsockets.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classlws__conn__listener.html">lws_conn_listener</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,10 +0,0 @@
var classlws__conn__listener =
[
[ "lws_conn_listener", "classlws__conn__listener.html#ac82c8696a36a2f386b4094490d300dee", null ],
[ "onDisconnect", "classlws__conn__listener.html#aab3c7bf550a8f15d20f1e093125c2e60", null ],
[ "onError", "classlws__conn__listener.html#a271ac4f8ad5770b3bc96cce5b265b72c", null ],
[ "onIncoming", "classlws__conn__listener.html#ab432a456c3a961ec562e06141897806b", null ],
[ "onRX", "classlws__conn__listener.html#ab3bc839797ba14554ac70ad09fd155c7", null ],
[ "start", "classlws__conn__listener.html#a3c19c314f2ea2b758407b4041e4c4010", null ],
[ "srv", "classlws__conn__listener.html#aa7076f8965bb9df268798fd9a0283374", null ]
];

Binary file not shown.

Before

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

View file

@ -1,86 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Deprecated List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('deprecated.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Deprecated List </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><dl class="reflist">
<dt><a class="anchor" id="_deprecated000002"></a>Global <a class="el" href="group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3">lws_client_connect</a> (struct lws_context *clients, const char *address, int port, int ssl_connection, const char *path, const char *host, const char *origin, const char *protocol, int ietf_version_or_minus_one) LWS_WARN_DEPRECATED</dt>
<dd>DEPRECATED use lws_client_connect_via_info </dd>
<dt><a class="anchor" id="_deprecated000003"></a>Global <a class="el" href="group__client.html#gac6a8558b4410961a880241c2ac1271e2">lws_client_connect_extended</a> (struct lws_context *clients, const char *address, int port, int ssl_connection, const char *path, const char *host, const char *origin, const char *protocol, int ietf_version_or_minus_one, void *userdata) LWS_WARN_DEPRECATED</dt>
<dd>DEPRECATED use lws_client_connect_via_info </dd>
<dt><a class="anchor" id="_deprecated000001"></a>Global <a class="el" href="group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c">lws_vhost_get</a> (struct lws *wsi) LWS_WARN_DEPRECATED</dt>
<dd>deprecated: use <a class="el" href="group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932">lws_get_vhost()</a> </dd>
</dl>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,85 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: lib Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('dir_97aefd0d527b934f1d99a682da8fe6a9.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">lib Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:libwebsockets_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="libwebsockets_8h.html">libwebsockets.h</a> <a href="libwebsockets_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,4 +0,0 @@
var dir_97aefd0d527b934f1d99a682da8fe6a9 =
[
[ "libwebsockets.h", "libwebsockets_8h.html", "libwebsockets_8h" ]
];

View file

@ -1,79 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: doc-assets Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('dir_e8731c315d086bdbd43ee7d72e0ed36b.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">doc-assets Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_e8731c315d086bdbd43ee7d72e0ed36b.html">doc-assets</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 746 B

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View file

@ -1,97 +0,0 @@
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
function updateStripes()
{
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
}
function toggleLevel(level)
{
$('table.directory tr').each(function() {
var l = this.id.split('_').length-1;
var i = $('#img'+this.id.substring(3));
var a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
a.html('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(this).show();
} else {
$(this).hide();
}
});
updateStripes();
}
function toggleFolder(id)
{
// the clicked row
var currentRow = $('#row_'+id);
// all rows after the clicked row
var rows = currentRow.nextAll("tr");
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
var childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
currentRowSpans.filter(".arrow").html('&#9658;');
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
currentRowSpans.filter(".arrow").html('&#9660;');
// replace down arrows by right arrows for child rows
var childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
childRowsSpans.filter(".arrow").html('&#9658;');
childRows.show(); //show all children
}
updateStripes();
}
function toggleInherit(id)
{
var rows = $('tr.inherit.'+id);
var img = $('tr.inherit_header.'+id+' img');
var src = $(img).attr('src');
if (rows.filter(':first').is(':visible')===true) {
rows.css('display','none');
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
rows.css('display','table-row'); // using show() causes jump in firefox
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}

View file

@ -1,84 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('files.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">File List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_97aefd0d527b934f1d99a682da8fe6a9.html" target="_self">lib</a></td><td class="desc"></td></tr>
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="libwebsockets_8h_source.html"><span class="icondoc"></span></a><a class="el" href="libwebsockets_8h.html" target="_self">libwebsockets.h</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,4 +0,0 @@
var files =
[
[ "lib", "dir_97aefd0d527b934f1d99a682da8fe6a9.html", "dir_97aefd0d527b934f1d99a682da8fe6a9" ]
];

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 597 B

View file

@ -1,633 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('functions.html','');});
</script>
<div id="doc-content">
<div class="contents">
<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div>
<h3><a id="index__"></a>- _ -</h3><ul>
<li>_unused
: <a class="el" href="structlws__client__connect__info.html#ad47f50d1633dc5df74548606c9a66d73">lws_client_connect_info</a>
, <a class="el" href="structlws__context__creation__info.html#afce3b59950eca3203faa07381bbed5d7">lws_context_creation_info</a>
, <a class="el" href="structlws__http__mount.html#a78d58848eed7b544ae83f719abdbe4b6">lws_http_mount</a>
</li>
</ul>
<h3><a id="index_a"></a>- a -</h3><ul>
<li>address
: <a class="el" href="structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502">lws_client_connect_info</a>
</li>
<li>api_magic
: <a class="el" href="structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a">lws_plugin_capability</a>
</li>
<li>auth_mask
: <a class="el" href="structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477">lws_http_mount</a>
</li>
</ul>
<h3><a id="index_b"></a>- b -</h3><ul>
<li>basic_auth_login_file
: <a class="el" href="structlws__http__mount.html#a2f6c7dbc2d714b7259c67b7744d4ff98">lws_http_mount</a>
</li>
<li>bin
: <a class="el" href="structlwsgw__hash__bin.html#ac92f50d9471058525d110597a4e0de6b">lwsgw_hash_bin</a>
</li>
</ul>
<h3><a id="index_c"></a>- c -</h3><ul>
<li>ca
: <a class="el" href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af">lws_polarssl_context</a>
</li>
<li>cache_intermediaries
: <a class="el" href="structlws__http__mount.html#aabec1a326780aafe11b977000983be0c">lws_http_mount</a>
</li>
<li>cache_max_age
: <a class="el" href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146">lws_http_mount</a>
</li>
<li>cache_reusable
: <a class="el" href="structlws__http__mount.html#a8316dd183ffbef50419a5a4968d35d84">lws_http_mount</a>
</li>
<li>cache_revalidate
: <a class="el" href="structlws__http__mount.html#ae137203040c6153694bd88a708da5395">lws_http_mount</a>
</li>
<li>callback
: <a class="el" href="structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af">lws_extension</a>
, <a class="el" href="structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d">lws_protocols</a>
</li>
<li>caps
: <a class="el" href="structlws__plugin.html#ac7f1fdfe8cf8a21f8ee9720c21934a3f">lws_plugin</a>
</li>
<li>certificate
: <a class="el" href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27">lws_polarssl_context</a>
</li>
<li>cgi_timeout
: <a class="el" href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa">lws_http_mount</a>
</li>
<li>cgienv
: <a class="el" href="structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af">lws_http_mount</a>
</li>
<li>ch
: <a class="el" href="structlws__cgi__args.html#adeee220b29aeacc34632c38e50f0f5a5">lws_cgi_args</a>
</li>
<li>client_exts
: <a class="el" href="structlws__client__connect__info.html#aaf76f45db5b4354894bae03a4f8f65a5">lws_client_connect_info</a>
</li>
<li>client_offer
: <a class="el" href="structlws__extension.html#a36b06c213aedb02bf9a402651751855b">lws_extension</a>
</li>
<li>client_ssl_ca_filepath
: <a class="el" href="structlws__context__creation__info.html#a63efdf843aa178a7db3900fb9b3946c3">lws_context_creation_info</a>
</li>
<li>client_ssl_cert_filepath
: <a class="el" href="structlws__context__creation__info.html#a092e5804a2a848c1d0b4fa904268c89d">lws_context_creation_info</a>
</li>
<li>client_ssl_cipher_list
: <a class="el" href="structlws__context__creation__info.html#a67d9c2a43c9af69d9f12454df1afd49a">lws_context_creation_info</a>
</li>
<li>client_ssl_private_key_filepath
: <a class="el" href="structlws__context__creation__info.html#a30d5102d5ea56788d07bb075d10cee66">lws_context_creation_info</a>
</li>
<li>client_ssl_private_key_password
: <a class="el" href="structlws__context__creation__info.html#a8da6e0c48d4cabe2f85c353184ff8514">lws_context_creation_info</a>
</li>
<li>content
: <a class="el" href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed">lws_email</a>
</li>
<li>context
: <a class="el" href="structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd">lws_client_connect_info</a>
</li>
<li>count_extensions
: <a class="el" href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3">lws_plugin_capability</a>
</li>
<li>count_protocols
: <a class="el" href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f">lws_plugin_capability</a>
</li>
<li>count_threads
: <a class="el" href="structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419">lws_context_creation_info</a>
</li>
<li>count_vars
: <a class="el" href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968">lws_process_html_state</a>
</li>
</ul>
<h3><a id="index_d"></a>- d -</h3><ul>
<li>data
: <a class="el" href="structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7">lws_cgi_args</a>
, <a class="el" href="structlws__email.html#add1341456045382c183f4c763bdea6bc">lws_email</a>
, <a class="el" href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5">lws_process_html_state</a>
</li>
<li>def
: <a class="el" href="structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4">lws_http_mount</a>
</li>
</ul>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>ecdh_curve
: <a class="el" href="structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9">lws_context_creation_info</a>
</li>
<li>email
: <a class="el" href="structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463">lws_gs_event_args</a>
, <a class="el" href="structlws__session__info.html#a94b813cfc6b0da4b182659de30038ad3">lws_session_info</a>
</li>
<li>email_buf
: <a class="el" href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82">lws_email</a>
</li>
<li>email_client
: <a class="el" href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e">lws_email</a>
</li>
<li>email_connect_req
: <a class="el" href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3">lws_email</a>
</li>
<li>email_connect_started
: <a class="el" href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1">lws_email</a>
</li>
<li>email_from
: <a class="el" href="structlws__email.html#af7f0ae934347d81071f63a963301f9e2">lws_email</a>
</li>
<li>email_helo
: <a class="el" href="structlws__email.html#a939e5d7ee0339a16de73bde71ab4d4d9">lws_email</a>
</li>
<li>email_smtp_ip
: <a class="el" href="structlws__email.html#a472ae23fc9fca6599e5c512bc21458d2">lws_email</a>
</li>
<li>email_to
: <a class="el" href="structlws__email.html#a6453a8b92b3de6d2c2101af3edce685e">lws_email</a>
</li>
<li>estate
: <a class="el" href="structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3">lws_email</a>
</li>
<li>event
: <a class="el" href="structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06">lws_gs_event_args</a>
</li>
<li>events
: <a class="el" href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6">lws_pollargs</a>
, <a class="el" href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9">lws_pollfd</a>
, <a class="el" href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef">pollfd</a>
</li>
<li>extensions
: <a class="el" href="structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c">lws_context_creation_info</a>
, <a class="el" href="structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623">lws_plugin_capability</a>
</li>
<li>external_baggage_free_on_destroy
: <a class="el" href="structlws__context__creation__info.html#aadbc1b141d16c1084ec4c543e7768a72">lws_context_creation_info</a>
</li>
<li>extra_mimetypes
: <a class="el" href="structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7">lws_http_mount</a>
</li>
</ul>
<h3><a id="index_f"></a>- f -</h3><ul>
<li>fd
: <a class="el" href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81">lws_pollargs</a>
, <a class="el" href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be">lws_pollfd</a>
, <a class="el" href="structpollfd.html#af084f089bdece61d177f85782d6673d0">pollfd</a>
</li>
<li>fd_limit_per_thread
: <a class="el" href="structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646">lws_context_creation_info</a>
</li>
<li>final
: <a class="el" href="structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475">lws_process_html_args</a>
</li>
</ul>
<h3><a id="index_g"></a>- g -</h3><ul>
<li>gid
: <a class="el" href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03">lws_context_creation_info</a>
</li>
</ul>
<h3><a id="index_h"></a>- h -</h3><ul>
<li>hdr_state
: <a class="el" href="structlws__cgi__args.html#a741c11b9aa05997ec45a3400d7fb7739">lws_cgi_args</a>
</li>
<li>headers
: <a class="el" href="structlws__context__creation__info.html#a8ca0ec6b8675c13849bbdcdc0d50c9a3">lws_context_creation_info</a>
</li>
<li>host
: <a class="el" href="structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7">lws_client_connect_info</a>
</li>
<li>http_proxy_address
: <a class="el" href="structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3">lws_context_creation_info</a>
</li>
<li>http_proxy_port
: <a class="el" href="structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6">lws_context_creation_info</a>
</li>
</ul>
<h3><a id="index_i"></a>- i -</h3><ul>
<li>id
: <a class="el" href="structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac">lws_protocols</a>
, <a class="el" href="structlwsgw__hash.html#a29435f5cf78747d4257695b0f141d164">lwsgw_hash</a>
</li>
<li>ietf_version_or_minus_one
: <a class="el" href="structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895">lws_client_connect_info</a>
</li>
<li>iface
: <a class="el" href="structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a">lws_context_creation_info</a>
</li>
<li>interpret
: <a class="el" href="structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773">lws_http_mount</a>
</li>
<li>ip
: <a class="el" href="structlws__session__info.html#a53eed02325e8717a53297391e3e98fac">lws_session_info</a>
</li>
</ul>
<h3><a id="index_k"></a>- k -</h3><ul>
<li>ka_interval
: <a class="el" href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd">lws_context_creation_info</a>
</li>
<li>ka_probes
: <a class="el" href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410">lws_context_creation_info</a>
</li>
<li>ka_time
: <a class="el" href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56">lws_context_creation_info</a>
</li>
<li>keepalive_timeout
: <a class="el" href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6">lws_context_creation_info</a>
</li>
<li>key
: <a class="el" href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270">lws_polarssl_context</a>
</li>
</ul>
<h3><a id="index_l"></a>- l -</h3><ul>
<li>l
: <a class="el" href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4">lws_plugin</a>
</li>
<li>len
: <a class="el" href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d">lws_cgi_args</a>
, <a class="el" href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5">lws_ext_option_arg</a>
, <a class="el" href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef">lws_process_html_args</a>
</li>
<li>lib
: <a class="el" href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330">lws_plugin</a>
</li>
<li>list
: <a class="el" href="structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22">lws_plugin</a>
</li>
<li>log_filepath
: <a class="el" href="structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2">lws_context_creation_info</a>
</li>
<li>loop
: <a class="el" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168">lws_email</a>
</li>
<li>LWS_FOP_CLOSE
: <a class="el" href="structlws__plat__file__ops.html#aaa412792d1e8df151729850a6448f001">lws_plat_file_ops</a>
</li>
<li>LWS_FOP_OPEN
: <a class="el" href="structlws__plat__file__ops.html#a79484f37c8e54d75342eb2ecf97b5f7b">lws_plat_file_ops</a>
</li>
<li>LWS_FOP_READ
: <a class="el" href="structlws__plat__file__ops.html#a4ddeac2cd3d3bdf517ad355dbc123d00">lws_plat_file_ops</a>
</li>
<li>LWS_FOP_SEEK_CUR
: <a class="el" href="structlws__plat__file__ops.html#a1352a356778159c97195a5bff65dda6c">lws_plat_file_ops</a>
</li>
<li>LWS_FOP_WRITE
: <a class="el" href="structlws__plat__file__ops.html#a5e801362a7d11b83608980123233a220">lws_plat_file_ops</a>
</li>
</ul>
<h3><a id="index_m"></a>- m -</h3><ul>
<li>mask
: <a class="el" href="structlws__session__info.html#afb924864b70f40372920688a5c1c895e">lws_session_info</a>
</li>
<li>max_content_size
: <a class="el" href="structlws__email.html#a7bbc1964889c984b3da723c86a210e05">lws_email</a>
</li>
<li>max_http_header_data
: <a class="el" href="structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948">lws_context_creation_info</a>
</li>
<li>max_http_header_data2
: <a class="el" href="structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a">lws_context_creation_info</a>
</li>
<li>max_http_header_pool
: <a class="el" href="structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720">lws_context_creation_info</a>
</li>
<li>max_len
: <a class="el" href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99">lws_process_html_args</a>
</li>
<li>method
: <a class="el" href="structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db">lws_client_connect_info</a>
</li>
<li>mount_next
: <a class="el" href="structlws__http__mount.html#a0109baf93f23c07c824c997c3533ee44">lws_http_mount</a>
</li>
<li>mountpoint
: <a class="el" href="structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c">lws_http_mount</a>
</li>
<li>mountpoint_len
: <a class="el" href="structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743">lws_http_mount</a>
</li>
<li>mounts
: <a class="el" href="structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8">lws_context_creation_info</a>
</li>
</ul>
<h3><a id="index_n"></a>- n -</h3><ul>
<li>name
: <a class="el" href="structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e">lws_ext_options</a>
, <a class="el" href="structlws__extension.html#a1e5018c883d85176f5c2152176843f9e">lws_extension</a>
, <a class="el" href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105">lws_plugin</a>
, <a class="el" href="structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9">lws_protocol_vhost_options</a>
, <a class="el" href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624">lws_protocols</a>
</li>
<li>next
: <a class="el" href="structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c">lws_protocol_vhost_options</a>
</li>
</ul>
<h3><a id="index_o"></a>- o -</h3><ul>
<li>on_get_body
: <a class="el" href="structlws__email.html#a2aff78c8e04db243052aa91b4d87e987">lws_email</a>
</li>
<li>on_next
: <a class="el" href="structlws__email.html#ad8dc60353ee246d84dd59ec0591e9719">lws_email</a>
</li>
<li>on_sent
: <a class="el" href="structlws__email.html#a39ef6263d58eb40cca417c8697b227d8">lws_email</a>
</li>
<li>option_index
: <a class="el" href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f">lws_ext_option_arg</a>
</li>
<li>option_name
: <a class="el" href="structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9">lws_ext_option_arg</a>
</li>
<li>options
: <a class="el" href="structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724">lws_context_creation_info</a>
, <a class="el" href="structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822">lws_protocol_vhost_options</a>
</li>
<li>origin
: <a class="el" href="structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c">lws_client_connect_info</a>
, <a class="el" href="structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a">lws_http_mount</a>
</li>
<li>origin_protocol
: <a class="el" href="structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7">lws_http_mount</a>
</li>
</ul>
<h3><a id="index_p"></a>- p -</h3><ul>
<li>p
: <a class="el" href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14">lws_process_html_args</a>
</li>
<li>parent_wsi
: <a class="el" href="structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587">lws_client_connect_info</a>
</li>
<li>path
: <a class="el" href="structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185">lws_client_connect_info</a>
</li>
<li>per_session_data_size
: <a class="el" href="structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea">lws_protocols</a>
</li>
<li>plugin_dirs
: <a class="el" href="structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251">lws_context_creation_info</a>
</li>
<li>port
: <a class="el" href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9">lws_client_connect_info</a>
, <a class="el" href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85">lws_context_creation_info</a>
</li>
<li>pos
: <a class="el" href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20">lws_process_html_state</a>
</li>
<li>prev_events
: <a class="el" href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8">lws_pollargs</a>
</li>
<li>protocol
: <a class="el" href="structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2">lws_client_connect_info</a>
, <a class="el" href="structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b">lws_http_mount</a>
</li>
<li>protocols
: <a class="el" href="structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122">lws_context_creation_info</a>
, <a class="el" href="structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033">lws_plugin_capability</a>
</li>
<li>provided_client_ssl_ctx
: <a class="el" href="structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4">lws_context_creation_info</a>
</li>
<li>pt_serv_buf_size
: <a class="el" href="structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209">lws_context_creation_info</a>
</li>
<li>pvo
: <a class="el" href="structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458">lws_context_creation_info</a>
</li>
<li>pwsi
: <a class="el" href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e">lws_client_connect_info</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>reject_service_keywords
: <a class="el" href="structlws__context__creation__info.html#a6b059b7ee248cba72a3a4fd6141b0b34">lws_context_creation_info</a>
</li>
<li>replace
: <a class="el" href="structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644">lws_process_html_state</a>
</li>
<li>revents
: <a class="el" href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932">lws_pollfd</a>
, <a class="el" href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2">pollfd</a>
</li>
<li>rx_buffer_size
: <a class="el" href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5">lws_protocols</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>server_string
: <a class="el" href="structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616">lws_context_creation_info</a>
</li>
<li>session
: <a class="el" href="structlws__session__info.html#a4353b5dd19400b2b15edfd7cee1e4cd5">lws_session_info</a>
</li>
<li>ssl_ca_filepath
: <a class="el" href="structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29">lws_context_creation_info</a>
</li>
<li>ssl_cert_filepath
: <a class="el" href="structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103">lws_context_creation_info</a>
</li>
<li>ssl_cipher_list
: <a class="el" href="structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb">lws_context_creation_info</a>
</li>
<li>ssl_connection
: <a class="el" href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d">lws_client_connect_info</a>
</li>
<li>ssl_options_clear
: <a class="el" href="structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa">lws_context_creation_info</a>
</li>
<li>ssl_options_set
: <a class="el" href="structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d">lws_context_creation_info</a>
</li>
<li>ssl_private_key_filepath
: <a class="el" href="structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14">lws_context_creation_info</a>
</li>
<li>ssl_private_key_password
: <a class="el" href="structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54">lws_context_creation_info</a>
</li>
<li>start
: <a class="el" href="structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1">lws_ext_option_arg</a>
, <a class="el" href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3">lws_process_html_state</a>
</li>
<li>stdwsi
: <a class="el" href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1">lws_cgi_args</a>
</li>
<li>swallow
: <a class="el" href="structlws__process__html__state.html#a71982bc1cbd8cf876ca0f545144404eb">lws_process_html_state</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>timeout_email
: <a class="el" href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be">lws_email</a>
</li>
<li>timeout_secs
: <a class="el" href="structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d">lws_context_creation_info</a>
</li>
<li>token
: <a class="el" href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd">lws_tokens</a>
</li>
<li>token_len
: <a class="el" href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766">lws_tokens</a>
</li>
<li>token_limit
: <a class="el" href="structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff">lws_token_limits</a>
</li>
<li>token_limits
: <a class="el" href="structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29">lws_context_creation_info</a>
</li>
<li>type
: <a class="el" href="structlws__ext__options.html#a7c4dbd62dbeba63a9d50d2306bd1cc61">lws_ext_options</a>
</li>
</ul>
<h3><a id="index_u"></a>- u -</h3><ul>
<li>uid
: <a class="el" href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e">lws_context_creation_info</a>
</li>
<li>uri_replace_from
: <a class="el" href="structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a">lws_client_connect_info</a>
</li>
<li>uri_replace_to
: <a class="el" href="structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3">lws_client_connect_info</a>
</li>
<li>user
: <a class="el" href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0">lws_context_creation_info</a>
, <a class="el" href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e">lws_protocols</a>
</li>
<li>userdata
: <a class="el" href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836">lws_client_connect_info</a>
</li>
<li>username
: <a class="el" href="structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b">lws_gs_event_args</a>
, <a class="el" href="structlws__session__info.html#a3d57a70b6e7181d95a8bec429b1a7697">lws_session_info</a>
</li>
</ul>
<h3><a id="index_v"></a>- v -</h3><ul>
<li>value
: <a class="el" href="structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7">lws_protocol_vhost_options</a>
</li>
<li>vars
: <a class="el" href="structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077">lws_process_html_state</a>
</li>
<li>vhost
: <a class="el" href="structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be">lws_client_connect_info</a>
</li>
<li>vhost_name
: <a class="el" href="structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9">lws_context_creation_info</a>
</li>
</ul>
<h3><a id="index_w"></a>- w -</h3><ul>
<li>ws_ping_pong_interval
: <a class="el" href="structlws__context__creation__info.html#a33a1a25a7df3793f59047e20dd580078">lws_context_creation_info</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,91 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Data Fields - Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('functions_func.html','');});
</script>
<div id="doc-content">
<div class="contents">
&#160;<ul>
<li>onDisconnect()
: <a class="el" href="classlws__conn__listener.html#aab3c7bf550a8f15d20f1e093125c2e60">lws_conn_listener</a>
</li>
<li>onError()
: <a class="el" href="classlws__conn__listener.html#a271ac4f8ad5770b3bc96cce5b265b72c">lws_conn_listener</a>
</li>
<li>onIncoming()
: <a class="el" href="classlws__conn__listener.html#ab432a456c3a961ec562e06141897806b">lws_conn_listener</a>
</li>
<li>onRX()
: <a class="el" href="classlws__conn__listener.html#ab3bc839797ba14554ac70ad09fd155c7">lws_conn_listener</a>
</li>
<li>start()
: <a class="el" href="classlws__conn__listener.html#a3c19c314f2ea2b758407b4041e4c4010">lws_conn_listener</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,633 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Data Fields - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('functions_vars.html','');});
</script>
<div id="doc-content">
<div class="contents">
&#160;
<h3><a id="index__"></a>- _ -</h3><ul>
<li>_unused
: <a class="el" href="structlws__client__connect__info.html#ad47f50d1633dc5df74548606c9a66d73">lws_client_connect_info</a>
, <a class="el" href="structlws__context__creation__info.html#afce3b59950eca3203faa07381bbed5d7">lws_context_creation_info</a>
, <a class="el" href="structlws__http__mount.html#a78d58848eed7b544ae83f719abdbe4b6">lws_http_mount</a>
</li>
</ul>
<h3><a id="index_a"></a>- a -</h3><ul>
<li>address
: <a class="el" href="structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502">lws_client_connect_info</a>
</li>
<li>api_magic
: <a class="el" href="structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a">lws_plugin_capability</a>
</li>
<li>auth_mask
: <a class="el" href="structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477">lws_http_mount</a>
</li>
</ul>
<h3><a id="index_b"></a>- b -</h3><ul>
<li>basic_auth_login_file
: <a class="el" href="structlws__http__mount.html#a2f6c7dbc2d714b7259c67b7744d4ff98">lws_http_mount</a>
</li>
<li>bin
: <a class="el" href="structlwsgw__hash__bin.html#ac92f50d9471058525d110597a4e0de6b">lwsgw_hash_bin</a>
</li>
</ul>
<h3><a id="index_c"></a>- c -</h3><ul>
<li>ca
: <a class="el" href="structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af">lws_polarssl_context</a>
</li>
<li>cache_intermediaries
: <a class="el" href="structlws__http__mount.html#aabec1a326780aafe11b977000983be0c">lws_http_mount</a>
</li>
<li>cache_max_age
: <a class="el" href="structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146">lws_http_mount</a>
</li>
<li>cache_reusable
: <a class="el" href="structlws__http__mount.html#a8316dd183ffbef50419a5a4968d35d84">lws_http_mount</a>
</li>
<li>cache_revalidate
: <a class="el" href="structlws__http__mount.html#ae137203040c6153694bd88a708da5395">lws_http_mount</a>
</li>
<li>callback
: <a class="el" href="structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af">lws_extension</a>
, <a class="el" href="structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d">lws_protocols</a>
</li>
<li>caps
: <a class="el" href="structlws__plugin.html#ac7f1fdfe8cf8a21f8ee9720c21934a3f">lws_plugin</a>
</li>
<li>certificate
: <a class="el" href="structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27">lws_polarssl_context</a>
</li>
<li>cgi_timeout
: <a class="el" href="structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa">lws_http_mount</a>
</li>
<li>cgienv
: <a class="el" href="structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af">lws_http_mount</a>
</li>
<li>ch
: <a class="el" href="structlws__cgi__args.html#adeee220b29aeacc34632c38e50f0f5a5">lws_cgi_args</a>
</li>
<li>client_exts
: <a class="el" href="structlws__client__connect__info.html#aaf76f45db5b4354894bae03a4f8f65a5">lws_client_connect_info</a>
</li>
<li>client_offer
: <a class="el" href="structlws__extension.html#a36b06c213aedb02bf9a402651751855b">lws_extension</a>
</li>
<li>client_ssl_ca_filepath
: <a class="el" href="structlws__context__creation__info.html#a63efdf843aa178a7db3900fb9b3946c3">lws_context_creation_info</a>
</li>
<li>client_ssl_cert_filepath
: <a class="el" href="structlws__context__creation__info.html#a092e5804a2a848c1d0b4fa904268c89d">lws_context_creation_info</a>
</li>
<li>client_ssl_cipher_list
: <a class="el" href="structlws__context__creation__info.html#a67d9c2a43c9af69d9f12454df1afd49a">lws_context_creation_info</a>
</li>
<li>client_ssl_private_key_filepath
: <a class="el" href="structlws__context__creation__info.html#a30d5102d5ea56788d07bb075d10cee66">lws_context_creation_info</a>
</li>
<li>client_ssl_private_key_password
: <a class="el" href="structlws__context__creation__info.html#a8da6e0c48d4cabe2f85c353184ff8514">lws_context_creation_info</a>
</li>
<li>content
: <a class="el" href="structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed">lws_email</a>
</li>
<li>context
: <a class="el" href="structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd">lws_client_connect_info</a>
</li>
<li>count_extensions
: <a class="el" href="structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3">lws_plugin_capability</a>
</li>
<li>count_protocols
: <a class="el" href="structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f">lws_plugin_capability</a>
</li>
<li>count_threads
: <a class="el" href="structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419">lws_context_creation_info</a>
</li>
<li>count_vars
: <a class="el" href="structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968">lws_process_html_state</a>
</li>
</ul>
<h3><a id="index_d"></a>- d -</h3><ul>
<li>data
: <a class="el" href="structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7">lws_cgi_args</a>
, <a class="el" href="structlws__email.html#add1341456045382c183f4c763bdea6bc">lws_email</a>
, <a class="el" href="structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5">lws_process_html_state</a>
</li>
<li>def
: <a class="el" href="structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4">lws_http_mount</a>
</li>
</ul>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>ecdh_curve
: <a class="el" href="structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9">lws_context_creation_info</a>
</li>
<li>email
: <a class="el" href="structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463">lws_gs_event_args</a>
, <a class="el" href="structlws__session__info.html#a94b813cfc6b0da4b182659de30038ad3">lws_session_info</a>
</li>
<li>email_buf
: <a class="el" href="structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82">lws_email</a>
</li>
<li>email_client
: <a class="el" href="structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e">lws_email</a>
</li>
<li>email_connect_req
: <a class="el" href="structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3">lws_email</a>
</li>
<li>email_connect_started
: <a class="el" href="structlws__email.html#a9747ca85597788c2d118d287df47b7c1">lws_email</a>
</li>
<li>email_from
: <a class="el" href="structlws__email.html#af7f0ae934347d81071f63a963301f9e2">lws_email</a>
</li>
<li>email_helo
: <a class="el" href="structlws__email.html#a939e5d7ee0339a16de73bde71ab4d4d9">lws_email</a>
</li>
<li>email_smtp_ip
: <a class="el" href="structlws__email.html#a472ae23fc9fca6599e5c512bc21458d2">lws_email</a>
</li>
<li>email_to
: <a class="el" href="structlws__email.html#a6453a8b92b3de6d2c2101af3edce685e">lws_email</a>
</li>
<li>estate
: <a class="el" href="structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3">lws_email</a>
</li>
<li>event
: <a class="el" href="structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06">lws_gs_event_args</a>
</li>
<li>events
: <a class="el" href="structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6">lws_pollargs</a>
, <a class="el" href="structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9">lws_pollfd</a>
, <a class="el" href="structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef">pollfd</a>
</li>
<li>extensions
: <a class="el" href="structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c">lws_context_creation_info</a>
, <a class="el" href="structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623">lws_plugin_capability</a>
</li>
<li>external_baggage_free_on_destroy
: <a class="el" href="structlws__context__creation__info.html#aadbc1b141d16c1084ec4c543e7768a72">lws_context_creation_info</a>
</li>
<li>extra_mimetypes
: <a class="el" href="structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7">lws_http_mount</a>
</li>
</ul>
<h3><a id="index_f"></a>- f -</h3><ul>
<li>fd
: <a class="el" href="structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81">lws_pollargs</a>
, <a class="el" href="structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be">lws_pollfd</a>
, <a class="el" href="structpollfd.html#af084f089bdece61d177f85782d6673d0">pollfd</a>
</li>
<li>fd_limit_per_thread
: <a class="el" href="structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646">lws_context_creation_info</a>
</li>
<li>final
: <a class="el" href="structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475">lws_process_html_args</a>
</li>
</ul>
<h3><a id="index_g"></a>- g -</h3><ul>
<li>gid
: <a class="el" href="structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03">lws_context_creation_info</a>
</li>
</ul>
<h3><a id="index_h"></a>- h -</h3><ul>
<li>hdr_state
: <a class="el" href="structlws__cgi__args.html#a741c11b9aa05997ec45a3400d7fb7739">lws_cgi_args</a>
</li>
<li>headers
: <a class="el" href="structlws__context__creation__info.html#a8ca0ec6b8675c13849bbdcdc0d50c9a3">lws_context_creation_info</a>
</li>
<li>host
: <a class="el" href="structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7">lws_client_connect_info</a>
</li>
<li>http_proxy_address
: <a class="el" href="structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3">lws_context_creation_info</a>
</li>
<li>http_proxy_port
: <a class="el" href="structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6">lws_context_creation_info</a>
</li>
</ul>
<h3><a id="index_i"></a>- i -</h3><ul>
<li>id
: <a class="el" href="structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac">lws_protocols</a>
, <a class="el" href="structlwsgw__hash.html#a29435f5cf78747d4257695b0f141d164">lwsgw_hash</a>
</li>
<li>ietf_version_or_minus_one
: <a class="el" href="structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895">lws_client_connect_info</a>
</li>
<li>iface
: <a class="el" href="structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a">lws_context_creation_info</a>
</li>
<li>interpret
: <a class="el" href="structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773">lws_http_mount</a>
</li>
<li>ip
: <a class="el" href="structlws__session__info.html#a53eed02325e8717a53297391e3e98fac">lws_session_info</a>
</li>
</ul>
<h3><a id="index_k"></a>- k -</h3><ul>
<li>ka_interval
: <a class="el" href="structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd">lws_context_creation_info</a>
</li>
<li>ka_probes
: <a class="el" href="structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410">lws_context_creation_info</a>
</li>
<li>ka_time
: <a class="el" href="structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56">lws_context_creation_info</a>
</li>
<li>keepalive_timeout
: <a class="el" href="structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6">lws_context_creation_info</a>
</li>
<li>key
: <a class="el" href="structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270">lws_polarssl_context</a>
</li>
</ul>
<h3><a id="index_l"></a>- l -</h3><ul>
<li>l
: <a class="el" href="structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4">lws_plugin</a>
</li>
<li>len
: <a class="el" href="structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d">lws_cgi_args</a>
, <a class="el" href="structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5">lws_ext_option_arg</a>
, <a class="el" href="structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef">lws_process_html_args</a>
</li>
<li>lib
: <a class="el" href="structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330">lws_plugin</a>
</li>
<li>list
: <a class="el" href="structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22">lws_plugin</a>
</li>
<li>log_filepath
: <a class="el" href="structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2">lws_context_creation_info</a>
</li>
<li>loop
: <a class="el" href="structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168">lws_email</a>
</li>
<li>LWS_FOP_CLOSE
: <a class="el" href="structlws__plat__file__ops.html#aaa412792d1e8df151729850a6448f001">lws_plat_file_ops</a>
</li>
<li>LWS_FOP_OPEN
: <a class="el" href="structlws__plat__file__ops.html#a79484f37c8e54d75342eb2ecf97b5f7b">lws_plat_file_ops</a>
</li>
<li>LWS_FOP_READ
: <a class="el" href="structlws__plat__file__ops.html#a4ddeac2cd3d3bdf517ad355dbc123d00">lws_plat_file_ops</a>
</li>
<li>LWS_FOP_SEEK_CUR
: <a class="el" href="structlws__plat__file__ops.html#a1352a356778159c97195a5bff65dda6c">lws_plat_file_ops</a>
</li>
<li>LWS_FOP_WRITE
: <a class="el" href="structlws__plat__file__ops.html#a5e801362a7d11b83608980123233a220">lws_plat_file_ops</a>
</li>
</ul>
<h3><a id="index_m"></a>- m -</h3><ul>
<li>mask
: <a class="el" href="structlws__session__info.html#afb924864b70f40372920688a5c1c895e">lws_session_info</a>
</li>
<li>max_content_size
: <a class="el" href="structlws__email.html#a7bbc1964889c984b3da723c86a210e05">lws_email</a>
</li>
<li>max_http_header_data
: <a class="el" href="structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948">lws_context_creation_info</a>
</li>
<li>max_http_header_data2
: <a class="el" href="structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a">lws_context_creation_info</a>
</li>
<li>max_http_header_pool
: <a class="el" href="structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720">lws_context_creation_info</a>
</li>
<li>max_len
: <a class="el" href="structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99">lws_process_html_args</a>
</li>
<li>method
: <a class="el" href="structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db">lws_client_connect_info</a>
</li>
<li>mount_next
: <a class="el" href="structlws__http__mount.html#a0109baf93f23c07c824c997c3533ee44">lws_http_mount</a>
</li>
<li>mountpoint
: <a class="el" href="structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c">lws_http_mount</a>
</li>
<li>mountpoint_len
: <a class="el" href="structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743">lws_http_mount</a>
</li>
<li>mounts
: <a class="el" href="structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8">lws_context_creation_info</a>
</li>
</ul>
<h3><a id="index_n"></a>- n -</h3><ul>
<li>name
: <a class="el" href="structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e">lws_ext_options</a>
, <a class="el" href="structlws__extension.html#a1e5018c883d85176f5c2152176843f9e">lws_extension</a>
, <a class="el" href="structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105">lws_plugin</a>
, <a class="el" href="structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9">lws_protocol_vhost_options</a>
, <a class="el" href="structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624">lws_protocols</a>
</li>
<li>next
: <a class="el" href="structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c">lws_protocol_vhost_options</a>
</li>
</ul>
<h3><a id="index_o"></a>- o -</h3><ul>
<li>on_get_body
: <a class="el" href="structlws__email.html#a2aff78c8e04db243052aa91b4d87e987">lws_email</a>
</li>
<li>on_next
: <a class="el" href="structlws__email.html#ad8dc60353ee246d84dd59ec0591e9719">lws_email</a>
</li>
<li>on_sent
: <a class="el" href="structlws__email.html#a39ef6263d58eb40cca417c8697b227d8">lws_email</a>
</li>
<li>option_index
: <a class="el" href="structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f">lws_ext_option_arg</a>
</li>
<li>option_name
: <a class="el" href="structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9">lws_ext_option_arg</a>
</li>
<li>options
: <a class="el" href="structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724">lws_context_creation_info</a>
, <a class="el" href="structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822">lws_protocol_vhost_options</a>
</li>
<li>origin
: <a class="el" href="structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c">lws_client_connect_info</a>
, <a class="el" href="structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a">lws_http_mount</a>
</li>
<li>origin_protocol
: <a class="el" href="structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7">lws_http_mount</a>
</li>
</ul>
<h3><a id="index_p"></a>- p -</h3><ul>
<li>p
: <a class="el" href="structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14">lws_process_html_args</a>
</li>
<li>parent_wsi
: <a class="el" href="structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587">lws_client_connect_info</a>
</li>
<li>path
: <a class="el" href="structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185">lws_client_connect_info</a>
</li>
<li>per_session_data_size
: <a class="el" href="structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea">lws_protocols</a>
</li>
<li>plugin_dirs
: <a class="el" href="structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251">lws_context_creation_info</a>
</li>
<li>port
: <a class="el" href="structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9">lws_client_connect_info</a>
, <a class="el" href="structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85">lws_context_creation_info</a>
</li>
<li>pos
: <a class="el" href="structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20">lws_process_html_state</a>
</li>
<li>prev_events
: <a class="el" href="structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8">lws_pollargs</a>
</li>
<li>protocol
: <a class="el" href="structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2">lws_client_connect_info</a>
, <a class="el" href="structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b">lws_http_mount</a>
</li>
<li>protocols
: <a class="el" href="structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122">lws_context_creation_info</a>
, <a class="el" href="structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033">lws_plugin_capability</a>
</li>
<li>provided_client_ssl_ctx
: <a class="el" href="structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4">lws_context_creation_info</a>
</li>
<li>pt_serv_buf_size
: <a class="el" href="structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209">lws_context_creation_info</a>
</li>
<li>pvo
: <a class="el" href="structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458">lws_context_creation_info</a>
</li>
<li>pwsi
: <a class="el" href="structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e">lws_client_connect_info</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>reject_service_keywords
: <a class="el" href="structlws__context__creation__info.html#a6b059b7ee248cba72a3a4fd6141b0b34">lws_context_creation_info</a>
</li>
<li>replace
: <a class="el" href="structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644">lws_process_html_state</a>
</li>
<li>revents
: <a class="el" href="structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932">lws_pollfd</a>
, <a class="el" href="structpollfd.html#aafb457d11cac415faf0e1e2b825118c2">pollfd</a>
</li>
<li>rx_buffer_size
: <a class="el" href="structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5">lws_protocols</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>server_string
: <a class="el" href="structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616">lws_context_creation_info</a>
</li>
<li>session
: <a class="el" href="structlws__session__info.html#a4353b5dd19400b2b15edfd7cee1e4cd5">lws_session_info</a>
</li>
<li>ssl_ca_filepath
: <a class="el" href="structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29">lws_context_creation_info</a>
</li>
<li>ssl_cert_filepath
: <a class="el" href="structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103">lws_context_creation_info</a>
</li>
<li>ssl_cipher_list
: <a class="el" href="structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb">lws_context_creation_info</a>
</li>
<li>ssl_connection
: <a class="el" href="structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d">lws_client_connect_info</a>
</li>
<li>ssl_options_clear
: <a class="el" href="structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa">lws_context_creation_info</a>
</li>
<li>ssl_options_set
: <a class="el" href="structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d">lws_context_creation_info</a>
</li>
<li>ssl_private_key_filepath
: <a class="el" href="structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14">lws_context_creation_info</a>
</li>
<li>ssl_private_key_password
: <a class="el" href="structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54">lws_context_creation_info</a>
</li>
<li>start
: <a class="el" href="structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1">lws_ext_option_arg</a>
, <a class="el" href="structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3">lws_process_html_state</a>
</li>
<li>stdwsi
: <a class="el" href="structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1">lws_cgi_args</a>
</li>
<li>swallow
: <a class="el" href="structlws__process__html__state.html#a71982bc1cbd8cf876ca0f545144404eb">lws_process_html_state</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>timeout_email
: <a class="el" href="structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be">lws_email</a>
</li>
<li>timeout_secs
: <a class="el" href="structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d">lws_context_creation_info</a>
</li>
<li>token
: <a class="el" href="structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd">lws_tokens</a>
</li>
<li>token_len
: <a class="el" href="structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766">lws_tokens</a>
</li>
<li>token_limit
: <a class="el" href="structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff">lws_token_limits</a>
</li>
<li>token_limits
: <a class="el" href="structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29">lws_context_creation_info</a>
</li>
<li>type
: <a class="el" href="structlws__ext__options.html#a7c4dbd62dbeba63a9d50d2306bd1cc61">lws_ext_options</a>
</li>
</ul>
<h3><a id="index_u"></a>- u -</h3><ul>
<li>uid
: <a class="el" href="structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e">lws_context_creation_info</a>
</li>
<li>uri_replace_from
: <a class="el" href="structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a">lws_client_connect_info</a>
</li>
<li>uri_replace_to
: <a class="el" href="structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3">lws_client_connect_info</a>
</li>
<li>user
: <a class="el" href="structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0">lws_context_creation_info</a>
, <a class="el" href="structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e">lws_protocols</a>
</li>
<li>userdata
: <a class="el" href="structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836">lws_client_connect_info</a>
</li>
<li>username
: <a class="el" href="structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b">lws_gs_event_args</a>
, <a class="el" href="structlws__session__info.html#a3d57a70b6e7181d95a8bec429b1a7697">lws_session_info</a>
</li>
</ul>
<h3><a id="index_v"></a>- v -</h3><ul>
<li>value
: <a class="el" href="structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7">lws_protocol_vhost_options</a>
</li>
<li>vars
: <a class="el" href="structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077">lws_process_html_state</a>
</li>
<li>vhost
: <a class="el" href="structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be">lws_client_connect_info</a>
</li>
<li>vhost_name
: <a class="el" href="structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9">lws_context_creation_info</a>
</li>
</ul>
<h3><a id="index_w"></a>- w -</h3><ul>
<li>ws_ping_pong_interval
: <a class="el" href="structlws__context__creation__info.html#a33a1a25a7df3793f59047e20dd580078">lws_context_creation_info</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,87 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('globals.html','');});
</script>
<div id="doc-content">
<div class="contents">
<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>EXTARG_DEC
: <a class="el" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">libwebsockets.h</a>
</li>
<li>EXTARG_NONE
: <a class="el" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">libwebsockets.h</a>
</li>
<li>EXTARG_OPT_DEC
: <a class="el" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">libwebsockets.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,5 +0,0 @@
var globals_dup =
[
[ "e", "globals.html", null ],
[ "l", "globals_l.html", null ]
];

View file

@ -1,109 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('globals_enum.html','');});
</script>
<div id="doc-content">
<div class="contents">
&#160;<ul>
<li>lws_callback_reasons
: <a class="el" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">libwebsockets.h</a>
</li>
<li>lws_client_connect_ssl_connection_flags
: <a class="el" href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce">libwebsockets.h</a>
</li>
<li>lws_close_status
: <a class="el" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">libwebsockets.h</a>
</li>
<li>lws_context_options
: <a class="el" href="group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5">libwebsockets.h</a>
</li>
<li>lws_ext_options_types
: <a class="el" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">libwebsockets.h</a>
</li>
<li>lws_gs_event
: <a class="el" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">libwebsockets.h</a>
</li>
<li>lws_mount_protocols
: <a class="el" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437">libwebsockets.h</a>
</li>
<li>lws_spa_fileupload_states
: <a class="el" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">libwebsockets.h</a>
</li>
<li>lws_write_protocol
: <a class="el" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">libwebsockets.h</a>
</li>
<li>lwsgs_auth_bits
: <a class="el" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">libwebsockets.h</a>
</li>
<li>lwsgs_smtp_states
: <a class="el" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">libwebsockets.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,424 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('globals_eval.html','');});
</script>
<div id="doc-content">
<div class="contents">
&#160;
<h3><a id="index_e"></a>- e -</h3><ul>
<li>EXTARG_DEC
: <a class="el" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">libwebsockets.h</a>
</li>
<li>EXTARG_NONE
: <a class="el" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">libwebsockets.h</a>
</li>
<li>EXTARG_OPT_DEC
: <a class="el" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">libwebsockets.h</a>
</li>
</ul>
<h3><a id="index_l"></a>- l -</h3><ul>
<li>LGSSMTP_CONNECTED
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">libwebsockets.h</a>
</li>
<li>LGSSMTP_CONNECTING
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">libwebsockets.h</a>
</li>
<li>LGSSMTP_IDLE
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_BODY
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_DATA
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_FROM
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_HELO
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_QUIT
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_TO
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_ADD_POLL_FD
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CHANGE_MODE_POLL_FD
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_CONNECTION_ERROR
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_ESTABLISHED
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_HTTP_WRITEABLE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_RECEIVE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_RECEIVE_PONG
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_WRITEABLE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLOSED
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLOSED_HTTP
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CONFIRM_EXTENSION_OKAY
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_DEL_POLL_FD
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_ESTABLISHED
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_FILTER_HTTP_CONNECTION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_FILTER_NETWORK_CONNECTION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_GET_THREAD_ID
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP_BODY
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP_BODY_COMPLETION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP_FILE_COMPLETION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP_PMO
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP_WRITEABLE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_LOCK_POLL
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_PROTOCOL_DESTROY
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_PROTOCOL_INIT
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RAW_ADOPT
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a13e302be9ed9190d962591eb9c8c5f0b">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RAW_CLOSE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4cc93dadca4ea4541f3fe6d35bdb0a9">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RAW_RX
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a6c4ce79afb3a5d96c8df3c8d5e3c869d">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RAW_WRITEABLE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7acd0e80a385c951eceb9c6e2a41ab1c82">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RECEIVE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RECEIVE_PONG
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_SERVER_WRITEABLE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_UNLOCK_POLL
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_USER
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_WS_PEER_INITIATED_CLOSE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_WSI_CREATE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_WSI_DESTROY
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_ABNORMAL_CLOSE
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_EXTENSION_REQUIRED
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_GOINGAWAY
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_INVALID_PAYLOAD
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_NO_STATUS
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_NORMAL
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_POLICY_VIOLATION
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_PROTOCOL_ERR
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_RESERVED
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_TLS_FAILURE
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_UNEXPECTED_CONDITION
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_DISABLE_IPV6
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_EXPLICIT_VHOSTS
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_LIBEV
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_LIBUV
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_SSL_ECDH
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_STS
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_UNIX_SOCK
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_VALIDATE_UTF8
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">libwebsockets.h</a>
</li>
<li>LWS_UFS_CONTENT
: <a class="el" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">libwebsockets.h</a>
</li>
<li>LWS_UFS_FINAL_CONTENT
: <a class="el" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">libwebsockets.h</a>
</li>
<li>LWS_UFS_OPEN
: <a class="el" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">libwebsockets.h</a>
</li>
<li>LWS_WRITE_BINARY
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">libwebsockets.h</a>
</li>
<li>LWS_WRITE_CLIENT_IGNORE_XOR_MASK
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">libwebsockets.h</a>
</li>
<li>LWS_WRITE_CONTINUATION
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">libwebsockets.h</a>
</li>
<li>LWS_WRITE_HTTP
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">libwebsockets.h</a>
</li>
<li>LWS_WRITE_HTTP_HEADERS
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">libwebsockets.h</a>
</li>
<li>LWS_WRITE_NO_FIN
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">libwebsockets.h</a>
</li>
<li>LWS_WRITE_TEXT
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">libwebsockets.h</a>
</li>
<li>LWSGS_AUTH_ADMIN
: <a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">libwebsockets.h</a>
</li>
<li>LWSGS_AUTH_FORGOT_FLOW
: <a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">libwebsockets.h</a>
</li>
<li>LWSGS_AUTH_LOGGED_IN
: <a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">libwebsockets.h</a>
</li>
<li>LWSGS_AUTH_VERIFIED
: <a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">libwebsockets.h</a>
</li>
<li>LWSGSE_CREATED
: <a class="el" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">libwebsockets.h</a>
</li>
<li>LWSGSE_DELETED
: <a class="el" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">libwebsockets.h</a>
</li>
<li>LWSMPRO_CALLBACK
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">libwebsockets.h</a>
</li>
<li>LWSMPRO_CGI
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">libwebsockets.h</a>
</li>
<li>LWSMPRO_FILE
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">libwebsockets.h</a>
</li>
<li>LWSMPRO_HTTP
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">libwebsockets.h</a>
</li>
<li>LWSMPRO_HTTPS
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">libwebsockets.h</a>
</li>
<li>LWSMPRO_REDIR_HTTP
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">libwebsockets.h</a>
</li>
<li>LWSMPRO_REDIR_HTTPS
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">libwebsockets.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,432 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('globals_func.html','');});
</script>
<div id="doc-content">
<div class="contents">
&#160;
<h3><a id="index_l"></a>- l -</h3><ul>
<li>lws_add_http_header_by_name()
: <a class="el" href="group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8">libwebsockets.h</a>
</li>
<li>lws_add_http_header_by_token()
: <a class="el" href="group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1">libwebsockets.h</a>
</li>
<li>lws_add_http_header_content_length()
: <a class="el" href="group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf">libwebsockets.h</a>
</li>
<li>lws_add_http_header_status()
: <a class="el" href="group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6">libwebsockets.h</a>
</li>
<li>lws_adopt_socket()
: <a class="el" href="group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af">libwebsockets.h</a>
</li>
<li>lws_adopt_socket_readbuf()
: <a class="el" href="group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b">libwebsockets.h</a>
</li>
<li>lws_adopt_socket_vhost()
: <a class="el" href="group__sock-adopt.html#ga18747e81ff49df2076e7cd4f131f967c">libwebsockets.h</a>
</li>
<li>lws_adopt_socket_vhost_readbuf()
: <a class="el" href="group__sock-adopt.html#ga5ed5fd251ac0ed46798af341c33bf067">libwebsockets.h</a>
</li>
<li>lws_b64_decode_string()
: <a class="el" href="group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d">libwebsockets.h</a>
</li>
<li>lws_b64_encode_string()
: <a class="el" href="group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575">libwebsockets.h</a>
</li>
<li>lws_callback_all_protocol()
: <a class="el" href="group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70">libwebsockets.h</a>
</li>
<li>lws_callback_all_protocol_vhost()
: <a class="el" href="group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053">libwebsockets.h</a>
</li>
<li>lws_callback_on_writable()
: <a class="el" href="group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d">libwebsockets.h</a>
</li>
<li>lws_callback_on_writable_all_protocol()
: <a class="el" href="group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107">libwebsockets.h</a>
</li>
<li>lws_callback_on_writable_all_protocol_vhost()
: <a class="el" href="group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8">libwebsockets.h</a>
</li>
<li>lws_callback_vhost_protocols()
: <a class="el" href="group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5">libwebsockets.h</a>
</li>
<li>lws_cancel_service()
: <a class="el" href="group__service.html#ga53e3d0801dfda7960a7249dd559e68a2">libwebsockets.h</a>
</li>
<li>lws_cancel_service_pt()
: <a class="el" href="group__service.html#ga29c246707997ab7a466aa709aecd2d7b">libwebsockets.h</a>
</li>
<li>lws_canonical_hostname()
: <a class="el" href="group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4">libwebsockets.h</a>
</li>
<li>lws_cgi()
: <a class="el" href="libwebsockets_8h.html#af52923473c59e643a974d65e12290831">libwebsockets.h</a>
</li>
<li>lws_cgi_kill()
: <a class="el" href="libwebsockets_8h.html#a27bb0b3cdcd0af839c928c253b521ff4">libwebsockets.h</a>
</li>
<li>lws_cgi_write_split_stdout_headers()
: <a class="el" href="libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2">libwebsockets.h</a>
</li>
<li>lws_chunked_html_process()
: <a class="el" href="group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60">libwebsockets.h</a>
</li>
<li>lws_client_connect()
: <a class="el" href="group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3">libwebsockets.h</a>
</li>
<li>lws_client_connect_extended()
: <a class="el" href="group__client.html#gac6a8558b4410961a880241c2ac1271e2">libwebsockets.h</a>
</li>
<li>lws_client_connect_via_info()
: <a class="el" href="group__client.html#ga0c966136905f467816307cfba6deb5fd">libwebsockets.h</a>
</li>
<li>lws_close_reason()
: <a class="el" href="group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262">libwebsockets.h</a>
</li>
<li>lws_context_deprecate()
: <a class="el" href="group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232">libwebsockets.h</a>
</li>
<li>lws_context_destroy()
: <a class="el" href="group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb">libwebsockets.h</a>
</li>
<li>lws_context_user()
: <a class="el" href="group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da">libwebsockets.h</a>
</li>
<li>lws_create_context()
: <a class="el" href="group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648">libwebsockets.h</a>
</li>
<li>lws_create_vhost()
: <a class="el" href="group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c">libwebsockets.h</a>
</li>
<li>lws_daemonize()
: <a class="el" href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">libwebsockets.h</a>
</li>
<li>lws_email_check()
: <a class="el" href="group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb">libwebsockets.h</a>
</li>
<li>lws_email_destroy()
: <a class="el" href="group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2">libwebsockets.h</a>
</li>
<li>lws_email_init()
: <a class="el" href="group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29">libwebsockets.h</a>
</li>
<li>lws_ext_parse_options()
: <a class="el" href="group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b">libwebsockets.h</a>
</li>
<li>lws_extension_callback_pm_deflate()
: <a class="el" href="group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e">libwebsockets.h</a>
</li>
<li>lws_finalize_http_header()
: <a class="el" href="group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b">libwebsockets.h</a>
</li>
<li>lws_finalize_startup()
: <a class="el" href="group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43">libwebsockets.h</a>
</li>
<li>lws_frame_is_binary()
: <a class="el" href="group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd">libwebsockets.h</a>
</li>
<li>lws_get_child()
: <a class="el" href="group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234">libwebsockets.h</a>
</li>
<li>lws_get_context()
: <a class="el" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">libwebsockets.h</a>
</li>
<li>lws_get_count_threads()
: <a class="el" href="group__misc.html#ga629f48268fd1856b54b11172991b97d9">libwebsockets.h</a>
</li>
<li>lws_get_fops()
: <a class="el" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">libwebsockets.h</a>
</li>
<li>lws_get_library_version()
: <a class="el" href="group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0">libwebsockets.h</a>
</li>
<li>lws_get_mimetype()
: <a class="el" href="group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c">libwebsockets.h</a>
</li>
<li>lws_get_parent()
: <a class="el" href="group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899">libwebsockets.h</a>
</li>
<li>lws_get_peer_addresses()
: <a class="el" href="group__net.html#ga092e5f473b3347f03ffeef8a950080f3">libwebsockets.h</a>
</li>
<li>lws_get_peer_simple()
: <a class="el" href="group__net.html#gad01014fed09759741b6d23afccfdaacc">libwebsockets.h</a>
</li>
<li>lws_get_peer_write_allowance()
: <a class="el" href="group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde">libwebsockets.h</a>
</li>
<li>lws_get_protocol()
: <a class="el" href="group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112">libwebsockets.h</a>
</li>
<li>lws_get_random()
: <a class="el" href="group__misc.html#ga58f906c6be0ca80efd813f694569dd4a">libwebsockets.h</a>
</li>
<li>lws_get_reserved_bits()
: <a class="el" href="group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2">libwebsockets.h</a>
</li>
<li>lws_get_socket_fd()
: <a class="el" href="group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba">libwebsockets.h</a>
</li>
<li>lws_get_ssl()
: <a class="el" href="group__wsstatus.html#ga42152ffb385f9b19f4e7b04f998425de">libwebsockets.h</a>
</li>
<li>lws_get_urlarg_by_name()
: <a class="el" href="group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2">libwebsockets.h</a>
</li>
<li>lws_get_vhost()
: <a class="el" href="group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932">libwebsockets.h</a>
</li>
<li>lws_hdr_copy()
: <a class="el" href="group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77">libwebsockets.h</a>
</li>
<li>lws_hdr_copy_fragment()
: <a class="el" href="group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9">libwebsockets.h</a>
</li>
<li>lws_hdr_fragment_length()
: <a class="el" href="group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e">libwebsockets.h</a>
</li>
<li>lws_hdr_total_length()
: <a class="el" href="group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8">libwebsockets.h</a>
</li>
<li>lws_http_client_http_response()
: <a class="el" href="group__client.html#ga715efffc0c4e8fbf72a4293008eb2187">libwebsockets.h</a>
</li>
<li>lws_http_client_read()
: <a class="el" href="group__client.html#ga4450c34200bf9dab3beb90ef23221870">libwebsockets.h</a>
</li>
<li>lws_http_redirect()
: <a class="el" href="group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25">libwebsockets.h</a>
</li>
<li>lws_http_transaction_completed()
: <a class="el" href="group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a">libwebsockets.h</a>
</li>
<li>lws_init_vhost_client_ssl()
: <a class="el" href="group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340">libwebsockets.h</a>
</li>
<li>lws_interface_to_sa()
: <a class="el" href="group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8">libwebsockets.h</a>
</li>
<li>lws_is_cgi()
: <a class="el" href="group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1">libwebsockets.h</a>
</li>
<li>lws_is_final_fragment()
: <a class="el" href="group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37">libwebsockets.h</a>
</li>
<li>lws_is_ssl()
: <a class="el" href="group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa">libwebsockets.h</a>
</li>
<li>lws_json_dump_context()
: <a class="el" href="group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135">libwebsockets.h</a>
</li>
<li>lws_json_dump_vhost()
: <a class="el" href="group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6">libwebsockets.h</a>
</li>
<li>lws_json_purify()
: <a class="el" href="group__pur.html#gab15187efcfa256b7c928562c182b92a3">libwebsockets.h</a>
</li>
<li>lws_now_secs()
: <a class="el" href="group__misc.html#ga33bf2635033710b25f931b57ed663e1e">libwebsockets.h</a>
</li>
<li>lws_parse_uri()
: <a class="el" href="group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa">libwebsockets.h</a>
</li>
<li>lws_partial_buffered()
: <a class="el" href="group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85">libwebsockets.h</a>
</li>
<li>lws_protocol_get()
: <a class="el" href="group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030">libwebsockets.h</a>
</li>
<li>lws_protocol_vh_priv_get()
: <a class="el" href="group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129">libwebsockets.h</a>
</li>
<li>lws_protocol_vh_priv_zalloc()
: <a class="el" href="group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1">libwebsockets.h</a>
</li>
<li>lws_remaining_packet_payload()
: <a class="el" href="libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536">libwebsockets.h</a>
</li>
<li>lws_return_http_status()
: <a class="el" href="group__http.html#gac8a4a71240857dc6b2ed70456b6923f4">libwebsockets.h</a>
</li>
<li>lws_rx_flow_allow_all_protocol()
: <a class="el" href="libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672">libwebsockets.h</a>
</li>
<li>lws_rx_flow_control()
: <a class="el" href="libwebsockets_8h.html#adf4abd01e8c43f07c6e498ce13590c3e">libwebsockets.h</a>
</li>
<li>lws_send_pipe_choked()
: <a class="el" href="group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421">libwebsockets.h</a>
</li>
<li>lws_serve_http_file()
: <a class="el" href="group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7">libwebsockets.h</a>
</li>
<li>lws_service()
: <a class="el" href="group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8">libwebsockets.h</a>
</li>
<li>lws_service_adjust_timeout()
: <a class="el" href="group__service.html#ga4fd9d714434ca499e2b3f7dbba86f241">libwebsockets.h</a>
</li>
<li>lws_service_fd()
: <a class="el" href="group__service.html#gad82efa5466d14a9f05aa06416375b28d">libwebsockets.h</a>
</li>
<li>lws_service_fd_tsi()
: <a class="el" href="group__service.html#gaebf426eda371ba23642fc11d8e0ace6b">libwebsockets.h</a>
</li>
<li>lws_service_tsi()
: <a class="el" href="group__service.html#ga9b3cc4473fd8848e5bbee7f310712939">libwebsockets.h</a>
</li>
<li>lws_set_allocator()
: <a class="el" href="group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b">libwebsockets.h</a>
</li>
<li>lws_set_extension_option()
: <a class="el" href="group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9">libwebsockets.h</a>
</li>
<li>lws_set_log_level()
: <a class="el" href="group__log.html#ga244647f9e1bf0097ccdde66d74f41e26">libwebsockets.h</a>
</li>
<li>lws_set_proxy()
: <a class="el" href="group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4">libwebsockets.h</a>
</li>
<li>lws_set_timeout()
: <a class="el" href="group__timeout.html#gaced9f9237f6172fed9f730a2af51345a">libwebsockets.h</a>
</li>
<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#ga2163492f17db959a36967adb73d823b4">libwebsockets.h</a>
</li>
<li>lws_spa_create()
: <a class="el" href="group__form-parsing.html#ga162f86762173a2bc8c28497941d74815">libwebsockets.h</a>
</li>
<li>lws_spa_destroy()
: <a class="el" href="group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b">libwebsockets.h</a>
</li>
<li>lws_spa_finalize()
: <a class="el" href="group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24">libwebsockets.h</a>
</li>
<li>lws_spa_get_length()
: <a class="el" href="group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f">libwebsockets.h</a>
</li>
<li>lws_spa_get_string()
: <a class="el" href="group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd">libwebsockets.h</a>
</li>
<li>lws_spa_process()
: <a class="el" href="group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2">libwebsockets.h</a>
</li>
<li>lws_sql_purify()
: <a class="el" href="group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865">libwebsockets.h</a>
</li>
<li>lws_token_to_string()
: <a class="el" href="group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b">libwebsockets.h</a>
</li>
<li>lws_urldecode()
: <a class="el" href="group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3">libwebsockets.h</a>
</li>
<li>lws_urlencode()
: <a class="el" href="group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7">libwebsockets.h</a>
</li>
<li>lws_vhost_get()
: <a class="el" href="group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c">libwebsockets.h</a>
</li>
<li>lws_vhost_name_to_protocol()
: <a class="el" href="group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d">libwebsockets.h</a>
</li>
<li>lws_write()
: <a class="el" href="group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001">libwebsockets.h</a>
</li>
<li>lws_wsi_user()
: <a class="el" href="group__misc.html#gaa194584fff9698f3b280658f770ccd0f">libwebsockets.h</a>
</li>
<li>lwsl_emit_syslog()
: <a class="el" href="group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c">libwebsockets.h</a>
</li>
<li>lwsl_hexdump()
: <a class="el" href="group__log.html#ga898b1f03872ad019f507d4e35bbefa90">libwebsockets.h</a>
</li>
<li>lwsl_timestamp()
: <a class="el" href="group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd">libwebsockets.h</a>
</li>
<li>lwsl_visible()
: <a class="el" href="group__log.html#ga2d1819ad1645062fd83817e6f20e03b4">libwebsockets.h</a>
</li>
<li>lwsws_get_config_globals()
: <a class="el" href="group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73">libwebsockets.h</a>
</li>
<li>lwsws_get_config_vhosts()
: <a class="el" href="group__context-and-vhost.html#ga341064721add2618ae1b29717493a212">libwebsockets.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,807 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('globals_l.html','');});
</script>
<div id="doc-content">
<div class="contents">
<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
<h3><a id="index_l"></a>- l -</h3><ul>
<li>LGSSMTP_CONNECTED
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">libwebsockets.h</a>
</li>
<li>LGSSMTP_CONNECTING
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">libwebsockets.h</a>
</li>
<li>LGSSMTP_IDLE
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_BODY
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_DATA
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_FROM
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_HELO
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_QUIT
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">libwebsockets.h</a>
</li>
<li>LGSSMTP_SENT_TO
: <a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">libwebsockets.h</a>
</li>
<li>lws_add_http_header_by_name()
: <a class="el" href="group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8">libwebsockets.h</a>
</li>
<li>lws_add_http_header_by_token()
: <a class="el" href="group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1">libwebsockets.h</a>
</li>
<li>lws_add_http_header_content_length()
: <a class="el" href="group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf">libwebsockets.h</a>
</li>
<li>lws_add_http_header_status()
: <a class="el" href="group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6">libwebsockets.h</a>
</li>
<li>lws_adopt_socket()
: <a class="el" href="group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af">libwebsockets.h</a>
</li>
<li>lws_adopt_socket_readbuf()
: <a class="el" href="group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b">libwebsockets.h</a>
</li>
<li>lws_adopt_socket_vhost()
: <a class="el" href="group__sock-adopt.html#ga18747e81ff49df2076e7cd4f131f967c">libwebsockets.h</a>
</li>
<li>lws_adopt_socket_vhost_readbuf()
: <a class="el" href="group__sock-adopt.html#ga5ed5fd251ac0ed46798af341c33bf067">libwebsockets.h</a>
</li>
<li>lws_b64_decode_string()
: <a class="el" href="group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d">libwebsockets.h</a>
</li>
<li>lws_b64_encode_string()
: <a class="el" href="group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_ADD_POLL_FD
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412">libwebsockets.h</a>
</li>
<li>lws_callback_all_protocol()
: <a class="el" href="group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70">libwebsockets.h</a>
</li>
<li>lws_callback_all_protocol_vhost()
: <a class="el" href="group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CHANGE_MODE_POLL_FD
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_CONNECTION_ERROR
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_ESTABLISHED
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_HTTP_WRITEABLE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_RECEIVE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_RECEIVE_PONG
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLIENT_WRITEABLE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLOSED
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CLOSED_HTTP
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_CONFIRM_EXTENSION_OKAY
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_DEL_POLL_FD
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_ESTABLISHED
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_FILTER_HTTP_CONNECTION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_FILTER_NETWORK_CONNECTION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d">libwebsockets.h</a>
</li>
<li>lws_callback_function
: <a class="el" href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_GET_THREAD_ID
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP_BODY
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP_BODY_COMPLETION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP_FILE_COMPLETION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP_PMO
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_HTTP_WRITEABLE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_LOCK_POLL
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428">libwebsockets.h</a>
</li>
<li>lws_callback_on_writable()
: <a class="el" href="group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d">libwebsockets.h</a>
</li>
<li>lws_callback_on_writable_all_protocol()
: <a class="el" href="group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107">libwebsockets.h</a>
</li>
<li>lws_callback_on_writable_all_protocol_vhost()
: <a class="el" href="group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_PROTOCOL_DESTROY
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_PROTOCOL_INIT
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RAW_ADOPT
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a13e302be9ed9190d962591eb9c8c5f0b">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RAW_CLOSE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4cc93dadca4ea4541f3fe6d35bdb0a9">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RAW_RX
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a6c4ce79afb3a5d96c8df3c8d5e3c869d">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RAW_WRITEABLE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7acd0e80a385c951eceb9c6e2a41ab1c82">libwebsockets.h</a>
</li>
<li>lws_callback_reasons
: <a class="el" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RECEIVE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_RECEIVE_PONG
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_SERVER_WRITEABLE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_UNLOCK_POLL
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_USER
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a">libwebsockets.h</a>
</li>
<li>lws_callback_vhost_protocols()
: <a class="el" href="group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_WS_PEER_INITIATED_CLOSE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_WSI_CREATE
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01">libwebsockets.h</a>
</li>
<li>LWS_CALLBACK_WSI_DESTROY
: <a class="el" href="group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e">libwebsockets.h</a>
</li>
<li>lws_cancel_service()
: <a class="el" href="group__service.html#ga53e3d0801dfda7960a7249dd559e68a2">libwebsockets.h</a>
</li>
<li>lws_cancel_service_pt()
: <a class="el" href="group__service.html#ga29c246707997ab7a466aa709aecd2d7b">libwebsockets.h</a>
</li>
<li>lws_canonical_hostname()
: <a class="el" href="group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4">libwebsockets.h</a>
</li>
<li>lws_cgi()
: <a class="el" href="libwebsockets_8h.html#af52923473c59e643a974d65e12290831">libwebsockets.h</a>
</li>
<li>lws_cgi_kill()
: <a class="el" href="libwebsockets_8h.html#a27bb0b3cdcd0af839c928c253b521ff4">libwebsockets.h</a>
</li>
<li>lws_cgi_write_split_stdout_headers()
: <a class="el" href="libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2">libwebsockets.h</a>
</li>
<li>lws_chunked_html_process()
: <a class="el" href="group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60">libwebsockets.h</a>
</li>
<li>lws_client_connect()
: <a class="el" href="group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3">libwebsockets.h</a>
</li>
<li>lws_client_connect_extended()
: <a class="el" href="group__client.html#gac6a8558b4410961a880241c2ac1271e2">libwebsockets.h</a>
</li>
<li>lws_client_connect_ssl_connection_flags
: <a class="el" href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce">libwebsockets.h</a>
</li>
<li>lws_client_connect_via_info()
: <a class="el" href="group__client.html#ga0c966136905f467816307cfba6deb5fd">libwebsockets.h</a>
</li>
<li>lws_close_reason()
: <a class="el" href="group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262">libwebsockets.h</a>
</li>
<li>lws_close_status
: <a class="el" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_ABNORMAL_CLOSE
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_EXTENSION_REQUIRED
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_GOINGAWAY
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_INVALID_PAYLOAD
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_NO_STATUS
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_NORMAL
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_POLICY_VIOLATION
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_PROTOCOL_ERR
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_RESERVED
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_TLS_FAILURE
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">libwebsockets.h</a>
</li>
<li>LWS_CLOSE_STATUS_UNEXPECTED_CONDITION
: <a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">libwebsockets.h</a>
</li>
<li>lws_context_deprecate()
: <a class="el" href="group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232">libwebsockets.h</a>
</li>
<li>lws_context_destroy()
: <a class="el" href="group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb">libwebsockets.h</a>
</li>
<li>lws_context_options
: <a class="el" href="group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5">libwebsockets.h</a>
</li>
<li>lws_context_user()
: <a class="el" href="group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da">libwebsockets.h</a>
</li>
<li>lws_create_context()
: <a class="el" href="group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648">libwebsockets.h</a>
</li>
<li>lws_create_vhost()
: <a class="el" href="group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c">libwebsockets.h</a>
</li>
<li>lws_daemonize()
: <a class="el" href="group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af">libwebsockets.h</a>
</li>
<li>lws_email_check()
: <a class="el" href="group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb">libwebsockets.h</a>
</li>
<li>lws_email_destroy()
: <a class="el" href="group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2">libwebsockets.h</a>
</li>
<li>lws_email_init()
: <a class="el" href="group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29">libwebsockets.h</a>
</li>
<li>lws_ext_options_types
: <a class="el" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">libwebsockets.h</a>
</li>
<li>lws_ext_parse_options()
: <a class="el" href="group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b">libwebsockets.h</a>
</li>
<li>lws_extension_callback_function
: <a class="el" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0">libwebsockets.h</a>
</li>
<li>lws_extension_callback_pm_deflate()
: <a class="el" href="group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e">libwebsockets.h</a>
</li>
<li>lws_finalize_http_header()
: <a class="el" href="group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b">libwebsockets.h</a>
</li>
<li>lws_finalize_startup()
: <a class="el" href="group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43">libwebsockets.h</a>
</li>
<li>lws_frame_is_binary()
: <a class="el" href="group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd">libwebsockets.h</a>
</li>
<li>lws_get_child()
: <a class="el" href="group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234">libwebsockets.h</a>
</li>
<li>lws_get_context()
: <a class="el" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">libwebsockets.h</a>
</li>
<li>lws_get_count_threads()
: <a class="el" href="group__misc.html#ga629f48268fd1856b54b11172991b97d9">libwebsockets.h</a>
</li>
<li>lws_get_fops()
: <a class="el" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">libwebsockets.h</a>
</li>
<li>lws_get_library_version()
: <a class="el" href="group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0">libwebsockets.h</a>
</li>
<li>lws_get_mimetype()
: <a class="el" href="group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c">libwebsockets.h</a>
</li>
<li>lws_get_parent()
: <a class="el" href="group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899">libwebsockets.h</a>
</li>
<li>lws_get_peer_addresses()
: <a class="el" href="group__net.html#ga092e5f473b3347f03ffeef8a950080f3">libwebsockets.h</a>
</li>
<li>lws_get_peer_simple()
: <a class="el" href="group__net.html#gad01014fed09759741b6d23afccfdaacc">libwebsockets.h</a>
</li>
<li>lws_get_peer_write_allowance()
: <a class="el" href="group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde">libwebsockets.h</a>
</li>
<li>lws_get_protocol()
: <a class="el" href="group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112">libwebsockets.h</a>
</li>
<li>lws_get_random()
: <a class="el" href="group__misc.html#ga58f906c6be0ca80efd813f694569dd4a">libwebsockets.h</a>
</li>
<li>lws_get_reserved_bits()
: <a class="el" href="group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2">libwebsockets.h</a>
</li>
<li>lws_get_socket_fd()
: <a class="el" href="group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba">libwebsockets.h</a>
</li>
<li>lws_get_ssl()
: <a class="el" href="group__wsstatus.html#ga42152ffb385f9b19f4e7b04f998425de">libwebsockets.h</a>
</li>
<li>lws_get_urlarg_by_name()
: <a class="el" href="group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2">libwebsockets.h</a>
</li>
<li>lws_get_vhost()
: <a class="el" href="group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932">libwebsockets.h</a>
</li>
<li>lws_gs_event
: <a class="el" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">libwebsockets.h</a>
</li>
<li>lws_hdr_copy()
: <a class="el" href="group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77">libwebsockets.h</a>
</li>
<li>lws_hdr_copy_fragment()
: <a class="el" href="group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9">libwebsockets.h</a>
</li>
<li>lws_hdr_fragment_length()
: <a class="el" href="group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e">libwebsockets.h</a>
</li>
<li>lws_hdr_total_length()
: <a class="el" href="group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8">libwebsockets.h</a>
</li>
<li>lws_http_client_http_response()
: <a class="el" href="group__client.html#ga715efffc0c4e8fbf72a4293008eb2187">libwebsockets.h</a>
</li>
<li>lws_http_client_read()
: <a class="el" href="group__client.html#ga4450c34200bf9dab3beb90ef23221870">libwebsockets.h</a>
</li>
<li>lws_http_redirect()
: <a class="el" href="group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25">libwebsockets.h</a>
</li>
<li>lws_http_transaction_completed()
: <a class="el" href="group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a">libwebsockets.h</a>
</li>
<li>lws_init_vhost_client_ssl()
: <a class="el" href="group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340">libwebsockets.h</a>
</li>
<li>lws_interface_to_sa()
: <a class="el" href="group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8">libwebsockets.h</a>
</li>
<li>lws_is_cgi()
: <a class="el" href="group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1">libwebsockets.h</a>
</li>
<li>lws_is_final_fragment()
: <a class="el" href="group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37">libwebsockets.h</a>
</li>
<li>lws_is_ssl()
: <a class="el" href="group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa">libwebsockets.h</a>
</li>
<li>lws_json_dump_context()
: <a class="el" href="group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135">libwebsockets.h</a>
</li>
<li>lws_json_dump_vhost()
: <a class="el" href="group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6">libwebsockets.h</a>
</li>
<li>lws_json_purify()
: <a class="el" href="group__pur.html#gab15187efcfa256b7c928562c182b92a3">libwebsockets.h</a>
</li>
<li>lws_mount_protocols
: <a class="el" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437">libwebsockets.h</a>
</li>
<li>lws_now_secs()
: <a class="el" href="group__misc.html#ga33bf2635033710b25f931b57ed663e1e">libwebsockets.h</a>
</li>
<li>lws_parse_uri()
: <a class="el" href="group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa">libwebsockets.h</a>
</li>
<li>lws_partial_buffered()
: <a class="el" href="group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85">libwebsockets.h</a>
</li>
<li>lws_protocol_get()
: <a class="el" href="group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030">libwebsockets.h</a>
</li>
<li>lws_protocol_vh_priv_get()
: <a class="el" href="group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129">libwebsockets.h</a>
</li>
<li>lws_protocol_vh_priv_zalloc()
: <a class="el" href="group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1">libwebsockets.h</a>
</li>
<li>lws_remaining_packet_payload()
: <a class="el" href="libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536">libwebsockets.h</a>
</li>
<li>lws_return_http_status()
: <a class="el" href="group__http.html#gac8a4a71240857dc6b2ed70456b6923f4">libwebsockets.h</a>
</li>
<li>lws_rx_flow_allow_all_protocol()
: <a class="el" href="libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672">libwebsockets.h</a>
</li>
<li>lws_rx_flow_control()
: <a class="el" href="libwebsockets_8h.html#adf4abd01e8c43f07c6e498ce13590c3e">libwebsockets.h</a>
</li>
<li>lws_send_pipe_choked()
: <a class="el" href="group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421">libwebsockets.h</a>
</li>
<li>lws_serve_http_file()
: <a class="el" href="group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_DISABLE_IPV6
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_EXPLICIT_VHOSTS
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_LIBEV
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_LIBUV
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_SSL_ECDH
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_STS
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_UNIX_SOCK
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd">libwebsockets.h</a>
</li>
<li>LWS_SERVER_OPTION_VALIDATE_UTF8
: <a class="el" href="group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f">libwebsockets.h</a>
</li>
<li>lws_service()
: <a class="el" href="group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8">libwebsockets.h</a>
</li>
<li>lws_service_adjust_timeout()
: <a class="el" href="group__service.html#ga4fd9d714434ca499e2b3f7dbba86f241">libwebsockets.h</a>
</li>
<li>lws_service_fd()
: <a class="el" href="group__service.html#gad82efa5466d14a9f05aa06416375b28d">libwebsockets.h</a>
</li>
<li>lws_service_fd_tsi()
: <a class="el" href="group__service.html#gaebf426eda371ba23642fc11d8e0ace6b">libwebsockets.h</a>
</li>
<li>lws_service_tsi()
: <a class="el" href="group__service.html#ga9b3cc4473fd8848e5bbee7f310712939">libwebsockets.h</a>
</li>
<li>lws_set_allocator()
: <a class="el" href="group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b">libwebsockets.h</a>
</li>
<li>lws_set_extension_option()
: <a class="el" href="group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9">libwebsockets.h</a>
</li>
<li>lws_set_log_level()
: <a class="el" href="group__log.html#ga244647f9e1bf0097ccdde66d74f41e26">libwebsockets.h</a>
</li>
<li>lws_set_proxy()
: <a class="el" href="group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4">libwebsockets.h</a>
</li>
<li>lws_set_timeout()
: <a class="el" href="group__timeout.html#gaced9f9237f6172fed9f730a2af51345a">libwebsockets.h</a>
</li>
<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#ga2163492f17db959a36967adb73d823b4">libwebsockets.h</a>
</li>
<li>lws_spa_create()
: <a class="el" href="group__form-parsing.html#ga162f86762173a2bc8c28497941d74815">libwebsockets.h</a>
</li>
<li>lws_spa_destroy()
: <a class="el" href="group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b">libwebsockets.h</a>
</li>
<li>lws_spa_fileupload_cb
: <a class="el" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">libwebsockets.h</a>
</li>
<li>lws_spa_fileupload_states
: <a class="el" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">libwebsockets.h</a>
</li>
<li>lws_spa_finalize()
: <a class="el" href="group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24">libwebsockets.h</a>
</li>
<li>lws_spa_get_length()
: <a class="el" href="group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f">libwebsockets.h</a>
</li>
<li>lws_spa_get_string()
: <a class="el" href="group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd">libwebsockets.h</a>
</li>
<li>lws_spa_process()
: <a class="el" href="group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2">libwebsockets.h</a>
</li>
<li>lws_sql_purify()
: <a class="el" href="group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865">libwebsockets.h</a>
</li>
<li>lws_token_to_string()
: <a class="el" href="group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b">libwebsockets.h</a>
</li>
<li>LWS_UFS_CONTENT
: <a class="el" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">libwebsockets.h</a>
</li>
<li>LWS_UFS_FINAL_CONTENT
: <a class="el" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">libwebsockets.h</a>
</li>
<li>LWS_UFS_OPEN
: <a class="el" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">libwebsockets.h</a>
</li>
<li>lws_urldecode()
: <a class="el" href="group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3">libwebsockets.h</a>
</li>
<li>lws_urlencode()
: <a class="el" href="group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7">libwebsockets.h</a>
</li>
<li>lws_vhost_get()
: <a class="el" href="group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c">libwebsockets.h</a>
</li>
<li>lws_vhost_name_to_protocol()
: <a class="el" href="group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d">libwebsockets.h</a>
</li>
<li>lws_write()
: <a class="el" href="group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001">libwebsockets.h</a>
</li>
<li>LWS_WRITE_BINARY
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">libwebsockets.h</a>
</li>
<li>LWS_WRITE_CLIENT_IGNORE_XOR_MASK
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">libwebsockets.h</a>
</li>
<li>LWS_WRITE_CONTINUATION
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">libwebsockets.h</a>
</li>
<li>LWS_WRITE_HTTP
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">libwebsockets.h</a>
</li>
<li>LWS_WRITE_HTTP_HEADERS
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">libwebsockets.h</a>
</li>
<li>LWS_WRITE_NO_FIN
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">libwebsockets.h</a>
</li>
<li>lws_write_protocol
: <a class="el" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">libwebsockets.h</a>
</li>
<li>LWS_WRITE_TEXT
: <a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">libwebsockets.h</a>
</li>
<li>lws_wsi_user()
: <a class="el" href="group__misc.html#gaa194584fff9698f3b280658f770ccd0f">libwebsockets.h</a>
</li>
<li>LWSGS_AUTH_ADMIN
: <a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">libwebsockets.h</a>
</li>
<li>lwsgs_auth_bits
: <a class="el" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">libwebsockets.h</a>
</li>
<li>LWSGS_AUTH_FORGOT_FLOW
: <a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">libwebsockets.h</a>
</li>
<li>LWSGS_AUTH_LOGGED_IN
: <a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">libwebsockets.h</a>
</li>
<li>LWSGS_AUTH_VERIFIED
: <a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">libwebsockets.h</a>
</li>
<li>lwsgs_smtp_states
: <a class="el" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">libwebsockets.h</a>
</li>
<li>LWSGSE_CREATED
: <a class="el" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">libwebsockets.h</a>
</li>
<li>LWSGSE_DELETED
: <a class="el" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">libwebsockets.h</a>
</li>
<li>lwsl_emit_syslog()
: <a class="el" href="group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c">libwebsockets.h</a>
</li>
<li>lwsl_hexdump()
: <a class="el" href="group__log.html#ga898b1f03872ad019f507d4e35bbefa90">libwebsockets.h</a>
</li>
<li>lwsl_timestamp()
: <a class="el" href="group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd">libwebsockets.h</a>
</li>
<li>lwsl_visible()
: <a class="el" href="group__log.html#ga2d1819ad1645062fd83817e6f20e03b4">libwebsockets.h</a>
</li>
<li>LWSMPRO_CALLBACK
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">libwebsockets.h</a>
</li>
<li>LWSMPRO_CGI
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">libwebsockets.h</a>
</li>
<li>LWSMPRO_FILE
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">libwebsockets.h</a>
</li>
<li>LWSMPRO_HTTP
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">libwebsockets.h</a>
</li>
<li>LWSMPRO_HTTPS
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">libwebsockets.h</a>
</li>
<li>LWSMPRO_REDIR_HTTP
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">libwebsockets.h</a>
</li>
<li>LWSMPRO_REDIR_HTTPS
: <a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">libwebsockets.h</a>
</li>
<li>lwsws_get_config_globals()
: <a class="el" href="group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73">libwebsockets.h</a>
</li>
<li>lwsws_get_config_vhosts()
: <a class="el" href="group__context-and-vhost.html#ga341064721add2618ae1b29717493a212">libwebsockets.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,85 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('globals_type.html','');});
</script>
<div id="doc-content">
<div class="contents">
&#160;<ul>
<li>lws_callback_function
: <a class="el" href="group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f">libwebsockets.h</a>
</li>
<li>lws_extension_callback_function
: <a class="el" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0">libwebsockets.h</a>
</li>
<li>lws_spa_fileupload_cb
: <a class="el" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">libwebsockets.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,386 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: HTTP headers: create</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__HTTP-headers-create.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">HTTP headers: create<div class="ingroups"><a class="el" href="group__http.html">HTTP</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga29b7d6d2ddfdbaff3d8b607e7e3151b6"><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__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6">lws_add_http_header_status</a> (struct lws *wsi, unsigned int code, unsigned char **p, unsigned char *end)</td></tr>
<tr class="separator:ga29b7d6d2ddfdbaff3d8b607e7e3151b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b36bf44405755ff51c1939303b995a8"><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__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8">lws_add_http_header_by_name</a> (struct lws *wsi, const unsigned char *name, const unsigned char *value, int length, unsigned char **p, unsigned char *end)</td></tr>
<tr class="separator:ga2b36bf44405755ff51c1939303b995a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf74adb761b22566ad70004882712dce1"><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__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1">lws_add_http_header_by_token</a> (struct lws *wsi, enum lws_token_indexes token, const unsigned char *value, int length, unsigned char **p, unsigned char *end)</td></tr>
<tr class="separator:gaf74adb761b22566ad70004882712dce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacc76a5babcb4dce1b01b1955aa7a2faf"><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__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf">lws_add_http_header_content_length</a> (struct lws *wsi, unsigned long content_length, unsigned char **p, unsigned char *end)</td></tr>
<tr class="separator:gacc76a5babcb4dce1b01b1955aa7a2faf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4887605ff2242a54db3a7fa01f6f864b"><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__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b">lws_finalize_http_header</a> (struct lws *wsi, unsigned char **p, unsigned char *end)</td></tr>
<tr class="separator:ga4887605ff2242a54db3a7fa01f6f864b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>HTTP headers: Create</h2>
<p>These apis allow you to create HTTP response headers in a way compatible with both HTTP/1.x and HTTP/2.</p>
<p>They each append to a buffer taking care about the buffer end, which is passed in as a pointer. When data is written to the buffer, the current position p is updated accordingly.</p>
<p>All of these apis are LWS_WARN_UNUSED_RESULT as they can run out of space and fail with nonzero return. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga2b36bf44405755ff51c1939303b995a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2b36bf44405755ff51c1939303b995a8">&sect;&nbsp;</a></span>lws_add_http_header_by_name()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_by_name </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned char *&#160;</td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char **&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>end</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__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8">lws_add_http_header_by_name()</a> - append named header and value</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>the connection to check </td></tr>
<tr><td class="paramname">name</td><td>the hdr name, like "my-header" </td></tr>
<tr><td class="paramname">value</td><td>the value after the = for this header </td></tr>
<tr><td class="paramname">length</td><td>the length of the value </td></tr>
<tr><td class="paramname">p</td><td>pointer to current position in buffer pointer </td></tr>
<tr><td class="paramname">end</td><td>pointer to end of buffer</td></tr>
</table>
</dd>
</dl>
<p>Appends name: value to the headers </p>
</div>
</div>
<a id="gaf74adb761b22566ad70004882712dce1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf74adb761b22566ad70004882712dce1">&sect;&nbsp;</a></span>lws_add_http_header_by_token()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_by_token </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum lws_token_indexes&#160;</td>
<td class="paramname"><em>token</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned char *&#160;</td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char **&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>end</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__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1">lws_add_http_header_by_token()</a> - append given header and value</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>the connection to check </td></tr>
<tr><td class="paramname">token</td><td>the token index for the hdr </td></tr>
<tr><td class="paramname">value</td><td>the value after the = for this header </td></tr>
<tr><td class="paramname">length</td><td>the length of the value </td></tr>
<tr><td class="paramname">p</td><td>pointer to current position in buffer pointer </td></tr>
<tr><td class="paramname">end</td><td>pointer to end of buffer</td></tr>
</table>
</dd>
</dl>
<p>Appends name=value to the headers, but is able to take advantage of better HTTP/2 coding mechanisms where possible. </p>
</div>
</div>
<a id="gacc76a5babcb4dce1b01b1955aa7a2faf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacc76a5babcb4dce1b01b1955aa7a2faf">&sect;&nbsp;</a></span>lws_add_http_header_content_length()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_content_length </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long&#160;</td>
<td class="paramname"><em>content_length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char **&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>end</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__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8">lws_add_http_header_by_name()</a> - append content-length helper</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>the connection to check </td></tr>
<tr><td class="paramname">content_length</td><td>the content length to use </td></tr>
<tr><td class="paramname">p</td><td>pointer to current position in buffer pointer </td></tr>
<tr><td class="paramname">end</td><td>pointer to end of buffer</td></tr>
</table>
</dd>
</dl>
<p>Appends content-length: content_length to the headers </p>
</div>
</div>
<a id="ga29b7d6d2ddfdbaff3d8b607e7e3151b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga29b7d6d2ddfdbaff3d8b607e7e3151b6">&sect;&nbsp;</a></span>lws_add_http_header_status()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_status </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>code</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char **&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>end</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__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6">lws_add_http_header_status()</a> - add the HTTP response status code</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>the connection to check </td></tr>
<tr><td class="paramname">code</td><td>an HTTP code like 200, 404 etc (see enum http_status) </td></tr>
<tr><td class="paramname">p</td><td>pointer to current position in buffer pointer </td></tr>
<tr><td class="paramname">end</td><td>pointer to end of buffer</td></tr>
</table>
</dd>
</dl>
<p>Adds the initial response code, so should be called first </p>
</div>
</div>
<a id="ga4887605ff2242a54db3a7fa01f6f864b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4887605ff2242a54db3a7fa01f6f864b">&sect;&nbsp;</a></span>lws_finalize_http_header()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_finalize_http_header </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char **&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>end</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__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b">lws_finalize_http_header()</a> - terminate header block</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>the connection to check </td></tr>
<tr><td class="paramname">p</td><td>pointer to current position in buffer pointer </td></tr>
<tr><td class="paramname">end</td><td>pointer to end of buffer</td></tr>
</table>
</dd>
</dl>
<p>Indicates no more headers will be added </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,8 +0,0 @@
var group__HTTP_headers_create =
[
[ "lws_add_http_header_by_name", "group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8", null ],
[ "lws_add_http_header_by_token", "group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1", null ],
[ "lws_add_http_header_content_length", "group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf", null ],
[ "lws_add_http_header_status", "group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6", null ],
[ "lws_finalize_http_header", "group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b", null ]
];

View file

@ -1,513 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: HTTP headers: read</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__HTTP-headers-read.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">HTTP headers: read<div class="ingroups"><a class="el" href="group__http.html">HTTP</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__tokens.html">lws_tokens</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__token__limits.html">lws_token_limits</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga6e747906f9d76532ec118d6ef418b82e"><td class="memItemLeft" align="right" valign="top"><a id="ga6e747906f9d76532ec118d6ef418b82e"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>lws_token_indexes</b> { <br />
&#160;&#160;<b>WSI_TOKEN_GET_URI</b> = 0,
<b>WSI_TOKEN_POST_URI</b> = 1,
<b>WSI_TOKEN_OPTIONS_URI</b> = 2,
<b>WSI_TOKEN_HOST</b> = 3,
<br />
&#160;&#160;<b>WSI_TOKEN_CONNECTION</b> = 4,
<b>WSI_TOKEN_UPGRADE</b> = 5,
<b>WSI_TOKEN_ORIGIN</b> = 6,
<b>WSI_TOKEN_DRAFT</b> = 7,
<br />
&#160;&#160;<b>WSI_TOKEN_CHALLENGE</b> = 8,
<b>WSI_TOKEN_EXTENSIONS</b> = 9,
<b>WSI_TOKEN_KEY1</b> = 10,
<b>WSI_TOKEN_KEY2</b> = 11,
<br />
&#160;&#160;<b>WSI_TOKEN_PROTOCOL</b> = 12,
<b>WSI_TOKEN_ACCEPT</b> = 13,
<b>WSI_TOKEN_NONCE</b> = 14,
<b>WSI_TOKEN_HTTP</b> = 15,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP2_SETTINGS</b> = 16,
<b>WSI_TOKEN_HTTP_ACCEPT</b> = 17,
<b>WSI_TOKEN_HTTP_AC_REQUEST_HEADERS</b> = 18,
<b>WSI_TOKEN_HTTP_IF_MODIFIED_SINCE</b> = 19,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_IF_NONE_MATCH</b> = 20,
<b>WSI_TOKEN_HTTP_ACCEPT_ENCODING</b> = 21,
<b>WSI_TOKEN_HTTP_ACCEPT_LANGUAGE</b> = 22,
<b>WSI_TOKEN_HTTP_PRAGMA</b> = 23,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_CACHE_CONTROL</b> = 24,
<b>WSI_TOKEN_HTTP_AUTHORIZATION</b> = 25,
<b>WSI_TOKEN_HTTP_COOKIE</b> = 26,
<b>WSI_TOKEN_HTTP_CONTENT_LENGTH</b> = 27,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_CONTENT_TYPE</b> = 28,
<b>WSI_TOKEN_HTTP_DATE</b> = 29,
<b>WSI_TOKEN_HTTP_RANGE</b> = 30,
<b>WSI_TOKEN_HTTP_REFERER</b> = 31,
<br />
&#160;&#160;<b>WSI_TOKEN_KEY</b> = 32,
<b>WSI_TOKEN_VERSION</b> = 33,
<b>WSI_TOKEN_SWORIGIN</b> = 34,
<b>WSI_TOKEN_HTTP_COLON_AUTHORITY</b> = 35,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_COLON_METHOD</b> = 36,
<b>WSI_TOKEN_HTTP_COLON_PATH</b> = 37,
<b>WSI_TOKEN_HTTP_COLON_SCHEME</b> = 38,
<b>WSI_TOKEN_HTTP_COLON_STATUS</b> = 39,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_ACCEPT_CHARSET</b> = 40,
<b>WSI_TOKEN_HTTP_ACCEPT_RANGES</b> = 41,
<b>WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN</b> = 42,
<b>WSI_TOKEN_HTTP_AGE</b> = 43,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_ALLOW</b> = 44,
<b>WSI_TOKEN_HTTP_CONTENT_DISPOSITION</b> = 45,
<b>WSI_TOKEN_HTTP_CONTENT_ENCODING</b> = 46,
<b>WSI_TOKEN_HTTP_CONTENT_LANGUAGE</b> = 47,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_CONTENT_LOCATION</b> = 48,
<b>WSI_TOKEN_HTTP_CONTENT_RANGE</b> = 49,
<b>WSI_TOKEN_HTTP_ETAG</b> = 50,
<b>WSI_TOKEN_HTTP_EXPECT</b> = 51,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_EXPIRES</b> = 52,
<b>WSI_TOKEN_HTTP_FROM</b> = 53,
<b>WSI_TOKEN_HTTP_IF_MATCH</b> = 54,
<b>WSI_TOKEN_HTTP_IF_RANGE</b> = 55,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE</b> = 56,
<b>WSI_TOKEN_HTTP_LAST_MODIFIED</b> = 57,
<b>WSI_TOKEN_HTTP_LINK</b> = 58,
<b>WSI_TOKEN_HTTP_LOCATION</b> = 59,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_MAX_FORWARDS</b> = 60,
<b>WSI_TOKEN_HTTP_PROXY_AUTHENTICATE</b> = 61,
<b>WSI_TOKEN_HTTP_PROXY_AUTHORIZATION</b> = 62,
<b>WSI_TOKEN_HTTP_REFRESH</b> = 63,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_RETRY_AFTER</b> = 64,
<b>WSI_TOKEN_HTTP_SERVER</b> = 65,
<b>WSI_TOKEN_HTTP_SET_COOKIE</b> = 66,
<b>WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY</b> = 67,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_TRANSFER_ENCODING</b> = 68,
<b>WSI_TOKEN_HTTP_USER_AGENT</b> = 69,
<b>WSI_TOKEN_HTTP_VARY</b> = 70,
<b>WSI_TOKEN_HTTP_VIA</b> = 71,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_WWW_AUTHENTICATE</b> = 72,
<b>WSI_TOKEN_PATCH_URI</b> = 73,
<b>WSI_TOKEN_PUT_URI</b> = 74,
<b>WSI_TOKEN_DELETE_URI</b> = 75,
<br />
&#160;&#160;<b>WSI_TOKEN_HTTP_URI_ARGS</b> = 76,
<b>WSI_TOKEN_PROXY</b> = 77,
<b>WSI_TOKEN_HTTP_X_REAL_IP</b> = 78,
<b>WSI_TOKEN_HTTP1_0</b> = 79,
<br />
&#160;&#160;<b>WSI_TOKEN_X_FORWARDED_FOR</b> = 80,
<b>WSI_TOKEN_CONNECT</b> = 81,
<b>_WSI_TOKEN_CLIENT_SENT_PROTOCOLS</b>,
<b>_WSI_TOKEN_CLIENT_PEER_ADDRESS</b>,
<br />
&#160;&#160;<b>_WSI_TOKEN_CLIENT_URI</b>,
<b>_WSI_TOKEN_CLIENT_HOST</b>,
<b>_WSI_TOKEN_CLIENT_ORIGIN</b>,
<b>_WSI_TOKEN_CLIENT_METHOD</b>,
<br />
&#160;&#160;<b>WSI_TOKEN_COUNT</b>,
<b>WSI_TOKEN_NAME_PART</b>,
<b>WSI_TOKEN_SKIPPING</b>,
<b>WSI_TOKEN_SKIPPING_SAW_CR</b>,
<br />
&#160;&#160;<b>WSI_PARSING_COMPLETE</b>,
<b>WSI_INIT_TOKEN_MUXURL</b>
<br />
}</td></tr>
<tr class="separator:ga6e747906f9d76532ec118d6ef418b82e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga2c0597b2ef1d2cee35736c338bcbd17b"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b">lws_token_to_string</a> (enum lws_token_indexes token)</td></tr>
<tr class="separator:ga2c0597b2ef1d2cee35736c338bcbd17b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8ade0e1ffb0da7e62b989d8d867bf6c8"><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__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8">lws_hdr_total_length</a> (struct lws *wsi, enum lws_token_indexes h)</td></tr>
<tr class="separator:ga8ade0e1ffb0da7e62b989d8d867bf6c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga594f3d0ece5b09c2ccf9f98ea533bb4e"><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__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e">lws_hdr_fragment_length</a> (struct lws *wsi, enum lws_token_indexes h, int frag_idx)</td></tr>
<tr class="separator:ga594f3d0ece5b09c2ccf9f98ea533bb4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ce6aa1c0155ea42b7708bed271d1c77"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77">lws_hdr_copy</a> (struct lws *wsi, char *dest, int len, enum lws_token_indexes h)</td></tr>
<tr class="separator:ga6ce6aa1c0155ea42b7708bed271d1c77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa427cad61a9a5e3004afd65c4527b5e9"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9">lws_hdr_copy_fragment</a> (struct lws *wsi, char *dest, int len, enum lws_token_indexes h, int frag_idx)</td></tr>
<tr class="separator:gaa427cad61a9a5e3004afd65c4527b5e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga84e9ce5e71a77501a0998ac403a984c2"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2">lws_get_urlarg_by_name</a> (struct lws *wsi, const char *name, char *buf, int len)</td></tr>
<tr class="separator:ga84e9ce5e71a77501a0998ac403a984c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>HTTP header releated functions</h2>
<p>In lws the client http headers are temporarily stored in a pool, only for the duration of the http part of the handshake. It's because in most cases, the header content is ignored for the whole rest of the connection lifetime and would then just be taking up space needlessly.</p>
<p>During LWS_CALLBACK_HTTP when the URI path is delivered is the last time the http headers are still allocated, you can use these apis then to look at and copy out interesting header content (cookies, etc)</p>
<p>Notice that the header total length reported does not include a terminating '\0', however you must allocate for it when using the _copy apis. So the length reported for a header containing "123" is 3, but you must provide a buffer of length 4 so that "123\0" may be copied into it, or the copy will fail with a nonzero return code.</p>
<p>In the special case of URL arguments, like ?x=1&amp;y=2, the arguments are stored in a token named for the method, eg, WSI_TOKEN_GET_URI if it was a GET or WSI_TOKEN_POST_URI if POST. You can check the total length to confirm the method.</p>
<p>For URL arguments, each argument is stored urldecoded in a "fragment", so you can use the fragment-aware api <a class="el" href="group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9">lws_hdr_copy_fragment()</a> to access each argument in turn: the fragments contain urldecoded strings like x=1 or y=2.</p>
<p>As a convenience, lws has an api that will find the fragment with a given name= part, <a class="el" href="group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2">lws_get_urlarg_by_name()</a>. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga84e9ce5e71a77501a0998ac403a984c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga84e9ce5e71a77501a0998ac403a984c2">&sect;&nbsp;</a></span>lws_get_urlarg_by_name()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const char* lws_get_urlarg_by_name </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</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__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2">lws_get_urlarg_by_name()</a> - return pointer to arg value if present </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>the connection to check </td></tr>
<tr><td class="paramname">name</td><td>the arg name, like "token=" </td></tr>
<tr><td class="paramname">buf</td><td>the buffer to receive the urlarg (including the name= part) </td></tr>
<tr><td class="paramname">len</td><td>the length of the buffer to receive the urlarg <pre class="fragment">Returns NULL if not found or a pointer inside buf to just after the
name= part.</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga6ce6aa1c0155ea42b7708bed271d1c77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ce6aa1c0155ea42b7708bed271d1c77">&sect;&nbsp;</a></span>lws_hdr_copy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_hdr_copy </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum lws_token_indexes&#160;</td>
<td class="paramname"><em>h</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__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77">lws_hdr_copy()</a> - copy a single fragment of the given header to a buffer The buffer length len must include space for an additional terminating '\0', or it will fail returning -1.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>websocket connection </td></tr>
<tr><td class="paramname">dest</td><td>destination buffer </td></tr>
<tr><td class="paramname">len</td><td>length of destination buffer </td></tr>
<tr><td class="paramname">h</td><td>which header index we are interested in</td></tr>
</table>
</dd>
</dl>
<p>copies the whole, aggregated header, even if it was delivered in several actual headers piece by piece </p>
</div>
</div>
<a id="gaa427cad61a9a5e3004afd65c4527b5e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa427cad61a9a5e3004afd65c4527b5e9">&sect;&nbsp;</a></span>lws_hdr_copy_fragment()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_hdr_copy_fragment </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum lws_token_indexes&#160;</td>
<td class="paramname"><em>h</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>frag_idx</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__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9">lws_hdr_copy_fragment()</a> - copy a single fragment of the given header to a buffer The buffer length len must include space for an additional terminating '\0', or it will fail returning -1. If the requested fragment index is not present, it fails returning -1.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>websocket connection </td></tr>
<tr><td class="paramname">dest</td><td>destination buffer </td></tr>
<tr><td class="paramname">len</td><td>length of destination buffer </td></tr>
<tr><td class="paramname">h</td><td>which header index we are interested in </td></tr>
<tr><td class="paramname">frag_idx</td><td>which fragment of h we want to copy</td></tr>
</table>
</dd>
</dl>
<p>Normally this is only useful to parse URI arguments like ?x=1&amp;y=2, token index WSI_TOKEN_HTTP_URI_ARGS fragment 0 will contain "x=1" and fragment 1 "y=2" </p>
</div>
</div>
<a id="ga594f3d0ece5b09c2ccf9f98ea533bb4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga594f3d0ece5b09c2ccf9f98ea533bb4e">&sect;&nbsp;</a></span>lws_hdr_fragment_length()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_hdr_fragment_length </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum lws_token_indexes&#160;</td>
<td class="paramname"><em>h</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>frag_idx</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>lws_hdr_fragment_length: report length of a single fragment of a header The returned length does not include the space for a terminating '\0'</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>websocket connection </td></tr>
<tr><td class="paramname">h</td><td>which header index we are interested in </td></tr>
<tr><td class="paramname">frag_idx</td><td>which fragment of h we want to get the length of </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga8ade0e1ffb0da7e62b989d8d867bf6c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8ade0e1ffb0da7e62b989d8d867bf6c8">&sect;&nbsp;</a></span>lws_hdr_total_length()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_hdr_total_length </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum lws_token_indexes&#160;</td>
<td class="paramname"><em>h</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>lws_hdr_total_length: report length of all fragments of a header totalled up The returned length does not include the space for a terminating '\0'</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>websocket connection </td></tr>
<tr><td class="paramname">h</td><td>which header index we are interested in </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga2c0597b2ef1d2cee35736c338bcbd17b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2c0597b2ef1d2cee35736c338bcbd17b">&sect;&nbsp;</a></span>lws_token_to_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const unsigned char* lws_token_to_string </td>
<td>(</td>
<td class="paramtype">enum lws_token_indexes&#160;</td>
<td class="paramname"><em>token</em></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__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b">lws_token_to_string()</a> - returns a textual representation of a hdr token index</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname"></td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,16 +0,0 @@
var group__HTTP_headers_read =
[
[ "lws_tokens", "structlws__tokens.html", [
[ "token", "structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd", null ],
[ "token_len", "structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766", null ]
] ],
[ "lws_token_limits", "structlws__token__limits.html", [
[ "token_limit", "structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff", null ]
] ],
[ "lws_get_urlarg_by_name", "group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2", null ],
[ "lws_hdr_copy", "group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77", null ],
[ "lws_hdr_copy_fragment", "group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9", null ],
[ "lws_hdr_fragment_length", "group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e", null ],
[ "lws_hdr_total_length", "group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8", null ],
[ "lws_token_to_string", "group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b", null ]
];

View file

@ -1,330 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Protocols and Plugins</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__Protocols-and-Plugins.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Protocols and Plugins</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__generic-sessions"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__generic-sessions.html">plugin: generic-sessions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__protocols.html">lws_protocols</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__plugin__capability.html">lws_plugin_capability</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__plugin.html">lws_plugin</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga40994491e1567f91f579d2b444775266"><td class="memItemLeft" align="right" valign="top"><a id="ga40994491e1567f91f579d2b444775266"></a>
typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><b>lws_plugin_init_func</b>) (struct lws_context *, struct <a class="el" href="structlws__plugin__capability.html">lws_plugin_capability</a> *)</td></tr>
<tr class="separator:ga40994491e1567f91f579d2b444775266"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga83f7a924ba790fa273476075a59f08b0"><td class="memItemLeft" align="right" valign="top"><a id="ga83f7a924ba790fa273476075a59f08b0"></a>
typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><b>lws_plugin_destroy_func</b>) (struct lws_context *)</td></tr>
<tr class="separator:ga83f7a924ba790fa273476075a59f08b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga25754726d97c5f519d313e691a9fe29d"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d">lws_vhost_name_to_protocol</a> (struct lws_vhost *vh, const char *name)</td></tr>
<tr class="separator:ga25754726d97c5f519d313e691a9fe29d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72ad550786ca7976463589d347e62112"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112">lws_get_protocol</a> (struct lws *wsi)</td></tr>
<tr class="separator:ga72ad550786ca7976463589d347e62112"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8bbe5e65faca068845704bab911a5030"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030">lws_protocol_get</a> (struct lws *wsi) LWS_WARN_DEPRECATED</td></tr>
<tr class="separator:ga8bbe5e65faca068845704bab911a5030"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec0c0477288ff3f83aff38d357b883d1"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1">lws_protocol_vh_priv_zalloc</a> (struct lws_vhost *vhost, const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *prot, int size)</td></tr>
<tr class="separator:gaec0c0477288ff3f83aff38d357b883d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3be4243443baac0f8be1fcfb4d25129"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129">lws_protocol_vh_priv_get</a> (struct lws_vhost *vhost, const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *prot)</td></tr>
<tr class="separator:gaf3be4243443baac0f8be1fcfb4d25129"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga106b37ae9c247e84d191ab09441adc43"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43">lws_finalize_startup</a> (struct lws_context *context)</td></tr>
<tr class="separator:ga106b37ae9c247e84d191ab09441adc43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga502b1bc5295d2dc0f51fb95d9b8d7132"><td class="memItemLeft" align="right" valign="top"><a id="ga502b1bc5295d2dc0f51fb95d9b8d7132"></a>
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_protocol_init</b> (struct lws_context *context)</td></tr>
<tr class="separator:ga502b1bc5295d2dc0f51fb95d9b8d7132"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Protocol and protocol plugin -related apis</h2>
<p>Protocols bind ws protocol names to a custom callback specific to that protocol implementaion.</p>
<p>A list of protocols can be passed in at context creation time, but it is also legal to leave that NULL and add the protocols and their callback code using plugins.</p>
<p>Plugins are much preferable compared to cut and pasting code into an application each time, since they can be used standalone. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga106b37ae9c247e84d191ab09441adc43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga106b37ae9c247e84d191ab09441adc43">&sect;&nbsp;</a></span>lws_finalize_startup()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_finalize_startup </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em></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__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43">lws_finalize_startup()</a> - drop initial process privileges</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>lws context</td></tr>
</table>
</dd>
</dl>
<p>This is called after the end of the vhost protocol initializations, but you may choose to call it earlier </p>
</div>
</div>
<a id="ga72ad550786ca7976463589d347e62112"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga72ad550786ca7976463589d347e62112">&sect;&nbsp;</a></span>lws_get_protocol()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const struct <a class="el" href="structlws__protocols.html">lws_protocols</a>* lws_get_protocol </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112">lws_get_protocol()</a> - Returns a protocol pointer from a websocket connection. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>pointer to struct websocket you want to know the protocol of</td></tr>
</table>
</dd>
</dl>
<pre class="fragment"> Some apis can act on all live connections of a given protocol,
this is how you can get a pointer to the active protocol if needed.</pre>
</div>
</div>
<a id="ga8bbe5e65faca068845704bab911a5030"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8bbe5e65faca068845704bab911a5030">&sect;&nbsp;</a></span>lws_protocol_get()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const struct <a class="el" href="structlws__protocols.html">lws_protocols</a>* lws_protocol_get </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030">lws_protocol_get()</a> - deprecated: use lws_get_protocol </p>
</div>
</div>
<a id="gaf3be4243443baac0f8be1fcfb4d25129"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf3be4243443baac0f8be1fcfb4d25129">&sect;&nbsp;</a></span>lws_protocol_vh_priv_get()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void* lws_protocol_vh_priv_get </td>
<td>(</td>
<td class="paramtype">struct lws_vhost *&#160;</td>
<td class="paramname"><em>vhost</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *&#160;</td>
<td class="paramname"><em>prot</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__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129">lws_protocol_vh_priv_get()</a> - retreive a protocol's per-vhost storage</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">vhost</td><td>vhost the instance is related to </td></tr>
<tr><td class="paramname">prot</td><td>protocol the instance is related to</td></tr>
</table>
</dd>
</dl>
<p>Recover a pointer to the allocated per-vhost storage for the protocol created by <a class="el" href="group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1">lws_protocol_vh_priv_zalloc()</a> earlier </p>
</div>
</div>
<a id="gaec0c0477288ff3f83aff38d357b883d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaec0c0477288ff3f83aff38d357b883d1">&sect;&nbsp;</a></span>lws_protocol_vh_priv_zalloc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void* lws_protocol_vh_priv_zalloc </td>
<td>(</td>
<td class="paramtype">struct lws_vhost *&#160;</td>
<td class="paramname"><em>vhost</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *&#160;</td>
<td class="paramname"><em>prot</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>size</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__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1">lws_protocol_vh_priv_zalloc()</a> - Allocate and zero down a protocol's per-vhost storage </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">vhost</td><td>vhost the instance is related to </td></tr>
<tr><td class="paramname">prot</td><td>protocol the instance is related to </td></tr>
<tr><td class="paramname">size</td><td>bytes to allocate</td></tr>
</table>
</dd>
</dl>
<p>Protocols often find it useful to allocate a per-vhost struct, this is a helper to be called in the per-vhost init LWS_CALLBACK_PROTOCOL_INIT </p>
</div>
</div>
<a id="ga25754726d97c5f519d313e691a9fe29d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga25754726d97c5f519d313e691a9fe29d">&sect;&nbsp;</a></span>lws_vhost_name_to_protocol()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const struct <a class="el" href="structlws__protocols.html">lws_protocols</a>* lws_vhost_name_to_protocol </td>
<td>(</td>
<td class="paramtype">struct lws_vhost *&#160;</td>
<td class="paramname"><em>vh</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</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__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d">lws_vhost_name_to_protocol()</a> - get vhost's protocol object from its name</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">vh</td><td>vhost to search </td></tr>
<tr><td class="paramname">name</td><td>protocol name</td></tr>
</table>
</dd>
</dl>
<p>Returns NULL or a pointer to the vhost's protocol of the requested name </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,32 +0,0 @@
var group__Protocols_and_Plugins =
[
[ "plugin: generic-sessions", "group__generic-sessions.html", "group__generic-sessions" ],
[ "lws_protocols", "structlws__protocols.html", [
[ "callback", "structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d", null ],
[ "id", "structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac", null ],
[ "name", "structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624", null ],
[ "per_session_data_size", "structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea", null ],
[ "rx_buffer_size", "structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5", null ],
[ "user", "structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e", null ]
] ],
[ "lws_plugin_capability", "structlws__plugin__capability.html", [
[ "api_magic", "structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a", null ],
[ "count_extensions", "structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3", null ],
[ "count_protocols", "structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f", null ],
[ "extensions", "structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623", null ],
[ "protocols", "structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033", null ]
] ],
[ "lws_plugin", "structlws__plugin.html", [
[ "caps", "structlws__plugin.html#ac7f1fdfe8cf8a21f8ee9720c21934a3f", null ],
[ "l", "structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4", null ],
[ "lib", "structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330", null ],
[ "list", "structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22", null ],
[ "name", "structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105", null ]
] ],
[ "lws_finalize_startup", "group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43", null ],
[ "lws_get_protocol", "group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112", null ],
[ "lws_protocol_get", "group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030", null ],
[ "lws_protocol_vh_priv_get", "group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129", null ],
[ "lws_protocol_vh_priv_zalloc", "group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1", null ],
[ "lws_vhost_name_to_protocol", "group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d", null ]
];

View file

@ -1,444 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Callback when writeable</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__callback-when-writeable.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Callback when writeable</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga941caaa468bc507b1cae52275f58800d"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d">lws_callback_on_writable</a> (struct lws *wsi)</td></tr>
<tr class="separator:ga941caaa468bc507b1cae52275f58800d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabbe4655c7eeb3eb1671b2323ec6b3107"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107">lws_callback_on_writable_all_protocol</a> (const struct lws_context *context, const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *protocol)</td></tr>
<tr class="separator:gabbe4655c7eeb3eb1671b2323ec6b3107"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8570860e191b62db264f2bac67354ea8"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8">lws_callback_on_writable_all_protocol_vhost</a> (const struct lws_vhost *vhost, const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *protocol)</td></tr>
<tr class="separator:ga8570860e191b62db264f2bac67354ea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacf04bbe089f47c971c6408c5efe2ac70"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70">lws_callback_all_protocol</a> (struct lws_context *context, const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *protocol, int reason)</td></tr>
<tr class="separator:gacf04bbe089f47c971c6408c5efe2ac70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13c984d8c5a44a745fd02bc2fba36053"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053">lws_callback_all_protocol_vhost</a> (struct lws_vhost *vh, const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *protocol, int reason)</td></tr>
<tr class="separator:ga13c984d8c5a44a745fd02bc2fba36053"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga60939cf0c073d933fde3d17f3591caf5"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5">lws_callback_vhost_protocols</a> (struct lws *wsi, int reason, void *in, int len)</td></tr>
<tr class="separator:ga60939cf0c073d933fde3d17f3591caf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaad3d524a84d2be08ac85153bc158504b"><td class="memItemLeft" align="right" valign="top"><a id="gaad3d524a84d2be08ac85153bc158504b"></a>
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_callback_http_dummy</b> (struct lws *wsi, enum <a class="el" href="group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7">lws_callback_reasons</a> reason, void *user, void *in, size_t len)</td></tr>
<tr class="separator:gaad3d524a84d2be08ac85153bc158504b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa709e02a10558753c851e58f1e2c16ba"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba">lws_get_socket_fd</a> (struct lws *wsi)</td></tr>
<tr class="separator:gaa709e02a10558753c851e58f1e2c16ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac4643fe16b0940ae5b68b4ee6195cbde"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde">lws_get_peer_write_allowance</a> (struct lws *wsi)</td></tr>
<tr class="separator:gac4643fe16b0940ae5b68b4ee6195cbde"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Callback When Writeable</h2>
<p>lws can only write data on a connection when it is able to accept more data without blocking.</p>
<p>So a basic requirement is we should only use the <a class="el" href="group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001">lws_write()</a> apis when the connection we want to write on says that he can accept more data.</p>
<p>When lws cannot complete your send at the time, it will buffer the data and send it in the background, suppressing any further WRITEABLE callbacks on that connection until it completes. So it is important to write new things in a new writeable callback.</p>
<p>These apis reflect the various ways we can indicate we would like to be called back when one or more connections is writeable. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gacf04bbe089f47c971c6408c5efe2ac70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacf04bbe089f47c971c6408c5efe2ac70">&sect;&nbsp;</a></span>lws_callback_all_protocol()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_callback_all_protocol </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *&#160;</td>
<td class="paramname"><em>protocol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>reason</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__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70">lws_callback_all_protocol()</a> - Callback all connections using the given protocol with the given reason</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>lws_context </td></tr>
<tr><td class="paramname">protocol</td><td>Protocol whose connections will get callbacks </td></tr>
<tr><td class="paramname">reason</td><td>Callback reason index</td></tr>
</table>
</dd>
</dl>
<ul>
<li>Which: connections using this protocol on ALL VHOSTS</li>
<li>When: when the individual connection becomes writeable</li>
<li>What: reason </li>
</ul>
</div>
</div>
<a id="ga13c984d8c5a44a745fd02bc2fba36053"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga13c984d8c5a44a745fd02bc2fba36053">&sect;&nbsp;</a></span>lws_callback_all_protocol_vhost()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_callback_all_protocol_vhost </td>
<td>(</td>
<td class="paramtype">struct lws_vhost *&#160;</td>
<td class="paramname"><em>vh</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *&#160;</td>
<td class="paramname"><em>protocol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>reason</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__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053">lws_callback_all_protocol_vhost()</a> - Callback all connections using the given protocol with the given reason</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">vh</td><td>Vhost whose connections will get callbacks </td></tr>
<tr><td class="paramname">protocol</td><td>Which protocol to match </td></tr>
<tr><td class="paramname">reason</td><td>Callback reason index</td></tr>
</table>
</dd>
</dl>
<ul>
<li>Which: connections using this protocol on GIVEN VHOST ONLY</li>
<li>When: now</li>
<li>What: reason </li>
</ul>
</div>
</div>
<a id="ga941caaa468bc507b1cae52275f58800d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga941caaa468bc507b1cae52275f58800d">&sect;&nbsp;</a></span>lws_callback_on_writable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d">lws_callback_on_writable()</a> - Request a callback when this socket becomes able to be written to without blocking</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>Websocket connection instance to get callback for</td></tr>
</table>
</dd>
</dl>
<ul>
<li>Which: only this wsi</li>
<li>When: when the individual connection becomes writeable</li>
<li>What: LWS_CALLBACK_*_WRITEABLE </li>
</ul>
</div>
</div>
<a id="gabbe4655c7eeb3eb1671b2323ec6b3107"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabbe4655c7eeb3eb1671b2323ec6b3107">&sect;&nbsp;</a></span>lws_callback_on_writable_all_protocol()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable_all_protocol </td>
<td>(</td>
<td class="paramtype">const struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *&#160;</td>
<td class="paramname"><em>protocol</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__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107">lws_callback_on_writable_all_protocol()</a> - Request a callback for all connections on same vhost using the given protocol when it becomes possible to write to each socket without blocking in turn.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>lws_context </td></tr>
<tr><td class="paramname">protocol</td><td>Protocol whose connections will get callbacks</td></tr>
</table>
</dd>
</dl>
<ul>
<li>Which: connections using this protocol on ANY VHOST</li>
<li>When: when the individual connection becomes writeable</li>
<li>What: LWS_CALLBACK_*_WRITEABLE </li>
</ul>
</div>
</div>
<a id="ga8570860e191b62db264f2bac67354ea8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8570860e191b62db264f2bac67354ea8">&sect;&nbsp;</a></span>lws_callback_on_writable_all_protocol_vhost()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable_all_protocol_vhost </td>
<td>(</td>
<td class="paramtype">const struct lws_vhost *&#160;</td>
<td class="paramname"><em>vhost</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structlws__protocols.html">lws_protocols</a> *&#160;</td>
<td class="paramname"><em>protocol</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__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8">lws_callback_on_writable_all_protocol_vhost()</a> - Request a callback for all connections using the given protocol when it becomes possible to write to each socket without blocking in turn.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">vhost</td><td>Only consider connections on this lws_vhost </td></tr>
<tr><td class="paramname">protocol</td><td>Protocol whose connections will get callbacks</td></tr>
</table>
</dd>
</dl>
<ul>
<li>Which: connections using this protocol on GIVEN VHOST ONLY</li>
<li>When: when the individual connection becomes writeable</li>
<li>What: LWS_CALLBACK_*_WRITEABLE </li>
</ul>
</div>
</div>
<a id="ga60939cf0c073d933fde3d17f3591caf5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga60939cf0c073d933fde3d17f3591caf5">&sect;&nbsp;</a></span>lws_callback_vhost_protocols()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_callback_vhost_protocols </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>reason</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</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__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5">lws_callback_vhost_protocols()</a> - Callback all protocols enabled on a vhost with the given reason</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>wsi whose vhost will get callbacks </td></tr>
<tr><td class="paramname">reason</td><td>Callback reason index </td></tr>
<tr><td class="paramname">in</td><td>in argument to callback </td></tr>
<tr><td class="paramname">len</td><td>len argument to callback</td></tr>
</table>
</dd>
</dl>
<ul>
<li>Which: connections using this protocol on same VHOST as wsi ONLY</li>
<li>When: now</li>
<li>What: reason </li>
</ul>
</div>
</div>
<a id="gac4643fe16b0940ae5b68b4ee6195cbde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac4643fe16b0940ae5b68b4ee6195cbde">&sect;&nbsp;</a></span>lws_get_peer_write_allowance()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN size_t lws_get_peer_write_allowance </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde">lws_get_peer_write_allowance()</a> - get the amount of data writeable to peer if known</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>Websocket connection instance</td></tr>
</table>
</dd>
</dl>
<p>if the protocol does not have any guidance, returns -1. Currently only http2 connections get send window information from this API. But your code should use it so it can work properly with any protocol.</p>
<p>If nonzero return is the amount of payload data the peer or intermediary has reported it has buffer space for. That has NO relationship with the amount of buffer space your OS can accept on this connection for a write action.</p>
<p>This number represents the maximum you could send to the peer or intermediary on this connection right now without the protocol complaining.</p>
<p>lws manages accounting for send window updates and payload writes automatically, so this number reflects the situation at the peer or intermediary dynamically. </p>
</div>
</div>
<a id="gaa709e02a10558753c851e58f1e2c16ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa709e02a10558753c851e58f1e2c16ba">&sect;&nbsp;</a></span>lws_get_socket_fd()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_get_socket_fd </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba">lws_get_socket_fd()</a> - returns the socket file descriptor</p>
<p>You will not need this unless you are doing something special</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>Websocket connection instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,11 +0,0 @@
var group__callback_when_writeable =
[
[ "lws_callback_all_protocol", "group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70", null ],
[ "lws_callback_all_protocol_vhost", "group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053", null ],
[ "lws_callback_on_writable", "group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d", null ],
[ "lws_callback_on_writable_all_protocol", "group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107", null ],
[ "lws_callback_on_writable_all_protocol_vhost", "group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8", null ],
[ "lws_callback_vhost_protocols", "group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5", null ],
[ "lws_get_peer_write_allowance", "group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde", null ],
[ "lws_get_socket_fd", "group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba", null ]
];

View file

@ -1,81 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: cgi handling</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__cgi.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">cgi handling</div> </div>
</div><!--header-->
<div class="contents">
<h2>CGI handling</h2>
<p>These functions allow low-level control over stdin/out/err of the cgi.</p>
<p>However for most cases, binding the cgi to http in and out, the default lws implementation already does the right thing. </p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,469 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Client</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__client.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Client</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga96f3dbad54b2853969cfa933d66871ce"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce">lws_client_connect_ssl_connection_flags</a> { <b>LCCSCF_USE_SSL</b> = (1 &lt;&lt; 0),
<b>LCCSCF_ALLOW_SELFSIGNED</b> = (1 &lt;&lt; 1),
<b>LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK</b> = (1 &lt;&lt; 2),
<b>LCCSCF_ALLOW_EXPIRED</b> = (1 &lt;&lt; 3)
}</td></tr>
<tr class="separator:ga96f3dbad54b2853969cfa933d66871ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga0c966136905f467816307cfba6deb5fd"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__client.html#ga0c966136905f467816307cfba6deb5fd">lws_client_connect_via_info</a> (struct <a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</a> *ccinfo)</td></tr>
<tr class="separator:ga0c966136905f467816307cfba6deb5fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4af0a20108a95e8b6d94dd4d80055ff3"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3">lws_client_connect</a> (struct lws_context *clients, const char *address, int port, int ssl_connection, const char *path, const char *host, const char *origin, const char *protocol, int ietf_version_or_minus_one) LWS_WARN_DEPRECATED</td></tr>
<tr class="separator:ga4af0a20108a95e8b6d94dd4d80055ff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6a8558b4410961a880241c2ac1271e2"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__client.html#gac6a8558b4410961a880241c2ac1271e2">lws_client_connect_extended</a> (struct lws_context *clients, const char *address, int port, int ssl_connection, const char *path, const char *host, const char *origin, const char *protocol, int ietf_version_or_minus_one, void *userdata) LWS_WARN_DEPRECATED</td></tr>
<tr class="separator:gac6a8558b4410961a880241c2ac1271e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f44b8230e6732816ca5cd8d1aaaf340"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340">lws_init_vhost_client_ssl</a> (const struct <a class="el" href="structlws__context__creation__info.html">lws_context_creation_info</a> *info, struct lws_vhost *vhost)</td></tr>
<tr class="separator:ga4f44b8230e6732816ca5cd8d1aaaf340"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4450c34200bf9dab3beb90ef23221870"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__client.html#ga4450c34200bf9dab3beb90ef23221870">lws_http_client_read</a> (struct lws *wsi, char **buf, int *len)</td></tr>
<tr class="separator:ga4450c34200bf9dab3beb90ef23221870"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga715efffc0c4e8fbf72a4293008eb2187"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__client.html#ga715efffc0c4e8fbf72a4293008eb2187">lws_http_client_http_response</a> (struct lws *wsi)</td></tr>
<tr class="separator:ga715efffc0c4e8fbf72a4293008eb2187"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26588fb345083076c14169dd5859f57a"><td class="memItemLeft" align="right" valign="top"><a id="ga26588fb345083076c14169dd5859f57a"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_client_http_body_pending</b> (struct lws *wsi, int something_left_to_send)</td></tr>
<tr class="separator:ga26588fb345083076c14169dd5859f57a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Client releated functions</h2>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga96f3dbad54b2853969cfa933d66871ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga96f3dbad54b2853969cfa933d66871ce">&sect;&nbsp;</a></span>lws_client_connect_ssl_connection_flags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__client.html#ga96f3dbad54b2853969cfa933d66871ce">lws_client_connect_ssl_connection_flags</a></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>enum lws_client_connect_ssl_connection_flags - flags that may be used with struct <a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</a> ssl_connection member to control if and how SSL checks apply to the client connection being created </p>
<div class="fragment"><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160; {</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; LCCSCF_USE_SSL = (1 &lt;&lt; 0),</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; LCCSCF_ALLOW_SELFSIGNED = (1 &lt;&lt; 1),</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160; LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 &lt;&lt; 2),</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160; LCCSCF_ALLOW_EXPIRED = (1 &lt;&lt; 3)</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;};</div></div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga4af0a20108a95e8b6d94dd4d80055ff3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4af0a20108a95e8b6d94dd4d80055ff3">&sect;&nbsp;</a></span>lws_client_connect()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct lws* LWS_WARN_UNUSED_RESULT lws_client_connect </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>clients</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>address</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>ssl_connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>host</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>origin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>protocol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>ietf_version_or_minus_one</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__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3">lws_client_connect()</a> - Connect to another websocket server </p><dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>DEPRECATED use lws_client_connect_via_info </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">clients</td><td>Websocket context </td></tr>
<tr><td class="paramname">address</td><td>Remote server address, eg, "myserver.com" </td></tr>
<tr><td class="paramname">port</td><td>Port to connect to on the remote server, eg, 80 </td></tr>
<tr><td class="paramname">ssl_connection</td><td>0 = ws://, 1 = wss:// encrypted, 2 = wss:// allow self signed certs </td></tr>
<tr><td class="paramname">path</td><td>Websocket path on server </td></tr>
<tr><td class="paramname">host</td><td>Hostname on server </td></tr>
<tr><td class="paramname">origin</td><td>Socket origin name </td></tr>
<tr><td class="paramname">protocol</td><td>Comma-separated list of protocols being asked for from the server, or just one. The server will pick the one it likes best. If you don't want to specify a protocol, which is legal, use NULL here. </td></tr>
<tr><td class="paramname">ietf_version_or_minus_one</td><td>-1 to ask to connect using the default, latest protocol supported, or the specific protocol ordinal</td></tr>
</table>
</dd>
</dl>
<p>This function creates a connection to a remote server </p>
</div>
</div>
<a id="gac6a8558b4410961a880241c2ac1271e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac6a8558b4410961a880241c2ac1271e2">&sect;&nbsp;</a></span>lws_client_connect_extended()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct lws* LWS_WARN_UNUSED_RESULT lws_client_connect_extended </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>clients</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>address</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>ssl_connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>host</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>origin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>protocol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>ietf_version_or_minus_one</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</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__client.html#gac6a8558b4410961a880241c2ac1271e2">lws_client_connect_extended()</a> - Connect to another websocket server </p><dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>DEPRECATED use lws_client_connect_via_info </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">clients</td><td>Websocket context </td></tr>
<tr><td class="paramname">address</td><td>Remote server address, eg, "myserver.com" </td></tr>
<tr><td class="paramname">port</td><td>Port to connect to on the remote server, eg, 80 </td></tr>
<tr><td class="paramname">ssl_connection</td><td>0 = ws://, 1 = wss:// encrypted, 2 = wss:// allow self signed certs </td></tr>
<tr><td class="paramname">path</td><td>Websocket path on server </td></tr>
<tr><td class="paramname">host</td><td>Hostname on server </td></tr>
<tr><td class="paramname">origin</td><td>Socket origin name </td></tr>
<tr><td class="paramname">protocol</td><td>Comma-separated list of protocols being asked for from the server, or just one. The server will pick the one it likes best. </td></tr>
<tr><td class="paramname">ietf_version_or_minus_one</td><td>-1 to ask to connect using the default, latest protocol supported, or the specific protocol ordinal </td></tr>
<tr><td class="paramname">userdata</td><td>Pre-allocated user data <pre class="fragment"> This function creates a connection to a remote server</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga0c966136905f467816307cfba6deb5fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0c966136905f467816307cfba6deb5fd">&sect;&nbsp;</a></span>lws_client_connect_via_info()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct lws* lws_client_connect_via_info </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</a> *&#160;</td>
<td class="paramname"><em>ccinfo</em></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__client.html#ga0c966136905f467816307cfba6deb5fd">lws_client_connect_via_info()</a> - Connect to another websocket server </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ccinfo</td><td>pointer to <a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</a> struct <pre class="fragment"> This function creates a connection to a remote server using the
information provided in ccinfo.</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga715efffc0c4e8fbf72a4293008eb2187"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga715efffc0c4e8fbf72a4293008eb2187">&sect;&nbsp;</a></span>lws_http_client_http_response()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN unsigned int lws_http_client_http_response </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__client.html#ga715efffc0c4e8fbf72a4293008eb2187">lws_http_client_http_response()</a> - get last HTTP response code</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>client connection</td></tr>
</table>
</dd>
</dl>
<p>Returns the last server response code, eg, 200 for client http connections. </p>
</div>
</div>
<a id="ga4450c34200bf9dab3beb90ef23221870"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4450c34200bf9dab3beb90ef23221870">&sect;&nbsp;</a></span>lws_http_client_read()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_http_client_read </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char **&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>len</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__client.html#ga4450c34200bf9dab3beb90ef23221870">lws_http_client_read()</a> - consume waiting received http client data</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>client connection </td></tr>
<tr><td class="paramname">buf</td><td>pointer to buffer pointer - fill with pointer to your buffer </td></tr>
<tr><td class="paramname">len</td><td>pointer to chunk length - fill with max length of buffer</td></tr>
</table>
</dd>
</dl>
<p>This is called when the user code is notified client http data has arrived. The user code may choose to delay calling it to consume the data, for example waiting until an onward connection is writeable.</p>
<p>For non-chunked connections, up to len bytes of buf are filled with the received content. len is set to the actual amount filled before return.</p>
<p>For chunked connections, the linear buffer content contains the chunking headers and it cannot be passed in one lump. Instead, this function will call back LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ with in pointing to the chunk start and len set to the chunk length. There will be as many calls as there are chunks or partial chunks in the buffer. </p>
</div>
</div>
<a id="ga4f44b8230e6732816ca5cd8d1aaaf340"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4f44b8230e6732816ca5cd8d1aaaf340">&sect;&nbsp;</a></span>lws_init_vhost_client_ssl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_init_vhost_client_ssl </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structlws__context__creation__info.html">lws_context_creation_info</a> *&#160;</td>
<td class="paramname"><em>info</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct lws_vhost *&#160;</td>
<td class="paramname"><em>vhost</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__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340">lws_init_vhost_client_ssl()</a> - also enable client SSL on an existing vhost</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">info</td><td>client ssl related info </td></tr>
<tr><td class="paramname">vhost</td><td>which vhost to initialize client ssl operations on</td></tr>
</table>
</dd>
</dl>
<p>You only need to call this if you plan on using SSL client connections on the vhost. For non-SSL client connections, it's not necessary to call this.</p>
<p>The following members of info are used during the call </p><pre class="fragment"> - options must have LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT set,
otherwise the call does nothing
- provided_client_ssl_ctx must be NULL to get a generated client
ssl context, otherwise you can pass a prepared one in by setting it
- ssl_cipher_list may be NULL or set to the client valid cipher list
- ssl_ca_filepath may be NULL or client cert filepath
- ssl_cert_filepath may be NULL or client cert filepath
- ssl_private_key_filepath may be NULL or client cert private key
</pre><p>You must create your vhost explicitly if you want to use this, so you have a pointer to the vhost. Create the context first with the option flag LWS_SERVER_OPTION_EXPLICIT_VHOSTS and then call <a class="el" href="group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c">lws_create_vhost()</a> with the same info struct. </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,30 +0,0 @@
var group__client =
[
[ "lws_client_connect_info", "structlws__client__connect__info.html", [
[ "_unused", "structlws__client__connect__info.html#ad47f50d1633dc5df74548606c9a66d73", null ],
[ "address", "structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502", null ],
[ "client_exts", "structlws__client__connect__info.html#aaf76f45db5b4354894bae03a4f8f65a5", null ],
[ "context", "structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd", null ],
[ "host", "structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7", null ],
[ "ietf_version_or_minus_one", "structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895", null ],
[ "method", "structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db", null ],
[ "origin", "structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c", null ],
[ "parent_wsi", "structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587", null ],
[ "path", "structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185", null ],
[ "port", "structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9", null ],
[ "protocol", "structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2", null ],
[ "pwsi", "structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e", null ],
[ "ssl_connection", "structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d", null ],
[ "uri_replace_from", "structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a", null ],
[ "uri_replace_to", "structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3", null ],
[ "userdata", "structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836", null ],
[ "vhost", "structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be", null ]
] ],
[ "lws_client_connect_ssl_connection_flags", "group__client.html#ga96f3dbad54b2853969cfa933d66871ce", null ],
[ "lws_client_connect", "group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3", null ],
[ "lws_client_connect_extended", "group__client.html#gac6a8558b4410961a880241c2ac1271e2", null ],
[ "lws_client_connect_via_info", "group__client.html#ga0c966136905f467816307cfba6deb5fd", null ],
[ "lws_http_client_http_response", "group__client.html#ga715efffc0c4e8fbf72a4293008eb2187", null ],
[ "lws_http_client_read", "group__client.html#ga4450c34200bf9dab3beb90ef23221870", null ],
[ "lws_init_vhost_client_ssl", "group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340", null ]
];

File diff suppressed because one or more lines are too long

View file

@ -1,93 +0,0 @@
var group__context_and_vhost =
[
[ "Vhost mounts and options", "group__vhost-mounts.html", "group__vhost-mounts" ],
[ "lws_context_creation_info", "structlws__context__creation__info.html", [
[ "_unused", "structlws__context__creation__info.html#afce3b59950eca3203faa07381bbed5d7", null ],
[ "client_ssl_ca_filepath", "structlws__context__creation__info.html#a63efdf843aa178a7db3900fb9b3946c3", null ],
[ "client_ssl_cert_filepath", "structlws__context__creation__info.html#a092e5804a2a848c1d0b4fa904268c89d", null ],
[ "client_ssl_cipher_list", "structlws__context__creation__info.html#a67d9c2a43c9af69d9f12454df1afd49a", null ],
[ "client_ssl_private_key_filepath", "structlws__context__creation__info.html#a30d5102d5ea56788d07bb075d10cee66", null ],
[ "client_ssl_private_key_password", "structlws__context__creation__info.html#a8da6e0c48d4cabe2f85c353184ff8514", null ],
[ "count_threads", "structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419", null ],
[ "ecdh_curve", "structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9", null ],
[ "extensions", "structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c", null ],
[ "external_baggage_free_on_destroy", "structlws__context__creation__info.html#aadbc1b141d16c1084ec4c543e7768a72", null ],
[ "fd_limit_per_thread", "structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646", null ],
[ "gid", "structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03", null ],
[ "headers", "structlws__context__creation__info.html#a8ca0ec6b8675c13849bbdcdc0d50c9a3", null ],
[ "http_proxy_address", "structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3", null ],
[ "http_proxy_port", "structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6", null ],
[ "iface", "structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a", null ],
[ "ka_interval", "structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd", null ],
[ "ka_probes", "structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410", null ],
[ "ka_time", "structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56", null ],
[ "keepalive_timeout", "structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6", null ],
[ "log_filepath", "structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2", null ],
[ "max_http_header_data", "structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948", null ],
[ "max_http_header_data2", "structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a", null ],
[ "max_http_header_pool", "structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720", null ],
[ "mounts", "structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8", null ],
[ "options", "structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724", null ],
[ "plugin_dirs", "structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251", null ],
[ "port", "structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85", null ],
[ "protocols", "structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122", null ],
[ "provided_client_ssl_ctx", "structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4", null ],
[ "provided_client_ssl_ctx", "structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb", null ],
[ "pt_serv_buf_size", "structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209", null ],
[ "pvo", "structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458", null ],
[ "reject_service_keywords", "structlws__context__creation__info.html#a6b059b7ee248cba72a3a4fd6141b0b34", null ],
[ "server_string", "structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616", null ],
[ "ssl_ca_filepath", "structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29", null ],
[ "ssl_cert_filepath", "structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103", null ],
[ "ssl_cipher_list", "structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb", null ],
[ "ssl_options_clear", "structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa", null ],
[ "ssl_options_set", "structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d", null ],
[ "ssl_private_key_filepath", "structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14", null ],
[ "ssl_private_key_password", "structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54", null ],
[ "timeout_secs", "structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d", null ],
[ "token_limits", "structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29", null ],
[ "uid", "structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e", null ],
[ "user", "structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0", null ],
[ "vhost_name", "structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9", null ],
[ "ws_ping_pong_interval", "structlws__context__creation__info.html#a33a1a25a7df3793f59047e20dd580078", null ]
] ],
[ "lws_protocol_vhost_options", "structlws__protocol__vhost__options.html", [
[ "name", "structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9", null ],
[ "next", "structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c", null ],
[ "options", "structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822", null ],
[ "value", "structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7", null ]
] ],
[ "lws_context_options", "group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5", [
[ "LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092", null ],
[ "LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c", null ],
[ "LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d", null ],
[ "LWS_SERVER_OPTION_LIBEV", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6", null ],
[ "LWS_SERVER_OPTION_DISABLE_IPV6", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9", null ],
[ "LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93", null ],
[ "LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc", null ],
[ "LWS_SERVER_OPTION_VALIDATE_UTF8", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f", null ],
[ "LWS_SERVER_OPTION_SSL_ECDH", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c", null ],
[ "LWS_SERVER_OPTION_LIBUV", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e", null ],
[ "LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada", null ],
[ "LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a", null ],
[ "LWS_SERVER_OPTION_EXPLICIT_VHOSTS", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e", null ],
[ "LWS_SERVER_OPTION_UNIX_SOCK", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941", null ],
[ "LWS_SERVER_OPTION_STS", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016", null ],
[ "LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8", null ],
[ "LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160", null ],
[ "LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a87a824b2e812f4c3e7f2c4a1ea4f8abd", null ],
[ "LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa8d288cee6d03935ea6993546f2f2bcf", null ]
] ],
[ "lws_context_deprecate", "group__context-and-vhost.html#ga1863f0a15ab9da0f07be7bd66230d232", null ],
[ "lws_context_destroy", "group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb", null ],
[ "lws_context_user", "group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da", null ],
[ "lws_create_context", "group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648", null ],
[ "lws_create_vhost", "group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c", null ],
[ "lws_get_vhost", "group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932", null ],
[ "lws_json_dump_context", "group__context-and-vhost.html#ga1dce5453d72a2037051aba5410e18135", null ],
[ "lws_json_dump_vhost", "group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6", null ],
[ "lws_set_proxy", "group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4", null ],
[ "lws_vhost_get", "group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c", null ],
[ "lwsws_get_config_globals", "group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73", null ],
[ "lwsws_get_config_vhosts", "group__context-and-vhost.html#ga341064721add2618ae1b29717493a212", null ]
];

View file

@ -1,103 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: libev helpers</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__ev.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">libev helpers</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga3b0ffd4d2b4fa791c0fd75353a330208"><td class="memItemLeft" align="right" valign="top"><a id="ga3b0ffd4d2b4fa791c0fd75353a330208"></a>
typedef void(&#160;</td><td class="memItemRight" valign="bottom"><b>lws_ev_signal_cb_t</b>) (EV_P_ struct ev_signal *w, int revents)</td></tr>
<tr class="separator:ga3b0ffd4d2b4fa791c0fd75353a330208"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga5caf14a420a2a0bd687a1fc952f8d64e"><td class="memItemLeft" align="right" valign="top"><a id="ga5caf14a420a2a0bd687a1fc952f8d64e"></a>
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_ev_sigint_cfg</b> (struct lws_context *context, int use_ev_sigint, lws_ev_signal_cb_t *cb)</td></tr>
<tr class="separator:ga5caf14a420a2a0bd687a1fc952f8d64e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fdd23ded693b21853356dc9eaef5ccc"><td class="memItemLeft" align="right" valign="top"><a id="ga3fdd23ded693b21853356dc9eaef5ccc"></a>
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_ev_initloop</b> (struct lws_context *context, struct ev_loop *loop, int tsi)</td></tr>
<tr class="separator:ga3fdd23ded693b21853356dc9eaef5ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaabfc0880d6a98133550c61aa01ef3563"><td class="memItemLeft" align="right" valign="top"><a id="gaabfc0880d6a98133550c61aa01ef3563"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_ev_sigint_cb</b> (struct ev_loop *loop, struct ev_signal *watcher, int revents)</td></tr>
<tr class="separator:gaabfc0880d6a98133550c61aa01ef3563"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>libev helpers</h2>
<p>APIs specific to libev event loop itegration </p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,455 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Extensions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__extensions.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Extensions</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__ext__options.html">lws_ext_options</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__ext__option__arg.html">lws_ext_option_arg</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__extension.html">lws_extension</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaae7169b2cd346b34fa33d0250db2afd0"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0">lws_extension_callback_function</a>(struct lws_context *context, const struct <a class="el" href="structlws__extension.html">lws_extension</a> *ext, struct lws *wsi, enum lws_extension_callback_reasons reason, void *user, void *in, size_t len)</td></tr>
<tr class="separator:gaae7169b2cd346b34fa33d0250db2afd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gae9993815eee72c6070300a0ae2f022d7"><td class="memItemLeft" align="right" valign="top"><a id="gae9993815eee72c6070300a0ae2f022d7"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>lws_extension_callback_reasons</b> { <br />
&#160;&#160;<b>LWS_EXT_CB_SERVER_CONTEXT_CONSTRUCT</b> = 0,
<b>LWS_EXT_CB_CLIENT_CONTEXT_CONSTRUCT</b> = 1,
<b>LWS_EXT_CB_SERVER_CONTEXT_DESTRUCT</b> = 2,
<b>LWS_EXT_CB_CLIENT_CONTEXT_DESTRUCT</b> = 3,
<br />
&#160;&#160;<b>LWS_EXT_CB_CONSTRUCT</b> = 4,
<b>LWS_EXT_CB_CLIENT_CONSTRUCT</b> = 5,
<b>LWS_EXT_CB_CHECK_OK_TO_REALLY_CLOSE</b> = 6,
<b>LWS_EXT_CB_CHECK_OK_TO_PROPOSE_EXTENSION</b> = 7,
<br />
&#160;&#160;<b>LWS_EXT_CB_DESTROY</b> = 8,
<b>LWS_EXT_CB_DESTROY_ANY_WSI_CLOSING</b> = 9,
<b>LWS_EXT_CB_ANY_WSI_ESTABLISHED</b> = 10,
<b>LWS_EXT_CB_PACKET_RX_PREPARSE</b> = 11,
<br />
&#160;&#160;<b>LWS_EXT_CB_PACKET_TX_PRESEND</b> = 12,
<b>LWS_EXT_CB_PACKET_TX_DO_SEND</b> = 13,
<b>LWS_EXT_CB_HANDSHAKE_REPLY_TX</b> = 14,
<b>LWS_EXT_CB_FLUSH_PENDING_TX</b> = 15,
<br />
&#160;&#160;<b>LWS_EXT_CB_EXTENDED_PAYLOAD_RX</b> = 16,
<b>LWS_EXT_CB_CAN_PROXY_CLIENT_CONNECTION</b> = 17,
<b>LWS_EXT_CB_1HZ</b> = 18,
<b>LWS_EXT_CB_REQUEST_ON_WRITEABLE</b> = 19,
<br />
&#160;&#160;<b>LWS_EXT_CB_IS_WRITEABLE</b> = 20,
<b>LWS_EXT_CB_PAYLOAD_TX</b> = 21,
<b>LWS_EXT_CB_PAYLOAD_RX</b> = 22,
<b>LWS_EXT_CB_OPTION_DEFAULT</b> = 23,
<br />
&#160;&#160;<b>LWS_EXT_CB_OPTION_SET</b> = 24,
<b>LWS_EXT_CB_OPTION_CONFIRM</b> = 25,
<b>LWS_EXT_CB_NAMED_OPTION_SET</b> = 26
<br />
}</td></tr>
<tr class="separator:gae9993815eee72c6070300a0ae2f022d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacc9f55936dc165257a2e1f7d47bce89e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">lws_ext_options_types</a> { <a class="el" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a>,
<a class="el" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a>,
<a class="el" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a>
}</td></tr>
<tr class="separator:gacc9f55936dc165257a2e1f7d47bce89e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gae0e24e1768f83a7fb07896ce975704b9"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9">lws_set_extension_option</a> (struct lws *wsi, const char *ext_name, const char *opt_name, const char *opt_val)</td></tr>
<tr class="separator:gae0e24e1768f83a7fb07896ce975704b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6fb3e2c3dfb9d64dc87026a4e99c128b"><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__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b">lws_ext_parse_options</a> (const struct <a class="el" href="structlws__extension.html">lws_extension</a> *ext, struct lws *wsi, void *ext_user, const struct <a class="el" href="structlws__ext__options.html">lws_ext_options</a> *opts, const char *o, int len)</td></tr>
<tr class="separator:ga6fb3e2c3dfb9d64dc87026a4e99c128b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4cdbe42d872e21a448a947714d6c607e"><td class="memItemLeft" align="right" valign="top">LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e">lws_extension_callback_pm_deflate</a> (struct lws_context *context, const struct <a class="el" href="structlws__extension.html">lws_extension</a> *ext, struct lws *wsi, enum lws_extension_callback_reasons reason, void *user, void *in, size_t len)</td></tr>
<tr class="separator:ga4cdbe42d872e21a448a947714d6c607e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Extension releated functions</h2>
<p>Ws defines optional extensions, lws provides the ability to implement these in user code if so desired.</p>
<p>We provide one extensions permessage-deflate. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gaae7169b2cd346b34fa33d0250db2afd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaae7169b2cd346b34fa33d0250db2afd0">&sect;&nbsp;</a></span>lws_extension_callback_function</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int lws_extension_callback_function(struct lws_context *context, const struct <a class="el" href="structlws__extension.html">lws_extension</a> *ext, struct lws *wsi, enum lws_extension_callback_reasons reason, void *user, void *in, size_t len)</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>typedef <a class="el" href="group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0">lws_extension_callback_function()</a> - Hooks to allow extensions to operate </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Websockets context </td></tr>
<tr><td class="paramname">ext</td><td>This extension </td></tr>
<tr><td class="paramname">wsi</td><td>Opaque websocket instance pointer </td></tr>
<tr><td class="paramname">reason</td><td>The reason for the call </td></tr>
<tr><td class="paramname">user</td><td>Pointer to ptr to per-session user data allocated by library </td></tr>
<tr><td class="paramname">in</td><td>Pointer used for some callback reasons </td></tr>
<tr><td class="paramname">len</td><td>Length set for some callback reasons <pre class="fragment"> Each extension that is active on a particular connection receives
callbacks during the connection lifetime to allow the extension to
operate on websocket data and manage itself.
Libwebsockets takes care of allocating and freeing "user" memory for
each active extension on each connection. That is what is pointed to
by the user parameter.
LWS_EXT_CB_CONSTRUCT: called when the server has decided to
select this extension from the list provided by the client,
just before the server will send back the handshake accepting
the connection with this extension active. This gives the
extension a chance to initialize its connection context found
in user.
LWS_EXT_CB_CLIENT_CONSTRUCT: same as LWS_EXT_CB_CONSTRUCT
but called when client is instantiating this extension. Some
extensions will work the same on client and server side and then
you can just merge handlers for both CONSTRUCTS.
LWS_EXT_CB_DESTROY: called when the connection the extension was
being used on is about to be closed and deallocated. It's the
last chance for the extension to deallocate anything it has
allocated in the user data (pointed to by user) before the
user data is deleted. This same callback is used whether you
are in client or server instantiation context.
LWS_EXT_CB_PACKET_RX_PREPARSE: when this extension was active on
a connection, and a packet of data arrived at the connection,
it is passed to this callback to give the extension a chance to
change the data, eg, decompress it. user is pointing to the
extension's private connection context data, in is pointing
to an lws_tokens struct, it consists of a char * pointer called
token, and an int called token_len. At entry, these are
set to point to the received buffer and set to the content
length. If the extension will grow the content, it should use
a new buffer allocated in its private user context data and
set the pointed-to lws_tokens members to point to its buffer.
LWS_EXT_CB_PACKET_TX_PRESEND: this works the same way as
LWS_EXT_CB_PACKET_RX_PREPARSE above, except it gives the
extension a chance to change websocket data just before it will
be sent out. Using the same lws_token pointer scheme in in,
the extension can change the buffer and the length to be
transmitted how it likes. Again if it wants to grow the
buffer safely, it should copy the data into its own buffer and
set the lws_tokens token pointer to it.
LWS_EXT_CB_ARGS_VALIDATE:</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gacc9f55936dc165257a2e1f7d47bce89e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacc9f55936dc165257a2e1f7d47bce89e">&sect;&nbsp;</a></span>lws_ext_options_types</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e">lws_ext_options_types</a></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>enum lws_ext_options_types </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c"></a>EXTARG_NONE&#160;</td><td class="fielddoc"><p>does not take an argument </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e"></a>EXTARG_DEC&#160;</td><td class="fielddoc"><p>requires a decimal argument </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880"></a>EXTARG_OPT_DEC&#160;</td><td class="fielddoc"><p>may have an optional decimal argument </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; {</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a>, </div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a>, </div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <a class="code" href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a> </div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <span class="comment">/* Add new things just above here ---^</span></div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;<span class="comment"> * This is part of the ABI, don&#39;t needlessly break compatibility */</span></div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;};</div><div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880">EXTARG_OPT_DEC</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1143</div></div>
<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c">EXTARG_NONE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1141</div></div>
<div class="ttc" id="group__extensions_html_ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e"><div class="ttname"><a href="group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e">EXTARG_DEC</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1142</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga6fb3e2c3dfb9d64dc87026a4e99c128b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6fb3e2c3dfb9d64dc87026a4e99c128b">&sect;&nbsp;</a></span>lws_ext_parse_options()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_ext_parse_options </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structlws__extension.html">lws_extension</a> *&#160;</td>
<td class="paramname"><em>ext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>ext_user</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structlws__ext__options.html">lws_ext_options</a> *&#160;</td>
<td class="paramname"><em>opts</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>o</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</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__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b">lws_ext_parse_options()</a> - deal with parsing negotiated extension options</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ext</td><td>related extension struct </td></tr>
<tr><td class="paramname">wsi</td><td>websocket connection </td></tr>
<tr><td class="paramname">ext_user</td><td>per-connection extension private data </td></tr>
<tr><td class="paramname">opts</td><td>list of supported options </td></tr>
<tr><td class="paramname">o</td><td>option string to parse </td></tr>
<tr><td class="paramname">len</td><td>length </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga4cdbe42d872e21a448a947714d6c607e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4cdbe42d872e21a448a947714d6c607e">&sect;&nbsp;</a></span>lws_extension_callback_pm_deflate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_EXTERN int lws_extension_callback_pm_deflate </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structlws__extension.html">lws_extension</a> *&#160;</td>
<td class="paramname"><em>ext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum lws_extension_callback_reasons&#160;</td>
<td class="paramname"><em>reason</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>user</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</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__extensions.html#ga4cdbe42d872e21a448a947714d6c607e">lws_extension_callback_pm_deflate()</a> - extension for RFC7692</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>lws context </td></tr>
<tr><td class="paramname">ext</td><td>related <a class="el" href="structlws__extension.html">lws_extension</a> struct </td></tr>
<tr><td class="paramname">wsi</td><td>websocket connection </td></tr>
<tr><td class="paramname">reason</td><td>incoming callback reason </td></tr>
<tr><td class="paramname">user</td><td>per-connection extension private data </td></tr>
<tr><td class="paramname">in</td><td>pointer parameter </td></tr>
<tr><td class="paramname">len</td><td>length parameter</td></tr>
</table>
</dd>
</dl>
<p>Built-in callback implementing RFC7692 permessage-deflate </p>
</div>
</div>
<a id="gae0e24e1768f83a7fb07896ce975704b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae0e24e1768f83a7fb07896ce975704b9">&sect;&nbsp;</a></span>lws_set_extension_option()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_set_extension_option </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>ext_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>opt_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>opt_val</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__extensions.html#gae0e24e1768f83a7fb07896ce975704b9">lws_set_extension_option()</a>: set extension option if possible</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>websocket connection </td></tr>
<tr><td class="paramname">ext_name</td><td>name of ext, like "permessage-deflate" </td></tr>
<tr><td class="paramname">opt_name</td><td>name of option, like "rx_buf_size" </td></tr>
<tr><td class="paramname">opt_val</td><td>value to set option to </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,27 +0,0 @@
var group__extensions =
[
[ "lws_ext_options", "structlws__ext__options.html", [
[ "name", "structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e", null ],
[ "type", "structlws__ext__options.html#a7c4dbd62dbeba63a9d50d2306bd1cc61", null ]
] ],
[ "lws_ext_option_arg", "structlws__ext__option__arg.html", [
[ "len", "structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5", null ],
[ "option_index", "structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f", null ],
[ "option_name", "structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9", null ],
[ "start", "structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1", null ]
] ],
[ "lws_extension", "structlws__extension.html", [
[ "callback", "structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af", null ],
[ "client_offer", "structlws__extension.html#a36b06c213aedb02bf9a402651751855b", null ],
[ "name", "structlws__extension.html#a1e5018c883d85176f5c2152176843f9e", null ]
] ],
[ "lws_extension_callback_function", "group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0", null ],
[ "lws_ext_options_types", "group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e", [
[ "EXTARG_NONE", "group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c", null ],
[ "EXTARG_DEC", "group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e", null ],
[ "EXTARG_OPT_DEC", "group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880", null ]
] ],
[ "lws_ext_parse_options", "group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b", null ],
[ "lws_extension_callback_pm_deflate", "group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e", null ],
[ "lws_set_extension_option", "group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9", null ]
];

View file

@ -1,128 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: file operation wrapping</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__fops.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">file operation wrapping</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__plat__file__ops.html">lws_plat_file_ops</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gac08aef64c4c34647ed699b24759b6b0e"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct <a class="el" href="structlws__plat__file__ops.html">lws_plat_file_ops</a> *LWS_WARN_UNUSED_RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops</a> (struct lws_context *context)</td></tr>
<tr class="separator:gac08aef64c4c34647ed699b24759b6b0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35ab3559612f45824e47a2285def4bde"><td class="memItemLeft" align="right" valign="top"><a id="ga35ab3559612f45824e47a2285def4bde"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_set_fops</b> (struct lws_context *context, struct <a class="el" href="structlws__plat__file__ops.html">lws_plat_file_ops</a> *fops)</td></tr>
<tr class="separator:ga35ab3559612f45824e47a2285def4bde"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>File operation wrapping</h2>
<p>Use these helper functions if you want to access a file from the perspective of a specific wsi, which is usually the case. If you just want contextless file access, use the fops callbacks directly with NULL wsi instead of these helpers.</p>
<p>If so, then it calls the platform handler or user overrides where present (as defined in info-&gt;fops)</p>
<p>The advantage from all this is user code can be portable for file operations without having to deal with differences between platforms. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gac08aef64c4c34647ed699b24759b6b0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac08aef64c4c34647ed699b24759b6b0e">&sect;&nbsp;</a></span>lws_get_fops()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct <a class="el" href="structlws__plat__file__ops.html">lws_plat_file_ops</a>* LWS_WARN_UNUSED_RESULT lws_get_fops </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em></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__fops.html#gac08aef64c4c34647ed699b24759b6b0e">lws_get_fops()</a> - get current file ops</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>context </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,11 +0,0 @@
var group__fops =
[
[ "lws_plat_file_ops", "structlws__plat__file__ops.html", [
[ "LWS_FOP_CLOSE", "structlws__plat__file__ops.html#aaa412792d1e8df151729850a6448f001", null ],
[ "LWS_FOP_OPEN", "structlws__plat__file__ops.html#a79484f37c8e54d75342eb2ecf97b5f7b", null ],
[ "LWS_FOP_READ", "structlws__plat__file__ops.html#a4ddeac2cd3d3bdf517ad355dbc123d00", null ],
[ "LWS_FOP_SEEK_CUR", "structlws__plat__file__ops.html#a1352a356778159c97195a5bff65dda6c", null ],
[ "LWS_FOP_WRITE", "structlws__plat__file__ops.html#a5e801362a7d11b83608980123233a220", null ]
] ],
[ "lws_get_fops", "group__fops.html#gac08aef64c4c34647ed699b24759b6b0e", null ]
];

View file

@ -1,420 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Form Parsing</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__form-parsing.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Form Parsing<div class="ingroups"><a class="el" href="group__http.html">HTTP</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga5a70527c0861c2ffa3d29333a6aa7f8e"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">lws_spa_fileupload_cb</a>) (void *data, const char *name, const char *filename, char *buf, int len, enum <a class="el" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">lws_spa_fileupload_states</a> state)</td></tr>
<tr class="separator:ga5a70527c0861c2ffa3d29333a6aa7f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga41a74a822771d3dce89751aa3bce28ae"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">lws_spa_fileupload_states</a> { <a class="el" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,
<a class="el" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,
<a class="el" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a>
}</td></tr>
<tr class="separator:ga41a74a822771d3dce89751aa3bce28ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga162f86762173a2bc8c28497941d74815"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws_spa *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__form-parsing.html#ga162f86762173a2bc8c28497941d74815">lws_spa_create</a> (struct lws *wsi, const char *const *param_names, int count_params, int max_storage, <a class="el" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">lws_spa_fileupload_cb</a> opt_cb, void *opt_data)</td></tr>
<tr class="separator:ga162f86762173a2bc8c28497941d74815"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ad9ebf5ea1a7108415ed7e04cb231d2"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2">lws_spa_process</a> (struct lws_spa *spa, const char *in, int len)</td></tr>
<tr class="separator:ga9ad9ebf5ea1a7108415ed7e04cb231d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga83835bf250ee3d4a60f36a182f2b8d24"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24">lws_spa_finalize</a> (struct lws_spa *spa)</td></tr>
<tr class="separator:ga83835bf250ee3d4a60f36a182f2b8d24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fbe378632f85ec9a14cc2c1687bf05f"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f">lws_spa_get_length</a> (struct lws_spa *spa, int n)</td></tr>
<tr class="separator:ga3fbe378632f85ec9a14cc2c1687bf05f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2da476217166da02704b90d3a8d4f3cd"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd">lws_spa_get_string</a> (struct lws_spa *spa, int n)</td></tr>
<tr class="separator:ga2da476217166da02704b90d3a8d4f3cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa482f07dad3f04b391cccf0a814e13b"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b">lws_spa_destroy</a> (struct lws_spa *spa)</td></tr>
<tr class="separator:gaaa482f07dad3f04b391cccf0a814e13b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>POSTed form parsing functions</h2>
<p>These lws_spa (stateful post arguments) apis let you parse and urldecode POSTed form arguments, both using simple urlencoded and multipart transfer encoding.</p>
<p>It's capable of handling file uploads as well a named input parsing, and the apis are the same for both form upload styles.</p>
<p>You feed it a list of parameter names and it creates pointers to the urldecoded arguments: file upload parameters pass the file data in chunks to a user-supplied callback as they come.</p>
<p>Since it's stateful, it handles the incoming data needing more than one POST_BODY callback and has no limit on uploaded file size. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga5a70527c0861c2ffa3d29333a6aa7f8e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5a70527c0861c2ffa3d29333a6aa7f8e">&sect;&nbsp;</a></span>lws_spa_fileupload_cb</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* lws_spa_fileupload_cb) (void *data, const char *name, const char *filename, char *buf, int len, enum <a class="el" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">lws_spa_fileupload_states</a> state)</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__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">lws_spa_fileupload_cb()</a> - callback to receive file upload data</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td>opt_data pointer set in lws_spa_create </td></tr>
<tr><td class="paramname">name</td><td>name of the form field being uploaded </td></tr>
<tr><td class="paramname">filename</td><td>original filename from client </td></tr>
<tr><td class="paramname">buf</td><td>start of data to receive </td></tr>
<tr><td class="paramname">len</td><td>length of data to receive </td></tr>
<tr><td class="paramname">state</td><td>information about how this call relates to file</td></tr>
</table>
</dd>
</dl>
<p>Notice name and filename shouldn't be trusted, as they are passed from HTTP provided by the client. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga41a74a822771d3dce89751aa3bce28ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga41a74a822771d3dce89751aa3bce28ae">&sect;&nbsp;</a></span>lws_spa_fileupload_states</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae">lws_spa_fileupload_states</a></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>enum lws_spa_fileupload_states </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f"></a>LWS_UFS_CONTENT&#160;</td><td class="fielddoc"><p>a chunk of file content has arrived </p>
</td></tr>
<tr><td class="fieldname"><a id="gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7"></a>LWS_UFS_FINAL_CONTENT&#160;</td><td class="fielddoc"><p>the last chunk (possibly zero length) of file content has arrived </p>
</td></tr>
<tr><td class="fieldname"><a id="gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"></a>LWS_UFS_OPEN&#160;</td><td class="fielddoc"><p>a new file is starting to arrive </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l02981"></a><span class="lineno"> 2981</span>&#160; {</div><div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>&#160; <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a>,</div><div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>&#160; <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a>,</div><div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>&#160; <a class="code" href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>&#160;};</div><div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7">LWS_UFS_FINAL_CONTENT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2984</div></div>
<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83">LWS_UFS_OPEN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2986</div></div>
<div class="ttc" id="group__form-parsing_html_gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f"><div class="ttname"><a href="group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f">LWS_UFS_CONTENT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2982</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga162f86762173a2bc8c28497941d74815"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga162f86762173a2bc8c28497941d74815">&sect;&nbsp;</a></span>lws_spa_create()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct lws_spa* lws_spa_create </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>param_names</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>count_params</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>max_storage</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e">lws_spa_fileupload_cb</a>&#160;</td>
<td class="paramname"><em>opt_cb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>opt_data</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__form-parsing.html#ga162f86762173a2bc8c28497941d74815">lws_spa_create()</a> - create urldecode parser</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>lws connection (used to find Content Type) </td></tr>
<tr><td class="paramname">param_names</td><td>array of form parameter names, like "username" </td></tr>
<tr><td class="paramname">count_params</td><td>count of param_names </td></tr>
<tr><td class="paramname">max_storage</td><td>total amount of form parameter values we can store </td></tr>
<tr><td class="paramname">opt_cb</td><td>NULL, or callback to receive file upload data. </td></tr>
<tr><td class="paramname">opt_data</td><td>NULL, or user pointer provided to opt_cb.</td></tr>
</table>
</dd>
</dl>
<p>Creates a urldecode parser and initializes it.</p>
<p>opt_cb can be NULL if you just want normal name=value parsing, however if one or more entries in your form are bulk data (file transfer), you can provide this callback and filter on the name callback parameter to treat that urldecoded data separately. The callback should return -1 in case of fatal error, and 0 if OK. </p>
</div>
</div>
<a id="gaaa482f07dad3f04b391cccf0a814e13b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaa482f07dad3f04b391cccf0a814e13b">&sect;&nbsp;</a></span>lws_spa_destroy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_spa_destroy </td>
<td>(</td>
<td class="paramtype">struct lws_spa *&#160;</td>
<td class="paramname"><em>spa</em></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__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b">lws_spa_destroy()</a> - destroy parser object</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">spa</td><td>the parser object previously created </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga83835bf250ee3d4a60f36a182f2b8d24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga83835bf250ee3d4a60f36a182f2b8d24">&sect;&nbsp;</a></span>lws_spa_finalize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_spa_finalize </td>
<td>(</td>
<td class="paramtype">struct lws_spa *&#160;</td>
<td class="paramname"><em>spa</em></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__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24">lws_spa_finalize()</a> - indicate incoming data completed</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">spa</td><td>the parser object previously created </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga3fbe378632f85ec9a14cc2c1687bf05f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3fbe378632f85ec9a14cc2c1687bf05f">&sect;&nbsp;</a></span>lws_spa_get_length()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_spa_get_length </td>
<td>(</td>
<td class="paramtype">struct lws_spa *&#160;</td>
<td class="paramname"><em>spa</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>n</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__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f">lws_spa_get_length()</a> - return length of parameter value</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">spa</td><td>the parser object previously created </td></tr>
<tr><td class="paramname">n</td><td>parameter ordinal to return length of value for </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga2da476217166da02704b90d3a8d4f3cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2da476217166da02704b90d3a8d4f3cd">&sect;&nbsp;</a></span>lws_spa_get_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const char* lws_spa_get_string </td>
<td>(</td>
<td class="paramtype">struct lws_spa *&#160;</td>
<td class="paramname"><em>spa</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>n</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__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd">lws_spa_get_string()</a> - return pointer to parameter value </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">spa</td><td>the parser object previously created </td></tr>
<tr><td class="paramname">n</td><td>parameter ordinal to return pointer to value for </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga9ad9ebf5ea1a7108415ed7e04cb231d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9ad9ebf5ea1a7108415ed7e04cb231d2">&sect;&nbsp;</a></span>lws_spa_process()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_spa_process </td>
<td>(</td>
<td class="paramtype">struct lws_spa *&#160;</td>
<td class="paramname"><em>spa</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</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__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2">lws_spa_process()</a> - parses a chunk of input data</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">spa</td><td>the parser object previously created </td></tr>
<tr><td class="paramname">in</td><td>incoming, urlencoded data </td></tr>
<tr><td class="paramname">len</td><td>count of bytes valid at </td></tr>
<tr><td class="paramname">in</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,15 +0,0 @@
var group__form_parsing =
[
[ "lws_spa_fileupload_cb", "group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e", null ],
[ "lws_spa_fileupload_states", "group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae", [
[ "LWS_UFS_CONTENT", "group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f", null ],
[ "LWS_UFS_FINAL_CONTENT", "group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7", null ],
[ "LWS_UFS_OPEN", "group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83", 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 ],
[ "lws_spa_get_length", "group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f", null ],
[ "lws_spa_get_string", "group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd", null ],
[ "lws_spa_process", "group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2", null ]
];

View file

@ -1,166 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: plugin: generic-sessions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__generic-sessions.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">plugin: generic-sessions<div class="ingroups"><a class="el" href="group__Protocols-and-Plugins.html">Protocols and Plugins</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlwsgw__hash__bin.html">lwsgw_hash_bin</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlwsgw__hash.html">lwsgw_hash</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__session__info.html">lws_session_info</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__gs__event__args.html">lws_gs_event_args</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga7c2dc7bfb4ccb91c5d771f9e9ea237e1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">lwsgs_auth_bits</a> { <a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a> = 1,
<a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a> = 2,
<a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a> = 4,
<a class="el" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a> = 8
}</td></tr>
<tr class="separator:ga7c2dc7bfb4ccb91c5d771f9e9ea237e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa93946b3d921072209d5cd8cdfa5332e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">lws_gs_event</a> { <a class="el" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a>,
<a class="el" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a>
}</td></tr>
<tr class="separator:gaa93946b3d921072209d5cd8cdfa5332e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Plugin Generic-sessions related</h2>
<p>generic-sessions plugin provides a reusable, generic session and login / register / forgot password framework including email verification. </p>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gaa93946b3d921072209d5cd8cdfa5332e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa93946b3d921072209d5cd8cdfa5332e">&sect;&nbsp;</a></span>lws_gs_event</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e">lws_gs_event</a></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>enum lws_gs_event </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308"></a>LWSGSE_CREATED&#160;</td><td class="fielddoc"><p>a new user was created </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde"></a>LWSGSE_DELETED&#160;</td><td class="fielddoc"><p>an existing user was deleted </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; {</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a>, </div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; <a class="code" href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a> </div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;};</div><div class="ttc" id="group__generic-sessions_html_ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde"><div class="ttname"><a href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde">LWSGSE_DELETED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1507</div></div>
<div class="ttc" id="group__generic-sessions_html_ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308"><div class="ttname"><a href="group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308">LWSGSE_CREATED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1506</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ga7c2dc7bfb4ccb91c5d771f9e9ea237e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">&sect;&nbsp;</a></span>lwsgs_auth_bits</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">lwsgs_auth_bits</a></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>enum lwsgs_auth_bits </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57"></a>LWSGS_AUTH_LOGGED_IN&#160;</td><td class="fielddoc"><p>user is logged in as somebody </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf"></a>LWSGS_AUTH_ADMIN&#160;</td><td class="fielddoc"><p>logged in as the admin user </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887"></a>LWSGS_AUTH_VERIFIED&#160;</td><td class="fielddoc"><p>user has verified his email </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a"></a>LWSGS_AUTH_FORGOT_FLOW&#160;</td><td class="fielddoc"><p>he just completed "forgot password" flow </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; {</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a> = 1, </div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160; <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a> = 2, </div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a> = 4, </div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; <a class="code" href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a> = 8, </div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;};</div><div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887">LWSGS_AUTH_VERIFIED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1490</div></div>
<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a">LWSGS_AUTH_FORGOT_FLOW</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1491</div></div>
<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf">LWSGS_AUTH_ADMIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1489</div></div>
<div class="ttc" id="group__generic-sessions_html_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57"><div class="ttname"><a href="group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57">LWSGS_AUTH_LOGGED_IN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:1488</div></div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,31 +0,0 @@
var group__generic_sessions =
[
[ "lwsgw_hash_bin", "structlwsgw__hash__bin.html", [
[ "bin", "structlwsgw__hash__bin.html#ac92f50d9471058525d110597a4e0de6b", null ]
] ],
[ "lwsgw_hash", "structlwsgw__hash.html", [
[ "id", "structlwsgw__hash.html#a29435f5cf78747d4257695b0f141d164", null ]
] ],
[ "lws_session_info", "structlws__session__info.html", [
[ "email", "structlws__session__info.html#a94b813cfc6b0da4b182659de30038ad3", null ],
[ "ip", "structlws__session__info.html#a53eed02325e8717a53297391e3e98fac", null ],
[ "mask", "structlws__session__info.html#afb924864b70f40372920688a5c1c895e", null ],
[ "session", "structlws__session__info.html#a4353b5dd19400b2b15edfd7cee1e4cd5", null ],
[ "username", "structlws__session__info.html#a3d57a70b6e7181d95a8bec429b1a7697", null ]
] ],
[ "lws_gs_event_args", "structlws__gs__event__args.html", [
[ "email", "structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463", null ],
[ "event", "structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06", null ],
[ "username", "structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b", null ]
] ],
[ "lws_gs_event", "group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e", [
[ "LWSGSE_CREATED", "group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308", null ],
[ "LWSGSE_DELETED", "group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde", null ]
] ],
[ "lwsgs_auth_bits", "group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1", [
[ "LWSGS_AUTH_LOGGED_IN", "group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57", null ],
[ "LWSGS_AUTH_ADMIN", "group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf", null ],
[ "LWSGS_AUTH_VERIFIED", "group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887", null ],
[ "LWSGS_AUTH_FORGOT_FLOW", "group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a", null ]
] ]
];

View file

@ -1,187 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: HTML Chunked Substitution</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__html-chunked-substitution.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">HTML Chunked Substitution<div class="ingroups"><a class="el" href="group__http.html">HTTP</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__process__html__args.html">lws_process_html_args</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__process__html__state.html">lws_process_html_state</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga669d3d7ce2d5f193473f649a89b3e7ac"><td class="memItemLeft" align="right" valign="top"><a id="ga669d3d7ce2d5f193473f649a89b3e7ac"></a>
typedef const char *(*&#160;</td><td class="memItemRight" valign="bottom"><b>lws_process_html_state_cb</b>) (void *data, int index)</td></tr>
<tr class="separator:ga669d3d7ce2d5f193473f649a89b3e7ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gabc3b93f68c8bdd857ad32913628dfa8d"><td class="memItemLeft" align="right" valign="top"><a id="gabc3b93f68c8bdd857ad32913628dfa8d"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>http_status</b> { <br />
&#160;&#160;<b>HTTP_STATUS_OK</b> = 200,
<b>HTTP_STATUS_NO_CONTENT</b> = 204,
<b>HTTP_STATUS_PARTIAL_CONTENT</b> = 206,
<b>HTTP_STATUS_MOVED_PERMANENTLY</b> = 301,
<br />
&#160;&#160;<b>HTTP_STATUS_FOUND</b> = 302,
<b>HTTP_STATUS_SEE_OTHER</b> = 303,
<b>HTTP_STATUS_BAD_REQUEST</b> = 400,
<b>HTTP_STATUS_UNAUTHORIZED</b>,
<br />
&#160;&#160;<b>HTTP_STATUS_PAYMENT_REQUIRED</b>,
<b>HTTP_STATUS_FORBIDDEN</b>,
<b>HTTP_STATUS_NOT_FOUND</b>,
<b>HTTP_STATUS_METHOD_NOT_ALLOWED</b>,
<br />
&#160;&#160;<b>HTTP_STATUS_NOT_ACCEPTABLE</b>,
<b>HTTP_STATUS_PROXY_AUTH_REQUIRED</b>,
<b>HTTP_STATUS_REQUEST_TIMEOUT</b>,
<b>HTTP_STATUS_CONFLICT</b>,
<br />
&#160;&#160;<b>HTTP_STATUS_GONE</b>,
<b>HTTP_STATUS_LENGTH_REQUIRED</b>,
<b>HTTP_STATUS_PRECONDITION_FAILED</b>,
<b>HTTP_STATUS_REQ_ENTITY_TOO_LARGE</b>,
<br />
&#160;&#160;<b>HTTP_STATUS_REQ_URI_TOO_LONG</b>,
<b>HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE</b>,
<b>HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE</b>,
<b>HTTP_STATUS_EXPECTATION_FAILED</b>,
<br />
&#160;&#160;<b>HTTP_STATUS_INTERNAL_SERVER_ERROR</b> = 500,
<b>HTTP_STATUS_NOT_IMPLEMENTED</b>,
<b>HTTP_STATUS_BAD_GATEWAY</b>,
<b>HTTP_STATUS_SERVICE_UNAVAILABLE</b>,
<br />
&#160;&#160;<b>HTTP_STATUS_GATEWAY_TIMEOUT</b>,
<b>HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED</b>
<br />
}</td></tr>
<tr class="separator:gabc3b93f68c8bdd857ad32913628dfa8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga643073f918c0a7016b690aae9793fd60"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60">lws_chunked_html_process</a> (struct <a class="el" href="structlws__process__html__args.html">lws_process_html_args</a> *args, struct <a class="el" href="structlws__process__html__state.html">lws_process_html_state</a> *s)</td></tr>
<tr class="separator:ga643073f918c0a7016b690aae9793fd60"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>HTML chunked Substitution</h2>
<p>APIs for receiving chunks of text, replacing a set of variable names via a callback, and then prepending and appending HTML chunked encoding headers. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga643073f918c0a7016b690aae9793fd60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga643073f918c0a7016b690aae9793fd60">&sect;&nbsp;</a></span>lws_chunked_html_process()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_chunked_html_process </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structlws__process__html__args.html">lws_process_html_args</a> *&#160;</td>
<td class="paramname"><em>args</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structlws__process__html__state.html">lws_process_html_state</a> *&#160;</td>
<td class="paramname"><em>s</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__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60">lws_chunked_html_process()</a> - generic chunked substitution </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>buffer to process using chunked encoding </td></tr>
<tr><td class="paramname">s</td><td>current processing state </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,19 +0,0 @@
var group__html_chunked_substitution =
[
[ "lws_process_html_args", "structlws__process__html__args.html", [
[ "final", "structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475", null ],
[ "len", "structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef", null ],
[ "max_len", "structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99", null ],
[ "p", "structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14", null ]
] ],
[ "lws_process_html_state", "structlws__process__html__state.html", [
[ "count_vars", "structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968", null ],
[ "data", "structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5", null ],
[ "pos", "structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20", null ],
[ "replace", "structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644", null ],
[ "start", "structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3", null ],
[ "swallow", "structlws__process__html__state.html#a71982bc1cbd8cf876ca0f545144404eb", null ],
[ "vars", "structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077", null ]
] ],
[ "lws_chunked_html_process", "group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60", null ]
];

View file

@ -1,254 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: HTTP</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__http.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">HTTP</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__form-parsing"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__form-parsing.html">Form Parsing</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__html-chunked-substitution"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__html-chunked-substitution.html">HTML Chunked Substitution</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__httpft"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__httpft.html">HTTP File transfer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__HTTP-headers-create"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__HTTP-headers-create.html">HTTP headers: create</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__HTTP-headers-read"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__HTTP-headers-read.html">HTTP headers: read</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__urlendec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__urlendec.html">Urlencode and Urldecode</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__tokens.html">lws_tokens</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gac8a4a71240857dc6b2ed70456b6923f4"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__http.html#gac8a4a71240857dc6b2ed70456b6923f4">lws_return_http_status</a> (struct lws *wsi, unsigned int code, const char *html_body)</td></tr>
<tr class="separator:gac8a4a71240857dc6b2ed70456b6923f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8fbf01e473ac421fc33ad9f8da8b8a25"><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__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25">lws_http_redirect</a> (struct lws *wsi, int code, const unsigned char *loc, int len, unsigned char **p, unsigned char *end)</td></tr>
<tr class="separator:ga8fbf01e473ac421fc33ad9f8da8b8a25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad27aed6c66a41b2b89ffe4da2a309e8a"><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__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a">lws_http_transaction_completed</a> (struct lws *wsi)</td></tr>
<tr class="separator:gad27aed6c66a41b2b89ffe4da2a309e8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Modules related to handling HTTP </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga8fbf01e473ac421fc33ad9f8da8b8a25"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8fbf01e473ac421fc33ad9f8da8b8a25">&sect;&nbsp;</a></span>lws_http_redirect()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_http_redirect </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>code</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned char *&#160;</td>
<td class="paramname"><em>loc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char **&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>end</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__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25">lws_http_redirect()</a> - write http redirect into buffer</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>websocket connection </td></tr>
<tr><td class="paramname">code</td><td>HTTP response code (eg, 301) </td></tr>
<tr><td class="paramname">loc</td><td>where to redirect to </td></tr>
<tr><td class="paramname">len</td><td>length of loc </td></tr>
<tr><td class="paramname">p</td><td>pointer current position in buffer (updated as we write) </td></tr>
<tr><td class="paramname">end</td><td>pointer to end of buffer </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gad27aed6c66a41b2b89ffe4da2a309e8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad27aed6c66a41b2b89ffe4da2a309e8a">&sect;&nbsp;</a></span>lws_http_transaction_completed()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_http_transaction_completed </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a">lws_http_transaction_completed()</a> - wait for new http transaction or close </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>websocket connection <pre class="fragment"> Returns 1 if the HTTP connection must close now
Returns 0 and resets connection to wait for new HTTP header /
transaction if possible</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gac8a4a71240857dc6b2ed70456b6923f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac8a4a71240857dc6b2ed70456b6923f4">&sect;&nbsp;</a></span>lws_return_http_status()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_return_http_status </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>code</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>html_body</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__http.html#gac8a4a71240857dc6b2ed70456b6923f4">lws_return_http_status()</a> - Return simple http status </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>Websocket instance (available from user callback) </td></tr>
<tr><td class="paramname">code</td><td>Status index, eg, 404 </td></tr>
<tr><td class="paramname">html_body</td><td>User-readable HTML description &lt; 1KB, or NULL <pre class="fragment"> Helper to report HTTP errors back to the client cleanly and
consistently</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,16 +0,0 @@
var group__http =
[
[ "Form Parsing", "group__form-parsing.html", "group__form-parsing" ],
[ "HTML Chunked Substitution", "group__html-chunked-substitution.html", "group__html-chunked-substitution" ],
[ "HTTP File transfer", "group__httpft.html", "group__httpft" ],
[ "HTTP headers: create", "group__HTTP-headers-create.html", "group__HTTP-headers-create" ],
[ "HTTP headers: read", "group__HTTP-headers-read.html", "group__HTTP-headers-read" ],
[ "Urlencode and Urldecode", "group__urlendec.html", "group__urlendec" ],
[ "lws_tokens", "structlws__tokens.html", [
[ "token", "structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd", null ],
[ "token_len", "structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766", null ]
] ],
[ "lws_http_redirect", "group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25", null ],
[ "lws_http_transaction_completed", "group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a", null ],
[ "lws_return_http_status", "group__http.html#gac8a4a71240857dc6b2ed70456b6923f4", null ]
];

View file

@ -1,200 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: HTTP File transfer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__httpft.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">HTTP File transfer<div class="ingroups"><a class="el" href="group__http.html">HTTP</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gab4da87a4800413f15e7aba649fb1d77c"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c">lws_get_mimetype</a> (const char *file, const struct <a class="el" href="structlws__http__mount.html">lws_http_mount</a> *m)</td></tr>
<tr class="separator:gab4da87a4800413f15e7aba649fb1d77c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab393a06d3d2722af4c3f8b06842c80d7"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7">lws_serve_http_file</a> (struct lws *wsi, const char *file, const char *content_type, const char *other_headers, int other_headers_len)</td></tr>
<tr class="separator:gab393a06d3d2722af4c3f8b06842c80d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29e1123f6d56cd777b3e5bf9ca40f9e5"><td class="memItemLeft" align="right" valign="top"><a id="ga29e1123f6d56cd777b3e5bf9ca40f9e5"></a>
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_serve_http_file_fragment</b> (struct lws *wsi)</td></tr>
<tr class="separator:ga29e1123f6d56cd777b3e5bf9ca40f9e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>APIs for sending local files in response to HTTP requests </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gab4da87a4800413f15e7aba649fb1d77c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab4da87a4800413f15e7aba649fb1d77c">&sect;&nbsp;</a></span>lws_get_mimetype()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const char* lws_get_mimetype </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structlws__http__mount.html">lws_http_mount</a> *&#160;</td>
<td class="paramname"><em>m</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__httpft.html#gab4da87a4800413f15e7aba649fb1d77c">lws_get_mimetype()</a> - Determine mimetype to use from filename</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">file</td><td>filename </td></tr>
<tr><td class="paramname">m</td><td>NULL, or mount context</td></tr>
</table>
</dd>
</dl>
<p>This uses a canned list of known filetypes first, if no match and m is non-NULL, then tries a list of per-mount file suffix to mimtype mappings.</p>
<p>Returns either NULL or a pointer to the mimetype matching the file. </p>
</div>
</div>
<a id="gab393a06d3d2722af4c3f8b06842c80d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab393a06d3d2722af4c3f8b06842c80d7">&sect;&nbsp;</a></span>lws_serve_http_file()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_serve_http_file </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>content_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>other_headers</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>other_headers_len</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__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7">lws_serve_http_file()</a> - Send a file back to the client using http </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>Websocket instance (available from user callback) </td></tr>
<tr><td class="paramname">file</td><td>The file to issue over http </td></tr>
<tr><td class="paramname">content_type</td><td>The http content type, eg, text/html </td></tr>
<tr><td class="paramname">other_headers</td><td>NULL or pointer to header string </td></tr>
<tr><td class="paramname">other_headers_len</td><td>length of the other headers if non-NULL <pre class="fragment"> This function is intended to be called from the callback in response
to http requests from the client. It allows the callback to issue
local files down the http link in a single step.
Returning &lt;0 indicates error and the wsi should be closed. Returning
&gt;0 indicates the file was completely sent and
lws_http_transaction_completed() called on the wsi (and close if != 0)
==0 indicates the file transfer is started and needs more service later,
the wsi should be left alone.</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,5 +0,0 @@
var group__httpft =
[
[ "lws_get_mimetype", "group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c", null ],
[ "lws_serve_http_file", "group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7", null ]
];

View file

@ -1,316 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Logging</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__log.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Logging</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga14542b84d2c76efa7814124bb10f9c5f"><td class="memItemLeft" align="right" valign="top"><a id="ga14542b84d2c76efa7814124bb10f9c5f"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>lws_log_levels</b> { <br />
&#160;&#160;<b>LLL_ERR</b> = 1 &lt;&lt; 0,
<b>LLL_WARN</b> = 1 &lt;&lt; 1,
<b>LLL_NOTICE</b> = 1 &lt;&lt; 2,
<b>LLL_INFO</b> = 1 &lt;&lt; 3,
<br />
&#160;&#160;<b>LLL_DEBUG</b> = 1 &lt;&lt; 4,
<b>LLL_PARSER</b> = 1 &lt;&lt; 5,
<b>LLL_HEADER</b> = 1 &lt;&lt; 6,
<b>LLL_EXT</b> = 1 &lt;&lt; 7,
<br />
&#160;&#160;<b>LLL_CLIENT</b> = 1 &lt;&lt; 8,
<b>LLL_LATENCY</b> = 1 &lt;&lt; 9,
<b>LLL_USER</b> = 1 &lt;&lt; 10,
<b>LLL_COUNT</b> = 11
<br />
}</td></tr>
<tr class="separator:ga14542b84d2c76efa7814124bb10f9c5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga0cdc1065ae7f003d59a3c8525acf545e"><td class="memItemLeft" align="right" valign="top"><a id="ga0cdc1065ae7f003d59a3c8525acf545e"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>_lws_log</b> (int filter, const char *format,...) LWS_FORMAT(2)</td></tr>
<tr class="separator:ga0cdc1065ae7f003d59a3c8525acf545e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga74eb146969f0595e12ea835851b4588e"><td class="memItemLeft" align="right" valign="top"><a id="ga74eb146969f0595e12ea835851b4588e"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>_lws_logv</b> (int filter, const char *format, va_list vl)</td></tr>
<tr class="separator:ga74eb146969f0595e12ea835851b4588e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga42e39775c6b69b7251bdbf5a2cdd5dcd"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd">lwsl_timestamp</a> (int level, char *p, int len)</td></tr>
<tr class="separator:ga42e39775c6b69b7251bdbf5a2cdd5dcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga898b1f03872ad019f507d4e35bbefa90"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__log.html#ga898b1f03872ad019f507d4e35bbefa90">lwsl_hexdump</a> (void *buf, size_t len)</td></tr>
<tr class="separator:ga898b1f03872ad019f507d4e35bbefa90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga244647f9e1bf0097ccdde66d74f41e26"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__log.html#ga244647f9e1bf0097ccdde66d74f41e26">lws_set_log_level</a> (int level, void(*log_emit_function)(int level, const char *line))</td></tr>
<tr class="separator:ga244647f9e1bf0097ccdde66d74f41e26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab7c0fc936cc9f1eb58e2bb234c15147c"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c">lwsl_emit_syslog</a> (int level, const char *line)</td></tr>
<tr class="separator:gab7c0fc936cc9f1eb58e2bb234c15147c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d1819ad1645062fd83817e6f20e03b4"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__log.html#ga2d1819ad1645062fd83817e6f20e03b4">lwsl_visible</a> (int level)</td></tr>
<tr class="separator:ga2d1819ad1645062fd83817e6f20e03b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Logging</h2>
<p>Lws provides flexible and filterable logging facilities, which can be used inside lws and in user code.</p>
<p>Log categories may be individually filtered bitwise, and directed to built-in sinks for syslog-compatible logging, or a user-defined function. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga244647f9e1bf0097ccdde66d74f41e26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga244647f9e1bf0097ccdde66d74f41e26">&sect;&nbsp;</a></span>lws_set_log_level()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lws_set_log_level </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(*)(int level, const char *line)&#160;</td>
<td class="paramname"><em>log_emit_function</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__log.html#ga244647f9e1bf0097ccdde66d74f41e26">lws_set_log_level()</a> - Set the logging bitfield </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">level</td><td>OR together the LLL_ debug contexts you want output from </td></tr>
<tr><td class="paramname">log_emit_function</td><td>NULL to leave it as it is, or a user-supplied function to perform log string emission instead of the default stderr one.</td></tr>
</table>
</dd>
</dl>
<p>log level defaults to "err", "warn" and "notice" contexts enabled and emission on stderr. </p>
</div>
</div>
<a id="gab7c0fc936cc9f1eb58e2bb234c15147c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab7c0fc936cc9f1eb58e2bb234c15147c">&sect;&nbsp;</a></span>lwsl_emit_syslog()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lwsl_emit_syslog </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>line</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__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c">lwsl_emit_syslog()</a> - helper log emit function writes to system log</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">level</td><td>one of LLL_ log level indexes </td></tr>
<tr><td class="paramname">line</td><td>log string</td></tr>
</table>
</dd>
</dl>
<p>You use this by passing the function pointer to <a class="el" href="group__log.html#ga244647f9e1bf0097ccdde66d74f41e26">lws_set_log_level()</a>, to set it as the log emit function, it is not called directly. </p>
</div>
</div>
<a id="ga898b1f03872ad019f507d4e35bbefa90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga898b1f03872ad019f507d4e35bbefa90">&sect;&nbsp;</a></span>lwsl_hexdump()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lwsl_hexdump </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</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__log.html#ga898b1f03872ad019f507d4e35bbefa90">lwsl_hexdump()</a> - helper to hexdump a buffer (DEBUG builds only)</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>buffer start to dump </td></tr>
<tr><td class="paramname">len</td><td>length of buffer to dump </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga42e39775c6b69b7251bdbf5a2cdd5dcd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga42e39775c6b69b7251bdbf5a2cdd5dcd">&sect;&nbsp;</a></span>lwsl_timestamp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lwsl_timestamp </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</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>lwsl_timestamp: generate logging timestamp string</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">level</td><td>logging level </td></tr>
<tr><td class="paramname">p</td><td>char * buffer to take timestamp </td></tr>
<tr><td class="paramname">len</td><td>length of p</td></tr>
</table>
</dd>
</dl>
<p>returns length written in p </p>
</div>
</div>
<a id="ga2d1819ad1645062fd83817e6f20e03b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2d1819ad1645062fd83817e6f20e03b4">&sect;&nbsp;</a></span>lwsl_visible()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lwsl_visible </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>level</em></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__log.html#ga2d1819ad1645062fd83817e6f20e03b4">lwsl_visible()</a> - returns true if the log level should be printed</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">level</td><td>one of LLL_ log level indexes</td></tr>
</table>
</dd>
</dl>
<p>This is useful if you have to do work to generate the log content, you can skip the work if the log level used to print it is not actually enabled at runtime. </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,8 +0,0 @@
var group__log =
[
[ "lws_set_log_level", "group__log.html#ga244647f9e1bf0097ccdde66d74f41e26", null ],
[ "lwsl_emit_syslog", "group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c", null ],
[ "lwsl_hexdump", "group__log.html#ga898b1f03872ad019f507d4e35bbefa90", null ],
[ "lwsl_timestamp", "group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd", null ],
[ "lwsl_visible", "group__log.html#ga2d1819ad1645062fd83817e6f20e03b4", null ]
];

View file

@ -1,508 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Miscellaneous APIs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__misc.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Miscellaneous APIs</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga2163492f17db959a36967adb73d823b4"><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#ga2163492f17db959a36967adb73d823b4">lws_snprintf</a> (char *str, size_t size, const char *format,...) LWS_FORMAT(3)</td></tr>
<tr class="separator:ga2163492f17db959a36967adb73d823b4"><td class="memSeparator" colspan="2">&#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>
<tr class="separator:gace5171b1dbbc03ec89a98f8afdb5c9af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6abfc0b2bd5b2f09281a4432bb2f5f0"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const char *LWS_WARN_UNUSED_RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0">lws_get_library_version</a> (void)</td></tr>
<tr class="separator:gac6abfc0b2bd5b2f09281a4432bb2f5f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa194584fff9698f3b280658f770ccd0f"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gaa194584fff9698f3b280658f770ccd0f">lws_wsi_user</a> (struct lws *wsi)</td></tr>
<tr class="separator:gaa194584fff9698f3b280658f770ccd0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1ec0d9faac5d3a5824d765c287c043aa"><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#ga1ec0d9faac5d3a5824d765c287c043aa">lws_parse_uri</a> (char *p, const char **prot, const char **ads, int *port, const char **path)</td></tr>
<tr class="separator:ga1ec0d9faac5d3a5824d765c287c043aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33bf2635033710b25f931b57ed663e1e"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga33bf2635033710b25f931b57ed663e1e">lws_now_secs</a> (void)</td></tr>
<tr class="separator:ga33bf2635033710b25f931b57ed663e1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0af4f7d2dd375aeedcfa7eb0e1101c4b"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws_context *LWS_WARN_UNUSED_RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">lws_get_context</a> (const struct lws *wsi)</td></tr>
<tr class="separator:ga0af4f7d2dd375aeedcfa7eb0e1101c4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga629f48268fd1856b54b11172991b97d9"><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#ga629f48268fd1856b54b11172991b97d9">lws_get_count_threads</a> (struct lws_context *context)</td></tr>
<tr class="separator:ga629f48268fd1856b54b11172991b97d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8930fe36a3f3eefe4a6a4fd499d8e899"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899">lws_get_parent</a> (const struct lws *wsi)</td></tr>
<tr class="separator:ga8930fe36a3f3eefe4a6a4fd499d8e899"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacae4d7b6a8d22e4c2d82ff8b12c1e234"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234">lws_get_child</a> (const struct lws *wsi)</td></tr>
<tr class="separator:gacae4d7b6a8d22e4c2d82ff8b12c1e234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e705d498e8c8500649a26ba30a1e106"><td class="memItemLeft" align="right" valign="top"><a id="ga0e705d498e8c8500649a26ba30a1e106"></a>
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_read</b> (struct lws *wsi, unsigned char *buf, size_t len)</td></tr>
<tr class="separator:ga0e705d498e8c8500649a26ba30a1e106"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab321ed812f46f6dc7ef9e3ca6f00cf1b"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b">lws_set_allocator</a> (void *(*realloc)(void *ptr, size_t size))</td></tr>
<tr class="separator:gab321ed812f46f6dc7ef9e3ca6f00cf1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Miscellaneous APIs</h2>
<p>Various APIs outside of other categories </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gace5171b1dbbc03ec89a98f8afdb5c9af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gace5171b1dbbc03ec89a98f8afdb5c9af">&sect;&nbsp;</a></span>lws_daemonize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_daemonize </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>_lock_path</em></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#gace5171b1dbbc03ec89a98f8afdb5c9af">lws_daemonize()</a>: make current process run in the background</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">_lock_path</td><td>the filepath to write the lock file</td></tr>
</table>
</dd>
</dl>
<p>Spawn lws as a background process, taking care of various things </p>
</div>
</div>
<a id="gacae4d7b6a8d22e4c2d82ff8b12c1e234"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacae4d7b6a8d22e4c2d82ff8b12c1e234">&sect;&nbsp;</a></span>lws_get_child()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct lws* LWS_WARN_UNUSED_RESULT lws_get_child </td>
<td>(</td>
<td class="paramtype">const struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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#gacae4d7b6a8d22e4c2d82ff8b12c1e234">lws_get_child()</a> - get child wsi or NULL </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>lws connection</td></tr>
</table>
</dd>
</dl>
<p>Allows you to find a related wsi from the parent wsi. </p>
</div>
</div>
<a id="ga0af4f7d2dd375aeedcfa7eb0e1101c4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">&sect;&nbsp;</a></span>lws_get_context()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct lws_context* LWS_WARN_UNUSED_RESULT lws_get_context </td>
<td>(</td>
<td class="paramtype">const struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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>lws_get_context - Allow geting lws_context from a Websocket connection instance</p>
<p>With this function, users can access context in the callback function. Otherwise users may have to declare context as a global variable.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>Websocket connection instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga629f48268fd1856b54b11172991b97d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga629f48268fd1856b54b11172991b97d9">&sect;&nbsp;</a></span>lws_get_count_threads()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_get_count_threads </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em></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#ga629f48268fd1856b54b11172991b97d9">lws_get_count_threads()</a>: how many service threads the context uses</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>the lws context</td></tr>
</table>
</dd>
</dl>
<p>By default this is always 1, if you asked for more than lws can handle it will clip the number of threads. So you can use this to find out how many threads are actually in use. </p>
</div>
</div>
<a id="gac6abfc0b2bd5b2f09281a4432bb2f5f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac6abfc0b2bd5b2f09281a4432bb2f5f0">&sect;&nbsp;</a></span>lws_get_library_version()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const char* LWS_WARN_UNUSED_RESULT lws_get_library_version </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></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#gac6abfc0b2bd5b2f09281a4432bb2f5f0">lws_get_library_version()</a>: return string describing the version of lws</p>
<p>On unix, also includes the git describe </p>
</div>
</div>
<a id="ga8930fe36a3f3eefe4a6a4fd499d8e899"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8930fe36a3f3eefe4a6a4fd499d8e899">&sect;&nbsp;</a></span>lws_get_parent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct lws* LWS_WARN_UNUSED_RESULT lws_get_parent </td>
<td>(</td>
<td class="paramtype">const struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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#ga8930fe36a3f3eefe4a6a4fd499d8e899">lws_get_parent()</a> - get parent wsi or NULL </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>lws connection</td></tr>
</table>
</dd>
</dl>
<p>Specialized wsi like cgi stdin/out/err are associated to a parent wsi, this allows you to get their parent. </p>
</div>
</div>
<a id="ga58f906c6be0ca80efd813f694569dd4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga58f906c6be0ca80efd813f694569dd4a">&sect;&nbsp;</a></span>lws_get_random()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_get_random </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</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#ga58f906c6be0ca80efd813f694569dd4a">lws_get_random()</a>: fill a buffer with platform random data</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>the lws context </td></tr>
<tr><td class="paramname">buf</td><td>buffer to fill </td></tr>
<tr><td class="paramname">len</td><td>how much to fill</td></tr>
</table>
</dd>
</dl>
<p>This is intended to be called from the LWS_CALLBACK_RECEIVE callback if it's interested to see if the frame it's dealing with was sent in binary mode. </p>
</div>
</div>
<a id="ga33bf2635033710b25f931b57ed663e1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga33bf2635033710b25f931b57ed663e1e">&sect;&nbsp;</a></span>lws_now_secs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN unsigned long lws_now_secs </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></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#ga33bf2635033710b25f931b57ed663e1e">lws_now_secs()</a>: return seconds since 1970-1-1 </p>
</div>
</div>
<a id="ga1ec0d9faac5d3a5824d765c287c043aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1ec0d9faac5d3a5824d765c287c043aa">&sect;&nbsp;</a></span>lws_parse_uri()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_parse_uri </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>prot</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>ads</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>path</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>lws_parse_uri: cut up prot:/ads:port/path into pieces Notice it does so by dropping '\0' into input string and the leading / on the path is consequently lost</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p</td><td>incoming uri string.. will get written to </td></tr>
<tr><td class="paramname">prot</td><td>result pointer for protocol part (<a href="https://">https://</a>) </td></tr>
<tr><td class="paramname">ads</td><td>result pointer for address part </td></tr>
<tr><td class="paramname">port</td><td>result pointer for port part </td></tr>
<tr><td class="paramname">path</td><td>result pointer for path part </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gab321ed812f46f6dc7ef9e3ca6f00cf1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab321ed812f46f6dc7ef9e3ca6f00cf1b">&sect;&nbsp;</a></span>lws_set_allocator()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lws_set_allocator </td>
<td>(</td>
<td class="paramtype">void *(*)(void *ptr, size_t size)&#160;</td>
<td class="paramname"><em>realloc</em></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#gab321ed812f46f6dc7ef9e3ca6f00cf1b">lws_set_allocator()</a> - custom allocator support</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">realloc</td><td>Allows you to replace the allocator (and deallocator) used by lws </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga2163492f17db959a36967adb73d823b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2163492f17db959a36967adb73d823b4">&sect;&nbsp;</a></span>lws_snprintf()</h2>
<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#ga2163492f17db959a36967adb73d823b4">lws_snprintf()</a>: snprintf that truncates the returned length too</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>destination buffer </td></tr>
<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 id="gaa194584fff9698f3b280658f770ccd0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa194584fff9698f3b280658f770ccd0f">&sect;&nbsp;</a></span>lws_wsi_user()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void* lws_wsi_user </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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#gaa194584fff9698f3b280658f770ccd0f">lws_wsi_user()</a> - get the user data associated with the connection </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>lws connection</td></tr>
</table>
</dd>
</dl>
<p>Not normally needed since it's passed into the callback </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,15 +0,0 @@
var group__misc =
[
[ "lws_daemonize", "group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af", null ],
[ "lws_get_child", "group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234", null ],
[ "lws_get_context", "group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b", null ],
[ "lws_get_count_threads", "group__misc.html#ga629f48268fd1856b54b11172991b97d9", null ],
[ "lws_get_library_version", "group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0", null ],
[ "lws_get_parent", "group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899", null ],
[ "lws_get_random", "group__misc.html#ga58f906c6be0ca80efd813f694569dd4a", null ],
[ "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#ga2163492f17db959a36967adb73d823b4", null ],
[ "lws_wsi_user", "group__misc.html#gaa194584fff9698f3b280658f770ccd0f", null ]
];

View file

@ -1,291 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Network related helper APIs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__net.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Network related helper APIs</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gad0df22db2be9fc65a667a1e83f9a92a4"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const char *LWS_WARN_UNUSED_RESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4">lws_canonical_hostname</a> (struct lws_context *context)</td></tr>
<tr class="separator:gad0df22db2be9fc65a667a1e83f9a92a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga092e5f473b3347f03ffeef8a950080f3"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__net.html#ga092e5f473b3347f03ffeef8a950080f3">lws_get_peer_addresses</a> (struct lws *wsi, lws_sockfd_type fd, char *name, int name_len, char *rip, int rip_len)</td></tr>
<tr class="separator:ga092e5f473b3347f03ffeef8a950080f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad01014fed09759741b6d23afccfdaacc"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__net.html#gad01014fed09759741b6d23afccfdaacc">lws_get_peer_simple</a> (struct lws *wsi, char *name, int namelen)</td></tr>
<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>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Network related helper APIs</h2>
<p>These wrap miscellaneous useful network-related functions </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gad0df22db2be9fc65a667a1e83f9a92a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad0df22db2be9fc65a667a1e83f9a92a4">&sect;&nbsp;</a></span>lws_canonical_hostname()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const char* LWS_WARN_UNUSED_RESULT lws_canonical_hostname </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em></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__net.html#gad0df22db2be9fc65a667a1e83f9a92a4">lws_canonical_hostname()</a> - returns this host's hostname</p>
<p>This is typically used by client code to fill in the host parameter when making a client connection. You can only call it after the context has been created.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Websocket context </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga092e5f473b3347f03ffeef8a950080f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga092e5f473b3347f03ffeef8a950080f3">&sect;&nbsp;</a></span>lws_get_peer_addresses()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lws_get_peer_addresses </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lws_sockfd_type&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>name_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>rip</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>rip_len</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__net.html#ga092e5f473b3347f03ffeef8a950080f3">lws_get_peer_addresses()</a> - Get client address information </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>Local struct lws associated with </td></tr>
<tr><td class="paramname">fd</td><td>Connection socket descriptor </td></tr>
<tr><td class="paramname">name</td><td>Buffer to take client address name </td></tr>
<tr><td class="paramname">name_len</td><td>Length of client address name buffer </td></tr>
<tr><td class="paramname">rip</td><td>Buffer to take client address IP dotted quad </td></tr>
<tr><td class="paramname">rip_len</td><td>Length of client address IP buffer <pre class="fragment"> This function fills in name and rip with the name and IP of
the client connected with socket descriptor fd. Names may be
truncated if there is not enough room. If either cannot be
determined, they will be returned as valid zero-length strings.</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gad01014fed09759741b6d23afccfdaacc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad01014fed09759741b6d23afccfdaacc">&sect;&nbsp;</a></span>lws_get_peer_simple()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const char* lws_get_peer_simple </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>namelen</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__net.html#gad01014fed09759741b6d23afccfdaacc">lws_get_peer_simple()</a> - Get client address information without RDNS</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>Local struct lws associated with </td></tr>
<tr><td class="paramname">name</td><td>Buffer to take client address name </td></tr>
<tr><td class="paramname">namelen</td><td>Length of client address name buffer</td></tr>
</table>
</dd>
</dl>
<p>This provides a 123.123.123.123 type IP address in name from the peer that has connected to wsi </p>
</div>
</div>
<a id="ga869d8bdffb0f2a7ce08e3ce10d6be3d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga869d8bdffb0f2a7ce08e3ce10d6be3d8">&sect;&nbsp;</a></span>lws_interface_to_sa()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_interface_to_sa </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>ipv6</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>ifname</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct sockaddr_in *&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>addrlen</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__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8">lws_interface_to_sa()</a> - Convert interface name or IP to sockaddr struct</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ipv6</td><td>Allow IPV6 addresses </td></tr>
<tr><td class="paramname">ifname</td><td>Interface name or IP </td></tr>
<tr><td class="paramname">addr</td><td>struct sockaddr_in * to be written </td></tr>
<tr><td class="paramname">addrlen</td><td>Length of addr</td></tr>
</table>
</dd>
</dl>
<p>This converts a textual network interface name to a sockaddr usable by other network functions </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,7 +0,0 @@
var group__net =
[
[ "lws_canonical_hostname", "group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4", null ],
[ "lws_get_peer_addresses", "group__net.html#ga092e5f473b3347f03ffeef8a950080f3", null ],
[ "lws_get_peer_simple", "group__net.html#gad01014fed09759741b6d23afccfdaacc", null ],
[ "lws_interface_to_sa", "group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8", null ]
];

View file

@ -1,184 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Sanitize / purify SQL and JSON helpers</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__pur.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Sanitize / purify SQL and JSON helpers</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga9cc82f06e5ae7e71458626d7a39a5865"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865">lws_sql_purify</a> (char *escaped, const char *string, int len)</td></tr>
<tr class="separator:ga9cc82f06e5ae7e71458626d7a39a5865"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab15187efcfa256b7c928562c182b92a3"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pur.html#gab15187efcfa256b7c928562c182b92a3">lws_json_purify</a> (char *escaped, const char *string, int len)</td></tr>
<tr class="separator:gab15187efcfa256b7c928562c182b92a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Sanitize / purify SQL and JSON helpers</h2>
<p>APIs for escaping untrusted JSON and SQL safely before use </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gab15187efcfa256b7c928562c182b92a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab15187efcfa256b7c928562c182b92a3">&sect;&nbsp;</a></span>lws_json_purify()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const char* lws_json_purify </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>escaped</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</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__pur.html#gab15187efcfa256b7c928562c182b92a3">lws_json_purify()</a> - like strncpy but with escaping for json chars</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">escaped</td><td>output buffer </td></tr>
<tr><td class="paramname">string</td><td>input buffer ('/0' terminated) </td></tr>
<tr><td class="paramname">len</td><td>output buffer max length</td></tr>
</table>
</dd>
</dl>
<p>Because escaping expands the output string, it's not possible to do it in-place, ie, with escaped == string </p>
</div>
</div>
<a id="ga9cc82f06e5ae7e71458626d7a39a5865"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9cc82f06e5ae7e71458626d7a39a5865">&sect;&nbsp;</a></span>lws_sql_purify()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const char* lws_sql_purify </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>escaped</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</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__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865">lws_sql_purify()</a> - like strncpy but with escaping for sql quotes</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">escaped</td><td>output buffer </td></tr>
<tr><td class="paramname">string</td><td>input buffer ('/0' terminated) </td></tr>
<tr><td class="paramname">len</td><td>output buffer max length</td></tr>
</table>
</dd>
</dl>
<p>Because escaping expands the output string, it's not possible to do it in-place, ie, with escaped == string </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,5 +0,0 @@
var group__pur =
[
[ "lws_json_purify", "group__pur.html#gab15187efcfa256b7c928562c182b92a3", null ],
[ "lws_sql_purify", "group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865", null ]
];

View file

@ -1,227 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Sending data</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__sending-data.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Sending data</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga98b099cf8c1c7e38ad78501f270e193d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a> { <br />
&#160;&#160;<a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a> = 0,
<a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a> = 1,
<a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a> = 2,
<a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a> = 3,
<br />
&#160;&#160;<b>LWS_WRITE_PING</b> = 5,
<b>LWS_WRITE_PONG</b> = 6,
<b>LWS_WRITE_HTTP_FINAL</b> = 7,
<a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a> = 8,
<br />
&#160;&#160;<a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,
<a class="el" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a> = 0x80
<br />
}</td></tr>
<tr class="separator:ga98b099cf8c1c7e38ad78501f270e193d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gafd5fdd285a0e25ba7e3e1051deec1001"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001">lws_write</a> (struct lws *wsi, unsigned char *buf, size_t len, enum <a class="el" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a> protocol)</td></tr>
<tr class="separator:gafd5fdd285a0e25ba7e3e1051deec1001"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>APIs related to writing data on a connection </p>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga98b099cf8c1c7e38ad78501f270e193d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga98b099cf8c1c7e38ad78501f270e193d">&sect;&nbsp;</a></span>lws_write_protocol</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a></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>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db"></a>LWS_WRITE_TEXT&#160;</td><td class="fielddoc"><p>Send a ws TEXT message,the pointer must have LWS_PRE valid memory behind it. The receiver expects only valid utf-8 in the payload </p>
</td></tr>
<tr><td class="fieldname"><a id="gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2"></a>LWS_WRITE_BINARY&#160;</td><td class="fielddoc"><p>Send a ws BINARY message, the pointer must have LWS_PRE valid memory behind it. Any sequence of bytes is valid </p>
</td></tr>
<tr><td class="fieldname"><a id="gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826"></a>LWS_WRITE_CONTINUATION&#160;</td><td class="fielddoc"><p>Continue a previous ws message, the pointer must have LWS_PRE valid memory behind it </p>
</td></tr>
<tr><td class="fieldname"><a id="gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e"></a>LWS_WRITE_HTTP&#160;</td><td class="fielddoc"><p>Send HTTP content </p>
</td></tr>
<tr><td class="fieldname"><a id="gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917"></a>LWS_WRITE_HTTP_HEADERS&#160;</td><td class="fielddoc"><p>Send http headers (http2 encodes this payload and LWS_WRITE_HTTP payload differently, http 1.x links also handle this correctly. so to be compatible with both in the future,header response part should be sent using this regardless of http version expected) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3"></a>LWS_WRITE_NO_FIN&#160;</td><td class="fielddoc"><p>This part of the message is not the end of the message </p>
</td></tr>
<tr><td class="fieldname"><a id="gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"></a>LWS_WRITE_CLIENT_IGNORE_XOR_MASK&#160;</td><td class="fielddoc"><p>client packet payload goes out on wire unmunged only useful for security tests since normal servers cannot decode the content if used </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>&#160; {</div><div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a> = 0,</div><div class="line"><a name="l03333"></a><span class="lineno"> 3333</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a> = 1,</div><div class="line"><a name="l03336"></a><span class="lineno"> 3336</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a> = 2,</div><div class="line"><a name="l03339"></a><span class="lineno"> 3339</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a> = 3,</div><div class="line"><a name="l03342"></a><span class="lineno"> 3342</span>&#160; <span class="comment">/* LWS_WRITE_CLOSE is handled by lws_close_reason() */</span></div><div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160; LWS_WRITE_PING = 5,</div><div class="line"><a name="l03344"></a><span class="lineno"> 3344</span>&#160; LWS_WRITE_PONG = 6,</div><div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160;</div><div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160; <span class="comment">/* Same as write_http but we know this write ends the transaction */</span></div><div class="line"><a name="l03347"></a><span class="lineno"> 3347</span>&#160; LWS_WRITE_HTTP_FINAL = 7,</div><div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>&#160;</div><div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160; <span class="comment">/* HTTP2 */</span></div><div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160;</div><div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a> = 8,</div><div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>&#160; <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l03359"></a><span class="lineno"> 3359</span>&#160;</div><div class="line"><a name="l03360"></a><span class="lineno"> 3360</span>&#160; <span class="comment">/* flags */</span></div><div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>&#160;</div><div class="line"><a name="l03362"></a><span class="lineno"> 3362</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a> = 0x40,</div><div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>&#160; <a class="code" href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a> = 0x80</div><div class="line"><a name="l03369"></a><span class="lineno"> 3369</span>&#160;};</div><div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e">LWS_WRITE_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3339</div></div>
<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3">LWS_WRITE_NO_FIN</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3362</div></div>
<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db">LWS_WRITE_TEXT</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3329</div></div>
<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2">LWS_WRITE_BINARY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3333</div></div>
<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce">LWS_WRITE_CLIENT_IGNORE_XOR_MASK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3365</div></div>
<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826">LWS_WRITE_CONTINUATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3336</div></div>
<div class="ttc" id="group__sending-data_html_gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917"><div class="ttname"><a href="group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917">LWS_WRITE_HTTP_HEADERS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:3351</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gafd5fdd285a0e25ba7e3e1051deec1001"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafd5fdd285a0e25ba7e3e1051deec1001">&sect;&nbsp;</a></span>lws_write()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_write </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum <a class="el" href="group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d">lws_write_protocol</a>&#160;</td>
<td class="paramname"><em>protocol</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__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001">lws_write()</a> - Apply protocol then write data to client </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>Websocket instance (available from user callback) </td></tr>
<tr><td class="paramname">buf</td><td>The data to send. For data being sent on a websocket connection (ie, not default http), this buffer MUST have LWS_PRE bytes valid BEFORE the pointer. This is so the protocol header data can be added in-situ. </td></tr>
<tr><td class="paramname">len</td><td>Count of the data bytes in the payload starting from buf </td></tr>
<tr><td class="paramname">protocol</td><td>Use LWS_WRITE_HTTP to reply to an http connection, and one of LWS_WRITE_BINARY or LWS_WRITE_TEXT to send appropriate data on a websockets connection. Remember to allow the extra bytes before and after buf if LWS_WRITE_BINARY or LWS_WRITE_TEXT are used.</td></tr>
</table>
</dd>
</dl>
<p>This function provides the way to issue data back to the client for both http and websocket protocols.</p>
<p>IMPORTANT NOTICE!</p>
<p>When sending with websocket protocol</p>
<p>LWS_WRITE_TEXT, LWS_WRITE_BINARY, LWS_WRITE_CONTINUATION, LWS_WRITE_PING, LWS_WRITE_PONG</p>
<p>the send buffer has to have LWS_PRE bytes valid BEFORE the buffer pointer you pass to <a class="el" href="group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001">lws_write()</a>.</p>
<p>This allows us to add protocol info before and after the data, and send as one packet on the network without payload copying, for maximum efficiency.</p>
<p>So for example you need this kind of code to use lws_write with a 128-byte payload</p>
<p>char buf[LWS_PRE + 128];</p>
<p>// fill your part of the buffer... for example here it's all zeros memset(&amp;buf[LWS_PRE], 0, 128);</p>
<p>lws_write(wsi, &amp;buf[LWS_PRE], 128, LWS_WRITE_TEXT);</p>
<p>When sending HTTP, with</p>
<p>LWS_WRITE_HTTP, LWS_WRITE_HTTP_HEADERS LWS_WRITE_HTTP_FINAL</p>
<p>there is no protocol data prepended, and don't need to take care about the LWS_PRE bytes valid before the buffer pointer.</p>
<p>LWS_PRE is at least the frame nonce + 2 header + 8 length LWS_SEND_BUFFER_POST_PADDING is deprecated, it's now 0 and can be left off. The example apps no longer use it.</p>
<p>Pad LWS_PRE to the CPU word size, so that word references to the address immediately after the padding won't cause an unaligned access error. Sometimes for performance reasons the recommended padding is even larger than sizeof(void *). </p><pre class="fragment"> In the case of sending using websocket protocol, be sure to allocate
valid storage before and after buf as explained above. This scheme
allows maximum efficiency of sending data and protocol in a single
packet while not burdening the user code with any protocol knowledge.
Return may be -1 for a fatal error needing connection close, or the
number of bytes sent.
</pre><h1>Truncated Writes </h1>
<p>The OS may not accept everything you asked to write on the connection.</p>
<p>Posix defines POLLOUT indication from poll() to show that the connection will accept more write data, but it doesn't specifiy how much. It may just accept one byte of whatever you wanted to send.</p>
<p>LWS will buffer the remainder automatically, and send it out autonomously.</p>
<p>During that time, WRITABLE callbacks will be suppressed.</p>
<p>This is to handle corner cases where unexpectedly the OS refuses what we usually expect it to accept. You should try to send in chunks that are almost always accepted in order to avoid the inefficiency of the buffering. </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,13 +0,0 @@
var group__sending_data =
[
[ "lws_write_protocol", "group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d", [
[ "LWS_WRITE_TEXT", "group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db", null ],
[ "LWS_WRITE_BINARY", "group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2", null ],
[ "LWS_WRITE_CONTINUATION", "group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826", null ],
[ "LWS_WRITE_HTTP", "group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e", null ],
[ "LWS_WRITE_HTTP_HEADERS", "group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917", null ],
[ "LWS_WRITE_NO_FIN", "group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3", null ],
[ "LWS_WRITE_CLIENT_IGNORE_XOR_MASK", "group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce", null ]
] ],
[ "lws_write", "group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001", null ]
];

View file

@ -1,398 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Built-in service loop entry</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__service.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Built-in service loop entry</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaf95bd0c663d6516a0c80047d9b1167a8"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8">lws_service</a> (struct lws_context *context, int timeout_ms)</td></tr>
<tr class="separator:gaf95bd0c663d6516a0c80047d9b1167a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b3cc4473fd8848e5bbee7f310712939"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__service.html#ga9b3cc4473fd8848e5bbee7f310712939">lws_service_tsi</a> (struct lws_context *context, int timeout_ms, int tsi)</td></tr>
<tr class="separator:ga9b3cc4473fd8848e5bbee7f310712939"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29c246707997ab7a466aa709aecd2d7b"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__service.html#ga29c246707997ab7a466aa709aecd2d7b">lws_cancel_service_pt</a> (struct lws *wsi)</td></tr>
<tr class="separator:ga29c246707997ab7a466aa709aecd2d7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53e3d0801dfda7960a7249dd559e68a2"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__service.html#ga53e3d0801dfda7960a7249dd559e68a2">lws_cancel_service</a> (struct lws_context *context)</td></tr>
<tr class="separator:ga53e3d0801dfda7960a7249dd559e68a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad82efa5466d14a9f05aa06416375b28d"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__service.html#gad82efa5466d14a9f05aa06416375b28d">lws_service_fd</a> (struct lws_context *context, struct <a class="el" href="structlws__pollfd.html">lws_pollfd</a> *<a class="el" href="structpollfd.html">pollfd</a>)</td></tr>
<tr class="separator:gad82efa5466d14a9f05aa06416375b28d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebf426eda371ba23642fc11d8e0ace6b"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__service.html#gaebf426eda371ba23642fc11d8e0ace6b">lws_service_fd_tsi</a> (struct lws_context *context, struct <a class="el" href="structlws__pollfd.html">lws_pollfd</a> *<a class="el" href="structpollfd.html">pollfd</a>, int tsi)</td></tr>
<tr class="separator:gaebf426eda371ba23642fc11d8e0ace6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4fd9d714434ca499e2b3f7dbba86f241"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__service.html#ga4fd9d714434ca499e2b3f7dbba86f241">lws_service_adjust_timeout</a> (struct lws_context *context, int timeout_ms, int tsi)</td></tr>
<tr class="separator:ga4fd9d714434ca499e2b3f7dbba86f241"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>lws_client_http_body_pending() - control if client connection neeeds to send body</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>client connection </td></tr>
<tr><td class="paramname">something_left_to_send</td><td>nonzero if need to send more body, 0 (default) if nothing more to send</td></tr>
</table>
</dd>
</dl>
<p>If you will send payload data with your HTTP client connection, eg, for POST, when you set the related http headers in LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER callback you should also call this API with something_left_to_send nonzero, and call lws_callback_on_writable(wsi);</p>
<p>After sending the headers, lws will call your callback with LWS_CALLBACK_CLIENT_HTTP_WRITEABLE reason when writable. You can send the next part of the http body payload, calling lws_callback_on_writable(wsi); if there is more to come, or lws_client_http_body_pending(wsi, 0); to let lws know the last part is sent and the connection can move on.</p>
<h2>Built-in service loop entry</h2>
<p>If you're not using libev / libuv, these apis are needed to enter the poll() wait in lws and service any connections with pending events. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga53e3d0801dfda7960a7249dd559e68a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga53e3d0801dfda7960a7249dd559e68a2">&sect;&nbsp;</a></span>lws_cancel_service()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lws_cancel_service </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em></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__service.html#ga53e3d0801dfda7960a7249dd559e68a2">lws_cancel_service()</a> - Cancel wait for new pending socket activity </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Websocket context <pre class="fragment"> This function let a call to lws_service() waiting for a timeout
immediately return.
What it basically does is provide a fake event that will be swallowed,
so the wait in poll() is ended. That's useful because poll() doesn't
attend to changes in POLLIN/OUT/ERR until it re-enters the wait.</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga29c246707997ab7a466aa709aecd2d7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga29c246707997ab7a466aa709aecd2d7b">&sect;&nbsp;</a></span>lws_cancel_service_pt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lws_cancel_service_pt </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__service.html#ga29c246707997ab7a466aa709aecd2d7b">lws_cancel_service_pt()</a> - Cancel servicing of pending socket activity on one thread </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>Cancel service on the thread this wsi is serviced by <pre class="fragment"> This function lets a call to lws_service() waiting for a timeout
immediately return.
It works by creating a phony event and then swallowing it silently.
The reason it may be needed is when waiting in poll(), changes to
the event masks are ignored by the OS until poll() is reentered. This
lets you halt the poll() wait and make the reentry happen immediately
instead of having the wait out the rest of the poll timeout.</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gaf95bd0c663d6516a0c80047d9b1167a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf95bd0c663d6516a0c80047d9b1167a8">&sect;&nbsp;</a></span>lws_service()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_service </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout_ms</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__service.html#gaf95bd0c663d6516a0c80047d9b1167a8">lws_service()</a> - Service any pending websocket activity </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Websocket context </td></tr>
<tr><td class="paramname">timeout_ms</td><td>Timeout for poll; 0 means return immediately if nothing needed service otherwise block and service immediately, returning after the timeout if nothing needed service.</td></tr>
</table>
</dd>
</dl>
<p>This function deals with any pending websocket traffic, for three kinds of event. It handles these events on both server and client types of connection the same.</p>
<p>1) Accept new connections to our context's server</p>
<p>2) Call the receive callback for incoming frame data received by server or client connections.</p>
<p>You need to call this service function periodically to all the above functions to happen; if your application is single-threaded you can just call it in your main event loop.</p>
<p>Alternatively you can fork a new process that asynchronously handles calling this service in a loop. In that case you are happy if this call blocks your thread until it needs to take care of something and would call it with a large nonzero timeout. Your loop then takes no CPU while there is nothing happening.</p>
<p>If you are calling it in a single-threaded app, you don't want it to wait around blocking other things in your loop from happening, so you would call it with a timeout_ms of 0, so it returns immediately if nothing is pending, or as soon as it services whatever was pending. </p>
</div>
</div>
<a id="ga4fd9d714434ca499e2b3f7dbba86f241"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4fd9d714434ca499e2b3f7dbba86f241">&sect;&nbsp;</a></span>lws_service_adjust_timeout()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_service_adjust_timeout </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout_ms</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>tsi</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__service.html#ga4fd9d714434ca499e2b3f7dbba86f241">lws_service_adjust_timeout()</a> - Check for any connection needing forced service </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Websocket context </td></tr>
<tr><td class="paramname">timeout_ms</td><td>The original poll timeout value. You can just set this to 1 if you don't really have a poll timeout. </td></tr>
<tr><td class="paramname">tsi</td><td>thread service index</td></tr>
</table>
</dd>
</dl>
<p>Under some conditions connections may need service even though there is no pending network action on them, this is "forced service". For default poll() and libuv / libev, the library takes care of calling this and dealing with it for you. But for external poll() integration, you need access to the apis.</p>
<p>If anybody needs "forced service", returned timeout is zero. In that case, you can call <a class="el" href="group__service.html#ga9b3cc4473fd8848e5bbee7f310712939">lws_service_tsi()</a> with a timeout of -1 to only service guys who need forced service. </p>
</div>
</div>
<a id="gad82efa5466d14a9f05aa06416375b28d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad82efa5466d14a9f05aa06416375b28d">&sect;&nbsp;</a></span>lws_service_fd()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_service_fd </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structlws__pollfd.html">lws_pollfd</a> *&#160;</td>
<td class="paramname"><em>pollfd</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__service.html#gad82efa5466d14a9f05aa06416375b28d">lws_service_fd()</a> - Service polled socket with something waiting </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Websocket context </td></tr>
<tr><td class="paramname">pollfd</td><td>The pollfd entry describing the socket fd and which events happened, or NULL to tell lws to do only timeout servicing.</td></tr>
</table>
</dd>
</dl>
<p>This function takes a pollfd that has POLLIN or POLLOUT activity and services it according to the state of the associated struct lws.</p>
<p>The one call deals with all "service" that might happen on a socket including listen accepts, http files as well as websocket protocol.</p>
<p>If a pollfd says it has something, you can just pass it to <a class="el" href="group__service.html#gad82efa5466d14a9f05aa06416375b28d">lws_service_fd()</a> whether it is a socket handled by lws or not. If it sees it is a lws socket, the traffic will be handled and pollfd-&gt;revents will be zeroed now.</p>
<p>If the socket is foreign to lws, it leaves revents alone. So you can see if you should service yourself by checking the pollfd revents after letting lws try to service it.</p>
<p>You should also call this with pollfd = NULL to just allow the once-per-second global timeout checks; if less than a second since the last check it returns immediately then. </p>
</div>
</div>
<a id="gaebf426eda371ba23642fc11d8e0ace6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaebf426eda371ba23642fc11d8e0ace6b">&sect;&nbsp;</a></span>lws_service_fd_tsi()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_service_fd_tsi </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structlws__pollfd.html">lws_pollfd</a> *&#160;</td>
<td class="paramname"><em>pollfd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>tsi</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__service.html#gaebf426eda371ba23642fc11d8e0ace6b">lws_service_fd_tsi()</a> - Service polled socket in specific service thread </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Websocket context </td></tr>
<tr><td class="paramname">pollfd</td><td>The pollfd entry describing the socket fd and which events happened. </td></tr>
<tr><td class="paramname">tsi</td><td>thread service index</td></tr>
</table>
</dd>
</dl>
<p>Same as <a class="el" href="group__service.html#gad82efa5466d14a9f05aa06416375b28d">lws_service_fd()</a> but used with multiple service threads </p>
</div>
</div>
<a id="ga9b3cc4473fd8848e5bbee7f310712939"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9b3cc4473fd8848e5bbee7f310712939">&sect;&nbsp;</a></span>lws_service_tsi()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_service_tsi </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>timeout_ms</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>tsi</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__service.html#gaf95bd0c663d6516a0c80047d9b1167a8">lws_service()</a> - Service any pending websocket activity</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>Websocket context </td></tr>
<tr><td class="paramname">timeout_ms</td><td>Timeout for poll; 0 means return immediately if nothing needed service otherwise block and service immediately, returning after the timeout if nothing needed service.</td></tr>
</table>
</dd>
</dl>
<p>Same as <a class="el" href="group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8">lws_service()</a>, but for a specific thread service index. Only needed if you are spawning multiple service threads. </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,10 +0,0 @@
var group__service =
[
[ "lws_cancel_service", "group__service.html#ga53e3d0801dfda7960a7249dd559e68a2", null ],
[ "lws_cancel_service_pt", "group__service.html#ga29c246707997ab7a466aa709aecd2d7b", null ],
[ "lws_service", "group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8", null ],
[ "lws_service_adjust_timeout", "group__service.html#ga4fd9d714434ca499e2b3f7dbba86f241", null ],
[ "lws_service_fd", "group__service.html#gad82efa5466d14a9f05aa06416375b28d", null ],
[ "lws_service_fd_tsi", "group__service.html#gaebf426eda371ba23642fc11d8e0ace6b", null ],
[ "lws_service_tsi", "group__service.html#ga9b3cc4473fd8848e5bbee7f310712939", null ]
];

View file

@ -1,239 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: SHA and B64 helpers</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__sha.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">SHA and B64 helpers</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga7b09ab74646266f0b555103b3bb8dfe5"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5">lws_SHA1</a> (const unsigned char *d, size_t n, unsigned char *md)</td></tr>
<tr class="separator:ga7b09ab74646266f0b555103b3bb8dfe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf39765e4a3b413efb65e4698b2ec3575"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575">lws_b64_encode_string</a> (const char *in, int in_len, char *out, int out_size)</td></tr>
<tr class="separator:gaf39765e4a3b413efb65e4698b2ec3575"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66316e6a5a0644a09d5a10e919dfdd8d"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d">lws_b64_decode_string</a> (const char *in, char *out, int out_size)</td></tr>
<tr class="separator:ga66316e6a5a0644a09d5a10e919dfdd8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>SHA and B64 helpers</h2>
<p>These provide SHA-1 and B64 helper apis </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga66316e6a5a0644a09d5a10e919dfdd8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga66316e6a5a0644a09d5a10e919dfdd8d">&sect;&nbsp;</a></span>lws_b64_decode_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_b64_decode_string </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>out_size</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__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d">lws_b64_decode_string()</a>: decode a string from base 64</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">in</td><td>incoming buffer </td></tr>
<tr><td class="paramname">out</td><td>result buffer </td></tr>
<tr><td class="paramname">out_size</td><td>length of result buffer</td></tr>
</table>
</dd>
</dl>
<p>Decodes a string using b64 </p>
</div>
</div>
<a id="gaf39765e4a3b413efb65e4698b2ec3575"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf39765e4a3b413efb65e4698b2ec3575">&sect;&nbsp;</a></span>lws_b64_encode_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_b64_encode_string </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>in_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>out_size</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__sha.html#gaf39765e4a3b413efb65e4698b2ec3575">lws_b64_encode_string()</a>: encode a string into base 64</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">in</td><td>incoming buffer </td></tr>
<tr><td class="paramname">in_len</td><td>length of incoming buffer </td></tr>
<tr><td class="paramname">out</td><td>result buffer </td></tr>
<tr><td class="paramname">out_size</td><td>length of result buffer</td></tr>
</table>
</dd>
</dl>
<p>Encodes a string using b64 </p>
</div>
</div>
<a id="ga7b09ab74646266f0b555103b3bb8dfe5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7b09ab74646266f0b555103b3bb8dfe5">&sect;&nbsp;</a></span>lws_SHA1()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN unsigned char* lws_SHA1 </td>
<td>(</td>
<td class="paramtype">const unsigned char *&#160;</td>
<td class="paramname"><em>d</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>n</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>md</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__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5">lws_SHA1()</a>: make a SHA-1 digest of a buffer</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">d</td><td>incoming buffer </td></tr>
<tr><td class="paramname">n</td><td>length of incoming buffer </td></tr>
<tr><td class="paramname">md</td><td>buffer for message digest (must be &gt;= 20 bytes)</td></tr>
</table>
</dd>
</dl>
<p>Reduces any size buffer into a 20-byte SHA-1 hash. </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,6 +0,0 @@
var group__sha =
[
[ "lws_b64_decode_string", "group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d", null ],
[ "lws_b64_encode_string", "group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575", null ],
[ "lws_SHA1", "group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5", null ]
];

View file

@ -1,278 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Smtp</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__smtp.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Smtp</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__email.html">lws_email</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga116be79bf44f9dc2a97f46e051fe4dc0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">lwsgs_smtp_states</a> { <br />
&#160;&#160;<a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>,
<a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>,
<a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>,
<a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>,
<br />
&#160;&#160;<a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>,
<a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>,
<a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>,
<a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>,
<br />
&#160;&#160;<a class="el" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>
<br />
}</td></tr>
<tr class="separator:ga116be79bf44f9dc2a97f46e051fe4dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga77fc9b56a1bb39484844981ec375fc29"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29">lws_email_init</a> (struct <a class="el" href="structlws__email.html">lws_email</a> *email, uv_loop_t *loop, int max_content)</td></tr>
<tr class="separator:ga77fc9b56a1bb39484844981ec375fc29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5e535e346d92a9daf00be33abf79d4eb"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb">lws_email_check</a> (struct <a class="el" href="structlws__email.html">lws_email</a> *email)</td></tr>
<tr class="separator:ga5e535e346d92a9daf00be33abf79d4eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga25298a5afc1074e13b2d5711a86432b2"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2">lws_email_destroy</a> (struct <a class="el" href="structlws__email.html">lws_email</a> *email)</td></tr>
<tr class="separator:ga25298a5afc1074e13b2d5711a86432b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>SMTP related functions</h2>
<p>These apis let you communicate with a local SMTP server to send email from lws. It handles all the SMTP sequencing and protocol actions.</p>
<p>Your system should have postfix, sendmail or another MTA listening on port 25 and able to send email using the "mail" commandline app. Usually distro MTAs are configured for this by default.</p>
<p>It runs via its own libuv events if initialized (which requires giving it a libuv loop to attach to).</p>
<p>It operates using three callbacks, on_next() queries if there is a new email to send, on_get_body() asks for the body of the email, and on_sent() is called after the email is successfully sent.</p>
<p>To use it</p>
<ul>
<li>create an <a class="el" href="structlws__email.html">lws_email</a> struct</li>
<li>initialize data, loop, the email_* strings, max_content_size and the callbacks</li>
<li>call <a class="el" href="group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29">lws_email_init()</a></li>
</ul>
<p>When you have at least one email to send, call <a class="el" href="group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb">lws_email_check()</a> to schedule starting to send it. </p>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga116be79bf44f9dc2a97f46e051fe4dc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga116be79bf44f9dc2a97f46e051fe4dc0">&sect;&nbsp;</a></span>lwsgs_smtp_states</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0">lwsgs_smtp_states</a></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>enum lwsgs_smtp_states - where we are in SMTP protocol sequence </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c"></a>LGSSMTP_IDLE&#160;</td><td class="fielddoc"><p>awaiting new email </p>
</td></tr>
<tr><td class="fieldname"><a id="gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933"></a>LGSSMTP_CONNECTING&#160;</td><td class="fielddoc"><p>opening tcp connection to MTA </p>
</td></tr>
<tr><td class="fieldname"><a id="gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d"></a>LGSSMTP_CONNECTED&#160;</td><td class="fielddoc"><p>tcp connection to MTA is connected </p>
</td></tr>
<tr><td class="fieldname"><a id="gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad"></a>LGSSMTP_SENT_HELO&#160;</td><td class="fielddoc"><p>sent the HELO </p>
</td></tr>
<tr><td class="fieldname"><a id="gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab"></a>LGSSMTP_SENT_FROM&#160;</td><td class="fielddoc"><p>sent FROM </p>
</td></tr>
<tr><td class="fieldname"><a id="gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83"></a>LGSSMTP_SENT_TO&#160;</td><td class="fielddoc"><p>sent TO </p>
</td></tr>
<tr><td class="fieldname"><a id="gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14"></a>LGSSMTP_SENT_DATA&#160;</td><td class="fielddoc"><p>sent DATA request </p>
</td></tr>
<tr><td class="fieldname"><a id="gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69"></a>LGSSMTP_SENT_BODY&#160;</td><td class="fielddoc"><p>sent the email body </p>
</td></tr>
<tr><td class="fieldname"><a id="gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5"></a>LGSSMTP_SENT_QUIT&#160;</td><td class="fielddoc"><p>sent the session quit </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l04383"></a><span class="lineno"> 4383</span>&#160; {</div><div class="line"><a name="l04384"></a><span class="lineno"> 4384</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c">LGSSMTP_IDLE</a>, </div><div class="line"><a name="l04385"></a><span class="lineno"> 4385</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933">LGSSMTP_CONNECTING</a>, </div><div class="line"><a name="l04386"></a><span class="lineno"> 4386</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d">LGSSMTP_CONNECTED</a>, </div><div class="line"><a name="l04387"></a><span class="lineno"> 4387</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad">LGSSMTP_SENT_HELO</a>, </div><div class="line"><a name="l04388"></a><span class="lineno"> 4388</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab">LGSSMTP_SENT_FROM</a>, </div><div class="line"><a name="l04389"></a><span class="lineno"> 4389</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83">LGSSMTP_SENT_TO</a>, </div><div class="line"><a name="l04390"></a><span class="lineno"> 4390</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14">LGSSMTP_SENT_DATA</a>, </div><div class="line"><a name="l04391"></a><span class="lineno"> 4391</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69">LGSSMTP_SENT_BODY</a>, </div><div class="line"><a name="l04392"></a><span class="lineno"> 4392</span>&#160; <a class="code" href="group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5">LGSSMTP_SENT_QUIT</a>, </div><div class="line"><a name="l04393"></a><span class="lineno"> 4393</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:4386</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:4391</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:4384</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:4385</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:4389</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:4388</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:4392</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:4387</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:4390</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga5e535e346d92a9daf00be33abf79d4eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5e535e346d92a9daf00be33abf79d4eb">&sect;&nbsp;</a></span>lws_email_check()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lws_email_check </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structlws__email.html">lws_email</a> *&#160;</td>
<td class="paramname"><em>email</em></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__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb">lws_email_check()</a> - Request check for new email</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">email</td><td>struct <a class="el" href="structlws__email.html">lws_email</a> context to check</td></tr>
</table>
</dd>
</dl>
<p>Schedules a check for new emails in 1s... call this when you have queued an email for send. </p>
</div>
</div>
<a id="ga25298a5afc1074e13b2d5711a86432b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga25298a5afc1074e13b2d5711a86432b2">&sect;&nbsp;</a></span>lws_email_destroy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lws_email_destroy </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structlws__email.html">lws_email</a> *&#160;</td>
<td class="paramname"><em>email</em></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__smtp.html#ga25298a5afc1074e13b2d5711a86432b2">lws_email_destroy()</a> - stop using the struct <a class="el" href="structlws__email.html">lws_email</a></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">email</td><td>the struct <a class="el" href="structlws__email.html">lws_email</a> context</td></tr>
</table>
</dd>
</dl>
<p>Stop sending email using email and free allocations </p>
</div>
</div>
<a id="ga77fc9b56a1bb39484844981ec375fc29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga77fc9b56a1bb39484844981ec375fc29">&sect;&nbsp;</a></span>lws_email_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_email_init </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structlws__email.html">lws_email</a> *&#160;</td>
<td class="paramname"><em>email</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uv_loop_t *&#160;</td>
<td class="paramname"><em>loop</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>max_content</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__smtp.html#ga77fc9b56a1bb39484844981ec375fc29">lws_email_init()</a> - Initialize a struct <a class="el" href="structlws__email.html">lws_email</a></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">email</td><td>struct <a class="el" href="structlws__email.html">lws_email</a> to init </td></tr>
<tr><td class="paramname">loop</td><td>libuv loop to use </td></tr>
<tr><td class="paramname">max_content</td><td>max email content size</td></tr>
</table>
</dd>
</dl>
<p>Prepares a struct <a class="el" href="structlws__email.html">lws_email</a> for use ending SMTP </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,36 +0,0 @@
var group__smtp =
[
[ "lws_email", "structlws__email.html", [
[ "content", "structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed", null ],
[ "data", "structlws__email.html#add1341456045382c183f4c763bdea6bc", null ],
[ "email_buf", "structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82", null ],
[ "email_client", "structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e", null ],
[ "email_connect_req", "structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3", null ],
[ "email_connect_started", "structlws__email.html#a9747ca85597788c2d118d287df47b7c1", null ],
[ "email_from", "structlws__email.html#af7f0ae934347d81071f63a963301f9e2", null ],
[ "email_helo", "structlws__email.html#a939e5d7ee0339a16de73bde71ab4d4d9", null ],
[ "email_smtp_ip", "structlws__email.html#a472ae23fc9fca6599e5c512bc21458d2", null ],
[ "email_to", "structlws__email.html#a6453a8b92b3de6d2c2101af3edce685e", null ],
[ "estate", "structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3", null ],
[ "loop", "structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168", null ],
[ "max_content_size", "structlws__email.html#a7bbc1964889c984b3da723c86a210e05", null ],
[ "on_get_body", "structlws__email.html#a2aff78c8e04db243052aa91b4d87e987", null ],
[ "on_next", "structlws__email.html#ad8dc60353ee246d84dd59ec0591e9719", null ],
[ "on_sent", "structlws__email.html#a39ef6263d58eb40cca417c8697b227d8", null ],
[ "timeout_email", "structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be", null ]
] ],
[ "lwsgs_smtp_states", "group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0", [
[ "LGSSMTP_IDLE", "group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c", null ],
[ "LGSSMTP_CONNECTING", "group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933", null ],
[ "LGSSMTP_CONNECTED", "group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d", null ],
[ "LGSSMTP_SENT_HELO", "group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad", null ],
[ "LGSSMTP_SENT_FROM", "group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab", null ],
[ "LGSSMTP_SENT_TO", "group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83", null ],
[ "LGSSMTP_SENT_DATA", "group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14", null ],
[ "LGSSMTP_SENT_BODY", "group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69", null ],
[ "LGSSMTP_SENT_QUIT", "group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5", null ]
] ],
[ "lws_email_check", "group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb", null ],
[ "lws_email_destroy", "group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2", null ],
[ "lws_email_init", "group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29", null ]
];

View file

@ -1,300 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Socket adoption helpers</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__sock-adopt.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Socket adoption helpers</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gabe71b7462afb21c767bdc67334f305af"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af">lws_adopt_socket</a> (struct lws_context *context, lws_sockfd_type accept_fd)</td></tr>
<tr class="separator:gabe71b7462afb21c767bdc67334f305af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18747e81ff49df2076e7cd4f131f967c"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sock-adopt.html#ga18747e81ff49df2076e7cd4f131f967c">lws_adopt_socket_vhost</a> (struct lws_vhost *vh, lws_sockfd_type accept_fd)</td></tr>
<tr class="separator:ga18747e81ff49df2076e7cd4f131f967c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga03ec62bedd88f8cef062198a75b2202f"><td class="memItemLeft" align="right" valign="top"><a id="ga03ec62bedd88f8cef062198a75b2202f"></a>
LWS_VISIBLE struct lws *&#160;</td><td class="memItemRight" valign="bottom"><b>lws_adopt_socket_vhost2</b> (struct lws_vhost *vh, lws_sockfd_type accept_fd, int allow_ssl, int raw)</td></tr>
<tr class="separator:ga03ec62bedd88f8cef062198a75b2202f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2d045df0f81afe00891aaed312d552b"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b">lws_adopt_socket_readbuf</a> (struct lws_context *context, lws_sockfd_type accept_fd, const char *readbuf, size_t len)</td></tr>
<tr class="separator:gab2d045df0f81afe00891aaed312d552b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ed5fd251ac0ed46798af341c33bf067"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN struct lws *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sock-adopt.html#ga5ed5fd251ac0ed46798af341c33bf067">lws_adopt_socket_vhost_readbuf</a> (struct lws_vhost *vhost, lws_sockfd_type accept_fd, const char *readbuf, size_t len)</td></tr>
<tr class="separator:ga5ed5fd251ac0ed46798af341c33bf067"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Socket adoption helpers</h2>
<p>When integrating with an external app with its own event loop, these can be used to accept connections from someone else's listening socket.</p>
<p>When using lws own event loop, these are not needed. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gabe71b7462afb21c767bdc67334f305af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabe71b7462afb21c767bdc67334f305af">&sect;&nbsp;</a></span>lws_adopt_socket()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct lws* lws_adopt_socket </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lws_sockfd_type&#160;</td>
<td class="paramname"><em>accept_fd</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__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af">lws_adopt_socket()</a> - adopt foreign socket as if listen socket accepted it for the default vhost of context. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>lws context </td></tr>
<tr><td class="paramname">accept_fd</td><td>fd of already-accepted socket to adopt</td></tr>
</table>
</dd>
</dl>
<p>Either returns new wsi bound to accept_fd, or closes accept_fd and returns NULL, having cleaned up any new wsi pieces.</p>
<p>LWS adopts the socket in http serving mode, it's ready to accept an upgrade to ws or just serve http. </p>
</div>
</div>
<a id="gab2d045df0f81afe00891aaed312d552b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab2d045df0f81afe00891aaed312d552b">&sect;&nbsp;</a></span>lws_adopt_socket_readbuf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct lws* lws_adopt_socket_readbuf </td>
<td>(</td>
<td class="paramtype">struct lws_context *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lws_sockfd_type&#160;</td>
<td class="paramname"><em>accept_fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>readbuf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</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__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b">lws_adopt_socket_readbuf()</a> - adopt foreign socket and first rx as if listen socket accepted it for the default vhost of context. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>lws context </td></tr>
<tr><td class="paramname">accept_fd</td><td>fd of already-accepted socket to adopt </td></tr>
<tr><td class="paramname">readbuf</td><td>NULL or pointer to data that must be drained before reading from accept_fd </td></tr>
<tr><td class="paramname">len</td><td>The length of the data held at </td></tr>
<tr><td class="paramname">readbuf</td><td>Either returns new wsi bound to accept_fd, or closes accept_fd and returns NULL, having cleaned up any new wsi pieces.</td></tr>
</table>
</dd>
</dl>
<p>LWS adopts the socket in http serving mode, it's ready to accept an upgrade to ws or just serve http.</p>
<p>If your external code did not already read from the socket, you can use <a class="el" href="group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af">lws_adopt_socket()</a> instead.</p>
<p>This api is guaranteed to use the data at </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">readbuf</td><td>first, before reading from the socket.</td></tr>
</table>
</dd>
</dl>
<p>readbuf is limited to the size of the ah rx buf, currently 2048 bytes. </p>
</div>
</div>
<a id="ga18747e81ff49df2076e7cd4f131f967c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga18747e81ff49df2076e7cd4f131f967c">&sect;&nbsp;</a></span>lws_adopt_socket_vhost()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct lws* lws_adopt_socket_vhost </td>
<td>(</td>
<td class="paramtype">struct lws_vhost *&#160;</td>
<td class="paramname"><em>vh</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lws_sockfd_type&#160;</td>
<td class="paramname"><em>accept_fd</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__sock-adopt.html#ga18747e81ff49df2076e7cd4f131f967c">lws_adopt_socket_vhost()</a> - adopt foreign socket as if listen socket accepted it for vhost </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">vhost</td><td>lws vhost </td></tr>
<tr><td class="paramname">accept_fd</td><td>fd of already-accepted socket to adopt</td></tr>
</table>
</dd>
</dl>
<p>Either returns new wsi bound to accept_fd, or closes accept_fd and returns NULL, having cleaned up any new wsi pieces.</p>
<p>LWS adopts the socket in http serving mode, it's ready to accept an upgrade to ws or just serve http. </p>
</div>
</div>
<a id="ga5ed5fd251ac0ed46798af341c33bf067"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5ed5fd251ac0ed46798af341c33bf067">&sect;&nbsp;</a></span>lws_adopt_socket_vhost_readbuf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN struct lws* lws_adopt_socket_vhost_readbuf </td>
<td>(</td>
<td class="paramtype">struct lws_vhost *&#160;</td>
<td class="paramname"><em>vhost</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lws_sockfd_type&#160;</td>
<td class="paramname"><em>accept_fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>readbuf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</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__sock-adopt.html#ga5ed5fd251ac0ed46798af341c33bf067">lws_adopt_socket_vhost_readbuf()</a> - adopt foreign socket and first rx as if listen socket accepted it for vhost. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">vhost</td><td>lws vhost </td></tr>
<tr><td class="paramname">accept_fd</td><td>fd of already-accepted socket to adopt </td></tr>
<tr><td class="paramname">readbuf</td><td>NULL or pointer to data that must be drained before reading from accept_fd </td></tr>
<tr><td class="paramname">len</td><td>The length of the data held at </td></tr>
<tr><td class="paramname">readbuf</td><td>Either returns new wsi bound to accept_fd, or closes accept_fd and returns NULL, having cleaned up any new wsi pieces.</td></tr>
</table>
</dd>
</dl>
<p>LWS adopts the socket in http serving mode, it's ready to accept an upgrade to ws or just serve http.</p>
<p>If your external code did not already read from the socket, you can use <a class="el" href="group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af">lws_adopt_socket()</a> instead.</p>
<p>This api is guaranteed to use the data at </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">readbuf</td><td>first, before reading from the socket.</td></tr>
</table>
</dd>
</dl>
<p>readbuf is limited to the size of the ah rx buf, currently 2048 bytes. </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,7 +0,0 @@
var group__sock_adopt =
[
[ "lws_adopt_socket", "group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af", null ],
[ "lws_adopt_socket_readbuf", "group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b", null ],
[ "lws_adopt_socket_vhost", "group__sock-adopt.html#ga18747e81ff49df2076e7cd4f131f967c", null ],
[ "lws_adopt_socket_vhost_readbuf", "group__sock-adopt.html#ga5ed5fd251ac0ed46798af341c33bf067", null ]
];

View file

@ -1,166 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Connection timeouts</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__timeout.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Connection timeouts</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga2c0aa4b9c3c55bae7b35cbfac3246c87"><td class="memItemLeft" align="right" valign="top"><a id="ga2c0aa4b9c3c55bae7b35cbfac3246c87"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>pending_timeout</b> { <br />
&#160;&#160;<b>NO_PENDING_TIMEOUT</b> = 0,
<b>PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE</b> = 1,
<b>PENDING_TIMEOUT_AWAITING_CONNECT_RESPONSE</b> = 2,
<b>PENDING_TIMEOUT_ESTABLISH_WITH_SERVER</b> = 3,
<br />
&#160;&#160;<b>PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE</b> = 4,
<b>PENDING_TIMEOUT_AWAITING_PING</b> = 5,
<b>PENDING_TIMEOUT_CLOSE_ACK</b> = 6,
<b>PENDING_TIMEOUT_AWAITING_EXTENSION_CONNECT_RESPONSE</b> = 7,
<br />
&#160;&#160;<b>PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE</b> = 8,
<b>PENDING_TIMEOUT_SSL_ACCEPT</b> = 9,
<b>PENDING_TIMEOUT_HTTP_CONTENT</b> = 10,
<b>PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND</b> = 11,
<br />
&#160;&#160;<b>PENDING_FLUSH_STORED_SEND_BEFORE_CLOSE</b> = 12,
<b>PENDING_TIMEOUT_SHUTDOWN_FLUSH</b> = 13,
<b>PENDING_TIMEOUT_CGI</b> = 14,
<b>PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE</b> = 15,
<br />
&#160;&#160;<b>PENDING_TIMEOUT_WS_PONG_CHECK_SEND_PING</b> = 16,
<b>PENDING_TIMEOUT_WS_PONG_CHECK_GET_PONG</b> = 17,
<b>PENDING_TIMEOUT_CLIENT_ISSUE_PAYLOAD</b> = 18
<br />
}</td></tr>
<tr class="separator:ga2c0aa4b9c3c55bae7b35cbfac3246c87"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaced9f9237f6172fed9f730a2af51345a"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__timeout.html#gaced9f9237f6172fed9f730a2af51345a">lws_set_timeout</a> (struct lws *wsi, enum pending_timeout reason, int secs)</td></tr>
<tr class="separator:gaced9f9237f6172fed9f730a2af51345a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>APIs related to setting connection timeouts </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaced9f9237f6172fed9f730a2af51345a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaced9f9237f6172fed9f730a2af51345a">&sect;&nbsp;</a></span>lws_set_timeout()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lws_set_timeout </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum pending_timeout&#160;</td>
<td class="paramname"><em>reason</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>secs</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__timeout.html#gaced9f9237f6172fed9f730a2af51345a">lws_set_timeout()</a> - marks the wsi as subject to a timeout</p>
<p>You will not need this unless you are doing something special</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>Websocket connection instance </td></tr>
<tr><td class="paramname">reason</td><td>timeout reason </td></tr>
<tr><td class="paramname">secs</td><td>how many seconds </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,4 +0,0 @@
var group__timeout =
[
[ "lws_set_timeout", "group__timeout.html#gaced9f9237f6172fed9f730a2af51345a", null ]
];

View file

@ -1,185 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Urlencode and Urldecode</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__urlendec.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Urlencode and Urldecode<div class="ingroups"><a class="el" href="group__http.html">HTTP</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gabc2888476e50e001c875c1a8abf455b7"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7">lws_urlencode</a> (char *escaped, const char *string, int len)</td></tr>
<tr class="separator:gabc2888476e50e001c875c1a8abf455b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa373a9c16acdd96c395af61ab915ece3"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3">lws_urldecode</a> (char *string, const char *escaped, int len)</td></tr>
<tr class="separator:gaa373a9c16acdd96c395af61ab915ece3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>HTML chunked Substitution</h2>
<p>APIs for receiving chunks of text, replacing a set of variable names via a callback, and then prepending and appending HTML chunked encoding headers. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaa373a9c16acdd96c395af61ab915ece3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa373a9c16acdd96c395af61ab915ece3">&sect;&nbsp;</a></span>lws_urldecode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_urldecode </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>escaped</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</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__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3">lws_urldecode()</a> - like strncpy but with urldecoding</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">string</td><td>output buffer </td></tr>
<tr><td class="paramname">escaped</td><td>input buffer ('\0' terminated) </td></tr>
<tr><td class="paramname">len</td><td>output buffer max length</td></tr>
</table>
</dd>
</dl>
<p>This is only useful for '\0' terminated strings</p>
<p>Since urldecoding only shrinks the output string, it is possible to do it in-place, ie, string == escaped </p>
</div>
</div>
<a id="gabc2888476e50e001c875c1a8abf455b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabc2888476e50e001c875c1a8abf455b7">&sect;&nbsp;</a></span>lws_urlencode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN const char* lws_urlencode </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>escaped</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>len</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__urlendec.html#gabc2888476e50e001c875c1a8abf455b7">lws_urlencode()</a> - like strncpy but with urlencoding</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">escaped</td><td>output buffer </td></tr>
<tr><td class="paramname">string</td><td>input buffer ('/0' terminated) </td></tr>
<tr><td class="paramname">len</td><td>output buffer max length</td></tr>
</table>
</dd>
</dl>
<p>Because urlencoding expands the output string, it's not possible to do it in-place, ie, with escaped == string </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,5 +0,0 @@
var group__urlendec =
[
[ "lws_urldecode", "group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3", null ],
[ "lws_urlencode", "group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7", null ]
];

File diff suppressed because one or more lines are too long

View file

@ -1,53 +0,0 @@
var group__usercb =
[
[ "lws_callback_function", "group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f", null ],
[ "lws_callback_reasons", "group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7", [
[ "LWS_CALLBACK_ESTABLISHED", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439", null ],
[ "LWS_CALLBACK_CLIENT_CONNECTION_ERROR", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8", null ],
[ "LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2", null ],
[ "LWS_CALLBACK_CLIENT_ESTABLISHED", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604", null ],
[ "LWS_CALLBACK_CLOSED", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8", null ],
[ "LWS_CALLBACK_CLOSED_HTTP", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba", null ],
[ "LWS_CALLBACK_RECEIVE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c", null ],
[ "LWS_CALLBACK_RECEIVE_PONG", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738", null ],
[ "LWS_CALLBACK_CLIENT_RECEIVE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1", null ],
[ "LWS_CALLBACK_CLIENT_RECEIVE_PONG", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9", null ],
[ "LWS_CALLBACK_CLIENT_WRITEABLE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514", null ],
[ "LWS_CALLBACK_SERVER_WRITEABLE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc", null ],
[ "LWS_CALLBACK_HTTP", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e", null ],
[ "LWS_CALLBACK_HTTP_BODY", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae", null ],
[ "LWS_CALLBACK_HTTP_BODY_COMPLETION", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804", null ],
[ "LWS_CALLBACK_HTTP_FILE_COMPLETION", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587", null ],
[ "LWS_CALLBACK_HTTP_WRITEABLE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09", null ],
[ "LWS_CALLBACK_FILTER_NETWORK_CONNECTION", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6", null ],
[ "LWS_CALLBACK_FILTER_HTTP_CONNECTION", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c", null ],
[ "LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3", null ],
[ "LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d", null ],
[ "LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c", null ],
[ "LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493", null ],
[ "LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac", null ],
[ "LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f", null ],
[ "LWS_CALLBACK_CONFIRM_EXTENSION_OKAY", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e", null ],
[ "LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46", null ],
[ "LWS_CALLBACK_PROTOCOL_INIT", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49", null ],
[ "LWS_CALLBACK_PROTOCOL_DESTROY", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa", null ],
[ "LWS_CALLBACK_WSI_CREATE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01", null ],
[ "LWS_CALLBACK_WSI_DESTROY", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e", null ],
[ "LWS_CALLBACK_GET_THREAD_ID", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34", null ],
[ "LWS_CALLBACK_ADD_POLL_FD", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412", null ],
[ "LWS_CALLBACK_DEL_POLL_FD", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768", null ],
[ "LWS_CALLBACK_CHANGE_MODE_POLL_FD", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e", null ],
[ "LWS_CALLBACK_LOCK_POLL", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428", null ],
[ "LWS_CALLBACK_UNLOCK_POLL", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79", null ],
[ "LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b", null ],
[ "LWS_CALLBACK_WS_PEER_INITIATED_CLOSE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51", null ],
[ "LWS_CALLBACK_HTTP_PMO", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a", null ],
[ "LWS_CALLBACK_CLIENT_HTTP_WRITEABLE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aeb0cec65ec82a713cd01e9ca9aeeb5e6", null ],
[ "LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a17620dd6cb920b9b6daeae63575be08b", null ],
[ "LWS_CALLBACK_RAW_RX", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a6c4ce79afb3a5d96c8df3c8d5e3c869d", null ],
[ "LWS_CALLBACK_RAW_CLOSE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4cc93dadca4ea4541f3fe6d35bdb0a9", null ],
[ "LWS_CALLBACK_RAW_WRITEABLE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7acd0e80a385c951eceb9c6e2a41ab1c82", null ],
[ "LWS_CALLBACK_RAW_ADOPT", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a13e302be9ed9190d962591eb9c8c5f0b", null ],
[ "LWS_CALLBACK_USER", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a", null ]
] ]
];

View file

@ -1,108 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: libuv helpers</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__uv.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">libuv helpers</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga99099e045993383f251a8026e1e40414"><td class="memItemLeft" align="right" valign="top"><a id="ga99099e045993383f251a8026e1e40414"></a>
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_uv_sigint_cfg</b> (struct lws_context *context, int use_uv_sigint, uv_signal_cb cb)</td></tr>
<tr class="separator:ga99099e045993383f251a8026e1e40414"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga097c89497824d4de225a85a00661fc89"><td class="memItemLeft" align="right" valign="top"><a id="ga097c89497824d4de225a85a00661fc89"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_libuv_run</b> (const struct lws_context *context, int tsi)</td></tr>
<tr class="separator:ga097c89497824d4de225a85a00661fc89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3c75cd6ec3f80fc0a0c8ead4c4e71a15"><td class="memItemLeft" align="right" valign="top"><a id="ga3c75cd6ec3f80fc0a0c8ead4c4e71a15"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_libuv_stop</b> (struct lws_context *context)</td></tr>
<tr class="separator:ga3c75cd6ec3f80fc0a0c8ead4c4e71a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa17758e1f852017a2271d8fb3e9305aa"><td class="memItemLeft" align="right" valign="top"><a id="gaa17758e1f852017a2271d8fb3e9305aa"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_libuv_stop_without_kill</b> (const struct lws_context *context, int tsi)</td></tr>
<tr class="separator:gaa17758e1f852017a2271d8fb3e9305aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad85ce3bfc53ff754988d36bf5de39e21"><td class="memItemLeft" align="right" valign="top"><a id="gad85ce3bfc53ff754988d36bf5de39e21"></a>
LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>lws_uv_initloop</b> (struct lws_context *context, uv_loop_t *loop, int tsi)</td></tr>
<tr class="separator:gad85ce3bfc53ff754988d36bf5de39e21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5e3593c94f91910d9d928dfa0c18f6c"><td class="memItemLeft" align="right" valign="top"><a id="gaa5e3593c94f91910d9d928dfa0c18f6c"></a>
LWS_VISIBLE LWS_EXTERN uv_loop_t *&#160;</td><td class="memItemRight" valign="bottom"><b>lws_uv_getloop</b> (struct lws_context *context, int tsi)</td></tr>
<tr class="separator:gaa5e3593c94f91910d9d928dfa0c18f6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac5f60dba13a45e5d554b4fb7df7b9610"><td class="memItemLeft" align="right" valign="top"><a id="gac5f60dba13a45e5d554b4fb7df7b9610"></a>
LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>lws_uv_sigint_cb</b> (uv_signal_t *watcher, int signum)</td></tr>
<tr class="separator:gac5f60dba13a45e5d554b4fb7df7b9610"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>libuv helpers</h2>
<p>APIs specific to libuv event loop itegration </p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,147 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Vhost mounts and options</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__vhost-mounts.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">Vhost mounts and options<div class="ingroups"><a class="el" href="group__context-and-vhost.html">Context-and-vhost</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlws__http__mount.html">lws_http_mount</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga31eca18e50cb4357480f2fcad36ff437"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437">lws_mount_protocols</a> { <br />
&#160;&#160;<a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a> = 0,
<a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a> = 1,
<a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a> = 2,
<a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a> = 3,
<br />
&#160;&#160;<a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a> = 4,
<a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a> = 5,
<a class="el" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a> = 6
<br />
}</td></tr>
<tr class="separator:ga31eca18e50cb4357480f2fcad36ff437"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Vhost mounts and options</h2>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga31eca18e50cb4357480f2fcad36ff437"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga31eca18e50cb4357480f2fcad36ff437">&sect;&nbsp;</a></span>lws_mount_protocols</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437">lws_mount_protocols</a></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>enum lws_mount_protocols This specifies the mount protocol for a mountpoint, whether it is to be served from a filesystem, or it is a cgi etc. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0"></a>LWSMPRO_HTTP&#160;</td><td class="fielddoc"><p>not supported yet </p>
</td></tr>
<tr><td class="fieldname"><a id="gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1"></a>LWSMPRO_HTTPS&#160;</td><td class="fielddoc"><p>not supported yet </p>
</td></tr>
<tr><td class="fieldname"><a id="gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2"></a>LWSMPRO_FILE&#160;</td><td class="fielddoc"><p>serve from filesystem directory </p>
</td></tr>
<tr><td class="fieldname"><a id="gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69"></a>LWSMPRO_CGI&#160;</td><td class="fielddoc"><p>pass to CGI to handle </p>
</td></tr>
<tr><td class="fieldname"><a id="gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970"></a>LWSMPRO_REDIR_HTTP&#160;</td><td class="fielddoc"><p>redirect to <a href="http://">http://</a> url </p>
</td></tr>
<tr><td class="fieldname"><a id="gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67"></a>LWSMPRO_REDIR_HTTPS&#160;</td><td class="fielddoc"><p>redirect to <a href="https://">https://</a> url </p>
</td></tr>
<tr><td class="fieldname"><a id="gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"></a>LWSMPRO_CALLBACK&#160;</td><td class="fielddoc"><p>hand by named protocol's callback </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; {</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a> = 0, </div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a> = 1, </div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a> = 2, </div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a> = 3, </div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a> = 4, </div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a> = 5, </div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; <a class="code" href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a> = 6, </div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;};</div><div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69">LWSMPRO_CGI</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2044</div></div>
<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1">LWSMPRO_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2042</div></div>
<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2">LWSMPRO_FILE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2043</div></div>
<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970">LWSMPRO_REDIR_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2045</div></div>
<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67">LWSMPRO_REDIR_HTTPS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2046</div></div>
<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0">LWSMPRO_HTTP</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2041</div></div>
<div class="ttc" id="group__vhost-mounts_html_gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da"><div class="ttname"><a href="group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da">LWSMPRO_CALLBACK</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:2047</div></div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,38 +0,0 @@
var group__vhost_mounts =
[
[ "lws_protocol_vhost_options", "structlws__protocol__vhost__options.html", [
[ "name", "structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9", null ],
[ "next", "structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c", null ],
[ "options", "structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822", null ],
[ "value", "structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7", null ]
] ],
[ "lws_http_mount", "structlws__http__mount.html", [
[ "_unused", "structlws__http__mount.html#a78d58848eed7b544ae83f719abdbe4b6", null ],
[ "auth_mask", "structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477", null ],
[ "basic_auth_login_file", "structlws__http__mount.html#a2f6c7dbc2d714b7259c67b7744d4ff98", null ],
[ "cache_intermediaries", "structlws__http__mount.html#aabec1a326780aafe11b977000983be0c", null ],
[ "cache_max_age", "structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146", null ],
[ "cache_reusable", "structlws__http__mount.html#a8316dd183ffbef50419a5a4968d35d84", null ],
[ "cache_revalidate", "structlws__http__mount.html#ae137203040c6153694bd88a708da5395", null ],
[ "cgi_timeout", "structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa", null ],
[ "cgienv", "structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af", null ],
[ "def", "structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4", null ],
[ "extra_mimetypes", "structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7", null ],
[ "interpret", "structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773", null ],
[ "mount_next", "structlws__http__mount.html#a0109baf93f23c07c824c997c3533ee44", null ],
[ "mountpoint", "structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c", null ],
[ "mountpoint_len", "structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743", null ],
[ "origin", "structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a", null ],
[ "origin_protocol", "structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7", null ],
[ "protocol", "structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b", null ]
] ],
[ "lws_mount_protocols", "group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437", [
[ "LWSMPRO_HTTP", "group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0", null ],
[ "LWSMPRO_HTTPS", "group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1", null ],
[ "LWSMPRO_FILE", "group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2", null ],
[ "LWSMPRO_CGI", "group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69", null ],
[ "LWSMPRO_REDIR_HTTP", "group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970", null ],
[ "LWSMPRO_REDIR_HTTPS", "group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67", null ],
[ "LWSMPRO_CALLBACK", "group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da", null ]
] ]
];

View file

@ -1,228 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Websocket Close</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__wsclose.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Websocket Close</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gae399c571df32ba532c0ca67da9284985"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a> { <br />
&#160;&#160;<b>LWS_CLOSE_STATUS_NOSTATUS</b> = 0,
<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a> = 1000,
<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a> = 1001,
<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a> = 1002,
<br />
&#160;&#160;<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a> = 1003,
<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a> = 1004,
<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a> = 1005,
<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a> = 1006,
<br />
&#160;&#160;<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a> = 1007,
<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a> = 1008,
<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a> = 1009,
<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a> = 1010,
<br />
&#160;&#160;<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a> = 1011,
<a class="el" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a> = 1015,
<b>LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY</b> = 9999
<br />
}</td></tr>
<tr class="separator:gae399c571df32ba532c0ca67da9284985"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaa1c863415d1783cd8de7938aa6efa262"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262">lws_close_reason</a> (struct lws *wsi, enum <a class="el" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a> status, unsigned char *buf, size_t len)</td></tr>
<tr class="separator:gaa1c863415d1783cd8de7938aa6efa262"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Websocket close frame control</h2>
<p>When we close a ws connection, we can send a reason code and a short UTF-8 description back with the close packet. </p>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gae399c571df32ba532c0ca67da9284985"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae399c571df32ba532c0ca67da9284985">&sect;&nbsp;</a></span>lws_close_status</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a></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>enum lws_close_status - RFC6455 close status codes </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4"></a>LWS_CLOSE_STATUS_NORMAL&#160;</td><td class="fielddoc"><p>1000 indicates a normal closure, meaning that the purpose for which the connection was established has been fulfilled. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218"></a>LWS_CLOSE_STATUS_GOINGAWAY&#160;</td><td class="fielddoc"><p>1001 indicates that an endpoint is "going away", such as a server going down or a browser having navigated away from a page. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98"></a>LWS_CLOSE_STATUS_PROTOCOL_ERR&#160;</td><td class="fielddoc"><p>1002 indicates that an endpoint is terminating the connection due to a protocol error. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276"></a>LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE&#160;</td><td class="fielddoc"><p>1003 indicates that an endpoint is terminating the connection because it has received a type of data it cannot accept (e.g., an endpoint that understands only text data MAY send this if it receives a binary message). </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2"></a>LWS_CLOSE_STATUS_RESERVED&#160;</td><td class="fielddoc"><p>Reserved. The specific meaning might be defined in the future. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044"></a>LWS_CLOSE_STATUS_NO_STATUS&#160;</td><td class="fielddoc"><p>1005 is a reserved value and MUST NOT be set as a status code in a Close control frame by an endpoint. It is designated for use in applications expecting a status code to indicate that no status code was actually present. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c"></a>LWS_CLOSE_STATUS_ABNORMAL_CLOSE&#160;</td><td class="fielddoc"><p>1006 is a reserved value and MUST NOT be set as a status code in a Close control frame by an endpoint. It is designated for use in applications expecting a status code to indicate that the connection was closed abnormally, e.g., without sending or receiving a Close control frame. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050"></a>LWS_CLOSE_STATUS_INVALID_PAYLOAD&#160;</td><td class="fielddoc"><p>1007 indicates that an endpoint is terminating the connection because it has received data within a message that was not consistent with the type of the message (e.g., non-UTF-8 [RFC3629] data within a text message). </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5"></a>LWS_CLOSE_STATUS_POLICY_VIOLATION&#160;</td><td class="fielddoc"><p>1008 indicates that an endpoint is terminating the connection because it has received a message that violates its policy. This is a generic status code that can be returned when there is no other more suitable status code (e.g., 1003 or 1009) or if there is a need to hide specific details about the policy. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8"></a>LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE&#160;</td><td class="fielddoc"><p>1009 indicates that an endpoint is terminating the connection because it has received a message that is too big for it to process. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e"></a>LWS_CLOSE_STATUS_EXTENSION_REQUIRED&#160;</td><td class="fielddoc"><p>1010 indicates that an endpoint (client) is terminating the connection because it has expected the server to negotiate one or more extension, but the server didn't return them in the response message of the WebSocket handshake. The list of extensions that are needed SHOULD appear in the /reason/ part of the Close frame. Note that this status code is not used by the server, because it can fail the WebSocket handshake instead </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350"></a>LWS_CLOSE_STATUS_UNEXPECTED_CONDITION&#160;</td><td class="fielddoc"><p>1011 indicates that a server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390"></a>LWS_CLOSE_STATUS_TLS_FAILURE&#160;</td><td class="fielddoc"><p>1015 is a reserved value and MUST NOT be set as a status code in a Close control frame by an endpoint. It is designated for use in applications expecting a status code to indicate that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified). </p>
</td></tr>
</table>
<div class="fragment"><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; LWS_CLOSE_STATUS_NOSTATUS = 0,</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a> = 1000,</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a> = 1001,</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a> = 1002,</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a> = 1003,</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a> = 1004,</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a> = 1005,</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a> = 1006,</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a> = 1007,</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a> = 1008,</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a> = 1009,</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a> = 1010,</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a> = 1011,</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <a class="code" href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a> = 1015,</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="comment">/****** add new things just above ---^ ******/</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY = 9999,</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;};</div><div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050">LWS_CLOSE_STATUS_INVALID_PAYLOAD</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:589</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8">LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:600</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390">LWS_CLOSE_STATUS_TLS_FAILURE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:616</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98">LWS_CLOSE_STATUS_PROTOCOL_ERR</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:568</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5">LWS_CLOSE_STATUS_POLICY_VIOLATION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:594</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044">LWS_CLOSE_STATUS_NO_STATUS</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:578</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c">LWS_CLOSE_STATUS_ABNORMAL_CLOSE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:583</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218">LWS_CLOSE_STATUS_GOINGAWAY</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:565</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e">LWS_CLOSE_STATUS_EXTENSION_REQUIRED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:604</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4">LWS_CLOSE_STATUS_NORMAL</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:562</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276">LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:571</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2">LWS_CLOSE_STATUS_RESERVED</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:576</div></div>
<div class="ttc" id="group__wsclose_html_ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350"><div class="ttname"><a href="group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350">LWS_CLOSE_STATUS_UNEXPECTED_CONDITION</a></div><div class="ttdef"><b>Definition:</b> libwebsockets.h:612</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaa1c863415d1783cd8de7938aa6efa262"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa1c863415d1783cd8de7938aa6efa262">&sect;&nbsp;</a></span>lws_close_reason()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN void lws_close_reason </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enum <a class="el" href="group__wsclose.html#gae399c571df32ba532c0ca67da9284985">lws_close_status</a>&#160;</td>
<td class="paramname"><em>status</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</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>lws_close_reason - Set reason and aux data to send with Close packet If you are going to return nonzero from the callback requesting the connection to close, you can optionally call this to set the reason the peer will be told if possible.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>The websocket connection to set the close reason on </td></tr>
<tr><td class="paramname">status</td><td>A valid close status from websocket standard </td></tr>
<tr><td class="paramname">buf</td><td>NULL or buffer containing up to 124 bytes of auxiliary data </td></tr>
<tr><td class="paramname">len</td><td>Length of data in </td></tr>
<tr><td class="paramname">buf</td><td>to send </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,19 +0,0 @@
var group__wsclose =
[
[ "lws_close_status", "group__wsclose.html#gae399c571df32ba532c0ca67da9284985", [
[ "LWS_CLOSE_STATUS_NORMAL", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4", null ],
[ "LWS_CLOSE_STATUS_GOINGAWAY", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218", null ],
[ "LWS_CLOSE_STATUS_PROTOCOL_ERR", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98", null ],
[ "LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276", null ],
[ "LWS_CLOSE_STATUS_RESERVED", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2", null ],
[ "LWS_CLOSE_STATUS_NO_STATUS", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044", null ],
[ "LWS_CLOSE_STATUS_ABNORMAL_CLOSE", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c", null ],
[ "LWS_CLOSE_STATUS_INVALID_PAYLOAD", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050", null ],
[ "LWS_CLOSE_STATUS_POLICY_VIOLATION", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5", null ],
[ "LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8", null ],
[ "LWS_CLOSE_STATUS_EXTENSION_REQUIRED", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e", null ],
[ "LWS_CLOSE_STATUS_UNEXPECTED_CONDITION", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350", null ],
[ "LWS_CLOSE_STATUS_TLS_FAILURE", "group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390", null ]
] ],
[ "lws_close_reason", "group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262", null ]
];

View file

@ -1,321 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Websocket status APIs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__wsstatus.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Websocket status APIs</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga2bb3655329b4651cd06f79ee3a764421"><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__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421">lws_send_pipe_choked</a> (struct lws *wsi)</td></tr>
<tr class="separator:ga2bb3655329b4651cd06f79ee3a764421"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga08e9ee165fca503fd9427d55cfecac37"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37">lws_is_final_fragment</a> (struct lws *wsi)</td></tr>
<tr class="separator:ga08e9ee165fca503fd9427d55cfecac37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3df5045656dfb6b0e63a38de2dca79d2"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2">lws_get_reserved_bits</a> (struct lws *wsi)</td></tr>
<tr class="separator:ga3df5045656dfb6b0e63a38de2dca79d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeca4afc94b1f026034f99cbba37e2f85"><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__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85">lws_partial_buffered</a> (struct lws *wsi)</td></tr>
<tr class="separator:gaeca4afc94b1f026034f99cbba37e2f85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaccd9c59336efad8af0554f79cc5966fd"><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__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd">lws_frame_is_binary</a> (struct lws *wsi)</td></tr>
<tr class="separator:gaccd9c59336efad8af0554f79cc5966fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26a140623d202dd2bf2004deb6994baa"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa">lws_is_ssl</a> (struct lws *wsi)</td></tr>
<tr class="separator:ga26a140623d202dd2bf2004deb6994baa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ad226d5e01024b4046f4a5a37199aa1"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1">lws_is_cgi</a> (struct lws *wsi)</td></tr>
<tr class="separator:ga4ad226d5e01024b4046f4a5a37199aa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga42152ffb385f9b19f4e7b04f998425de"><td class="memItemLeft" align="right" valign="top">LWS_VISIBLE LWS_EXTERN SSL *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__wsstatus.html#ga42152ffb385f9b19f4e7b04f998425de">lws_get_ssl</a> (struct lws *wsi)</td></tr>
<tr class="separator:ga42152ffb385f9b19f4e7b04f998425de"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Websocket connection status APIs</h2>
<p>These provide information about ws connection or message status </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaccd9c59336efad8af0554f79cc5966fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaccd9c59336efad8af0554f79cc5966fd">&sect;&nbsp;</a></span>lws_frame_is_binary()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_frame_is_binary </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd">lws_frame_is_binary()</a>: true if the current frame was sent in binary mode</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>the connection we are inquiring about</td></tr>
</table>
</dd>
</dl>
<p>This is intended to be called from the LWS_CALLBACK_RECEIVE callback if it's interested to see if the frame it's dealing with was sent in binary mode. </p>
</div>
</div>
<a id="ga3df5045656dfb6b0e63a38de2dca79d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3df5045656dfb6b0e63a38de2dca79d2">&sect;&nbsp;</a></span>lws_get_reserved_bits()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN unsigned char lws_get_reserved_bits </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2">lws_get_reserved_bits()</a> - access reserved bits of ws frame </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>lws connection </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga42152ffb385f9b19f4e7b04f998425de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga42152ffb385f9b19f4e7b04f998425de">&sect;&nbsp;</a></span>lws_get_ssl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN SSL* lws_get_ssl </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__wsstatus.html#ga42152ffb385f9b19f4e7b04f998425de">lws_get_ssl()</a> - Return wsi's SSL context structure </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>websocket connection</td></tr>
</table>
</dd>
</dl>
<p>Returns pointer to the SSL library's context structure </p>
</div>
</div>
<a id="ga4ad226d5e01024b4046f4a5a37199aa1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4ad226d5e01024b4046f4a5a37199aa1">&sect;&nbsp;</a></span>lws_is_cgi()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_is_cgi </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1">lws_is_cgi()</a> - find out if this wsi is running a cgi process </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>lws connection </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga08e9ee165fca503fd9427d55cfecac37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga08e9ee165fca503fd9427d55cfecac37">&sect;&nbsp;</a></span>lws_is_final_fragment()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_is_final_fragment </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37">lws_is_final_fragment()</a> - tests if last part of ws message </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>lws connection </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga26a140623d202dd2bf2004deb6994baa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26a140623d202dd2bf2004deb6994baa">&sect;&nbsp;</a></span>lws_is_ssl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int lws_is_ssl </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa">lws_is_ssl()</a> - Find out if connection is using SSL </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>websocket connection to check <pre class="fragment"> Returns 0 if the connection is not using SSL, 1 if using SSL and
using verified cert, and 2 if using SSL but the cert was not
checked (appears for client wsi told to skip check on connection)</pre> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gaeca4afc94b1f026034f99cbba37e2f85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeca4afc94b1f026034f99cbba37e2f85">&sect;&nbsp;</a></span>lws_partial_buffered()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_partial_buffered </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85">lws_partial_buffered()</a> - find out if lws buffered the last write </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>websocket connection to check</td></tr>
</table>
</dd>
</dl>
<p>Returns 1 if you cannot use lws_write because the last write on this connection is still buffered, and can't be cleared without returning to the service loop and waiting for the connection to be writeable again.</p>
<p>If you will try to do &gt;1 lws_write call inside a single WRITEABLE callback, you must check this after every write and bail if set, ask for a new writeable callback and continue writing from there.</p>
<p>This is never set at the start of a writeable callback, but any write may set it. </p>
</div>
</div>
<a id="ga2bb3655329b4651cd06f79ee3a764421"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2bb3655329b4651cd06f79ee3a764421">&sect;&nbsp;</a></span>lws_send_pipe_choked()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_send_pipe_choked </td>
<td>(</td>
<td class="paramtype">struct lws *&#160;</td>
<td class="paramname"><em>wsi</em></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__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421">lws_send_pipe_choked()</a> - tests if socket is writable or not </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">wsi</td><td>lws connection</td></tr>
</table>
</dd>
</dl>
<p>Allows you to check if you can write more on the socket </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,11 +0,0 @@
var group__wsstatus =
[
[ "lws_frame_is_binary", "group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd", null ],
[ "lws_get_reserved_bits", "group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2", null ],
[ "lws_get_ssl", "group__wsstatus.html#ga42152ffb385f9b19f4e7b04f998425de", null ],
[ "lws_is_cgi", "group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1", null ],
[ "lws_is_final_fragment", "group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37", null ],
[ "lws_is_ssl", "group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa", null ],
[ "lws_partial_buffered", "group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85", null ],
[ "lws_send_pipe_choked", "group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421", null ]
];

View file

@ -1,109 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Class Hierarchy</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('hierarchy.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Class Hierarchy</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__cgi__args.html" target="_self">lws_cgi_args</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__client__connect__info.html" target="_self">lws_client_connect_info</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classlws__conn.html" target="_self">lws_conn</a></td><td class="desc"></td></tr>
<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classlws__conn__listener.html" target="_self">lws_conn_listener</a></td><td class="desc"></td></tr>
<tr id="row_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__context__creation__info.html" target="_self">lws_context_creation_info</a></td><td class="desc"></td></tr>
<tr id="row_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__email.html" target="_self">lws_email</a></td><td class="desc"></td></tr>
<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__ext__option__arg.html" target="_self">lws_ext_option_arg</a></td><td class="desc"></td></tr>
<tr id="row_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__ext__options.html" target="_self">lws_ext_options</a></td><td class="desc"></td></tr>
<tr id="row_7_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__extension.html" target="_self">lws_extension</a></td><td class="desc"></td></tr>
<tr id="row_8_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__gs__event__args.html" target="_self">lws_gs_event_args</a></td><td class="desc"></td></tr>
<tr id="row_9_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__http__mount.html" target="_self">lws_http_mount</a></td><td class="desc"></td></tr>
<tr id="row_10_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__plat__file__ops.html" target="_self">lws_plat_file_ops</a></td><td class="desc"></td></tr>
<tr id="row_11_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__plugin.html" target="_self">lws_plugin</a></td><td class="desc"></td></tr>
<tr id="row_12_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__plugin__capability.html" target="_self">lws_plugin_capability</a></td><td class="desc"></td></tr>
<tr id="row_13_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__polarssl__context.html" target="_self">lws_polarssl_context</a></td><td class="desc"></td></tr>
<tr id="row_14_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__pollargs.html" target="_self">lws_pollargs</a></td><td class="desc"></td></tr>
<tr id="row_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__pollfd.html" target="_self">lws_pollfd</a></td><td class="desc"></td></tr>
<tr id="row_16_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__process__html__args.html" target="_self">lws_process_html_args</a></td><td class="desc"></td></tr>
<tr id="row_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__process__html__state.html" target="_self">lws_process_html_state</a></td><td class="desc"></td></tr>
<tr id="row_18_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__protocol__vhost__options.html" target="_self">lws_protocol_vhost_options</a></td><td class="desc"></td></tr>
<tr id="row_19_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__protocols.html" target="_self">lws_protocols</a></td><td class="desc"></td></tr>
<tr id="row_20_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__session__info.html" target="_self">lws_session_info</a></td><td class="desc"></td></tr>
<tr id="row_21_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__token__limits.html" target="_self">lws_token_limits</a></td><td class="desc"></td></tr>
<tr id="row_22_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlws__tokens.html" target="_self">lws_tokens</a></td><td class="desc"></td></tr>
<tr id="row_23_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlwsgw__hash.html" target="_self">lwsgw_hash</a></td><td class="desc"></td></tr>
<tr id="row_24_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlwsgw__hash__bin.html" target="_self">lwsgw_hash_bin</a></td><td class="desc"></td></tr>
<tr id="row_25_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpollfd.html" target="_self">pollfd</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,31 +0,0 @@
var hierarchy =
[
[ "lws_cgi_args", "structlws__cgi__args.html", null ],
[ "lws_client_connect_info", "structlws__client__connect__info.html", null ],
[ "lws_conn", "classlws__conn.html", [
[ "lws_conn_listener", "classlws__conn__listener.html", null ]
] ],
[ "lws_context_creation_info", "structlws__context__creation__info.html", null ],
[ "lws_email", "structlws__email.html", null ],
[ "lws_ext_option_arg", "structlws__ext__option__arg.html", null ],
[ "lws_ext_options", "structlws__ext__options.html", null ],
[ "lws_extension", "structlws__extension.html", null ],
[ "lws_gs_event_args", "structlws__gs__event__args.html", null ],
[ "lws_http_mount", "structlws__http__mount.html", null ],
[ "lws_plat_file_ops", "structlws__plat__file__ops.html", null ],
[ "lws_plugin", "structlws__plugin.html", null ],
[ "lws_plugin_capability", "structlws__plugin__capability.html", null ],
[ "lws_polarssl_context", "structlws__polarssl__context.html", null ],
[ "lws_pollargs", "structlws__pollargs.html", null ],
[ "lws_pollfd", "structlws__pollfd.html", null ],
[ "lws_process_html_args", "structlws__process__html__args.html", null ],
[ "lws_process_html_state", "structlws__process__html__state.html", null ],
[ "lws_protocol_vhost_options", "structlws__protocol__vhost__options.html", null ],
[ "lws_protocols", "structlws__protocols.html", null ],
[ "lws_session_info", "structlws__session__info.html", null ],
[ "lws_token_limits", "structlws__token__limits.html", null ],
[ "lws_tokens", "structlws__tokens.html", null ],
[ "lwsgw_hash", "structlwsgw__hash.html", null ],
[ "lwsgw_hash_bin", "structlwsgw__hash__bin.html", null ],
[ "pollfd", "structpollfd.html", null ]
];

View file

@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libwebsockets: Libwebsockets API introduction</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libwebsockets
</div>
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('index.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Libwebsockets API introduction </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Libwebsockets covers a lot of interesting features for people making embedded servers or clients</p>
<ul>
<li>http(s) serving and client operation</li>
<li>ws(s) serving and client operation</li>
<li>http(s) apis for file transfer and upload</li>
<li>http POST form handling (including multipart)</li>
<li>cookie-based sessions</li>
<li>account management (including registration, email verification, lost pw etc)</li>
<li>strong ssl PFS support (A+ on SSLlabs test)</li>
</ul>
<p>You can browse by api category <a href="modules.html">here</a></p>
<p>A collection of READMEs for build, coding, lwsws etc are <a href="pages.html">here</a> </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>

87
doc/html/jquery.js vendored

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Some files were not shown because too many files have changed in this diff Show more