docs
This commit is contained in:
parent
316b0293e9
commit
b22ef6775b
100 changed files with 670 additions and 1941 deletions
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Data Structures</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -102,7 +102,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 246 B |
Binary file not shown.
Before Width: | Height: | Size: 229 B |
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -85,7 +85,7 @@ $(document).ready(function(){initNavTree('classes.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -72,7 +72,7 @@ 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">
|
||||
<map id="lws_5Fconn_map" name="lws_5Fconn_map">
|
||||
<area href="classlws__conn__listener.html" alt="lws_conn_listener" shape="rect" coords="0,56,113,80"/>
|
||||
</map>
|
||||
</div></div>
|
||||
|
@ -127,7 +127,7 @@ char </td><td class="memItemRight" valign="bottom"><b>awaiting_on_writeable
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -73,7 +73,7 @@ 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">
|
||||
<map id="lws_5Fconn_5Flistener_map" name="lws_5Fconn_5Flistener_map">
|
||||
<area href="classlws__conn.html" alt="lws_conn" shape="rect" coords="0,0,113,24"/>
|
||||
</map>
|
||||
</div></div>
|
||||
|
@ -102,7 +102,7 @@ Protected Member Functions</h2></td></tr>
|
|||
</table>
|
||||
<h2 class="groupheader">Member Function Documentation</h2>
|
||||
<a id="aab3c7bf550a8f15d20f1e093125c2e60"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aab3c7bf550a8f15d20f1e093125c2e60">§ </a></span>onDisconnect()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aab3c7bf550a8f15d20f1e093125c2e60">◆ </a></span>onDisconnect()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -129,7 +129,7 @@ Protected Member Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a271ac4f8ad5770b3bc96cce5b265b72c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a271ac4f8ad5770b3bc96cce5b265b72c">§ </a></span>onError()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a271ac4f8ad5770b3bc96cce5b265b72c">◆ </a></span>onError()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -166,7 +166,7 @@ Protected Member Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ab432a456c3a961ec562e06141897806b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab432a456c3a961ec562e06141897806b">§ </a></span>onIncoming()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab432a456c3a961ec562e06141897806b">◆ </a></span>onIncoming()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -203,7 +203,7 @@ Protected Member Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ab3bc839797ba14554ac70ad09fd155c7"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab3bc839797ba14554ac70ad09fd155c7">§ </a></span>onRX()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab3bc839797ba14554ac70ad09fd155c7">◆ </a></span>onRX()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -230,7 +230,7 @@ Protected Member Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a3c19c314f2ea2b758407b4041e4c4010"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3c19c314f2ea2b758407b4041e4c4010">§ </a></span>start()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3c19c314f2ea2b758407b4041e4c4010">◆ </a></span>start()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -259,7 +259,7 @@ Protected Member Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Deprecated List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -79,7 +79,7 @@ $(document).ready(function(){initNavTree('deprecated.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -78,7 +78,7 @@ Files</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -72,7 +72,7 @@ $(document).ready(function(){initNavTree('dir_e8731c315d086bdbd43ee7d72e0ed36b.h
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* The standard CSS for doxygen 1.8.12 */
|
||||
/* The standard CSS for doxygen 1.8.13 */
|
||||
|
||||
body, table, div, p, dl {
|
||||
font: 400 14px/22px Roboto,sans-serif;
|
||||
|
@ -1215,6 +1215,11 @@ dl.section dd {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.plantumlgraph
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.diagraph
|
||||
{
|
||||
text-align: center;
|
||||
|
@ -1510,3 +1515,82 @@ tr.heading h2 {
|
|||
}
|
||||
}
|
||||
|
||||
/* @group Markdown */
|
||||
|
||||
/*
|
||||
table.markdownTable {
|
||||
border-collapse:collapse;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
table.markdownTable td, table.markdownTable th {
|
||||
border: 1px solid #2D4068;
|
||||
padding: 3px 7px 2px;
|
||||
}
|
||||
|
||||
table.markdownTableHead tr {
|
||||
}
|
||||
|
||||
table.markdownTableBodyLeft td, table.markdownTable th {
|
||||
border: 1px solid #2D4068;
|
||||
padding: 3px 7px 2px;
|
||||
}
|
||||
|
||||
th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {
|
||||
background-color: #374F7F;
|
||||
color: #FFFFFF;
|
||||
font-size: 110%;
|
||||
padding-bottom: 4px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
th.markdownTableHeadLeft {
|
||||
text-align: left
|
||||
}
|
||||
|
||||
th.markdownTableHeadRight {
|
||||
text-align: right
|
||||
}
|
||||
|
||||
th.markdownTableHeadCenter {
|
||||
text-align: center
|
||||
}
|
||||
*/
|
||||
|
||||
table.markdownTable {
|
||||
border-collapse:collapse;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
table.markdownTable td, table.markdownTable th {
|
||||
border: 1px solid #2D4068;
|
||||
padding: 3px 7px 2px;
|
||||
}
|
||||
|
||||
table.markdownTable tr {
|
||||
}
|
||||
|
||||
th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
|
||||
background-color: #374F7F;
|
||||
color: #FFFFFF;
|
||||
font-size: 110%;
|
||||
padding-bottom: 4px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
th.markdownTableHeadLeft, td.markdownTableBodyLeft {
|
||||
text-align: left
|
||||
}
|
||||
|
||||
th.markdownTableHeadRight, td.markdownTableBodyRight {
|
||||
text-align: right
|
||||
}
|
||||
|
||||
th.markdownTableHeadCenter, td.markdownTableBodyCenter {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
|
||||
/* @end */
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: File List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -77,7 +77,7 @@ $(document).ready(function(){initNavTree('files.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Data Fields</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -614,7 +614,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -84,7 +84,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -601,7 +601,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -80,7 +80,7 @@ $(document).ready(function(){initNavTree('globals.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -102,7 +102,7 @@ $(document).ready(function(){initNavTree('globals_enum.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -399,7 +399,7 @@ $(document).ready(function(){initNavTree('globals_eval.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -407,7 +407,7 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -764,7 +764,7 @@ $(document).ready(function(){initNavTree('globals_l.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Globals</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -78,7 +78,7 @@ $(document).ready(function(){initNavTree('globals_type.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -87,7 +87,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_add_http_header_by_name()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga2b36bf44405755ff51c1939303b995a8">◆ </a></span>lws_add_http_header_by_name()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -154,7 +154,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaf74adb761b22566ad70004882712dce1"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaf74adb761b22566ad70004882712dce1">§ </a></span>lws_add_http_header_by_token()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaf74adb761b22566ad70004882712dce1">◆ </a></span>lws_add_http_header_by_token()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -221,7 +221,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gacc76a5babcb4dce1b01b1955aa7a2faf"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gacc76a5babcb4dce1b01b1955aa7a2faf">§ </a></span>lws_add_http_header_content_length()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gacc76a5babcb4dce1b01b1955aa7a2faf">◆ </a></span>lws_add_http_header_content_length()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -274,7 +274,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga29b7d6d2ddfdbaff3d8b607e7e3151b6"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga29b7d6d2ddfdbaff3d8b607e7e3151b6">§ </a></span>lws_add_http_header_status()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga29b7d6d2ddfdbaff3d8b607e7e3151b6">◆ </a></span>lws_add_http_header_status()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -327,7 +327,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga4887605ff2242a54db3a7fa01f6f864b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4887605ff2242a54db3a7fa01f6f864b">§ </a></span>lws_finalize_http_header()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4887605ff2242a54db3a7fa01f6f864b">◆ </a></span>lws_finalize_http_header()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -379,7 +379,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -222,7 +222,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_get_urlarg_by_name()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga84e9ce5e71a77501a0998ac403a984c2">◆ </a></span>lws_get_urlarg_by_name()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -274,7 +274,7 @@ name= part.</pre> </td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga6ce6aa1c0155ea42b7708bed271d1c77"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga6ce6aa1c0155ea42b7708bed271d1c77">§ </a></span>lws_hdr_copy()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga6ce6aa1c0155ea42b7708bed271d1c77">◆ </a></span>lws_hdr_copy()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -327,7 +327,7 @@ name= part.</pre> </td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaa427cad61a9a5e3004afd65c4527b5e9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaa427cad61a9a5e3004afd65c4527b5e9">§ </a></span>lws_hdr_copy_fragment()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaa427cad61a9a5e3004afd65c4527b5e9">◆ </a></span>lws_hdr_copy_fragment()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -387,7 +387,7 @@ name= part.</pre> </td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga594f3d0ece5b09c2ccf9f98ea533bb4e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga594f3d0ece5b09c2ccf9f98ea533bb4e">§ </a></span>lws_hdr_fragment_length()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga594f3d0ece5b09c2ccf9f98ea533bb4e">◆ </a></span>lws_hdr_fragment_length()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -432,7 +432,7 @@ name= part.</pre> </td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga8ade0e1ffb0da7e62b989d8d867bf6c8"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8ade0e1ffb0da7e62b989d8d867bf6c8">§ </a></span>lws_hdr_total_length()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8ade0e1ffb0da7e62b989d8d867bf6c8">◆ </a></span>lws_hdr_total_length()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -470,7 +470,7 @@ name= part.</pre> </td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga2c0597b2ef1d2cee35736c338bcbd17b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga2c0597b2ef1d2cee35736c338bcbd17b">§ </a></span>lws_token_to_string()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga2c0597b2ef1d2cee35736c338bcbd17b">◆ </a></span>lws_token_to_string()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -489,7 +489,7 @@ name= part.</pre> </td></tr>
|
|||
<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>
|
||||
<tr><td class="paramname"></td><td>token index </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
@ -503,7 +503,7 @@ name= part.</pre> </td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -115,7 +115,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_finalize_startup()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga106b37ae9c247e84d191ab09441adc43">◆ </a></span>lws_finalize_startup()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -143,7 +143,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga72ad550786ca7976463589d347e62112"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga72ad550786ca7976463589d347e62112">§ </a></span>lws_get_protocol()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga72ad550786ca7976463589d347e62112">◆ </a></span>lws_get_protocol()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -170,7 +170,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga8bbe5e65faca068845704bab911a5030"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8bbe5e65faca068845704bab911a5030">§ </a></span>lws_protocol_get()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8bbe5e65faca068845704bab911a5030">◆ </a></span>lws_protocol_get()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -191,7 +191,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaf3be4243443baac0f8be1fcfb4d25129"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaf3be4243443baac0f8be1fcfb4d25129">§ </a></span>lws_protocol_vh_priv_get()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaf3be4243443baac0f8be1fcfb4d25129">◆ </a></span>lws_protocol_vh_priv_get()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -230,7 +230,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaec0c0477288ff3f83aff38d357b883d1"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaec0c0477288ff3f83aff38d357b883d1">§ </a></span>lws_protocol_vh_priv_zalloc()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaec0c0477288ff3f83aff38d357b883d1">◆ </a></span>lws_protocol_vh_priv_zalloc()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -275,7 +275,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga25754726d97c5f519d313e691a9fe29d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga25754726d97c5f519d313e691a9fe29d">§ </a></span>lws_vhost_name_to_protocol()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga25754726d97c5f519d313e691a9fe29d">◆ </a></span>lws_vhost_name_to_protocol()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -320,7 +320,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -97,7 +97,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
<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">§ </a></span>lws_callback_all_protocol()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gacf04bbe089f47c971c6408c5efe2ac70">◆ </a></span>lws_callback_all_protocol()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -147,7 +147,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga13c984d8c5a44a745fd02bc2fba36053"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga13c984d8c5a44a745fd02bc2fba36053">§ </a></span>lws_callback_all_protocol_vhost()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga13c984d8c5a44a745fd02bc2fba36053">◆ </a></span>lws_callback_all_protocol_vhost()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -197,7 +197,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga941caaa468bc507b1cae52275f58800d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga941caaa468bc507b1cae52275f58800d">§ </a></span>lws_callback_on_writable()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga941caaa468bc507b1cae52275f58800d">◆ </a></span>lws_callback_on_writable()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -229,7 +229,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="gabbe4655c7eeb3eb1671b2323ec6b3107"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gabbe4655c7eeb3eb1671b2323ec6b3107">§ </a></span>lws_callback_on_writable_all_protocol()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gabbe4655c7eeb3eb1671b2323ec6b3107">◆ </a></span>lws_callback_on_writable_all_protocol()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -272,7 +272,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga8570860e191b62db264f2bac67354ea8"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8570860e191b62db264f2bac67354ea8">§ </a></span>lws_callback_on_writable_all_protocol_vhost()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8570860e191b62db264f2bac67354ea8">◆ </a></span>lws_callback_on_writable_all_protocol_vhost()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -315,7 +315,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga60939cf0c073d933fde3d17f3591caf5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga60939cf0c073d933fde3d17f3591caf5">§ </a></span>lws_callback_vhost_protocols()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga60939cf0c073d933fde3d17f3591caf5">◆ </a></span>lws_callback_vhost_protocols()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -372,7 +372,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="gac4643fe16b0940ae5b68b4ee6195cbde"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gac4643fe16b0940ae5b68b4ee6195cbde">§ </a></span>lws_get_peer_write_allowance()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gac4643fe16b0940ae5b68b4ee6195cbde">◆ </a></span>lws_get_peer_write_allowance()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -403,7 +403,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaa709e02a10558753c851e58f1e2c16ba"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaa709e02a10558753c851e58f1e2c16ba">§ </a></span>lws_get_socket_fd()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaa709e02a10558753c851e58f1e2c16ba">◆ </a></span>lws_get_socket_fd()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -437,7 +437,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: cgi handling</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -74,7 +74,7 @@ $(document).ready(function(){initNavTree('group__cgi.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Client</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -103,7 +103,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
<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">§ </a></span>lws_client_connect_ssl_connection_flags</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga96f3dbad54b2853969cfa933d66871ce">◆ </a></span>lws_client_connect_ssl_connection_flags</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -121,7 +121,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="ga4af0a20108a95e8b6d94dd4d80055ff3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4af0a20108a95e8b6d94dd4d80055ff3">§ </a></span>lws_client_connect()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4af0a20108a95e8b6d94dd4d80055ff3">◆ </a></span>lws_client_connect()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -209,7 +209,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
</div>
|
||||
</div>
|
||||
<a id="gac6a8558b4410961a880241c2ac1271e2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gac6a8558b4410961a880241c2ac1271e2">§ </a></span>lws_client_connect_extended()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gac6a8558b4410961a880241c2ac1271e2">◆ </a></span>lws_client_connect_extended()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -303,7 +303,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga0c966136905f467816307cfba6deb5fd"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga0c966136905f467816307cfba6deb5fd">§ </a></span>lws_client_connect_via_info()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga0c966136905f467816307cfba6deb5fd">◆ </a></span>lws_client_connect_via_info()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -330,7 +330,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga4f44b8230e6732816ca5cd8d1aaaf340"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4f44b8230e6732816ca5cd8d1aaaf340">§ </a></span>lws_init_vhost_client_ssl()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4f44b8230e6732816ca5cd8d1aaaf340">◆ </a></span>lws_init_vhost_client_ssl()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -384,7 +384,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Context-and-vhost</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -142,7 +142,7 @@ Functions</h2></td></tr>
|
|||
<p>If you don't care about multiple "site" support, you can ignore it and lws will create a single default vhost at context creation time. </p>
|
||||
<h2 class="groupheader">Enumeration Type Documentation</h2>
|
||||
<a id="ga41c2d763f78cc248df3b9f8645dbd2a5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga41c2d763f78cc248df3b9f8645dbd2a5">§ </a></span>lws_context_options</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga41c2d763f78cc248df3b9f8645dbd2a5">◆ </a></span>lws_context_options</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -216,7 +216,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="ga8ee0314028755f1ddfa9428e09b4fddb"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8ee0314028755f1ddfa9428e09b4fddb">§ </a></span>lws_context_destroy()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8ee0314028755f1ddfa9428e09b4fddb">◆ </a></span>lws_context_destroy()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -244,7 +244,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaeb12f934bfd178bd2132a9e73fc641da"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaeb12f934bfd178bd2132a9e73fc641da">§ </a></span>lws_context_user()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaeb12f934bfd178bd2132a9e73fc641da">◆ </a></span>lws_context_user()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -271,7 +271,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaf2fff58562caab7510c41eeac85a8648"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaf2fff58562caab7510c41eeac85a8648">§ </a></span>lws_create_context()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaf2fff58562caab7510c41eeac85a8648">◆ </a></span>lws_create_context()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -325,7 +325,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga0c54c667ccd9b8b3dddcd123ca72f87c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga0c54c667ccd9b8b3dddcd123ca72f87c">§ </a></span>lws_create_vhost()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga0c54c667ccd9b8b3dddcd123ca72f87c">◆ </a></span>lws_create_vhost()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -363,7 +363,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga06e77ce2916f8bc9826ef8d9d68e3932"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga06e77ce2916f8bc9826ef8d9d68e3932">§ </a></span>lws_get_vhost()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga06e77ce2916f8bc9826ef8d9d68e3932">◆ </a></span>lws_get_vhost()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -390,7 +390,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gae2134657cdd2ea7a59e13ad314e4c50d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gae2134657cdd2ea7a59e13ad314e4c50d">§ </a></span>lws_json_dump_context()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gae2134657cdd2ea7a59e13ad314e4c50d">◆ </a></span>lws_json_dump_context()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -435,7 +435,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga94e6cc2223c4eec316b13bcebc3628b6"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga94e6cc2223c4eec316b13bcebc3628b6">§ </a></span>lws_json_dump_vhost()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga94e6cc2223c4eec316b13bcebc3628b6">◆ </a></span>lws_json_dump_vhost()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -480,7 +480,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga7e9d5405547a457d86e0b4f0ae2bb1c4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga7e9d5405547a457d86e0b4f0ae2bb1c4">§ </a></span>lws_set_proxy()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga7e9d5405547a457d86e0b4f0ae2bb1c4">◆ </a></span>lws_set_proxy()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -520,7 +520,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga8db03e19a372e34ac25cf21af894a02c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8db03e19a372e34ac25cf21af894a02c">§ </a></span>lws_vhost_get()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8db03e19a372e34ac25cf21af894a02c">◆ </a></span>lws_vhost_get()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -541,7 +541,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga98d88c9080fd89c37114363a6474ea73"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga98d88c9080fd89c37114363a6474ea73">§ </a></span>lwsws_get_config_globals()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga98d88c9080fd89c37114363a6474ea73">◆ </a></span>lwsws_get_config_globals()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -594,7 +594,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga341064721add2618ae1b29717493a212"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga341064721add2618ae1b29717493a212">§ </a></span>lwsws_get_config_vhosts()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga341064721add2618ae1b29717493a212">◆ </a></span>lwsws_get_config_vhosts()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -660,7 +660,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: libev helpers</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -70,9 +70,9 @@ $(document).ready(function(){initNavTree('group__ev.html','');});
|
|||
<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( </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"> </td></tr>
|
||||
<tr class="memitem:ga3fd389d64c6fa45a3c1427d2f6988741"><td class="memItemLeft" align="right" valign="top"><a id="ga3fd389d64c6fa45a3c1427d2f6988741"></a>
|
||||
typedef void() </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:ga3fd389d64c6fa45a3c1427d2f6988741"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
|
@ -96,7 +96,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Extensions</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -144,7 +144,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_extension_callback_function</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaae7169b2cd346b34fa33d0250db2afd0">◆ </a></span>lws_extension_callback_function</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -221,7 +221,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
<h2 class="groupheader">Enumeration Type Documentation</h2>
|
||||
<a id="gacc9f55936dc165257a2e1f7d47bce89e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gacc9f55936dc165257a2e1f7d47bce89e">§ </a></span>lws_ext_options_types</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gacc9f55936dc165257a2e1f7d47bce89e">◆ </a></span>lws_ext_options_types</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -250,7 +250,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="ga6fb3e2c3dfb9d64dc87026a4e99c128b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga6fb3e2c3dfb9d64dc87026a4e99c128b">§ </a></span>lws_ext_parse_options()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga6fb3e2c3dfb9d64dc87026a4e99c128b">◆ </a></span>lws_ext_parse_options()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -316,7 +316,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga4cdbe42d872e21a448a947714d6c607e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4cdbe42d872e21a448a947714d6c607e">§ </a></span>lws_extension_callback_pm_deflate()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4cdbe42d872e21a448a947714d6c607e">◆ </a></span>lws_extension_callback_pm_deflate()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -390,7 +390,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gae0e24e1768f83a7fb07896ce975704b9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gae0e24e1768f83a7fb07896ce975704b9">§ </a></span>lws_set_extension_option()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gae0e24e1768f83a7fb07896ce975704b9">◆ </a></span>lws_set_extension_option()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -448,7 +448,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -85,7 +85,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_get_fops()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gac08aef64c4c34647ed699b24759b6b0e">◆ </a></span>lws_get_fops()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -118,7 +118,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Form Parsing</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -105,7 +105,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_spa_fileupload_cb</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga5a70527c0861c2ffa3d29333a6aa7f8e">◆ </a></span>lws_spa_fileupload_cb</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -135,7 +135,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
<h2 class="groupheader">Enumeration Type Documentation</h2>
|
||||
<a id="ga41a74a822771d3dce89751aa3bce28ae"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga41a74a822771d3dce89751aa3bce28ae">§ </a></span>lws_spa_fileupload_states</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga41a74a822771d3dce89751aa3bce28ae">◆ </a></span>lws_spa_fileupload_states</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -164,7 +164,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="ga162f86762173a2bc8c28497941d74815"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga162f86762173a2bc8c28497941d74815">§ </a></span>lws_spa_create()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga162f86762173a2bc8c28497941d74815">◆ </a></span>lws_spa_create()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -232,7 +232,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaaa482f07dad3f04b391cccf0a814e13b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaaa482f07dad3f04b391cccf0a814e13b">§ </a></span>lws_spa_destroy()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaaa482f07dad3f04b391cccf0a814e13b">◆ </a></span>lws_spa_destroy()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -259,7 +259,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga83835bf250ee3d4a60f36a182f2b8d24"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga83835bf250ee3d4a60f36a182f2b8d24">§ </a></span>lws_spa_finalize()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga83835bf250ee3d4a60f36a182f2b8d24">◆ </a></span>lws_spa_finalize()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -286,7 +286,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga3fbe378632f85ec9a14cc2c1687bf05f"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga3fbe378632f85ec9a14cc2c1687bf05f">§ </a></span>lws_spa_get_length()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga3fbe378632f85ec9a14cc2c1687bf05f">◆ </a></span>lws_spa_get_length()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -324,7 +324,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga2da476217166da02704b90d3a8d4f3cd"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga2da476217166da02704b90d3a8d4f3cd">§ </a></span>lws_spa_get_string()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga2da476217166da02704b90d3a8d4f3cd">◆ </a></span>lws_spa_get_string()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -361,7 +361,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga9ad9ebf5ea1a7108415ed7e04cb231d2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga9ad9ebf5ea1a7108415ed7e04cb231d2">§ </a></span>lws_spa_process()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga9ad9ebf5ea1a7108415ed7e04cb231d2">◆ </a></span>lws_spa_process()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -398,7 +398,7 @@ Functions</h2></td></tr>
|
|||
<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">len</td><td>count of bytes valid at</td></tr>
|
||||
<tr><td class="paramname">in</td><td></td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
|
@ -413,7 +413,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -97,7 +97,7 @@ Enumerations</h2></td></tr>
|
|||
<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">§ </a></span>lws_gs_event</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaa93946b3d921072209d5cd8cdfa5332e">◆ </a></span>lws_gs_event</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -122,7 +122,7 @@ Enumerations</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga7c2dc7bfb4ccb91c5d771f9e9ea237e1"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">§ </a></span>lwsgs_auth_bits</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1">◆ </a></span>lwsgs_auth_bits</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -159,7 +159,7 @@ Enumerations</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -136,7 +136,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_chunked_html_process()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga643073f918c0a7016b690aae9793fd60">◆ </a></span>lws_chunked_html_process()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -179,7 +179,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: HTTP</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -102,7 +102,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_http_redirect()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8fbf01e473ac421fc33ad9f8da8b8a25">◆ </a></span>lws_http_redirect()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -168,7 +168,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gad27aed6c66a41b2b89ffe4da2a309e8a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad27aed6c66a41b2b89ffe4da2a309e8a">§ </a></span>lws_http_transaction_completed()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad27aed6c66a41b2b89ffe4da2a309e8a">◆ </a></span>lws_http_transaction_completed()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -196,7 +196,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gac8a4a71240857dc6b2ed70456b6923f4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gac8a4a71240857dc6b2ed70456b6923f4">§ </a></span>lws_return_http_status()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gac8a4a71240857dc6b2ed70456b6923f4">◆ </a></span>lws_return_http_status()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -247,7 +247,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -81,7 +81,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
<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">§ </a></span>lws_get_mimetype()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab4da87a4800413f15e7aba649fb1d77c">◆ </a></span>lws_get_mimetype()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -121,7 +121,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="gab393a06d3d2722af4c3f8b06842c80d7"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab393a06d3d2722af4c3f8b06842c80d7">§ </a></span>lws_serve_http_file()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab393a06d3d2722af4c3f8b06842c80d7">◆ </a></span>lws_serve_http_file()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -193,7 +193,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Logging</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -111,7 +111,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
<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">§ </a></span>lws_set_log_level()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga244647f9e1bf0097ccdde66d74f41e26">◆ </a></span>lws_set_log_level()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -149,7 +149,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
</div>
|
||||
</div>
|
||||
<a id="gab7c0fc936cc9f1eb58e2bb234c15147c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab7c0fc936cc9f1eb58e2bb234c15147c">§ </a></span>lwsl_emit_syslog()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab7c0fc936cc9f1eb58e2bb234c15147c">◆ </a></span>lwsl_emit_syslog()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -188,7 +188,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga898b1f03872ad019f507d4e35bbefa90"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga898b1f03872ad019f507d4e35bbefa90">§ </a></span>lwsl_hexdump()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga898b1f03872ad019f507d4e35bbefa90">◆ </a></span>lwsl_hexdump()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -226,7 +226,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga42e39775c6b69b7251bdbf5a2cdd5dcd"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga42e39775c6b69b7251bdbf5a2cdd5dcd">§ </a></span>lwsl_timestamp()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga42e39775c6b69b7251bdbf5a2cdd5dcd">◆ </a></span>lwsl_timestamp()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -278,7 +278,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Miscellaneous APIs</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -102,7 +102,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
<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">§ </a></span>lws_daemonize()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gace5171b1dbbc03ec89a98f8afdb5c9af">◆ </a></span>lws_daemonize()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -130,7 +130,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="gacae4d7b6a8d22e4c2d82ff8b12c1e234"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gacae4d7b6a8d22e4c2d82ff8b12c1e234">§ </a></span>lws_get_child()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gacae4d7b6a8d22e4c2d82ff8b12c1e234">◆ </a></span>lws_get_child()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -157,7 +157,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga0af4f7d2dd375aeedcfa7eb0e1101c4b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">§ </a></span>lws_get_context()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga0af4f7d2dd375aeedcfa7eb0e1101c4b">◆ </a></span>lws_get_context()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -185,7 +185,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga629f48268fd1856b54b11172991b97d9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga629f48268fd1856b54b11172991b97d9">§ </a></span>lws_get_count_threads()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga629f48268fd1856b54b11172991b97d9">◆ </a></span>lws_get_count_threads()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -213,7 +213,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="gac6abfc0b2bd5b2f09281a4432bb2f5f0"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gac6abfc0b2bd5b2f09281a4432bb2f5f0">§ </a></span>lws_get_library_version()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gac6abfc0b2bd5b2f09281a4432bb2f5f0">◆ </a></span>lws_get_library_version()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -235,7 +235,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga8930fe36a3f3eefe4a6a4fd499d8e899"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8930fe36a3f3eefe4a6a4fd499d8e899">§ </a></span>lws_get_parent()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga8930fe36a3f3eefe4a6a4fd499d8e899">◆ </a></span>lws_get_parent()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -262,7 +262,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga58f906c6be0ca80efd813f694569dd4a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga58f906c6be0ca80efd813f694569dd4a">§ </a></span>lws_get_random()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga58f906c6be0ca80efd813f694569dd4a">◆ </a></span>lws_get_random()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -308,7 +308,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga33bf2635033710b25f931b57ed663e1e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga33bf2635033710b25f931b57ed663e1e">§ </a></span>lws_now_secs()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga33bf2635033710b25f931b57ed663e1e">◆ </a></span>lws_now_secs()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -329,7 +329,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga1ec0d9faac5d3a5824d765c287c043aa"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga1ec0d9faac5d3a5824d765c287c043aa">§ </a></span>lws_parse_uri()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga1ec0d9faac5d3a5824d765c287c043aa">◆ </a></span>lws_parse_uri()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -388,7 +388,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="gab321ed812f46f6dc7ef9e3ca6f00cf1b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab321ed812f46f6dc7ef9e3ca6f00cf1b">§ </a></span>lws_set_allocator()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab321ed812f46f6dc7ef9e3ca6f00cf1b">◆ </a></span>lws_set_allocator()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -415,7 +415,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga2163492f17db959a36967adb73d823b4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga2163492f17db959a36967adb73d823b4">§ </a></span>lws_snprintf()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga2163492f17db959a36967adb73d823b4">◆ </a></span>lws_snprintf()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -468,7 +468,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaa194584fff9698f3b280658f770ccd0f"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaa194584fff9698f3b280658f770ccd0f">§ </a></span>lws_wsi_user()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaa194584fff9698f3b280658f770ccd0f">◆ </a></span>lws_wsi_user()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -501,7 +501,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -83,7 +83,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_canonical_hostname()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad0df22db2be9fc65a667a1e83f9a92a4">◆ </a></span>lws_canonical_hostname()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -111,7 +111,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga092e5f473b3347f03ffeef8a950080f3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga092e5f473b3347f03ffeef8a950080f3">§ </a></span>lws_get_peer_addresses()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga092e5f473b3347f03ffeef8a950080f3">◆ </a></span>lws_get_peer_addresses()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -179,7 +179,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gad01014fed09759741b6d23afccfdaacc"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad01014fed09759741b6d23afccfdaacc">§ </a></span>lws_get_peer_simple()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad01014fed09759741b6d23afccfdaacc">◆ </a></span>lws_get_peer_simple()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -225,7 +225,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga869d8bdffb0f2a7ce08e3ce10d6be3d8"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga869d8bdffb0f2a7ce08e3ce10d6be3d8">§ </a></span>lws_interface_to_sa()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga869d8bdffb0f2a7ce08e3ce10d6be3d8">◆ </a></span>lws_interface_to_sa()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -284,7 +284,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -79,7 +79,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_json_purify()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab15187efcfa256b7c928562c182b92a3">◆ </a></span>lws_json_purify()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -125,7 +125,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga9cc82f06e5ae7e71458626d7a39a5865"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga9cc82f06e5ae7e71458626d7a39a5865">§ </a></span>lws_sql_purify()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga9cc82f06e5ae7e71458626d7a39a5865">◆ </a></span>lws_sql_purify()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -177,7 +177,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Sending data</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -96,7 +96,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_write_protocol</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga98b099cf8c1c7e38ad78501f270e193d">◆ </a></span>lws_write_protocol</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -136,7 +136,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="gafd5fdd285a0e25ba7e3e1051deec1001"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gafd5fdd285a0e25ba7e3e1051deec1001">§ </a></span>lws_write()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gafd5fdd285a0e25ba7e3e1051deec1001">◆ </a></span>lws_write()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -220,7 +220,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -101,7 +101,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_cancel_service()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga53e3d0801dfda7960a7249dd559e68a2">◆ </a></span>lws_cancel_service()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -132,7 +132,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga29c246707997ab7a466aa709aecd2d7b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga29c246707997ab7a466aa709aecd2d7b">§ </a></span>lws_cancel_service_pt()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga29c246707997ab7a466aa709aecd2d7b">◆ </a></span>lws_cancel_service_pt()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -166,7 +166,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gab1ff2c19455268fa0d5b617d8057fbfc"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab1ff2c19455268fa0d5b617d8057fbfc">§ </a></span>lws_plat_service_tsi()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab1ff2c19455268fa0d5b617d8057fbfc">◆ </a></span>lws_plat_service_tsi()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -213,7 +213,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaf95bd0c663d6516a0c80047d9b1167a8"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaf95bd0c663d6516a0c80047d9b1167a8">§ </a></span>lws_service()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaf95bd0c663d6516a0c80047d9b1167a8">◆ </a></span>lws_service()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -256,7 +256,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga4fd9d714434ca499e2b3f7dbba86f241"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4fd9d714434ca499e2b3f7dbba86f241">§ </a></span>lws_service_adjust_timeout()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4fd9d714434ca499e2b3f7dbba86f241">◆ </a></span>lws_service_adjust_timeout()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -302,7 +302,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gad82efa5466d14a9f05aa06416375b28d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad82efa5466d14a9f05aa06416375b28d">§ </a></span>lws_service_fd()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad82efa5466d14a9f05aa06416375b28d">◆ </a></span>lws_service_fd()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -344,7 +344,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaebf426eda371ba23642fc11d8e0ace6b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaebf426eda371ba23642fc11d8e0ace6b">§ </a></span>lws_service_fd_tsi()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaebf426eda371ba23642fc11d8e0ace6b">◆ </a></span>lws_service_fd_tsi()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -389,7 +389,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga9b3cc4473fd8848e5bbee7f310712939"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga9b3cc4473fd8848e5bbee7f310712939">§ </a></span>lws_service_tsi()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga9b3cc4473fd8848e5bbee7f310712939">◆ </a></span>lws_service_tsi()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -440,7 +440,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -81,7 +81,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_b64_decode_string()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga66316e6a5a0644a09d5a10e919dfdd8d">◆ </a></span>lws_b64_decode_string()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -127,7 +127,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaf39765e4a3b413efb65e4698b2ec3575"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaf39765e4a3b413efb65e4698b2ec3575">§ </a></span>lws_b64_encode_string()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaf39765e4a3b413efb65e4698b2ec3575">◆ </a></span>lws_b64_encode_string()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -180,7 +180,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga7b09ab74646266f0b555103b3bb8dfe5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga7b09ab74646266f0b555103b3bb8dfe5">§ </a></span>lws_SHA1()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga7b09ab74646266f0b555103b3bb8dfe5">◆ </a></span>lws_SHA1()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -232,7 +232,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Smtp</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -116,7 +116,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lwsgs_smtp_states</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga116be79bf44f9dc2a97f46e051fe4dc0">◆ </a></span>lwsgs_smtp_states</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -163,7 +163,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="ga5e535e346d92a9daf00be33abf79d4eb"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga5e535e346d92a9daf00be33abf79d4eb">§ </a></span>lws_email_check()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga5e535e346d92a9daf00be33abf79d4eb">◆ </a></span>lws_email_check()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -191,7 +191,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga25298a5afc1074e13b2d5711a86432b2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga25298a5afc1074e13b2d5711a86432b2">§ </a></span>lws_email_destroy()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga25298a5afc1074e13b2d5711a86432b2">◆ </a></span>lws_email_destroy()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -219,7 +219,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga77fc9b56a1bb39484844981ec375fc29"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga77fc9b56a1bb39484844981ec375fc29">§ </a></span>lws_email_init()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga77fc9b56a1bb39484844981ec375fc29">◆ </a></span>lws_email_init()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -271,7 +271,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -80,7 +80,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_adopt_socket()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gabe71b7462afb21c767bdc67334f305af">◆ </a></span>lws_adopt_socket()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -119,7 +119,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gab2d045df0f81afe00891aaed312d552b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab2d045df0f81afe00891aaed312d552b">§ </a></span>lws_adopt_socket_readbuf()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gab2d045df0f81afe00891aaed312d552b">◆ </a></span>lws_adopt_socket_readbuf()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -162,14 +162,14 @@ Functions</h2></td></tr>
|
|||
<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">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>
|
||||
<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>
|
||||
|
@ -186,7 +186,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Connection timeouts</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -107,7 +107,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_set_timeout()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaced9f9237f6172fed9f730a2af51345a">◆ </a></span>lws_set_timeout()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -159,7 +159,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -79,7 +79,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_urldecode()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaa373a9c16acdd96c395af61ab915ece3">◆ </a></span>lws_urldecode()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -126,7 +126,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gabc2888476e50e001c875c1a8abf455b7"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gabc2888476e50e001c875c1a8abf455b7">§ </a></span>lws_urlencode()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gabc2888476e50e001c875c1a8abf455b7">◆ </a></span>lws_urlencode()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -178,7 +178,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: User Callback</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -159,7 +159,7 @@ Enumerations</h2></td></tr>
|
|||
<p>All of the events can be ignored, returning 0 is taken as "OK" and returning nonzero in most cases indicates that the connection should be closed. </p>
|
||||
<h2 class="groupheader">Typedef Documentation</h2>
|
||||
<a id="gad4fcb82e68d60ffacca61a3f783a0a2f"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad4fcb82e68d60ffacca61a3f783a0a2f">§ </a></span>lws_callback_function</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad4fcb82e68d60ffacca61a3f783a0a2f">◆ </a></span>lws_callback_function</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -191,7 +191,7 @@ Enumerations</h2></td></tr>
|
|||
</div>
|
||||
<h2 class="groupheader">Enumeration Type Documentation</h2>
|
||||
<a id="gad62860e19975ba4c4af401c3cdb6abf7"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad62860e19975ba4c4af401c3cdb6abf7">§ </a></span>lws_callback_reasons</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gad62860e19975ba4c4af401c3cdb6abf7">◆ </a></span>lws_callback_reasons</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -392,7 +392,7 @@ Enumerations</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: libuv helpers</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -98,7 +98,7 @@ LWS_VISIBLE LWS_EXTERN void </td><td class="memItemRight" valign="bottom"><
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -94,7 +94,7 @@ Enumerations</h2></td></tr>
|
|||
<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">§ </a></span>lws_mount_protocols</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga31eca18e50cb4357480f2fcad36ff437">◆ </a></span>lws_mount_protocols</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -140,7 +140,7 @@ Enumerations</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Websocket Close</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -103,7 +103,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_close_status</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gae399c571df32ba532c0ca67da9284985">◆ </a></span>lws_close_status</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -162,7 +162,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="gaa1c863415d1783cd8de7938aa6efa262"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaa1c863415d1783cd8de7938aa6efa262">§ </a></span>lws_close_reason()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaa1c863415d1783cd8de7938aa6efa262">◆ </a></span>lws_close_reason()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -206,7 +206,7 @@ Functions</h2></td></tr>
|
|||
<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">len</td><td>Length of data in</td></tr>
|
||||
<tr><td class="paramname">buf</td><td>to send </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
|
@ -221,7 +221,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -89,7 +89,7 @@ Functions</h2></td></tr>
|
|||
<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">§ </a></span>lws_frame_is_binary()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaccd9c59336efad8af0554f79cc5966fd">◆ </a></span>lws_frame_is_binary()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -117,7 +117,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga3df5045656dfb6b0e63a38de2dca79d2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga3df5045656dfb6b0e63a38de2dca79d2">§ </a></span>lws_get_reserved_bits()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga3df5045656dfb6b0e63a38de2dca79d2">◆ </a></span>lws_get_reserved_bits()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -143,7 +143,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga4ad226d5e01024b4046f4a5a37199aa1"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4ad226d5e01024b4046f4a5a37199aa1">§ </a></span>lws_is_cgi()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga4ad226d5e01024b4046f4a5a37199aa1">◆ </a></span>lws_is_cgi()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -169,7 +169,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga08e9ee165fca503fd9427d55cfecac37"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga08e9ee165fca503fd9427d55cfecac37">§ </a></span>lws_is_final_fragment()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga08e9ee165fca503fd9427d55cfecac37">◆ </a></span>lws_is_final_fragment()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -195,7 +195,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga26a140623d202dd2bf2004deb6994baa"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga26a140623d202dd2bf2004deb6994baa">§ </a></span>lws_is_ssl()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga26a140623d202dd2bf2004deb6994baa">◆ </a></span>lws_is_ssl()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -223,7 +223,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="gaeca4afc94b1f026034f99cbba37e2f85"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaeca4afc94b1f026034f99cbba37e2f85">§ </a></span>lws_partial_buffered()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#gaeca4afc94b1f026034f99cbba37e2f85">◆ </a></span>lws_partial_buffered()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -252,7 +252,7 @@ Functions</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ga2bb3655329b4651cd06f79ee3a764421"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga2bb3655329b4651cd06f79ee3a764421">§ </a></span>lws_send_pipe_choked()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga2bb3655329b4651cd06f79ee3a764421">◆ </a></span>lws_send_pipe_choked()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -285,7 +285,7 @@ Functions</h2></td></tr>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Class Hierarchy</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -102,7 +102,7 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<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"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -82,7 +82,7 @@ $(document).ready(function(){initNavTree('index.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lib/libwebsockets.h File Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -166,9 +166,9 @@ typedef const char *(* </td><td class="memItemRight" valign="bottom"><b>lws
|
|||
<tr class="separator:ga669d3d7ce2d5f193473f649a89b3e7ac"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga5a70527c0861c2ffa3d29333a6aa7f8e"><td class="memItemLeft" align="right" valign="top">typedef int(* </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"> </td></tr>
|
||||
<tr class="memitem:ga3b0ffd4d2b4fa791c0fd75353a330208"><td class="memItemLeft" align="right" valign="top">
|
||||
typedef void( </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"> </td></tr>
|
||||
<tr class="memitem:ga3fd389d64c6fa45a3c1427d2f6988741"><td class="memItemLeft" align="right" valign="top">
|
||||
typedef void() </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:ga3fd389d64c6fa45a3c1427d2f6988741"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
||||
Enumerations</h2></td></tr>
|
||||
|
@ -929,7 +929,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</table>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="af52923473c59e643a974d65e12290831"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af52923473c59e643a974d65e12290831">§ </a></span>lws_cgi()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af52923473c59e643a974d65e12290831">◆ </a></span>lws_cgi()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -986,7 +986,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="a27bb0b3cdcd0af839c928c253b521ff4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a27bb0b3cdcd0af839c928c253b521ff4">§ </a></span>lws_cgi_kill()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a27bb0b3cdcd0af839c928c253b521ff4">◆ </a></span>lws_cgi_kill()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -1011,7 +1011,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="a5326d3402af8429a166dd991dc65c4a2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a5326d3402af8429a166dd991dc65c4a2">§ </a></span>lws_cgi_write_split_stdout_headers()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a5326d3402af8429a166dd991dc65c4a2">◆ </a></span>lws_cgi_write_split_stdout_headers()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -1036,7 +1036,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="a72fe65e83b8bb03f904a1a256c673536"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a72fe65e83b8bb03f904a1a256c673536">§ </a></span>lws_remaining_packet_payload()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a72fe65e83b8bb03f904a1a256c673536">◆ </a></span>lws_remaining_packet_payload()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -1062,7 +1062,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="a5e627dbf1db48170ef486edbaf268672"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a5e627dbf1db48170ef486edbaf268672">§ </a></span>lws_rx_flow_allow_all_protocol()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a5e627dbf1db48170ef486edbaf268672">◆ </a></span>lws_rx_flow_allow_all_protocol()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -1098,7 +1098,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
</div>
|
||||
</div>
|
||||
<a id="adf4abd01e8c43f07c6e498ce13590c3e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#adf4abd01e8c43f07c6e498ce13590c3e">§ </a></span>lws_rx_flow_control()</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#adf4abd01e8c43f07c6e498ce13590c3e">◆ </a></span>lws_rx_flow_control()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -1142,7 +1142,7 @@ LWS_VISIBLE LWS_EXTERN int </td><td class="memItemRight" valign="bottom"><b
|
|||
<li class="navelem"><a class="el" href="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li><li class="navelem"><a class="el" href="libwebsockets_8h.html">libwebsockets.h</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -9,7 +9,7 @@ var libwebsockets_8h =
|
|||
[ "lws_pollargs", "structlws__pollargs.html", "structlws__pollargs" ],
|
||||
[ "lws_cgi_args", "structlws__cgi__args.html", "structlws__cgi__args" ],
|
||||
[ "lws_callback_function", "group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f", null ],
|
||||
[ "lws_ev_signal_cb_t", "group__ev.html#ga3b0ffd4d2b4fa791c0fd75353a330208", null ],
|
||||
[ "lws_ev_signal_cb_t", "group__ev.html#ga3fd389d64c6fa45a3c1427d2f6988741", null ],
|
||||
[ "lws_extension_callback_function", "group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0", null ],
|
||||
[ "lws_filefd_type", "libwebsockets_8h.html#aff42d53861afdc1a6edfb999ba688ecb", null ],
|
||||
[ "lws_plugin_destroy_func", "group__Protocols-and-Plugins.html#ga83f7a924ba790fa273476075a59f08b0", null ],
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,236 +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.11"/>
|
||||
<title>libwebsockets: Notes about building lws</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(initResizable);
|
||||
$(window).load(resizeHeight);
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">libwebsockets
|
||||
</div>
|
||||
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.11 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){initNavTree('md_README.build.html','');});
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Notes about building lws </div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><h1><a class="anchor" id="cm"></a>
|
||||
Introduction to CMake</h1>
|
||||
<p>CMake is a multi-platform build tool that can generate build files for many different target platforms. See more info at <a href="http://www.cmake.org">http://www.cmake.org</a></p>
|
||||
<p>CMake also allows/recommends you to do "out of source"-builds, that is, the build files are separated from your sources, so there is no need to create elaborate clean scripts to get a clean source tree, instead you simply remove your build directory.</p>
|
||||
<p>Libwebsockets has been tested to build successfully on the following platforms with SSL support (both OpenSSL/wolfSSL):</p>
|
||||
<ul>
|
||||
<li>Windows (Visual Studio)</li>
|
||||
<li>Windows (MinGW)</li>
|
||||
<li>Linux (x86 and ARM)</li>
|
||||
<li>OSX</li>
|
||||
<li>NetBSD</li>
|
||||
</ul>
|
||||
<h1><a class="anchor" id="build1"></a>
|
||||
Building the library and test apps</h1>
|
||||
<p>The project settings used by CMake to generate the platform specific build files is called <a href="CMakeLists.txt">CMakeLists.txt</a>. CMake then uses one of its "Generators" to output a Visual Studio project or Make file for instance. To see a list of the available generators for your platform, simply run the "cmake" command.</p>
|
||||
<p>Note that by default OpenSSL will be linked, if you don't want SSL support see below on how to toggle compile options.</p>
|
||||
<h1><a class="anchor" id="bu"></a>
|
||||
Building on Unix:</h1>
|
||||
<ol type="1">
|
||||
<li>Install CMake 2.8 or greater: <a href="http://cmake.org/cmake/resources/software.html">http://cmake.org/cmake/resources/software.html</a> (Most Unix distributions comes with a packaged version also)</li>
|
||||
<li>Install OpenSSL.</li>
|
||||
<li>Generate the build files (default is Make files): <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cd /path/to/src</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> $ mkdir build</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> $ cd build</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> $ cmake ..</div></div><!-- fragment --></li>
|
||||
<li>Finally you can build using the generated Makefile: <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ make && sudo make install</div></div><!-- fragment --> <b>NOTE</b>: The <code>build/</code><code>directory can have any name and be located anywhere on your filesystem, and that the argument</code>..` given to cmake is simply the source directory of <b>libwebsockets</b> containing the <a href="CMakeLists.txt">CMakeLists.txt</a> project file. All examples in this file assumes you use ".."</li>
|
||||
</ol>
|
||||
<p><b>NOTE2</b>: A common option you may want to give is to set the install path, same as –prefix= with autotools. It defaults to /usr/local. You can do this by, eg </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .</div></div><!-- fragment --><p><b>NOTE3</b>: On machines that want libraries in lib64, you can also add the following to the cmake line </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> -DLIB_SUFFIX=64</div></div><!-- fragment --><p><b>NOTE4</b>: If you are building against a non-distro OpenSSL (eg, in order to get access to ALPN support only in newer OpenSSL versions) the nice way to express that in one cmake command is eg, </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cmake .. -DOPENSSL_ROOT_DIR=/usr/local/ssl \</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  -DCMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE=/usr/local/ssl \</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  -DLWS_WITH_HTTP2=1</div></div><!-- fragment --><p>When you run the test apps using non-distro SSL, you have to force them to use your libs, not the distro ones </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ LD_LIBRARY_PATH=/usr/local/ssl/lib libwebsockets-test-server --ssl</div></div><!-- fragment --><p>To get it to build on latest openssl (2016-04-10) it needed this approach </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> cmake .. -DLWS_WITH_HTTP2=1 -DLWS_OPENSSL_INCLUDE_DIRS=/usr/local/include/openssl -DLWS_OPENSSL_LIBRARIES="/usr/local/lib64/libssl.so;/usr/local/lib64/libcrypto.so"</div></div><!-- fragment --><p><b>NOTE5</b>: To build with debug info and _DEBUG for lower priority debug messages compiled in, use </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cmake .. -DCMAKE_BUILD_TYPE=DEBUG</div></div><!-- fragment --><p><b>NOTE6</b> To build on Solaris the linker needs to be informed to use lib socket and libnsl, and only builds in 64bit mode.</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cmake .. -DCMAKE_C_FLAGS=-m64 -DCMAKE_EXE_LINKER_FLAGS="-lsocket -lnsl"</div></div><!-- fragment --><ol type="1">
|
||||
<li>Finally you can build using the generated Makefile:</li>
|
||||
</ol>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ make</div></div><!-- fragment --><h1><a class="anchor" id="cmq"></a>
|
||||
Quirk of cmake</h1>
|
||||
<p>When changing cmake options, for some reason the only way to get it to see the changes sometimes is delete the contents of your build directory and do the cmake from scratch.</p>
|
||||
<h1><a class="anchor" id="cmw"></a>
|
||||
Building on Windows (Visual Studio)</h1>
|
||||
<ol type="1">
|
||||
<li>Install CMake 2.6 or greater: <a href="http://cmake.org/cmake/resources/software.html">http://cmake.org/cmake/resources/software.html</a></li>
|
||||
<li><p class="startli">Install OpenSSL binaries. <a href="http://www.openssl.org/related/binaries.html">http://www.openssl.org/related/binaries.html</a></p>
|
||||
<p class="startli">(<b>NOTE</b>: Preferably in the default location to make it easier for CMake to find them)</p>
|
||||
<p class="startli"><b>NOTE2</b>: Be sure that OPENSSL_CONF environment variable is defined and points at <OpenSSL install="" location>="">.cfg</p>
|
||||
</li>
|
||||
<li>Generate the Visual studio project by opening the Visual Studio cmd prompt:</li>
|
||||
</ol>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> cd <path to src></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> md build</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> cd build</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> cmake -G "Visual Studio 10" ..</div></div><!-- fragment --><p>(<b>NOTE</b>: There is also a cmake-gui available on Windows if you prefer that)</p>
|
||||
<p><b>NOTE2</b>: See this link to find out the version number corresponding to your Visual Studio edition: <a href="http://superuser.com/a/194065">http://superuser.com/a/194065</a></p>
|
||||
<ol type="1">
|
||||
<li>Now you should have a generated Visual Studio Solution in your <code><path to src>/build</code> directory, which can be used to build.</li>
|
||||
<li>Some additional deps may be needed<ul>
|
||||
<li>iphlpapi.lib</li>
|
||||
<li>psapi.lib</li>
|
||||
<li>userenv.lib</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>If you're using libuv, you must make sure to compile libuv with the same multithread-dll / Mtd attributes as libwebsockets itself</li>
|
||||
</ol>
|
||||
<h1><a class="anchor" id="cmwmgw"></a>
|
||||
Building on Windows (MinGW)</h1>
|
||||
<ol type="1">
|
||||
<li><p class="startli">Install MinGW: <a href="http://sourceforge.net/projects/mingw/files">http://sourceforge.net/projects/mingw/files</a></p>
|
||||
<p class="startli">(<b>NOTE</b>: Preferably in the default location C:)</p>
|
||||
</li>
|
||||
<li><p class="startli">Fix up MinGW headers</p>
|
||||
<p class="startli">a) Add the following lines to C:.h: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> #if(_WIN32_WINNT >= 0x0600)</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> </div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> typedef struct pollfd {</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> </div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  SOCKET fd;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  SHORT events;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  SHORT revents;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> } WSAPOLLFD, *PWSAPOLLFD, FAR *LPWSAPOLLFD;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> WINSOCK_API_LINKAGE int WSAAPI WSAPoll(LPWSAPOLLFD fdArray, ULONG fds, INT timeout);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> #endif // (_WIN32_WINNT >= 0x0600)</div></div><!-- fragment --><p> b) Create C:.h and copy and paste the content from following link into it:</p>
|
||||
<p class="startli"><a href="http://wine-unstable.sourcearchive.com/documentation/1.1.32/mstcpip_8h-source.html">http://wine-unstable.sourcearchive.com/documentation/1.1.32/mstcpip_8h-source.html</a></p>
|
||||
</li>
|
||||
<li>Install CMake 2.6 or greater: <a href="http://cmake.org/cmake/resources/software.html">http://cmake.org/cmake/resources/software.html</a></li>
|
||||
<li><p class="startli">Install OpenSSL binaries. <a href="http://www.openssl.org/related/binaries.html">http://www.openssl.org/related/binaries.html</a></p>
|
||||
<p class="startli">(<b>NOTE</b>: Preferably in the default location to make it easier for CMake to find them)</p>
|
||||
<p class="startli"><b>NOTE2</b>: Be sure that OPENSSL_CONF environment variable is defined and points at <OpenSSL install="" location>="">.cfg</p>
|
||||
</li>
|
||||
<li><p class="startli">Generate the build files (default is Make files) using MSYS shell: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cd /drive/path/to/src</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> $ mkdir build</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> $ cd build</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> $ cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=C:/MinGW ..</div></div><!-- fragment --><p> (<b>NOTE</b>: The <code>build/</code><code>directory can have any name and be located anywhere on your filesystem, and that the argument</code>..` given to cmake is simply the source directory of <b>libwebsockets</b> containing the <a href="CMakeLists.txt">CMakeLists.txt</a> project file. All examples in this file assumes you use "..")</p>
|
||||
<p class="startli"><b>NOTE2</b>: To generate build files allowing to create libwebsockets binaries with debug information set the CMAKE_BUILD_TYPE flag to DEBUG: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=C:/MinGW -DCMAKE_BUILD_TYPE=DEBUG ..</div></div><!-- fragment --></li>
|
||||
<li>Finally you can build using the generated Makefile and get the results deployed into your MinGW installation:</li>
|
||||
</ol>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ make</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> $ make install</div></div><!-- fragment --><h1><a class="anchor" id="mbed3"></a>
|
||||
Building on mbed3</h1>
|
||||
<p>MBED3 is a non-posix embedded OS targeted on Cortex M class chips.</p>
|
||||
<p><a href="https://www.mbed.com/">https://www.mbed.com/</a></p>
|
||||
<p>It's quite unlike any other Posixy platform since the OS is linked statically in with lws to form one binary.</p>
|
||||
<p>At the minute server-only is supported and due to bugs in mbed3 network support, the port is of alpha quality. However it can serve the test html, favicon.ico and logo png and may be able to make ws connections. The binary for that including the OS, test app, lws and all the assets is only 117KB.</p>
|
||||
<p>0) Today mbed3 only properly works on FRDM K64F $35 Freescale Dev Board with 1MB Flash, 256KB SRAM and Ethernet.</p>
|
||||
<p><a href="http://www.freescale.com/products/arm-processors/kinetis-cortex-m/k-series/k6x-ethernet-mcus/freescale-freedom-development-platform-for-kinetis-k64-k63-and-k24-mcus:FRDM-K64F">http://www.freescale.com/products/arm-processors/kinetis-cortex-m/k-series/k6x-ethernet-mcus/freescale-freedom-development-platform-for-kinetis-k64-k63-and-k24-mcus:FRDM-K64F</a></p>
|
||||
<p>1) Get a working mbed3 environment with arm-none-eabi-cs toolchain (available in Fedora, Ubuntu and other distros)</p>
|
||||
<p>2) Confirm you can build things using yotta by following the getting started guide here</p>
|
||||
<p><a href="https://docs.mbed.com/docs/getting-started-mbed-os/en/latest/">https://docs.mbed.com/docs/getting-started-mbed-os/en/latest/</a></p>
|
||||
<p>3)</p>
|
||||
<p>git clone <a href="https://github.com/warmcat/lws-test-server">https://github.com/warmcat/lws-test-server</a></p>
|
||||
<p>and cd into it</p>
|
||||
<p>4) mkdir -p yotta_modules ; cd yotta_modules</p>
|
||||
<p>5) git clone <a href="https://github.com/warmcat/libwebsockets">https://github.com/warmcat/libwebsockets</a> ; mv libwebsockets websockets ; cd ..</p>
|
||||
<p>6) yotta target frdm-k64f-gcc</p>
|
||||
<p>7) yotta install</p>
|
||||
<p>8) yotta build</p>
|
||||
<h1><a class="anchor" id="cmco"></a>
|
||||
Setting compile options</h1>
|
||||
<p>To set compile time flags you can either use one of the CMake gui applications or do it via the command line.</p>
|
||||
<h2><a class="anchor" id="cmcocl"></a>
|
||||
Command line</h2>
|
||||
<p>To list available options (omit the H if you don't want the help text): </p><pre class="fragment"> cmake -LH ..
|
||||
</pre><p>Then to set an option and build (for example turn off SSL support): </p><pre class="fragment"> cmake -DLWS_WITH_SSL=0 ..
|
||||
</pre><p> or cmake -DLWS_WITH_SSL:BOOL=OFF ..</p>
|
||||
<h2><a class="anchor" id="cmcoug"></a>
|
||||
Unix GUI</h2>
|
||||
<p>If you have a curses-enabled build you simply type: (not all packages include this, my debian install does not for example). </p><pre class="fragment"> ccmake
|
||||
</pre><h2><a class="anchor" id="cmcowg"></a>
|
||||
Windows GUI</h2>
|
||||
<p>On windows CMake comes with a gui application: Start -> Programs -> CMake -> CMake (cmake-gui)</p>
|
||||
<h1><a class="anchor" id="wolf"></a>
|
||||
wolfSSL/CyaSSL replacement for OpenSSL</h1>
|
||||
<p>wolfSSL/CyaSSL is a lightweight SSL library targeted at embedded systems: <a href="https://www.wolfssl.com/wolfSSL/Products-wolfssl.html">https://www.wolfssl.com/wolfSSL/Products-wolfssl.html</a></p>
|
||||
<p>It contains a OpenSSL compatibility layer which makes it possible to pretty much link to it instead of OpenSSL, giving a much smaller footprint.</p>
|
||||
<p><b>NOTE</b>: wolfssl needs to be compiled using the <code>--enable-opensslextra</code> flag for this to work.</p>
|
||||
<h1><a class="anchor" id="wolf1"></a>
|
||||
Compiling libwebsockets with wolfSSL</h1>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> cmake .. -DLWS_USE_WOLFSSL=1 \</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  -DLWS_WOLFSSL_INCLUDE_DIRS=/path/to/wolfssl \</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  -DLWS_WOLFSSL_LIBRARIES=/path/to/wolfssl/wolfssl.a ..</div></div><!-- fragment --><p><b>NOTE</b>: On windows use the .lib file extension for <code>LWS_WOLFSSL_LIBRARIES</code> instead.</p>
|
||||
<h1><a class="anchor" id="cya"></a>
|
||||
Compiling libwebsockets with CyaSSL</h1>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> cmake .. -DLWS_USE_CYASSL=1 \</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  -DLWS_CYASSL_INCLUDE_DIRS=/path/to/cyassl \</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  -DLWS_CYASSL_LIBRARIES=/path/to/wolfssl/cyassl.a ..</div></div><!-- fragment --><p><b>NOTE</b>: On windows use the .lib file extension for <code>LWS_CYASSL_LIBRARIES</code> instead.</p>
|
||||
<h1><a class="anchor" id="extplugins"></a>
|
||||
Building plugins outside of lws itself</h1>
|
||||
<p>The directory ./plugin-standalone/ shows how easy it is to create plugins outside of lws itself. First build lws itself with -DLWS_WITH_PLUGINS, then use the same flow to build the standalone plugin </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> cd ./plugin-standalone</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> mkdir build</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> cd build</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> cmake ..</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> make && sudo make install</div></div><!-- fragment --><p>if you changed the default plugin directory when you built lws, you must also give the same arguments to cmake here (eg, <code>-DCMAKE_INSTALL_PREFIX:PATH=/usr/something/else...</code> )</p>
|
||||
<p>Otherwise if you run lwsws or libwebsockets-test-server-v2.0, it will now find the additional plugin "libprotocol_example_standalone.so" </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> lwsts[21257]: Plugins:</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> lwsts[21257]: libprotocol_dumb_increment.so</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> lwsts[21257]: libprotocol_example_standalone.so</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> lwsts[21257]: libprotocol_lws_mirror.so</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> lwsts[21257]: libprotocol_lws_server_status.so</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> lwsts[21257]: libprotocol_lws_status.so</div></div><!-- fragment --><p> If you have multiple vhosts, you must enable plugins at the vhost additionally, discovered plugins are not enabled automatically for security reasons. You do this using info->pvo or for lwsws, in the JSON config.</p>
|
||||
<h1><a class="anchor" id="http2rp"></a>
|
||||
Reproducing HTTP2.0 tests</h1>
|
||||
<p>You must have built and be running lws against a version of openssl that has ALPN / NPN. Most distros still have older versions. You'll know it's right by seeing </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> lwsts[4752]: Compiled with OpenSSL support</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> lwsts[4752]: Using SSL mode</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> lwsts[4752]: HTTP2 / ALPN enabled</div></div><!-- fragment --><p> at lws startup.</p>
|
||||
<p>For non-SSL HTTP2.0 upgrade </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ nghttp -nvasu http://localhost:7681/test.htm</div></div><!-- fragment --><p> For SSL / ALPN HTTP2.0 upgrade </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ nghttp -nvas https://localhost:7681/test.html</div></div><!-- fragment --><h1><a class="anchor" id="cross"></a>
|
||||
Cross compiling</h1>
|
||||
<p>To enable cross-compiling <b>libwebsockets</b> using CMake you need to create a "Toolchain file" that you supply to CMake when generating your build files. CMake will then use the cross compilers and build paths specified in this file to look for dependencies and such.</p>
|
||||
<p><b>Libwebsockets</b> includes an example toolchain file <a href="cross-arm-linux-gnueabihf.cmake">cross-arm-linux-gnueabihf.cmake</a> you can use as a starting point.</p>
|
||||
<p>The commandline to configure for cross with this would look like </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr \</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  -DCMAKE_TOOLCHAIN_FILE=../cross-arm-linux-gnueabihf.cmake \</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  -DWITHOUT_EXTENSIONS=1 -DWITH_SSL=0</div></div><!-- fragment --><p> The example shows how to build with no external cross lib dependencies, you need to provide the cross libraries otherwise.</p>
|
||||
<p><b>NOTE</b>: start from an EMPTY build directory if you had a non-cross build in there before the settings will be cached and your changes ignored.</p>
|
||||
<p>Additional information on cross compilation with CMake: <a href="http://www.vtk.org/Wiki/CMake_Cross_Compiling">http://www.vtk.org/Wiki/CMake_Cross_Compiling</a></p>
|
||||
<h1><a class="anchor" id="mem"></a>
|
||||
Memory efficiency</h1>
|
||||
<p>Embedded server-only configuration without extensions (ie, no compression on websocket connections), but with full v13 websocket features and http server, built on ARM Cortex-A9:</p>
|
||||
<p>Update at 8dac94d (2013-02-18) </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ ./configure --without-client --without-extensions --disable-debug --without-daemonize</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> </div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> Context Creation, 1024 fd limit[2]: 16720 (includes 12 bytes per fd)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> Per-connection [3]: 72 bytes, +1328 during headers</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> .text .rodata .data .bss</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> 11512 2784 288 4</div></div><!-- fragment --><p> This shows the impact of the major configuration with/without options at 13ba5bbc633ea962d46d using Ubuntu ARM on a PandaBoard ES.</p>
|
||||
<p>These are accounting for static allocations from the library elf, there are additional dynamic allocations via malloc. These are a bit old now but give the right idea for relative "expense" of features.</p>
|
||||
<p>Static allocations, ARM9</p>
|
||||
<table class="doxtable">
|
||||
<tr>
|
||||
<th></th><th>.text </th><th>.rodata </th><th>.data </th><th>.bss </th></tr>
|
||||
<tr>
|
||||
<td>All (no without) </td><td>35024 </td><td>9940 </td><td>336 </td><td>4104 </td></tr>
|
||||
<tr>
|
||||
<td>without client </td><td>25684 </td><td>7144 </td><td>336 </td><td>4104 </td></tr>
|
||||
<tr>
|
||||
<td>without client, exts </td><td>21652 </td><td>6288 </td><td>288 </td><td>4104 </td></tr>
|
||||
<tr>
|
||||
<td>without client, exts, debug[1] </td><td>19756 </td><td>3768 </td><td>288 </td><td>4104 </td></tr>
|
||||
<tr>
|
||||
<td>without server </td><td>30304 </td><td>8160 </td><td>336 </td><td>4104 </td></tr>
|
||||
<tr>
|
||||
<td>without server, exts </td><td>25382 </td><td>7204 </td><td>288 </td><td>4104 </td></tr>
|
||||
<tr>
|
||||
<td>without server, exts, debug[1] </td><td>23712 </td><td>4256 </td><td>288 </td><td>4104 </td></tr>
|
||||
</table>
|
||||
<p>[1] <code>--disable-debug</code> only removes messages below <code>lwsl_notice</code>. Since that is the default logging level the impact is not noticeable, error, warn and notice logs are all still there.</p>
|
||||
<p>[2] <code>1024</code> fd per process is the default limit (set by ulimit) in at least Fedora and Ubuntu. You can make significant savings tailoring this to actual expected peak fds, ie, at a limit of <code>20</code>, context creation allocation reduces to <code>4432 + 240 = 4672</code>)</p>
|
||||
<p>[3] known header content is freed after connection establishment </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.11 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,284 +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.11"/>
|
||||
<title>libwebsockets: Notes about coding with lws</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(initResizable);
|
||||
$(window).load(resizeHeight);
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">libwebsockets
|
||||
</div>
|
||||
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.11 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){initNavTree('md_README.coding.html','');});
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Notes about coding with lws </div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><h1><a class="anchor" id="dae"></a>
|
||||
Daemonization</h1>
|
||||
<p>There's a helper api <code>lws_daemonize</code> built by default that does everything you need to daemonize well, including creating a lock file. If you're making what's basically a daemon, just call this early in your init to fork to a headless background process and exit the starting process.</p>
|
||||
<p>Notice stdout, stderr, stdin are all redirected to /dev/null to enforce your daemon is headless, so you'll need to sort out alternative logging, by, eg, syslog.</p>
|
||||
<h1><a class="anchor" id="conns"></a>
|
||||
Maximum number of connections</h1>
|
||||
<p>The maximum number of connections the library can deal with is decided when it starts by querying the OS to find out how many file descriptors it is allowed to open (1024 on Fedora for example). It then allocates arrays that allow up to that many connections, minus whatever other file descriptors are in use by the user code.</p>
|
||||
<p>If you want to restrict that allocation, or increase it, you can use ulimit or similar to change the available number of file descriptors, and when restarted <b>libwebsockets</b> will adapt accordingly.</p>
|
||||
<h1><a class="anchor" id="evtloop"></a>
|
||||
Libwebsockets is singlethreaded</h1>
|
||||
<p>Libwebsockets works in a serialized event loop, in a single thread.</p>
|
||||
<p>Directly performing websocket actions from other threads is not allowed. Aside from the internal data being inconsistent in <code>forked()</code> processes, the scope of a <code>wsi</code> (<code>struct websocket</code>) can end at any time during service with the socket closing and the <code>wsi</code> freed.</p>
|
||||
<p>Websocket write activities should only take place in the <code>LWS_CALLBACK_SERVER_WRITEABLE</code> callback as described below.</p>
|
||||
<p>[This network-programming necessity to link the issue of new data to the peer taking the previous data is not obvious to all users so let's repeat that in other words:</p>
|
||||
<p>***ONLY DO LWS_WRITE FROM THE WRITEABLE CALLBACK***</p>
|
||||
<p>There is another network-programming truism that surprises some people which is if the sink for the data cannot accept more:</p>
|
||||
<p>***YOU MUST PERFORM RX FLOW CONTROL***</p>
|
||||
<p>See the mirror protocol implementations for example code.</p>
|
||||
<p>Only live connections appear in the user callbacks, so this removes any possibility of trying to used closed and freed wsis.</p>
|
||||
<p>If you need to service other socket or file descriptors as well as the websocket ones, you can combine them together with the websocket ones in one poll loop, see "External Polling Loop support" below, and still do it all in one thread / process context.</p>
|
||||
<p>If you insist on trying to use it from multiple threads, take special care if you might simultaneously create more than one context from different threads.</p>
|
||||
<p>SSL_library_init() is called from the context create api and it also is not reentrant. So at least create the contexts sequentially.</p>
|
||||
<h1><a class="anchor" id="writeable"></a>
|
||||
Only send data when socket writeable</h1>
|
||||
<p>You should only send data on a websocket connection from the user callback <code>LWS_CALLBACK_SERVER_WRITEABLE</code> (or <code>LWS_CALLBACK_CLIENT_WRITEABLE</code> for clients).</p>
|
||||
<p>If you want to send something, do not just send it but request a callback when the socket is writeable using</p>
|
||||
<ul>
|
||||
<li><code>lws_callback_on_writable(context, wsi)</code> for a specific <code>wsi</code>, or</li>
|
||||
<li><code>lws_callback_on_writable_all_protocol(protocol)</code> for all connections using that protocol to get a callback when next writeable.</li>
|
||||
</ul>
|
||||
<p>Usually you will get called back immediately next time around the service loop, but if your peer is slow or temporarily inactive the callback will be delayed accordingly. Generating what to write and sending it should be done in the ...WRITEABLE callback.</p>
|
||||
<p>See the test server code for an example of how to do this.</p>
|
||||
<h1><a class="anchor" id="otherwr"></a>
|
||||
Do not rely on only your own WRITEABLE requests appearing</h1>
|
||||
<p>Libwebsockets may generate additional <code>LWS_CALLBACK_CLIENT_WRITEABLE</code> events if it met network conditions where it had to buffer your send data internally.</p>
|
||||
<p>So your code for <code>LWS_CALLBACK_CLIENT_WRITEABLE</code> needs to own the decision about what to send, it can't assume that just because the writeable callback came it really is time to send something.</p>
|
||||
<p>It's quite possible you get an 'extra' writeable callback at any time and just need to <code>return 0</code> and wait for the expected callback later.</p>
|
||||
<h1><a class="anchor" id="closing"></a>
|
||||
Closing connections from the user side</h1>
|
||||
<p>When you want to close a connection, you do it by returning <code>-1</code> from a callback for that connection.</p>
|
||||
<p>You can provoke a callback by calling <code>lws_callback_on_writable</code> on the wsi, then notice in the callback you want to close it and just return -1. But usually, the decision to close is made in a callback already and returning -1 is simple.</p>
|
||||
<p>If the socket knows the connection is dead, because the peer closed or there was an affirmitive network error like a FIN coming, then <b>libwebsockets</b> will take care of closing the connection automatically.</p>
|
||||
<p>If you have a silently dead connection, it's possible to enter a state where the send pipe on the connection is choked but no ack will ever come, so the dead connection will never become writeable. To cover that, you can use TCP keepalives (see later in this document) or pings.</p>
|
||||
<h1><a class="anchor" id="frags"></a>
|
||||
Fragmented messages</h1>
|
||||
<p>To support fragmented messages you need to check for the final frame of a message with <code>lws_is_final_fragment</code>. This check can be combined with <code>libwebsockets_remaining_packet_payload</code> to gather the whole contents of a message, eg:</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> case LWS_CALLBACK_RECEIVE:</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> {</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  Client * const client = (Client *)user;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  const size_t remaining = lws_remaining_packet_payload(wsi);</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  if (!remaining && lws_is_final_fragment(wsi)) {</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  if (client->HasFragments()) {</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  client->AppendMessageFragment(in, len, 0);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  in = (void *)client->GetMessage();</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  len = client->GetMessageLength();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  }</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  client->ProcessMessage((char *)in, len, wsi);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  client->ResetMessage();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  } else</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  client->AppendMessageFragment(in, len, remaining);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> }</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> break;</div></div><!-- fragment --><p>The test app libwebsockets-test-fraggle sources also show how to deal with fragmented messages.</p>
|
||||
<h1><a class="anchor" id="debuglog"></a>
|
||||
Debug Logging</h1>
|
||||
<p>Also using <code>lws_set_log_level</code> api you may provide a custom callback to actually emit the log string. By default, this points to an internal emit function that sends to stderr. Setting it to <code>NULL</code> leaves it as it is instead.</p>
|
||||
<p>A helper function <code><a class="el" href="group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c">lwsl_emit_syslog()</a></code> is exported from the library to simplify logging to syslog. You still need to use <code>setlogmask</code>, <code>openlog</code> and <code>closelog</code> in your user code.</p>
|
||||
<p>The logging apis are made available for user code.</p>
|
||||
<ul>
|
||||
<li><code>lwsl_err(...)</code></li>
|
||||
<li><code>lwsl_warn(...)</code></li>
|
||||
<li><code>lwsl_notice(...)</code></li>
|
||||
<li><code>lwsl_info(...)</code></li>
|
||||
<li><code>lwsl_debug(...)</code></li>
|
||||
</ul>
|
||||
<p>The difference between notice and info is that notice will be logged by default whereas info is ignored by default.</p>
|
||||
<p>If you are not building with _DEBUG defined, ie, without this</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cmake .. -DCMAKE_BUILD_TYPE=DEBUG</div></div><!-- fragment --><p>then log levels below notice do not actually get compiled in.</p>
|
||||
<h1><a class="anchor" id="extpoll"></a>
|
||||
External Polling Loop support</h1>
|
||||
<p><b>libwebsockets</b> maintains an internal <code>poll()</code> array for all of its sockets, but you can instead integrate the sockets into an external polling array. That's needed if <b>libwebsockets</b> will cooperate with an existing poll array maintained by another server.</p>
|
||||
<p>Four callbacks <code>LWS_CALLBACK_ADD_POLL_FD</code>, <code>LWS_CALLBACK_DEL_POLL_FD</code>, <code>LWS_CALLBACK_SET_MODE_POLL_FD</code> and <code>LWS_CALLBACK_CLEAR_MODE_POLL_FD</code> appear in the callback for protocol 0 and allow interface code to manage socket descriptors in other poll loops.</p>
|
||||
<p>You can pass all pollfds that need service to <code><a class="el" href="group__service.html#gad82efa5466d14a9f05aa06416375b28d">lws_service_fd()</a></code>, even if the socket or file does not belong to <b>libwebsockets</b> it is safe.</p>
|
||||
<p>If <b>libwebsocket</b> handled it, it zeros the pollfd <code>revents</code> field before returning. So you can let <b>libwebsockets</b> try and if <code>pollfd->revents</code> is nonzero on return, you know it needs handling by your code.</p>
|
||||
<p>Also note that when integrating a foreign event loop like libev or libuv where it doesn't natively use poll() semantics, and you must return a fake pollfd reflecting the real event:</p>
|
||||
<ul>
|
||||
<li>be sure you set .events to .revents value as well in the synthesized pollfd</li>
|
||||
<li>check the built-in support for the event loop if possible (eg, ./lib/libuv.c) to see how it interfaces to lws</li>
|
||||
<li>use LWS_POLLHUP / LWS_POLLIN / LWS_POLLOUT from <a class="el" href="libwebsockets_8h.html">libwebsockets.h</a> to avoid losing windows compatibility</li>
|
||||
</ul>
|
||||
<h1><a class="anchor" id="cpp"></a>
|
||||
Using with in c++ apps</h1>
|
||||
<p>The library is ready for use by C++ apps. You can get started quickly by copying the test server</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cp test-server/test-server.c test.cpp</div></div><!-- fragment --><p>and building it in C++ like this</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ g++ -DINSTALL_DATADIR=\"/usr/share\" -ocpptest test.cpp -lwebsockets</div></div><!-- fragment --><p><code>INSTALL_DATADIR</code> is only needed because the test server uses it as shipped, if you remove the references to it in your app you don't need to define it on the g++ line either.</p>
|
||||
<h1><a class="anchor" id="headerinfo"></a>
|
||||
Availability of header information</h1>
|
||||
<p>HTTP Header information is managed by a pool of "ah" structs. These are a limited resource so there is pressure to free the headers and return the ah to the pool for reuse.</p>
|
||||
<p>For that reason header information on HTTP connections that get upgraded to websockets is lost after the ESTABLISHED callback. Anything important that isn't processed by user code before then should be copied out for later.</p>
|
||||
<p>For HTTP connections that don't upgrade, header info remains available the whole time.</p>
|
||||
<h1><a class="anchor" id="ka"></a>
|
||||
TCP Keepalive</h1>
|
||||
<p>It is possible for a connection which is not being used to send to die silently somewhere between the peer and the side not sending. In this case by default TCP will just not report anything and you will never get any more incoming data or sign the link is dead until you try to send.</p>
|
||||
<p>To deal with getting a notification of that situation, you can choose to enable TCP keepalives on all <b>libwebsockets</b> sockets, when you create the context.</p>
|
||||
<p>To enable keepalive, set the ka_time member of the context creation parameter struct to a nonzero value (in seconds) at context creation time. You should also fill ka_probes and ka_interval in that case.</p>
|
||||
<p>With keepalive enabled, the TCP layer will send control packets that should stimulate a response from the peer without affecting link traffic. If the response is not coming, the socket will announce an error at <code>poll()</code> forcing a close.</p>
|
||||
<p>Note that BSDs don't support keepalive time / probes / interval per-socket like Linux does. On those systems you can enable keepalive by a nonzero value in <code>ka_time</code>, but the systemwide kernel settings for the time / probes/ interval are used, regardless of what nonzero value is in <code>ka_time</code>.</p>
|
||||
<h1><a class="anchor" id="sslopt"></a>
|
||||
Optimizing SSL connections</h1>
|
||||
<p>There's a member <code>ssl_cipher_list</code> in the <code><a class="el" href="structlws__context__creation__info.html">lws_context_creation_info</a></code> struct which allows the user code to restrict the possible cipher selection at context-creation time.</p>
|
||||
<p>You might want to look into that to stop the ssl peers selecting a cipher which is too computationally expensive. To use it, point it to a string like </p><pre class="fragment"> `"RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL"`
|
||||
</pre><p>if left <code>NULL</code>, then the "DEFAULT" set of ciphers are all possible to select.</p>
|
||||
<p>You can also set it to <code>"ALL"</code> to allow everything (including insecure ciphers).</p>
|
||||
<h1><a class="anchor" id="clientasync"></a>
|
||||
Async nature of client connections</h1>
|
||||
<p>When you call <code><a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</a>(..)</code> and get a <code>wsi</code> back, it does not mean your connection is active. It just means it started trying to connect.</p>
|
||||
<p>Your client connection is actually active only when you receive <code>LWS_CALLBACK_CLIENT_ESTABLISHED</code> for it.</p>
|
||||
<p>There's a 5 second timeout for the connection, and it may give up or die for other reasons, if any of that happens you'll get a <code>LWS_CALLBACK_CLIENT_CONNECTION_ERROR</code> callback on protocol 0 instead for the <code>wsi</code>.</p>
|
||||
<p>After attempting the connection and getting back a non-<code>NULL</code> <code>wsi</code> you should loop calling <code><a class="el" href="group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8">lws_service()</a></code> until one of the above callbacks occurs.</p>
|
||||
<p>As usual, see <a href="test-server/test-client.c">test-client.c</a> for example code.</p>
|
||||
<p>Notice that the client connection api tries to progress the connection somewhat before returning. That means it's possible to get callbacks like CONNECTION_ERROR on the new connection before your user code had a chance to get the wsi returned to identify it (in fact if the connection did fail early, NULL will be returned instead of the wsi anyway).</p>
|
||||
<p>To avoid that problem, you can fill in <code>pwsi</code> in the client connection info struct to point to a struct lws that get filled in early by the client connection api with the related wsi. You can then check for that in the callback to confirm the identity of the failing client connection.</p>
|
||||
<h1><a class="anchor" id="fileapi"></a>
|
||||
Lws platform-independent file access apis</h1>
|
||||
<p>lws now exposes his internal platform file abstraction in a way that can be both used by user code to make it platform-agnostic, and be overridden or subclassed by user code. This allows things like handling the URI "directory
|
||||
space" as a virtual filesystem that may or may not be backed by a regular filesystem. One example use is serving files from inside large compressed archive storage without having to unpack anything except the file being requested.</p>
|
||||
<p>The test server shows how to use it, basically the platform-specific part of lws prepares a file operations structure that lives in the lws context.</p>
|
||||
<p>The user code can get a pointer to the file operations struct</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops *</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  `lws_get_fops`(struct lws_context *context);</div></div><!-- fragment --><p>and then can use helpers to also leverage these platform-independent file handling apis</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> static inline lws_filefd_type</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> `lws_plat_file_open`(struct lws *wsi, const char *filename, unsigned long *filelen, int flags)</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> static inline int</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> `lws_plat_file_close`(struct lws *wsi, lws_filefd_type fd)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> static inline unsigned long</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> `lws_plat_file_seek_cur`(struct lws *wsi, lws_filefd_type fd, long offset_from_cur_pos)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> static inline int</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> `lws_plat_file_read`(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, unsigned char *buf, unsigned long len)</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> static inline int</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> `lws_plat_file_write`(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, unsigned char *buf, unsigned long len)</div></div><!-- fragment --><p>The user code can also override or subclass the file operations, to either wrap or replace them. An example is shown in test server.</p>
|
||||
<h1><a class="anchor" id="ecdh"></a>
|
||||
ECDH Support</h1>
|
||||
<p>ECDH Certs are now supported. Enable the CMake option </p><pre class="fragment"> cmake .. -DLWS_SSL_SERVER_WITH_ECDH_CERT=1
|
||||
</pre><p><b>and</b> the info->options flag </p><pre class="fragment"> LWS_SERVER_OPTION_SSL_ECDH
|
||||
</pre><p>to build in support and select it at runtime.</p>
|
||||
<h1><a class="anchor" id="smp"></a>
|
||||
SMP / Multithreaded service</h1>
|
||||
<p>SMP support is integrated into LWS without any internal threading. It's very simple to use, libwebsockets-test-server-pthread shows how to do it, use -j <n> argument there to control the number of service threads up to 32.</p>
|
||||
<p>Two new members are added to the info struct </p><pre class="fragment"> unsigned int count_threads;
|
||||
unsigned int fd_limit_per_thread;
|
||||
</pre><p>leave them at the default 0 to get the normal singlethreaded service loop.</p>
|
||||
<p>Set count_threads to n to tell lws you will have n simultaneous service threads operating on the context.</p>
|
||||
<p>There is still a single listen socket on one port, no matter how many service threads.</p>
|
||||
<p>When a connection is made, it is accepted by the service thread with the least connections active to perform load balancing.</p>
|
||||
<p>The user code is responsible for spawning n threads running the service loop associated to a specific tsi (Thread Service Index, 0 .. n - 1). See the libwebsockets-test-server-pthread for how to do.</p>
|
||||
<p>If you leave fd_limit_per_thread at 0, then the process limit of fds is shared between the service threads; if you process was allowed 1024 fds overall then each thread is limited to 1024 / n.</p>
|
||||
<p>You can set fd_limit_per_thread to a nonzero number to control this manually, eg the overall supported fd limit is less than the process allowance.</p>
|
||||
<p>You can control the context basic data allocation for multithreading from Cmake using -DLWS_MAX_SMP=, if not given it's set to 32. The serv_buf allocation for the threads (currently 4096) is made at runtime only for active threads.</p>
|
||||
<p>Because lws will limit the requested number of actual threads supported according to LWS_MAX_SMP, there is an api lws_get_count_threads(context) to discover how many threads were actually allowed when the context was created.</p>
|
||||
<p>It's required to implement locking in the user code in the same way that libwebsockets-test-server-pthread does it, for the FD locking callbacks.</p>
|
||||
<p>There is no knowledge or dependency in lws itself about pthreads. How the locking is implemented is entirely up to the user code.</p>
|
||||
<h1><a class="anchor" id="libevuv"></a>
|
||||
Libev / Libuv support</h1>
|
||||
<p>You can select either or both </p><pre class="fragment"> -DLWS_WITH_LIBEV=1
|
||||
-DLWS_WITH_LIBUV=1
|
||||
</pre><p>at cmake configure-time. The user application may use one of the context init options flags </p><pre class="fragment"> LWS_SERVER_OPTION_LIBEV
|
||||
LWS_SERVER_OPTION_LIBUV
|
||||
</pre><p>to indicate it will use either of the event libraries.</p>
|
||||
<h1><a class="anchor" id="extopts"></a>
|
||||
Extension option control from user code</h1>
|
||||
<p>User code may set per-connection extension options now, using a new api <code><a class="el" href="group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9">lws_set_extension_option()</a></code>.</p>
|
||||
<p>This should be called from the ESTABLISHED callback like this </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> lws_set_extension_option(wsi, "permessage-deflate",</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  "rx_buf_size", "12"); /* 1 << 12 */</div></div><!-- fragment --><p>If the extension is not active (missing or not negotiated for the connection, or extensions are disabled on the library) the call is just returns -1. Otherwise the connection's extension has its named option changed.</p>
|
||||
<p>The extension may decide to alter or disallow the change, in the example above permessage-deflate restricts the size of his rx output buffer also considering the protocol's rx_buf_size member.</p>
|
||||
<h1><a class="anchor" id="httpsclient"></a>
|
||||
Client connections as HTTP[S] rather than WS[S]</h1>
|
||||
<p>You may open a generic http client connection using the same struct <a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</a> used to create client ws[s] connections.</p>
|
||||
<p>To stay in http[s], set the optional info member "method" to point to the string "GET" instead of the default NULL.</p>
|
||||
<p>After the server headers are processed, when payload from the server is available the callback LWS_CALLBACK_RECEIVE_CLIENT_HTTP will be made.</p>
|
||||
<p>You can choose whether to process the data immediately, or queue a callback when an outgoing socket is writeable to provide flow control, and process the data in the writable callback.</p>
|
||||
<p>Either way you use the api <code>lws_http_client_read()</code> to access the data, eg</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> case LWS_CALLBACK_RECEIVE_CLIENT_HTTP:</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  {</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  char buffer[1024 + LWS_PRE];</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  char *px = buffer + LWS_PRE;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  int lenx = sizeof(buffer) - LWS_PRE;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  lwsl_notice("LWS_CALLBACK_RECEIVE_CLIENT_HTTP\n");</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  /*</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  * Often you need to flow control this by something</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  * else being writable. In that case call the api</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  * to get a callback when writable here, and do the</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  * pending client read in the writeable callback of</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  * the output.</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  */</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  if (lws_http_client_read(wsi, &px, &lenx) < 0)</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  return -1;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  while (lenx--)</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  putchar(*px++);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  }</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  break;</div></div><!-- fragment --><p>Notice that if you will use SSL client connections on a vhost, you must prepare the client SSL context for the vhost after creating the vhost, since this is not normally done if the vhost was set up to listen / serve. Call the api <a class="el" href="group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340">lws_init_vhost_client_ssl()</a> to also allow client SSL on the vhost.</p>
|
||||
<h1><a class="anchor" id="vhosts"></a>
|
||||
Using lws vhosts</h1>
|
||||
<p>If you set LWS_SERVER_OPTION_EXPLICIT_VHOSTS options flag when you create your context, it won't create a default vhost using the info struct members for compatibility. Instead you can call <a class="el" href="group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c">lws_create_vhost()</a> afterwards to attach one or more vhosts manually.</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> LWS_VISIBLE struct lws_vhost *</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> lws_create_vhost(struct lws_context *context,</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  struct lws_context_creation_info *info);</div></div><!-- fragment --><p><a class="el" href="group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c">lws_create_vhost()</a> uses the same info struct as <a class="el" href="group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648">lws_create_context()</a>, it ignores members related to context and uses the ones meaningful for vhost (marked with VH in <a class="el" href="libwebsockets_8h.html">libwebsockets.h</a>).</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> struct lws_context_creation_info {</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  int port; /* VH */</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  const char *iface; /* VH */</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  const struct lws_protocols *protocols; /* VH */</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  const struct lws_extension *extensions; /* VH */</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> ...</div></div><!-- fragment --><p>When you attach the vhost, if the vhost's port already has a listen socket then both vhosts share it and use SNI (is SSL in use) or the Host: header from the client to select the right one. Or if no other vhost already listening the a new listen socket is created.</p>
|
||||
<p>There are some new members but mainly it's stuff you used to set at context creation time.</p>
|
||||
<h1><a class="anchor" id="sni"></a>
|
||||
How lws matches hostname or SNI to a vhost</h1>
|
||||
<p>LWS first strips any trailing :port number.</p>
|
||||
<p>Then it tries to find an exact name match for a vhost listening on the correct port, ie, if SNI or the Host: header provided abc.com:1234, it will match on a vhost named abc.com that is listening on port 1234.</p>
|
||||
<p>If there is no exact match, lws will consider wildcard matches, for example if cats.abc.com:1234 is provided by the client by SNI or Host: header, it will accept a vhost "abc.com" listening on port 1234. If there was a better, exact, match, it will have been chosen in preference to this.</p>
|
||||
<p>Connections with SSL will still have the client go on to check the certificate allows wildcards and error out if not.</p>
|
||||
<h1><a class="anchor" id="mounts"></a>
|
||||
Using lws mounts on a vhost</h1>
|
||||
<p>The last argument to <a class="el" href="group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c">lws_create_vhost()</a> lets you associate a linked list of <a class="el" href="structlws__http__mount.html">lws_http_mount</a> structures with that vhost's URL 'namespace', in a similar way that unix lets you mount filesystems into areas of your / filesystem how you like and deal with the contents transparently.</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> struct lws_http_mount {</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  struct lws_http_mount *mount_next;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  const char *mountpoint; /* mountpoint in http pathspace, eg, "/" */</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  const char *origin; /* path to be mounted, eg, "/var/www/warmcat.com" */</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  const char *def; /* default target, eg, "index.html" */</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  struct lws_protocol_vhost_options *cgienv;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  int cgi_timeout;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  int cache_max_age;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  unsigned int cache_reusable:1;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  unsigned int cache_revalidate:1;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  unsigned int cache_intermediaries:1;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  unsigned char origin_protocol;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  unsigned char mountpoint_len;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> };</div></div><!-- fragment --><p>The last mount structure should have a NULL mount_next, otherwise it should point to the 'next' mount structure in your list.</p>
|
||||
<p>Both the mount structures and the strings must persist until the context is destroyed, since they are not copied but used in place.</p>
|
||||
<p><code>.origin_protocol</code> should be one of</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> enum {</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  LWSMPRO_HTTP,</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  LWSMPRO_HTTPS,</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  LWSMPRO_FILE,</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  LWSMPRO_CGI,</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  LWSMPRO_REDIR_HTTP,</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  LWSMPRO_REDIR_HTTPS,</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  LWSMPRO_CALLBACK,</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> };</div></div><!-- fragment --><ul>
|
||||
<li>LWSMPRO_FILE is used for mapping url namespace to a filesystem directory and serve it automatically.</li>
|
||||
<li>LWSMPRO_CGI associates the url namespace with the given CGI executable, which runs when the URL is accessed and the output provided to the client.</li>
|
||||
<li>LWSMPRO_REDIR_HTTP and LWSMPRO_REDIR_HTTPS auto-redirect clients to the given origin URL.</li>
|
||||
<li>LWSMPRO_CALLBACK causes the http connection to attach to the callback associated with the named protocol (which may be a plugin).</li>
|
||||
</ul>
|
||||
<h1><a class="anchor" id="mountcallback"></a>
|
||||
Operation of LWSMPRO_CALLBACK mounts</h1>
|
||||
<p>The feature provided by CALLBACK type mounts is binding a part of the URL namespace to a named protocol callback handler.</p>
|
||||
<p>This allows protocol plugins to handle areas of the URL namespace. For example in test-server-v2.0.c, the URL area "/formtest" is associated with the plugin providing "protocol-post-demo" like this</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> static const struct lws_http_mount mount_post = {</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  NULL, /* linked-list pointer to next*/</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  "/formtest", /* mountpoint in URL namespace on this vhost */</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  "protocol-post-demo", /* handler */</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  NULL, /* default filename if none given */</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  NULL,</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  0,</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  0,</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  0,</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  0,</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  0,</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  LWSMPRO_CALLBACK, /* origin points to a callback */</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  9, /* strlen("/formtest"), ie length of the mountpoint */</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> };</div></div><!-- fragment --><p>Client access to /formtest[anything] will be passed to the callback registered with the named protocol, which in this case is provided by a protocol plugin.</p>
|
||||
<p>Access by all methods, eg, GET and POST are handled by the callback.</p>
|
||||
<p>protocol-post-demo deals with accepting and responding to the html form that is in the test server HTML.</p>
|
||||
<p>When a connection accesses a URL related to a CALLBACK type mount, the connection protocol is changed until the next access on the connection to a URL outside the same CALLBACK mount area. User space on the connection is arranged to be the size of the new protocol user space allocation as given in the protocol struct.</p>
|
||||
<p>This allocation is only deleted / replaced when the connection accesses a URL region with a different protocol (or the default protocols[0] if no CALLBACK area matches it).</p>
|
||||
<h1><a class="anchor" id="dim"></a>
|
||||
Dimming webpage when connection lost</h1>
|
||||
<p>The lws test plugins' html provides useful feedback on the webpage about if it is still connected to the server, by greying out the page if not. You can also add this to your own html easily</p>
|
||||
<ul>
|
||||
<li><p class="startli">include lws-common.js from your HEAD section</p>
|
||||
<p class="startli"><script src="/lws-common.js"></script></p>
|
||||
</li>
|
||||
<li><p class="startli">dim the page during initialization, in a script section on your page</p>
|
||||
<p class="startli">lws_gray_out(true,{'zindex':'499'});</p>
|
||||
</li>
|
||||
<li><p class="startli">in your ws onOpen(), remove the dimming</p>
|
||||
<p class="startli">lws_gray_out(false);</p>
|
||||
</li>
|
||||
<li><p class="startli">in your ws onClose(), reapply the dimming</p>
|
||||
<p class="startli">lws_gray_out(true,{'zindex':'499'}); </p>
|
||||
</li>
|
||||
</ul>
|
||||
</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.11 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,181 +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.11"/>
|
||||
<title>libwebsockets: Notes about generic-sessions Plugin</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(initResizable);
|
||||
$(window).load(resizeHeight);
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">libwebsockets
|
||||
</div>
|
||||
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.11 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){initNavTree('md_README.generic-sessions.html','');});
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Notes about generic-sessions Plugin </div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><h1><a class="anchor" id="gseb"></a>
|
||||
Enabling lwsgs for build</h1>
|
||||
<p>Enable at CMake with -DLWS_WITH_GENERIC_SESSIONS=1</p>
|
||||
<p>This also needs sqlite3 (libsqlite3-dev or similar package)</p>
|
||||
<h1><a class="anchor" id="gsi"></a>
|
||||
lwsgs Introduction</h1>
|
||||
<p>The generic-sessions protocol plugin provides cookie-based login authentication for lws web and ws connections.</p>
|
||||
<p>The plugin handles everything about generic account registration, email verification, lost password, account deletion, and other generic account management.</p>
|
||||
<p>Other code, in another eg, ws protocol handler, only needs very high-level state information from generic-sessions, ie, which user the client is authenticated as. Everything underneath is managed in generic-sessions.</p>
|
||||
<ul>
|
||||
<li>random 20-byte session id managed in a cookie</li>
|
||||
<li>all information related to the session held at the server, nothing managed clientside</li>
|
||||
<li>sqlite3 used at the server to manage active sessions and users</li>
|
||||
<li>defaults to creating anonymous sessions with no user associated</li>
|
||||
<li>admin account (with user-selectable username) is defined in config with a SHA-1 of the password; rest of the accounts are in sqlite3</li>
|
||||
<li>user account passwords stored as salted SHA-1 with additional confounder only stored in the JSON config, not the database</li>
|
||||
<li>login, logout, register account + email verification built-in with examples</li>
|
||||
<li>in a mount, some file suffixes (ie, .js) can be associated with a protocol for the purposes of rewriting symbolnames. These are read-only copies of logged-in server state.</li>
|
||||
<li>When your page fetches .js or other rewritten files from that mount, "$lwsgs_user" and so on are rewritten on the fly using chunked transfer encoding</li>
|
||||
<li>Eliminates server-side scripting with a few rewritten symbols and javascript on client side</li>
|
||||
<li>32-bit bitfield for authentication sectoring, mounts can provide a mask on the loggin-in session's associated server-side bitfield that must be set for access.</li>
|
||||
<li>No code (just config) required for, eg, private URL namespace that requires login to access.</li>
|
||||
</ul>
|
||||
<h1><a class="anchor" id="gsin"></a>
|
||||
Lwsgs Integration to HTML</h1>
|
||||
<p>Only three steps are needed to integrate lwsgs in your HTML.</p>
|
||||
<p>1) lwsgs HTML UI is bundled with the javascript it uses in <code>lwsgs.js</code>, so import that script file in your head section</p>
|
||||
<p>2) define an empty div of id "lwsgs" somewhere</p>
|
||||
<p>3) Call lwsgs_initial() in your page</p>
|
||||
<p>That's it. An example is below</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <html></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  <head></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  <script src="lwsgs.js"></script></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  <style></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  .body { font-size: 12 }</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  .gstitle { font-size: 18 }</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </style></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </head></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  <body style="background-image:url(seats.jpg)"></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  <table style="width:100%;transition: max-height 2s;"></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  <tr></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  <td style="vertical-align:top;text-align:left;width=200px"></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  <img src="lwsgs-logo.png"></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </td></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <td style="vertical-align:top;float:right"></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  <div id=lwsgs style="text-align:right;background-color: rgba(255, 255, 255, 0.8);"></div></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </td></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </tr></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </table></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </form></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <script>lwsgs_initial();</script></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </body></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </html></div></div><!-- fragment --><h1><a class="anchor" id="gsof"></a>
|
||||
Lwsgs Overall Flow@</h1>
|
||||
<p>When the protocol is initialized, it gets per-vhost information from the config, such as where the sqlite3 databases are to be stored. The admin username and sha-1 of the admin password are also taken from here.</p>
|
||||
<p>In the mounts using protocol-generic-sessions, a cookie is maintained against any requests; if no cookie was active on the initial request a new session is created with no attached user.</p>
|
||||
<p>So there should always be an active session after any transactions with the server.</p>
|
||||
<p>In the example html going to the mount /lwsgs loads a login / register page as the default.</p>
|
||||
<p>The <form> in the login page contains 'next url' hidden inputs that let the html 'program' where the form handler will go after a successful admin login, a successful user login and a failed login.</p>
|
||||
<p>After a successful login, the sqlite record at the server for the current session is updated to have the logged-in username associated with it.</p>
|
||||
<h1><a class="anchor" id="gsconf"></a>
|
||||
Lwsgs Configuration</h1>
|
||||
<p>"auth-mask" defines the authorization sector bits that must be enabled on the session to gain access.</p>
|
||||
<p>"auth-mask" 0 is the default.</p>
|
||||
<ul>
|
||||
<li>b0 is set if you are logged in as a user at all.</li>
|
||||
<li>b1 is set if you are logged in with the user configured to be admin</li>
|
||||
<li>b2 is set if the account has been verified (the account configured for admin is always verified)</li>
|
||||
<li>b3 is set if your session just did the forgot password flow successfully</li>
|
||||
</ul>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> {</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  # things in here can always be served</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  "mountpoint": "/lwsgs",</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  "origin": "file:///usr/share/libwebsockets-test-server/generic-sessions",</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  "origin": "callback://protocol-lws-messageboard",</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  "default": "generic-sessions-login-example.html",</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  "auth-mask": "0",</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  "interpret": {</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  ".js": "protocol-lws-messageboard"</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  }</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  }, {</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  # things in here can only be served if logged in as a user</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  "mountpoint": "/lwsgs/needauth",</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  "origin": "file:///usr/share/libwebsockets-test-server/generic-sessions/needauth",</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  "origin": "callback://protocol-lws-messageboard",</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  "default": "generic-sessions-login-example.html",</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  "auth-mask": "5", # logged in as a verified user</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  "interpret": {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  ".js": "protocol-lws-messageboard"</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  }</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  }, {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  # things in here can only be served if logged in as admin</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  "mountpoint": "/lwsgs/needadmin",</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  "origin": "file:///usr/share/libwebsockets-test-server/generic-sessions/needadmin",</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  "origin": "callback://protocol-lws-messageboard",</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  "default": "generic-sessions-login-example.html",</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  "auth-mask": "7", # b2 = verified (by email / or admin), b1 = admin, b0 = logged in with any user name</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  "interpret": {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  ".js": "protocol-lws-messageboard"</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  }</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  }</div></div><!-- fragment --><p> Note that the name of the real application protocol that uses generic-sessions is used, not generic-sessions itself.</p>
|
||||
<p>The vhost configures the storage dir, admin credentials and session cookie lifetimes:</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  "ws-protocols": [{</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  "protocol-generic-sessions": {</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  "status": "ok",</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  "admin-user": "admin",</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> # create the pw hash like this (for the example pw, "jipdocesExunt" )</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> # $ echo -n "jipdocesExunt" | sha1sum</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> # 046ce9a9cca769e85798133be06ef30c9c0122c9 -</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> #</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> # Obviously ** change this password hash to a secret one before deploying **</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> #</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  "admin-password-sha1": "046ce9a9cca769e85798133be06ef30c9c0122c9",</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  "session-db": "/var/www/sessions/lws.sqlite3",</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  "timeout-idle-secs": "600",</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  "timeout-anon-idle-secs": "1200",</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  "timeout-absolute-secs": "6000",</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> # the confounder is part of the salted password hashes. If this config</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> # file is in a 0700 root:root dir, an attacker with apache credentials</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> # will have to get the confounder out of the process image to even try</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> # to guess the password hashes.</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  "confounder": "Change to <=31 chars of junk",</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  "email-from": "noreply@example.com",</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  "email-smtp-ip": "127.0.0.1",</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  "email-expire": "3600",</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  "email-helo": "myhost.com",</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  "email-contact-person": "Set Me <real-person@email.com>",</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  "email-confirm-url-base": "http://localhost:7681/lwsgs"</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  }</div></div><!-- fragment --><p>The email- related settings control generation of automatic emails for registration and forgotten password.</p>
|
||||
<ul>
|
||||
<li><code>email-from</code>: The email address automatic emails are sent from</li>
|
||||
<li><code>email-smtp-ip</code>: Normally 127.0.0.1, if you have a suitable server on port 25 on your lan you can use this instead here.</li>
|
||||
<li><code>email-expire</code>: Seconds that links sent in email will work before being deleted</li>
|
||||
<li><code>email-helo</code>: HELO to use when communicating with your SMTP server</li>
|
||||
<li><code>email-contact-person</code>: mentioned in the automatic emails as a human who can answer questions</li>
|
||||
<li><code>email-confirm-url-base</code>: the URL to start links with in the emails, so the recipient can get back to the web server</li>
|
||||
</ul>
|
||||
<p>The real protocol that makes use of generic-sessions must also be listed and any configuration it needs given</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> "protocol-lws-messageboard": {</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  "status": "ok",</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  "message-db": "/var/www/sessions/messageboard.sqlite3"</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> },</div></div><!-- fragment --><p>Notice the real application uses his own sqlite db, no details about how generic-sessions works or how it stores data are available to it.</p>
|
||||
<h1><a class="anchor" id="gspwc"></a>
|
||||
Lwsgs Password Confounder</h1>
|
||||
<p>You can also define a per-vhost confounder shown in the example above, used when aggregating the password with the salt when it is hashed. Any attacker will also need to get the confounder along with the database, which you can make harder by making the config dir only eneterable / readable by root.</p>
|
||||
<h1><a class="anchor" id="gsprep"></a>
|
||||
Lwsgs Preparing the db directory</h1>
|
||||
<p>You will have to prepare the db directory so it's suitable for the lwsws user to use, that usually means apache, eg</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> # mkdir -p /var/www/sessions</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> # chown root:apache /var/www/sessions</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> # chmod 770 /var/www/sessions</div></div><!-- fragment --><h1><a class="anchor" id="gsrmail"></a>
|
||||
Lwsgs Email configuration</h1>
|
||||
<p>lwsgs will can send emails by talking to an SMTP server on localhost:25. That will usually be sendmail or postfix, you should confirm that works first by itself using the <code>mail</code> application to send on it.</p>
|
||||
<p>lwsgs has been tested on stock Fedora sendmail and postfix.</p>
|
||||
<h1><a class="anchor" id="gsap"></a>
|
||||
Lwsgs Integration with another protocol</h1>
|
||||
<p>lwsgs is designed to provide sessions and accounts in a standalone and generic way.</p>
|
||||
<p>But it's not useful by itself, there will always be the actual application who wants to make use of generic-sessions features.</p>
|
||||
<p>We provide the "messageboard" plugin as an example of how to integrate with your actual application protocol.</p>
|
||||
<p>The basic approach is the 'real' protocol handler (usually a plugin itself) subclasses the generic-sessions plugin and calls through to it by default.</p>
|
||||
<p>The "real" protocol handler entirely deals with ws-related stuff itself, since generic-sessions does not use ws. But for</p>
|
||||
<ul>
|
||||
<li>LWS_CALLBACK_HTTP</li>
|
||||
<li>LWS_CALLBACK_HTTP_BODY</li>
|
||||
<li>LWS_CALLBACK_HTTP_BODY_COMPLETION</li>
|
||||
<li>LWS_CALLBACK_HTTP_DROP_PROTOCOL</li>
|
||||
</ul>
|
||||
<p>the "real" protocol handler checks if it recognizes the activity (eg, his own POST form URL) and if not, passes stuff through to the generic-sessions protocol callback to handle it. To simplify matters the real protocol can just pass through any unhandled messages to generic-sessions.</p>
|
||||
<p>The "real" protocol can get a pointer to generic-sessions protocol on the same vhost using</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> vhd->gsp = lws_vhost_name_to_protocol(vhd->vh, "protocol-generic-sessions");</div></div><!-- fragment --><p>The "real" protocol must also arrange generic-sessions per_session_data in his own per-session allocation. To allow keeping generic-sessions opaque, the real protocol must allocate that space at runtime, using the pss size the generic-sessions protocol struct exposes</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> struct per_session_data__myapp {</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  void *pss_gs;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> ...</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> </div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  pss->pss_gs = malloc(vhd->gsp->per_session_data_size);</div></div><!-- fragment --><p>The allocation reserved for generic-sessions is then used as user_space when the real protocol calls through to the generic-sessions callback</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> vhd->gsp->callback(wsi, reason, &pss->pss_gs, in, len);</div></div><!-- fragment --><p>In that way the "real" protocol can subclass generic-sessions functionality.</p>
|
||||
<p>To ease management of these secondary allocations, there are callbacks that occur when a wsi binds to a protocol and when the binding is dropped. These should be used to malloc and free and kind of per-connection secondary allocations.</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> case LWS_CALLBACK_HTTP_BIND_PROTOCOL:</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  if (!pss || pss->pss_gs)</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  break;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> </div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  pss->pss_gs = malloc(vhd->gsp->per_session_data_size);</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  if (!pss->pss_gs)</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  return -1;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  memset(pss->pss_gs, 0, vhd->gsp->per_session_data_size);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  break;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> case LWS_CALLBACK_HTTP_DROP_PROTOCOL:</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  if (vhd->gsp->callback(wsi, reason, pss ? pss->pss_gs : NULL, in, len))</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  return -1;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  if (pss->pss_gs) {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  free(pss->pss_gs);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  pss->pss_gs = NULL;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  }</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  break;</div></div><!-- fragment --><p>#section gsapsib Getting session-specific information from another protocol</p>
|
||||
<p>At least at the time when someone tries to upgrade an http(s) connection to ws(s) with your real protocol, it is necessary to confirm the cookie the http(s) connection has with generic-sessions and find out his username and other info.</p>
|
||||
<p>Generic sessions lets another protocol check it again by calling his callback, and lws itself provides a generic session info struct to pass the related data</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> struct lws_session_info {</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  char username[32];</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  char email[100];</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  char ip[72];</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  unsigned int mask;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  char session[42];</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> };</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> struct lws_session_info sinfo;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> ...</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> vhd->gsp->callback(wsi, LWS_CALLBACK_SESSION_INFO,</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  &pss->pss_gs, &sinfo, 0);</div></div><!-- fragment --><p>After the call to generic-sessions, the results can be</p>
|
||||
<ul>
|
||||
<li>all the strings will be zero-length and .mask zero, there is no usable cookie<ul>
|
||||
<li>only .ip and .session are set: the cookie is OK but no user logged in</li>
|
||||
<li>all the strings contain information about the logged-in user</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>the real protocol can use this to reject attempts to open ws connections from http connections that are not authenticated; afterwards there's no need to check the ws connection auth status again. </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.11 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,171 +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.11"/>
|
||||
<title>libwebsockets: Notes about generic-table</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(initResizable);
|
||||
$(window).load(resizeHeight);
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">libwebsockets
|
||||
</div>
|
||||
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.11 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){initNavTree('md_README.generic-table.html','');});
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Notes about generic-table </div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><h1><a class="anchor" id="gtint"></a>
|
||||
What is generic-table?</h1>
|
||||
<p>Generic-table is a JSON schema and client-side JS file that makes it easy to display live, table structured HTML over a ws link.</p>
|
||||
<p>An example plugin and index.html using it are provided, but lwsgt itself doesn't have its own plugin, it's just a JSON schema and client-side JS that other plugins can use to simplify displaying live, table-based data without having to reinvent the wheel each time.</p>
|
||||
<p>The ws protocol sends JSON describing the table, and then JSON updating the table contents when it chooses, the brower table is updated automatically, live.</p>
|
||||
<div class="image">
|
||||
<img src="lwsgt-overview.png" alt="lwsgt-overview.png"/>
|
||||
</div>
|
||||
<ul>
|
||||
<li>Example protocol plugin (displays directory contents): <a href="https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/protocol_table_dirlisting.c">https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/protocol_table_dirlisting.c</a></li>
|
||||
<li>Example HTML: <a href="https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/assets/index.html">https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/assets/index.html</a></li>
|
||||
<li>lwsgt.js (client-side table rendering / ws link management): <a href="https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/assets/lwsgt.js">https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/assets/lwsgt.js</a></li>
|
||||
</ul>
|
||||
<h1><a class="anchor" id="gteb"></a>
|
||||
Enabling for build</h1>
|
||||
<p>Enable the demo plugin at CMake with -DLWS_WITH_PLUGINS=1</p>
|
||||
<h1><a class="anchor" id="gtinth"></a>
|
||||
Integrating with your html</h1>
|
||||
<ul>
|
||||
<li>In your HEAD section, include lwsgt.js</li>
|
||||
</ul>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <script src="lwsgt.js"></script></div></div><!-- fragment --><ul>
|
||||
<li>Also in your HEAD section, style the lwsgt CSS, eg</li>
|
||||
</ul>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <style></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> .lwsgt_title { font-size: 24; text-align:center }</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> .lwsgt_breadcrumbs { font-size: 18; text-align:left }</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> .lwsgt_table { font-size: 14; padding:12px; margin: 12px; align:center }</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> .lwsgt_hdr { font-size: 18; text-align:center;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  background-color: rgba(40, 40, 40, 0.8); color: white }</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> .lwsgt_tr { padding: 10px }</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> .lwsgt_td { padding: 3px }</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </style></div></div><!-- fragment --><p>You can skip this but the result will be less beautiful until some CSS is provided.</p>
|
||||
<ul>
|
||||
<li>In your body section, declare a div with an id (can be whatever you want)</li>
|
||||
</ul>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <tr><td><div id="lwsgt1" class="group1"></div></td></tr></div></div><!-- fragment --><p>lwsgt JS will put its content there.</p>
|
||||
<ul>
|
||||
<li>Finally in a <script> at the end of your page, instantiate lwsgt and provide a custom callback for clickable links</li>
|
||||
</ul>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <script></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> var v1 = new lwsgt_initial("Dir listing demo",</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  "protocol-lws-table-dirlisting",</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  "lwsgt1", "lwsgt_dir_click", "v1");</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> function lwsgt_dir_click(gt, u, col, row)</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> {</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  if (u[0] == '=') { /* change directory */</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  window[gt].lwsgt_ws.send(u.substring(1, u.length));</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  return;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  }</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  var win = window.open(u, '_blank');</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  win.focus();</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> }</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </script></div></div><!-- fragment --><p>In the callback, you can recover the ws object by <code>window[gt].lwsgt_ws</code>.</p>
|
||||
<h1><a class="anchor" id="gtc"></a>
|
||||
Lwsgt constructor</h1>
|
||||
<p>To instantiate the ws link and lwsgt instance, your HTML must call a lwsgt constructor for each region on the page managed by lwsgt.</p>
|
||||
<p><code>var myvar = new lwsgt_initial(title, ws_protocol, div_id, click_cb, myvar);</code></p>
|
||||
<p>All of the arguments are strings.</p>
|
||||
<table class="doxtable">
|
||||
<tr>
|
||||
<th>Parameter </th><th>Description </th></tr>
|
||||
<tr>
|
||||
<td>title </td><td>Title string to go above the table </td></tr>
|
||||
<tr>
|
||||
<td>ws_protocol </td><td>Protocol name string to use when making ws connection </td></tr>
|
||||
<tr>
|
||||
<td>div_id </td><td>HTML id of div to fill with content </td></tr>
|
||||
<tr>
|
||||
<td>click_cb </td><td>Callback function name string to handle clickable links </td></tr>
|
||||
<tr>
|
||||
<td>myvar </td><td>Name of var used to hold this instantiation globally </td></tr>
|
||||
</table>
|
||||
<p>Note "myvar" is needed so it can be passed to the click handling callback.</p>
|
||||
<h1><a class="anchor" id="gtclick"></a>
|
||||
Lwsgt click handling function</h1>
|
||||
<p>When a clickable link produced by lwsgt is clicked, the function named in the click_cb parameter to lwsgt_initial is called.</p>
|
||||
<p>That function is expected to take four parameters, eg</p>
|
||||
<p><code>function lwsgt_dir_click(gt, u, col, row)</code></p>
|
||||
<table class="doxtable">
|
||||
<tr>
|
||||
<th>Parameter </th><th>Description </th></tr>
|
||||
<tr>
|
||||
<td>gt </td><td>Name of global var holding this lwsgt context (ie, myvar) </td></tr>
|
||||
<tr>
|
||||
<td>u </td><td>Link "url" string </td></tr>
|
||||
<tr>
|
||||
<td>col </td><td>Table column number link is from </td></tr>
|
||||
<tr>
|
||||
<td>row </td><td>Table row number link is from </td></tr>
|
||||
</table>
|
||||
<h1><a class="anchor" id="gtgj"></a>
|
||||
Generic-table JSON</h1>
|
||||
<h3>Column layout</h3>
|
||||
<p>When the ws connection is established, the protocol should send a JSON message describing the table columns. For example</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> "cols": [</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  { "name": "Date" },</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  { "name": "Size", "align": "right" },</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  { "name": "Icon" },</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  { "name": "Name", "href": "uri"},</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  { "name": "uri", "hide": "1" }</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  ]</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> }</div></div><!-- fragment --><ul>
|
||||
<li>This describes 5 columns</li>
|
||||
<li>Only four columns (not "uri") should be visible</li>
|
||||
<li>"Name" should be presented as a clickable link using "uri" as the destination, when a "uri" field is presented.</li>
|
||||
<li>"Size" field should be presented aligned to the right</li>
|
||||
</ul>
|
||||
<h3>Breadcrumbs</h3>
|
||||
<p>When a view is hierarchical, it's useful to provide a "path" with links back in the "path", known as "breadcrumbs".</p>
|
||||
<p>Elements before the last one should provide a "url" member as well as the displayable name, which is used to create the link destination.</p>
|
||||
<p>The last element, being the current displayed page should not have a url member and be displayed without link style.</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> "breadcrumbs":[{"name":"top", "url": "/" }, {"name":"mydir"}]</div></div><!-- fragment --><h3>Table data</h3>
|
||||
<p>The actual file data consists of an array of rows, containing the columns mentioned in the original "cols" section.</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> "data":[</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  {</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  "Icon":" ",</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  "Date":"2015-Feb-06 03:08:35 +0000",</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  "Size":"1406",</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  "uri":"./serve//favicon.ico",</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  "Name":"favicon.ico"</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  }</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> ]</div></div><!-- fragment --><h1><a class="anchor" id="gtdirl"></a>
|
||||
Setting up protocol-lws-table-dirlisting</h1>
|
||||
<p>The example protocol needs two mounts, one to provide the index.html, js and the protocol itself</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> {</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  "mountpoint": "/dirtest",</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  "origin": "file:///usr/share/libwebsockets-test-server/generic-table",</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  "origin": "callback://protocol-lws-table-dirlisting",</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  "default": "index.html",</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  "pmo": [{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  "dir": "/usr/share/libwebsockets-test-server"</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  }]</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> },</div></div><!-- fragment --><p>The protocol wants a per-mount option (PMO) to tell it the base directory it is serving from, named "dir".</p>
|
||||
<p>The other mount is there to simply serve items that get clicked on from the table in a secure way</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> {</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  "mountpoint": "/dirtest/serve",</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  "origin": "file:///usr/share/libwebsockets-test-server",</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  "default": "index.html"</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> },</div></div><!-- fragment --><p>This last bit is not related to using lwsgt itself. </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.11 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because one or more lines are too long
|
@ -1,105 +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.11"/>
|
||||
<title>libwebsockets: Debugging problems</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(initResizable);
|
||||
$(window).load(resizeHeight);
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">libwebsockets
|
||||
</div>
|
||||
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.11 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){initNavTree('md_README.problems.html','');});
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Debugging problems </div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><h2>Library is a component </h2>
|
||||
<p>As a library, lws is always just a component in a bigger application.</p>
|
||||
<p>When users have a problem involving lws, what is happening in the bigger application is usually critical to understand what is going on (and where the solution lies).</p>
|
||||
<p>Many users are able to share their sources, but others decide not to, for presumed "commercial advantage" or whatever. (In any event, it can be painful looking through large chunks of someone else's sources for problems when that is not the library author's responsibility.)</p>
|
||||
<p>This makes answering questions like "what is wrong with my code I am not
|
||||
going to show you?" or even "what is wrong with my code?" very difficult.</p>
|
||||
<p>Even if it's clear there is a problem somewhere, it cannot be understood or reproduced by anyone else if it needs user code that isn't provided.</p>
|
||||
<p>The biggest question is, "is this an lws problem actually"?</p>
|
||||
<h2>Use the test apps as sanity checks </h2>
|
||||
<p>The test server and client are extremely useful for sanity checks and debugging guidance.</p>
|
||||
<ul>
|
||||
<li>test apps work on your platform, then either<ul>
|
||||
<li>your user code is broken, align it to how the test apps work, or,</li>
|
||||
<li>something from your code is required to show an lws problem, provide a minimal patch on a test app so it can be reproduced</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>test apps break on your platform, but work on, eg, x86_64, either<ul>
|
||||
<li>toolchain or platform-specific (eg, OS) issue, or</li>
|
||||
<li>lws platform support issue</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>test apps break everywhere<ul>
|
||||
<li>sounds like lws problem, info to reproduce and / or a patch is appreciated </li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</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.11 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,189 +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.11"/>
|
||||
<title>libwebsockets: Overview of lws test apps</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="resize.js"></script>
|
||||
<script type="text/javascript" src="navtreedata.js"></script>
|
||||
<script type="text/javascript" src="navtree.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(initResizable);
|
||||
$(window).load(resizeHeight);
|
||||
</script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectlogo"><img alt="Logo" src="libwebsockets.org-logo.png"/></td>
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">libwebsockets
|
||||
</div>
|
||||
<div id="projectbrief">Lightweight C library for HTML5 websockets</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.11 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){initNavTree('md_README.test-apps.html','');});
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Overview of lws test apps </div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><p>Are you building a client? You just need to look at the test client <a href="test-server/test-client.c">libwebsockets-test-client</a>.</p>
|
||||
<p>If you are building a standalone server, there are three choices, in order of preferability.</p>
|
||||
<p>1) lwsws + protocol plugins</p>
|
||||
<p>Lws provides a generic web server app that can be configured with JSON config files. <a href="https://libwebsockets.org">https://libwebsockets.org</a> itself uses this method.</p>
|
||||
<p>With lwsws handling the serving part, you only need to write an lws protocol plugin. See [plugin-standalone](plugin-standalone) for an example of how to do that outside lws itself, using lws public apis.</p>
|
||||
<p>$ cmake .. -DLWS_WITH_LWSWS=1</p>
|
||||
<p>See <a class="el" href="md_README.lwsws.html">README.lwsws.md</a> for information on how to configure lwsws.</p>
|
||||
<p>NOTE this method implies libuv is used by lws, to provide crossplatform implementations of timers, dynamic lib loading etc for plugins and lwsws.</p>
|
||||
<p>2) test-server-v2.0.c</p>
|
||||
<p>This method lets you configure web serving in code, instead of using lwsws.</p>
|
||||
<p>Plugins are still used, which implies libuv needed.</p>
|
||||
<p>$ cmake .. -DLWS_WITH_PLUGINS=1</p>
|
||||
<p>See <a href="test-server/test-server-v2.0.c">test-server-v2.0.c</a></p>
|
||||
<p>3) protocols in the server app</p>
|
||||
<p>This is the original way lws implemented servers, plugins and libuv are not required, but without plugins separating the protocol code directly, the combined code is all squidged together and is much less maintainable.</p>
|
||||
<p>This method is still supported in lws but all ongoing and future work is being done in protocol plugins only.</p>
|
||||
<h1>Notes about lws test apps </h1>
|
||||
<h1><a class="anchor" id="tsb"></a>
|
||||
Testing server with a browser</h1>
|
||||
<p>If you run <a href="test-server/test-server.c">libwebsockets-test-server</a> and point your browser (eg, Chrome) to </p><pre class="fragment"> http://127.0.0.1:7681
|
||||
</pre><p>It will fetch a script in the form of <code>test.html</code>, and then run the script in there on the browser to open a websocket connection. Incrementing numbers should appear in the browser display.</p>
|
||||
<p>By default the test server logs to both stderr and syslog, you can control what is logged using <code>-d <log level></code>, see later.</p>
|
||||
<h1><a class="anchor" id="tsd"></a>
|
||||
Running test server as a Daemon</h1>
|
||||
<p>You can use the -D option on the test server to have it fork into the background and return immediately. In this daemonized mode all stderr is disabled and logging goes only to syslog, eg, <code>/var/log/messages</code> or similar.</p>
|
||||
<p>The server maintains a lockfile at <code>/tmp/.lwsts-lock</code> that contains the pid of the master process, and deletes this file when the master process terminates.</p>
|
||||
<p>To stop the daemon, do </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ kill cat /tmp/.lwsts-lock </div></div><!-- fragment --><p> If it finds a stale lock (the pid mentioned in the file does not exist any more) it will delete the lock and create a new one during startup.</p>
|
||||
<p>If the lock is valid, the daemon will exit with a note on stderr that it was already running.</p>
|
||||
<h1><a class="anchor" id="sssl"></a>
|
||||
Using SSL on the server side</h1>
|
||||
<p>To test it using SSL/WSS, just run the test server with </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ libwebsockets-test-server --ssl</div></div><!-- fragment --><p> and use the URL </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> https://127.0.0.1:7681</div></div><!-- fragment --><p> The connection will be entirely encrypted using some generated certificates that your browser will not accept, since they are not signed by any real Certificate Authority. Just accept the certificates in the browser and the connection will proceed in first https and then websocket wss, acting exactly the same.</p>
|
||||
<p><a href="test-server/test-server.c">test-server.c</a> is all that is needed to use libwebsockets for serving both the script html over http and websockets.</p>
|
||||
<h1><a class="anchor" id="wscl"></a>
|
||||
Testing websocket client support</h1>
|
||||
<p>If you run the test server as described above, you can also connect to it using the test client as well as a browser.</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ libwebsockets-test-client localhost</div></div><!-- fragment --><p>will by default connect to the test server on localhost:7681 and print the dumb increment number from the server at the same time as drawing random circles in the mirror protocol; if you connect to the test server using a browser at the same time you will be able to see the circles being drawn.</p>
|
||||
<p>The test client supports SSL too, use</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ libwebsockets-test-client localhost --ssl -s</div></div><!-- fragment --><p>the -s tells it to accept the default self-signed cert from the server, otherwise it will strictly fail the connection if there is no CA cert to validate the server's certificate.</p>
|
||||
<h1><a class="anchor" id="choosingts"></a>
|
||||
Choosing between test server variations</h1>
|
||||
<p>If you will be doing standalone serving with lws, ideally you should avoid making your own server at all, and use lwsws with your own protocol plugins.</p>
|
||||
<p>The second best option is follow test-server-v2.0.c, which uses a mount to autoserve a directory, and lws protocol plugins for ws, without needing any user callback code (other than what's needed in the protocol plugin).</p>
|
||||
<p>For those two options libuv is needed to support the protocol plugins, if that's not possible then the other variations with their own protocol code should be considered.</p>
|
||||
<h1><a class="anchor" id="echo"></a>
|
||||
Testing simple echo</h1>
|
||||
<p>You can test against <code>echo.websockets.org</code> as a sanity test like this (the client connects to port <code>80</code> by default):</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ libwebsockets-test-echo --client echo.websocket.org</div></div><!-- fragment --><p>This echo test is of limited use though because it doesn't negotiate any protocol. You can run the same test app as a local server, by default on localhost:7681 </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ libwebsockets-test-echo</div></div><!-- fragment --><p> and do the echo test against the local echo server </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ libwebsockets-test-echo --client localhost --port 7681</div></div><!-- fragment --><p> If you add the <code>--ssl</code> switch to both the client and server, you can also test with an encrypted link.</p>
|
||||
<h1><a class="anchor" id="tassl"></a>
|
||||
Testing SSL on the client side</h1>
|
||||
<p>To test SSL/WSS client action, just run the client test with </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ libwebsockets-test-client localhost --ssl</div></div><!-- fragment --><p> By default the client test applet is set to accept self-signed certificates used by the test server, this is indicated by the <code>use_ssl</code> var being set to <code>2</code>. Set it to <code>1</code> to reject any server certificate that it doesn't have a trusted CA cert for.</p>
|
||||
<h1><a class="anchor" id="taping"></a>
|
||||
Using the websocket ping utility</h1>
|
||||
<p>libwebsockets-test-ping connects as a client to a remote websocket server and pings it like the normal unix ping utility. </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ libwebsockets-test-ping localhost</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> handshake OK for protocol lws-mirror-protocol</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> Websocket PING localhost.localdomain (127.0.0.1) 64 bytes of data.</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> 64 bytes from localhost: req=1 time=0.1ms</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> 64 bytes from localhost: req=2 time=0.1ms</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> 64 bytes from localhost: req=3 time=0.1ms</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> 64 bytes from localhost: req=4 time=0.2ms</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> 64 bytes from localhost: req=5 time=0.1ms</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> 64 bytes from localhost: req=6 time=0.2ms</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> 64 bytes from localhost: req=7 time=0.2ms</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> 64 bytes from localhost: req=8 time=0.1ms</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> ^C</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> --- localhost.localdomain websocket ping statistics ---</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> 8 packets transmitted, 8 received, 0% packet loss, time 7458ms</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> rtt min/avg/max = 0.110/0.185/0.218 ms</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> $</div></div><!-- fragment --><p> By default it sends 64 byte payload packets using the 04 PING packet opcode type. You can change the payload size using the <code>-s=</code> flag, up to a maximum of 125 mandated by the 04 standard.</p>
|
||||
<p>Using the lws-mirror protocol that is provided by the test server, libwebsockets-test-ping can also use larger payload sizes up to 4096 is BINARY packets; lws-mirror will copy them back to the client and they appear as a PONG. Use the <code>-m</code> flag to select this operation.</p>
|
||||
<p>The default interval between pings is 1s, you can use the -i= flag to set this, including fractions like <code>-i=0.01</code> for 10ms interval.</p>
|
||||
<p>Before you can even use the PING opcode that is part of the standard, you must complete a handshake with a specified protocol. By default lws-mirror-protocol is used which is supported by the test server. But if you are using it on another server, you can specify the protocol to handshake with by <code>--protocol=protocolname</code></p>
|
||||
<h1><a class="anchor" id="ta"></a>
|
||||
fraggle Fraggle test app</h1>
|
||||
<p>By default it runs in server mode </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ libwebsockets-test-fraggle</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> libwebsockets test fraggle</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> (C) Copyright 2010-2011 Andy Green <andy@warmcat.com> licensed under LGPL2.1</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  Compiled with SSL support, not using it</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  Listening on port 7681</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> server sees client connect</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> accepted v06 connection</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> Spamming 360 random fragments</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> Spamming session over, len = 371913. sum = 0x2D3C0AE</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> Spamming 895 random fragments</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> Spamming session over, len = 875970. sum = 0x6A74DA1</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> ...</div></div><!-- fragment --><p> You need to run a second session in client mode, you have to give the <code>-c</code> switch and the server address at least: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ libwebsockets-test-fraggle -c localhost</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> libwebsockets test fraggle</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> (C) Copyright 2010-2011 Andy Green <andy@warmcat.com> licensed under LGPL2.1</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>  Client mode</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> Connecting to localhost:7681</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> denied deflate-stream extension</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> handshake OK for protocol fraggle-protocol</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> client connects to server</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> EOM received 371913 correctly from 360 fragments</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> EOM received 875970 correctly from 895 fragments</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> EOM received 247140 correctly from 258 fragments</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> EOM received 695451 correctly from 692 fragments</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> ...</div></div><!-- fragment --><p> The fraggle test sends a random number up to 1024 fragmented websocket frames each of a random size between 1 and 2001 bytes in a single message, then sends a checksum and starts sending a new randomly sized and fragmented message.</p>
|
||||
<p>The fraggle test client receives the same message fragments and computes the same checksum using websocket framing to see when the message has ended. It then accepts the server checksum message and compares that to its checksum.</p>
|
||||
<h1><a class="anchor" id="taproxy"></a>
|
||||
proxy support</h1>
|
||||
<p>The http_proxy environment variable is respected by the client connection code for both <code>ws://</code> and <code>wss://</code>. It doesn't support authentication.</p>
|
||||
<p>You use it like this </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ export http_proxy=myproxy.com:3128</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> $ libwebsockets-test-client someserver.com</div></div><!-- fragment --><h1><a class="anchor" id="talog"></a>
|
||||
debug logging</h1>
|
||||
<p>By default logging of severity "notice", "warn" or "err" is enabled to stderr.</p>
|
||||
<p>Again by default other logging is compiled in but disabled from printing.</p>
|
||||
<p>By default debug logs below "notice" in severity are not compiled in. To get them included, add this option in CMAKE</p>
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> $ cmake .. -DCMAKE_BUILD_TYPE=DEBUG</div></div><!-- fragment --><p>If you want to see more detailed debug logs, you can control a bitfield to select which logs types may print using the <code><a class="el" href="group__log.html#ga244647f9e1bf0097ccdde66d74f41e26">lws_set_log_level()</a></code> api, in the test apps you can use <code>-d <number></code> to control this. The types of logging available are (OR together the numbers to select multiple)</p>
|
||||
<ul>
|
||||
<li>1 ERR</li>
|
||||
<li>2 WARN</li>
|
||||
<li>4 NOTICE</li>
|
||||
<li>8 INFO</li>
|
||||
<li>16 DEBUG</li>
|
||||
<li>32 PARSER</li>
|
||||
<li>64 HEADER</li>
|
||||
<li>128 EXTENSION</li>
|
||||
<li>256 CLIENT</li>
|
||||
<li>512 LATENCY</li>
|
||||
</ul>
|
||||
<h1><a class="anchor" id="ws13"></a>
|
||||
Websocket version supported</h1>
|
||||
<p>The final IETF standard is supported for both client and server, protocol version 13.</p>
|
||||
<h1><a class="anchor" id="latency"></a>
|
||||
Latency Tracking</h1>
|
||||
<p>Since libwebsockets runs using <code>poll()</code> and a single threaded approach, any unexpected latency coming from system calls would be bad news. There's now a latency tracking scheme that can be built in with <code>--with-latency</code> at configure-time, logging the time taken for system calls to complete and if the whole action did complete that time or was deferred.</p>
|
||||
<p>You can see the detailed data by enabling logging level 512 (eg, <code>-d 519</code> on the test server to see that and the usual logs), however even without that the "worst" latency is kept and reported to the logs with NOTICE severity when the context is destroyed.</p>
|
||||
<p>Some care is needed interpreting them, if the action completed the first figure (in us) is the time taken for the whole action, which may have retried through the poll loop many times and will depend on network roundtrip times. High figures here don't indicate a problem. The figure in us reported after "lat" in the logging is the time taken by this particular attempt. High figures here may indicate a problem, or if you system is loaded with another app at that time, such as the browser, it may simply indicate the OS gave preferential treatment to the other app during that call.</p>
|
||||
<h1><a class="anchor" id="autobahn"></a>
|
||||
Autobahn Test Suite</h1>
|
||||
<p>Lws can be tested against the autobahn websocket fuzzer.</p>
|
||||
<p>1) pip install autobahntestsuite</p>
|
||||
<p>2) wstest -m fuzzingserver</p>
|
||||
<p>3) Run tests like this</p>
|
||||
<p>libwebsockets-test-echo –client localhost –port 9001 -u "/runCase?case=20&agent=libwebsockets" -v -d 65535 -n 1</p>
|
||||
<p>(this runs test 20)</p>
|
||||
<p>4) In a browser, go here</p>
|
||||
<p><a href="http://localhost:8080/test_browser.html">http://localhost:8080/test_browser.html</a></p>
|
||||
<p>fill in "libwebsockets" in "User Agent Identifier" and press "Update Reports (Manual)"</p>
|
||||
<p>5) In a browser go to the directory you ran wstest in (eg, /projects/libwebsockets)</p>
|
||||
<p><a href="file:///projects/libwebsockets/reports/clients/index.html">file:///projects/libwebsockets/reports/clients/index.html</a></p>
|
||||
<p>to see the results</p>
|
||||
<h1><a class="anchor" id="autobahnnotes"></a>
|
||||
Autobahn Test Notes</h1>
|
||||
<p>1) Autobahn tests the user code + lws implementation. So to get the same results, you need to follow test-echo.c in terms of user implementation.</p>
|
||||
<p>2) Two of the tests make no sense for Libwebsockets to support and we fail them.</p>
|
||||
<ul>
|
||||
<li>Tests 2.10 + 2.11: sends multiple pings on one connection. Lws policy is to only allow one active ping in flight on each connection, the rest are dropped. The autobahn test itself admits this is not part of the standard, just someone's random opinion about how they think a ws server should act. So we will fail this by design and it is no problem about RFC6455 compliance. </li>
|
||||
</ul>
|
||||
</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.11 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Notes about building lws</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -88,7 +88,9 @@ Building on Unix:</h1>
|
|||
<li>Generate the build files (default is Make files): <div class="fragment"><div class="line">$ cd /path/to/src</div><div class="line">$ mkdir build</div><div class="line">$ cd build</div><div class="line">$ cmake ..</div></div><!-- fragment --></li>
|
||||
<li>Finally you can build using the generated Makefile: <div class="fragment"><div class="line">$ make && sudo make install</div></div><!-- fragment --> <b>NOTE</b>: The <code>build/</code><code>directory can have any name and be located anywhere on your filesystem, and that the argument</code>..` given to cmake is simply the source directory of <b>libwebsockets</b> containing the <a href="CMakeLists.txt">CMakeLists.txt</a> project file. All examples in this file assumes you use ".."</li>
|
||||
</ol>
|
||||
<p><b>NOTE2</b>: A common option you may want to give is to set the install path, same as –prefix= with autotools. It defaults to /usr/local. You can do this by, eg </p><div class="fragment"><div class="line">$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .</div></div><!-- fragment --><p><b>NOTE3</b>: On machines that want libraries in lib64, you can also add the following to the cmake line </p><div class="fragment"><div class="line">-DLIB_SUFFIX=64</div></div><!-- fragment --><p><b>NOTE4</b>: If you are building against a non-distro OpenSSL (eg, in order to get access to ALPN support only in newer OpenSSL versions) the nice way to express that in one cmake command is eg, </p><div class="fragment"><div class="line">$ cmake .. -DOPENSSL_ROOT_DIR=/usr/local/ssl \</div><div class="line"> -DCMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE=/usr/local/ssl \</div><div class="line"> -DLWS_WITH_HTTP2=1</div></div><!-- fragment --><p>When you run the test apps using non-distro SSL, you have to force them to use your libs, not the distro ones </p><div class="fragment"><div class="line">$ LD_LIBRARY_PATH=/usr/local/ssl/lib libwebsockets-test-server --ssl</div></div><!-- fragment --><p>To get it to build on latest openssl (2016-04-10) it needed this approach </p><div class="fragment"><div class="line">cmake .. -DLWS_WITH_HTTP2=1 -DLWS_OPENSSL_INCLUDE_DIRS=/usr/local/include/openssl -DLWS_OPENSSL_LIBRARIES="/usr/local/lib64/libssl.so;/usr/local/lib64/libcrypto.so"</div></div><!-- fragment --><p><b>NOTE5</b>: To build with debug info and _DEBUG for lower priority debug messages compiled in, use </p><div class="fragment"><div class="line">$ cmake .. -DCMAKE_BUILD_TYPE=DEBUG</div></div><!-- fragment --><p><b>NOTE6</b> To build on Solaris the linker needs to be informed to use lib socket and libnsl, and only builds in 64bit mode.</p>
|
||||
<p><b>NOTE2</b>: A common option you may want to give is to set the install path, same as –prefix= with autotools. It defaults to /usr/local. You can do this by, eg </p><div class="fragment"><div class="line">$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr .</div></div><!-- fragment --><p><b>NOTE3</b>: On machines that want libraries in lib64, you can also add the following to the cmake line </p><div class="fragment"><div class="line">-DLIB_SUFFIX=64</div></div><!-- fragment --><p><b>NOTE4</b>: If you are building against a non-distro OpenSSL (eg, in order to get access to ALPN support only in newer OpenSSL versions) the nice way to express that in one cmake command is eg, </p><div class="fragment"><div class="line">$ cmake .. -DOPENSSL_ROOT_DIR=/usr/local/ssl \</div><div class="line"> -DCMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE=/usr/local/ssl \</div><div class="line"> -DLWS_WITH_HTTP2=1</div></div><!-- fragment --><p>When you run the test apps using non-distro SSL, you have to force them to use your libs, not the distro ones </p><div class="fragment"><div class="line">$ LD_LIBRARY_PATH=/usr/local/ssl/lib libwebsockets-test-server --ssl</div></div><!-- fragment --><p>To get it to build on latest openssl (2016-04-10) it needed this approach </p><div class="fragment"><div class="line">cmake .. -DLWS_WITH_HTTP2=1 -DLWS_OPENSSL_INCLUDE_DIRS=/usr/local/include/openssl -DLWS_OPENSSL_LIBRARIES="/usr/local/lib64/libssl.so;/usr/local/lib64/libcrypto.so"</div></div><!-- fragment --><p>Mac users have reported</p>
|
||||
<div class="fragment"><div class="line">$ export OPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2k; cmake ..; make -j4</div></div><!-- fragment --><p>worked for them when using "homebrew" OpenSSL</p>
|
||||
<p><b>NOTE5</b>: To build with debug info and _DEBUG for lower priority debug messages compiled in, use </p><div class="fragment"><div class="line">$ cmake .. -DCMAKE_BUILD_TYPE=DEBUG</div></div><!-- fragment --><p><b>NOTE6</b> To build on Solaris the linker needs to be informed to use lib socket and libnsl, and only builds in 64bit mode.</p>
|
||||
<div class="fragment"><div class="line">$ cmake .. -DCMAKE_C_FLAGS=-m64 -DCMAKE_EXE_LINKER_FLAGS="-lsocket -lnsl"</div></div><!-- fragment --><ol type="1">
|
||||
<li>Finally you can build using the generated Makefile:</li>
|
||||
</ol>
|
||||
|
@ -191,7 +193,7 @@ Reproducing HTTP2.0 tests</h1>
|
|||
Cross compiling</h1>
|
||||
<p>To enable cross-compiling <b>libwebsockets</b> using CMake you need to create a "Toolchain file" that you supply to CMake when generating your build files. CMake will then use the cross compilers and build paths specified in this file to look for dependencies and such.</p>
|
||||
<p><b>Libwebsockets</b> includes an example toolchain file <a href="cross-arm-linux-gnueabihf.cmake">cross-arm-linux-gnueabihf.cmake</a> you can use as a starting point.</p>
|
||||
<p>The commandline to configure for cross with this would look like </p><div class="fragment"><div class="line">$ cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr \</div><div class="line"> -DCMAKE_TOOLCHAIN_FILE=../cross-arm-linux-gnueabihf.cmake \</div><div class="line"> -DWITHOUT_EXTENSIONS=1 -DWITH_SSL=0</div></div><!-- fragment --><p> The example shows how to build with no external cross lib dependencies, you need to provide the cross libraries otherwise.</p>
|
||||
<p>The commandline to configure for cross with this would look like </p><div class="fragment"><div class="line">$ cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr \</div><div class="line"> -DCMAKE_TOOLCHAIN_FILE=../cross-arm-linux-gnueabihf.cmake \</div><div class="line"> -DLWS_WITHOUT_EXTENSIONS=1 -DLWS_WITH_SSL=0</div></div><!-- fragment --><p> The example shows how to build with no external cross lib dependencies, you need to provide the cross libraries otherwise.</p>
|
||||
<p><b>NOTE</b>: start from an EMPTY build directory if you had a non-cross build in there before the settings will be cached and your changes ignored.</p>
|
||||
<p>Additional information on cross compilation with CMake: <a href="http://www.vtk.org/Wiki/CMake_Cross_Compiling">http://www.vtk.org/Wiki/CMake_Cross_Compiling</a></p>
|
||||
<h1><a class="anchor" id="mem"></a>
|
||||
|
@ -228,7 +230,7 @@ Memory efficiency</h1>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Notes about coding with lws</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -78,9 +78,9 @@ Libwebsockets is singlethreaded</h1>
|
|||
<p>Directly performing websocket actions from other threads is not allowed. Aside from the internal data being inconsistent in <code>forked()</code> processes, the scope of a <code>wsi</code> (<code>struct websocket</code>) can end at any time during service with the socket closing and the <code>wsi</code> freed.</p>
|
||||
<p>Websocket write activities should only take place in the <code>LWS_CALLBACK_SERVER_WRITEABLE</code> callback as described below.</p>
|
||||
<p>[This network-programming necessity to link the issue of new data to the peer taking the previous data is not obvious to all users so let's repeat that in other words:</p>
|
||||
<p>***ONLY DO LWS_WRITE FROM THE WRITEABLE CALLBACK***</p>
|
||||
<p><em><b>ONLY DO LWS_WRITE FROM THE WRITEABLE CALLBACK</b></em></p>
|
||||
<p>There is another network-programming truism that surprises some people which is if the sink for the data cannot accept more:</p>
|
||||
<p>***YOU MUST PERFORM RX FLOW CONTROL***</p>
|
||||
<p><em><b>YOU MUST PERFORM RX FLOW CONTROL</b></em></p>
|
||||
<p>See the mirror protocol implementations for example code.</p>
|
||||
<p>Only live connections appear in the user callbacks, so this removes any possibility of trying to used closed and freed wsis.</p>
|
||||
<p>If you need to service other socket or file descriptors as well as the websocket ones, you can combine them together with the websocket ones in one poll loop, see "External Polling Loop support" below, and still do it all in one thread / process context.</p>
|
||||
|
@ -276,7 +276,7 @@ Dimming webpage when connection lost</h1>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Notes about generic-sessions Plugin</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -173,7 +173,7 @@ Lwsgs Integration with another protocol</h1>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Notes about generic-table</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -163,7 +163,7 @@ Setting up protocol-lws-table-dirlisting</h1>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Notes about lwsws</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -190,7 +190,7 @@ Lwsws Integration with logrotate</h1>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Debugging problems</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -97,7 +97,7 @@ going to show you?" or even "what is wrong with my code?" very difficult.</p>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Overview of lws test apps</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -181,7 +181,7 @@ Autobahn Test Notes</h1>
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Modules</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -106,7 +106,7 @@ $(document).ready(function(){initNavTree('modules.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -15,7 +15,7 @@ var NAVTREEINDEX1 =
|
|||
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[11,0,0,0,26,9],
|
||||
"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[9,4,3,9],
|
||||
"group__ev.html":[9,21],
|
||||
"group__ev.html#ga3b0ffd4d2b4fa791c0fd75353a330208":[11,0,0,0,9],
|
||||
"group__ev.html#ga3fd389d64c6fa45a3c1427d2f6988741":[11,0,0,0,9],
|
||||
"group__ev.html#ga3fdd23ded693b21853356dc9eaef5ccc":[11,0,0,0,80],
|
||||
"group__ev.html#ga5caf14a420a2a0bd687a1fc952f8d64e":[11,0,0,0,82],
|
||||
"group__ev.html#gaabfc0880d6a98133550c61aa01ef3563":[11,0,0,0,81],
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: Related Pages</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -83,7 +83,7 @@ $(document).ready(function(){initNavTree('pages.html','');});
|
|||
<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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -101,6 +101,7 @@ function initResizable()
|
|||
}
|
||||
var width = readCookie('width');
|
||||
if (width) { restoreWidth(width); } else { resizeWidth(); }
|
||||
resizeHeight();
|
||||
var url = location.href;
|
||||
var i=url.indexOf("#");
|
||||
if (i>=0) window.location.hash=url.substr(i);
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_cgi_args Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -82,7 +82,7 @@ Data Fields</h2></td></tr>
|
|||
</table>
|
||||
<h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="adeee220b29aeacc34632c38e50f0f5a5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#adeee220b29aeacc34632c38e50f0f5a5">§ </a></span>ch</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#adeee220b29aeacc34632c38e50f0f5a5">◆ </a></span>ch</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -97,7 +97,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a8ac842084688c02f3f94694ef700d8f7"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8ac842084688c02f3f94694ef700d8f7">§ </a></span>data</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8ac842084688c02f3f94694ef700d8f7">◆ </a></span>data</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -112,7 +112,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a741c11b9aa05997ec45a3400d7fb7739"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a741c11b9aa05997ec45a3400d7fb7739">§ </a></span>hdr_state</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a741c11b9aa05997ec45a3400d7fb7739">◆ </a></span>hdr_state</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -127,7 +127,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a36e5c256433c187bd0eaa9c1ca667f1d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a36e5c256433c187bd0eaa9c1ca667f1d">§ </a></span>len</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a36e5c256433c187bd0eaa9c1ca667f1d">◆ </a></span>len</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -142,7 +142,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a4ccc1058e7e914a26eef31ab2ad46aa1"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4ccc1058e7e914a26eef31ab2ad46aa1">§ </a></span>stdwsi</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4ccc1058e7e914a26eef31ab2ad46aa1">◆ </a></span>stdwsi</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -167,7 +167,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__cgi__args.html">lws_cgi_args</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_client_connect_info Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -112,7 +112,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</a> - parameters to connect with when using <a class="el" href="group__client.html#ga0c966136905f467816307cfba6deb5fd">lws_client_connect_via_info()</a> </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="ad47f50d1633dc5df74548606c9a66d73"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ad47f50d1633dc5df74548606c9a66d73">§ </a></span>_unused</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ad47f50d1633dc5df74548606c9a66d73">◆ </a></span>_unused</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -127,7 +127,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="aa364094f94ef1bcaaabbd9161971d502"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa364094f94ef1bcaaabbd9161971d502">§ </a></span>address</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa364094f94ef1bcaaabbd9161971d502">◆ </a></span>address</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -142,7 +142,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a7732b996e977393c3e1076be2a8ded6c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7732b996e977393c3e1076be2a8ded6c">§ </a></span>client_exts</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7732b996e977393c3e1076be2a8ded6c">◆ </a></span>client_exts</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -157,7 +157,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="afe999d133cc240a0bfd02aade0514cfd"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afe999d133cc240a0bfd02aade0514cfd">§ </a></span>context</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afe999d133cc240a0bfd02aade0514cfd">◆ </a></span>context</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -172,7 +172,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a9b36d47c3422329df32c21040a35ebc7"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9b36d47c3422329df32c21040a35ebc7">§ </a></span>host</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9b36d47c3422329df32c21040a35ebc7">◆ </a></span>host</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -187,7 +187,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a69abb5aeed755750b9755e5c91db6895"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a69abb5aeed755750b9755e5c91db6895">§ </a></span>ietf_version_or_minus_one</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a69abb5aeed755750b9755e5c91db6895">◆ </a></span>ietf_version_or_minus_one</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -202,7 +202,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="aa9e8e3da4e783a0651b0dea62c2dd1db"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa9e8e3da4e783a0651b0dea62c2dd1db">§ </a></span>method</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa9e8e3da4e783a0651b0dea62c2dd1db">◆ </a></span>method</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -217,7 +217,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a8595f83e64147cb687b6418cf500dd4c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8595f83e64147cb687b6418cf500dd4c">§ </a></span>origin</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8595f83e64147cb687b6418cf500dd4c">◆ </a></span>origin</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -232,7 +232,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a6843a60e1050b10db9d98d7eeb45f587"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6843a60e1050b10db9d98d7eeb45f587">§ </a></span>parent_wsi</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6843a60e1050b10db9d98d7eeb45f587">◆ </a></span>parent_wsi</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -247,7 +247,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a76a8388733f114fb8fd3643874781185"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a76a8388733f114fb8fd3643874781185">§ </a></span>path</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a76a8388733f114fb8fd3643874781185">◆ </a></span>path</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -262,7 +262,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a1af124d81c3c22a46d39387c5bc3d6b9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1af124d81c3c22a46d39387c5bc3d6b9">§ </a></span>port</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1af124d81c3c22a46d39387c5bc3d6b9">◆ </a></span>port</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -277,7 +277,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="aba35adfb74845a5fd0c3dc141cbdddd2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aba35adfb74845a5fd0c3dc141cbdddd2">§ </a></span>protocol</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aba35adfb74845a5fd0c3dc141cbdddd2">◆ </a></span>protocol</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -292,7 +292,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a065063b5117ecd0a59567c97f04bda2e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a065063b5117ecd0a59567c97f04bda2e">§ </a></span>pwsi</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a065063b5117ecd0a59567c97f04bda2e">◆ </a></span>pwsi</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -307,7 +307,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a9862297827639238a7a0b4054c3ddf3d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9862297827639238a7a0b4054c3ddf3d">§ </a></span>ssl_connection</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9862297827639238a7a0b4054c3ddf3d">◆ </a></span>ssl_connection</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -322,7 +322,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a03c305fdca809667b6a9a83b3edfd83a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a03c305fdca809667b6a9a83b3edfd83a">§ </a></span>uri_replace_from</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a03c305fdca809667b6a9a83b3edfd83a">◆ </a></span>uri_replace_from</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -337,7 +337,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a9959ba103d3d2484e559a9f7879eebe3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9959ba103d3d2484e559a9f7879eebe3">§ </a></span>uri_replace_to</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9959ba103d3d2484e559a9f7879eebe3">◆ </a></span>uri_replace_to</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -352,7 +352,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a9831b9f9ab54a1aec4bb15324f1c3836"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9831b9f9ab54a1aec4bb15324f1c3836">§ </a></span>userdata</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9831b9f9ab54a1aec4bb15324f1c3836">◆ </a></span>userdata</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -367,7 +367,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a3893181d728f326f9f5b47c1459cb8be"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3893181d728f326f9f5b47c1459cb8be">§ </a></span>vhost</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3893181d728f326f9f5b47c1459cb8be">◆ </a></span>vhost</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -392,7 +392,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__client__connect__info.html">lws_client_connect_info</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_context_creation_info Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -160,7 +160,7 @@ Data Fields</h2></td></tr>
|
|||
<p>If LWS_SERVER_OPTION_EXPLICIT_VHOSTS is given, then no vhosts are created at the same time as the context, they are expected to be created afterwards. </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="afce3b59950eca3203faa07381bbed5d7"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afce3b59950eca3203faa07381bbed5d7">§ </a></span>_unused</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afce3b59950eca3203faa07381bbed5d7">◆ </a></span>_unused</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -175,7 +175,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ae52f3237e144e9ddcab5e2cf91d1e419"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae52f3237e144e9ddcab5e2cf91d1e419">§ </a></span>count_threads</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae52f3237e144e9ddcab5e2cf91d1e419">◆ </a></span>count_threads</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -190,7 +190,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="afa5d4e7d9f86b58a1c6fac14f0a5f5f9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afa5d4e7d9f86b58a1c6fac14f0a5f5f9">§ </a></span>ecdh_curve</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afa5d4e7d9f86b58a1c6fac14f0a5f5f9">◆ </a></span>ecdh_curve</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -205,7 +205,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a4a3d1155fc52f5048b481884f6fb947c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4a3d1155fc52f5048b481884f6fb947c">§ </a></span>extensions</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4a3d1155fc52f5048b481884f6fb947c">◆ </a></span>extensions</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -220,7 +220,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a45e63e24c88289e0c8352377ef4d3646"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a45e63e24c88289e0c8352377ef4d3646">§ </a></span>fd_limit_per_thread</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a45e63e24c88289e0c8352377ef4d3646">◆ </a></span>fd_limit_per_thread</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -235,7 +235,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a9c9d22437de92c197f3cee52912b2c03"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9c9d22437de92c197f3cee52912b2c03">§ </a></span>gid</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9c9d22437de92c197f3cee52912b2c03">◆ </a></span>gid</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -250,7 +250,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a8ca0ec6b8675c13849bbdcdc0d50c9a3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8ca0ec6b8675c13849bbdcdc0d50c9a3">§ </a></span>headers</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8ca0ec6b8675c13849bbdcdc0d50c9a3">◆ </a></span>headers</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -265,7 +265,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="aef917c0b23976a264d2474901b4f5aa3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aef917c0b23976a264d2474901b4f5aa3">§ </a></span>http_proxy_address</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aef917c0b23976a264d2474901b4f5aa3">◆ </a></span>http_proxy_address</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -280,7 +280,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a7b59f2bdc869871e7bde232db94f5ca6"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7b59f2bdc869871e7bde232db94f5ca6">§ </a></span>http_proxy_port</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7b59f2bdc869871e7bde232db94f5ca6">◆ </a></span>http_proxy_port</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -295,7 +295,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a75434932bb5df54665ea678eb8ac104a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a75434932bb5df54665ea678eb8ac104a">§ </a></span>iface</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a75434932bb5df54665ea678eb8ac104a">◆ </a></span>iface</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -310,7 +310,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a381342a398883d6204955ff3c1849ddd"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a381342a398883d6204955ff3c1849ddd">§ </a></span>ka_interval</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a381342a398883d6204955ff3c1849ddd">◆ </a></span>ka_interval</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -325,7 +325,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a3baab4285c679fbe027c2504621d7410"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3baab4285c679fbe027c2504621d7410">§ </a></span>ka_probes</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3baab4285c679fbe027c2504621d7410">◆ </a></span>ka_probes</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -340,7 +340,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ac583ce92b8e1c949cb6fef6bfe713d56"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac583ce92b8e1c949cb6fef6bfe713d56">§ </a></span>ka_time</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac583ce92b8e1c949cb6fef6bfe713d56">◆ </a></span>ka_time</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -355,7 +355,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a81697c6b763b5ef3ee52862bc70b07d6"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a81697c6b763b5ef3ee52862bc70b07d6">§ </a></span>keepalive_timeout</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a81697c6b763b5ef3ee52862bc70b07d6">◆ </a></span>keepalive_timeout</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -370,7 +370,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ad0e95ba721f7bd2b676719f8093c23a2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ad0e95ba721f7bd2b676719f8093c23a2">§ </a></span>log_filepath</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ad0e95ba721f7bd2b676719f8093c23a2">◆ </a></span>log_filepath</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -385,7 +385,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a0cdfd3c484689ba6f0f2cc91b38ce948"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0cdfd3c484689ba6f0f2cc91b38ce948">§ </a></span>max_http_header_data</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0cdfd3c484689ba6f0f2cc91b38ce948">◆ </a></span>max_http_header_data</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -400,7 +400,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="aa8d9e85e137f35fb006f2e4a53f0887a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa8d9e85e137f35fb006f2e4a53f0887a">§ </a></span>max_http_header_data2</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa8d9e85e137f35fb006f2e4a53f0887a">◆ </a></span>max_http_header_data2</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -415,7 +415,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a0b154e79abc1167ba4ac3539f4af6720"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0b154e79abc1167ba4ac3539f4af6720">§ </a></span>max_http_header_pool</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0b154e79abc1167ba4ac3539f4af6720">◆ </a></span>max_http_header_pool</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -430,7 +430,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a13ffbb0d010309669611f8c4eda7d7f8"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a13ffbb0d010309669611f8c4eda7d7f8">§ </a></span>mounts</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a13ffbb0d010309669611f8c4eda7d7f8">◆ </a></span>mounts</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -445,7 +445,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a9d3b17a25e1fbc772f21eb4959a82724"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9d3b17a25e1fbc772f21eb4959a82724">§ </a></span>options</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9d3b17a25e1fbc772f21eb4959a82724">◆ </a></span>options</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -460,7 +460,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a8122cfc0810bafe51edb3ba6bf9a1251"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8122cfc0810bafe51edb3ba6bf9a1251">§ </a></span>plugin_dirs</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8122cfc0810bafe51edb3ba6bf9a1251">◆ </a></span>plugin_dirs</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -475,7 +475,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a424a5ce268d6903e42243be94487ab85"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a424a5ce268d6903e42243be94487ab85">§ </a></span>port</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a424a5ce268d6903e42243be94487ab85">◆ </a></span>port</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -490,7 +490,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="abb90ffb3e6d6db2db20f529d61bd9122"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#abb90ffb3e6d6db2db20f529d61bd9122">§ </a></span>protocols</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#abb90ffb3e6d6db2db20f529d61bd9122">◆ </a></span>protocols</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -505,7 +505,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a1654d41bea6fb2f619b57e6a264b26a4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1654d41bea6fb2f619b57e6a264b26a4">§ </a></span>provided_client_ssl_ctx <span class="overload">[1/2]</span></h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1654d41bea6fb2f619b57e6a264b26a4">◆ </a></span>provided_client_ssl_ctx <span class="overload">[1/2]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -520,7 +520,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a0e790dda6202604f73a03b6149bc12bb"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0e790dda6202604f73a03b6149bc12bb">§ </a></span>provided_client_ssl_ctx <span class="overload">[2/2]</span></h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0e790dda6202604f73a03b6149bc12bb">◆ </a></span>provided_client_ssl_ctx <span class="overload">[2/2]</span></h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -535,7 +535,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a57f88c0745adbd1d6b9b619b8de30209"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a57f88c0745adbd1d6b9b619b8de30209">§ </a></span>pt_serv_buf_size</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a57f88c0745adbd1d6b9b619b8de30209">◆ </a></span>pt_serv_buf_size</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -550,7 +550,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a999866fcd15dbd621773436f97190458"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a999866fcd15dbd621773436f97190458">§ </a></span>pvo</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a999866fcd15dbd621773436f97190458">◆ </a></span>pvo</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -565,7 +565,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a137a9b9de4f6a7993fed8746d551e616"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a137a9b9de4f6a7993fed8746d551e616">§ </a></span>server_string</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a137a9b9de4f6a7993fed8746d551e616">◆ </a></span>server_string</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -580,7 +580,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a4f8e65c3a059d3b586fafa9ef3282c29"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4f8e65c3a059d3b586fafa9ef3282c29">§ </a></span>ssl_ca_filepath</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4f8e65c3a059d3b586fafa9ef3282c29">◆ </a></span>ssl_ca_filepath</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -595,7 +595,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ac62b0f0e8e402412ba5011d15c244103"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac62b0f0e8e402412ba5011d15c244103">§ </a></span>ssl_cert_filepath</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac62b0f0e8e402412ba5011d15c244103">◆ </a></span>ssl_cert_filepath</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -610,7 +610,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a3e1516fd7fed26bfa77c0246ed26c2eb"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3e1516fd7fed26bfa77c0246ed26c2eb">§ </a></span>ssl_cipher_list</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3e1516fd7fed26bfa77c0246ed26c2eb">◆ </a></span>ssl_cipher_list</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -625,7 +625,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="adb0bc0b28cd7d90ab306723d8ffa96fa"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#adb0bc0b28cd7d90ab306723d8ffa96fa">§ </a></span>ssl_options_clear</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#adb0bc0b28cd7d90ab306723d8ffa96fa">◆ </a></span>ssl_options_clear</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -640,7 +640,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a704940261951ced6b5d8191bd8b9bb2d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a704940261951ced6b5d8191bd8b9bb2d">§ </a></span>ssl_options_set</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a704940261951ced6b5d8191bd8b9bb2d">◆ </a></span>ssl_options_set</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -655,7 +655,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ab9ec8893e0f7843cf5d783d2f350ef14"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab9ec8893e0f7843cf5d783d2f350ef14">§ </a></span>ssl_private_key_filepath</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab9ec8893e0f7843cf5d783d2f350ef14">◆ </a></span>ssl_private_key_filepath</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -670,7 +670,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="af3fb447be15c4fcb01d3285a6678ab54"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af3fb447be15c4fcb01d3285a6678ab54">§ </a></span>ssl_private_key_password</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af3fb447be15c4fcb01d3285a6678ab54">◆ </a></span>ssl_private_key_password</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -685,7 +685,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a6cfa3d51df2def3349a5cbf0d712822d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6cfa3d51df2def3349a5cbf0d712822d">§ </a></span>timeout_secs</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6cfa3d51df2def3349a5cbf0d712822d">◆ </a></span>timeout_secs</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -700,7 +700,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ac8a75b7b259a3c3a5fbb4219a3f06c29"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac8a75b7b259a3c3a5fbb4219a3f06c29">§ </a></span>token_limits</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac8a75b7b259a3c3a5fbb4219a3f06c29">◆ </a></span>token_limits</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -715,7 +715,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ac105b4180008cb3e672d57beead8382e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac105b4180008cb3e672d57beead8382e">§ </a></span>uid</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac105b4180008cb3e672d57beead8382e">◆ </a></span>uid</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -730,7 +730,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a0e9d94cdfb893d777b4a4db81e7b5ac0"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0e9d94cdfb893d777b4a4db81e7b5ac0">§ </a></span>user</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0e9d94cdfb893d777b4a4db81e7b5ac0">◆ </a></span>user</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -745,7 +745,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ad50db098a208f045f7811207d2bee4b9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ad50db098a208f045f7811207d2bee4b9">§ </a></span>vhost_name</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ad50db098a208f045f7811207d2bee4b9">◆ </a></span>vhost_name</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -760,7 +760,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a33a1a25a7df3793f59047e20dd580078"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a33a1a25a7df3793f59047e20dd580078">§ </a></span>ws_ping_pong_interval</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a33a1a25a7df3793f59047e20dd580078">◆ </a></span>ws_ping_pong_interval</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -785,7 +785,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__context__creation__info.html">lws_context_creation_info</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_email Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -110,7 +110,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__email.html">lws_email</a> - abstract context for performing SMTP operations </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a6fff03c5a5d369a2aa3cab0c897b1bed"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6fff03c5a5d369a2aa3cab0c897b1bed">§ </a></span>content</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6fff03c5a5d369a2aa3cab0c897b1bed">◆ </a></span>content</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -125,7 +125,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="add1341456045382c183f4c763bdea6bc"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#add1341456045382c183f4c763bdea6bc">§ </a></span>data</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#add1341456045382c183f4c763bdea6bc">◆ </a></span>data</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -140,7 +140,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a8f34ec0643a817be67ef4276aeb7fb82"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8f34ec0643a817be67ef4276aeb7fb82">§ </a></span>email_buf</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8f34ec0643a817be67ef4276aeb7fb82">◆ </a></span>email_buf</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -155,7 +155,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a01f31934166dc6d01e8a375012f8ad1e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a01f31934166dc6d01e8a375012f8ad1e">§ </a></span>email_client</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a01f31934166dc6d01e8a375012f8ad1e">◆ </a></span>email_client</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -170,7 +170,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a5f53d4c5a1e34b0dcaa8787e2eabb1b3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a5f53d4c5a1e34b0dcaa8787e2eabb1b3">§ </a></span>email_connect_req</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a5f53d4c5a1e34b0dcaa8787e2eabb1b3">◆ </a></span>email_connect_req</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -185,7 +185,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a9747ca85597788c2d118d287df47b7c1"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9747ca85597788c2d118d287df47b7c1">§ </a></span>email_connect_started</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9747ca85597788c2d118d287df47b7c1">◆ </a></span>email_connect_started</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -200,7 +200,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="af7f0ae934347d81071f63a963301f9e2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af7f0ae934347d81071f63a963301f9e2">§ </a></span>email_from</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af7f0ae934347d81071f63a963301f9e2">◆ </a></span>email_from</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -215,7 +215,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a939e5d7ee0339a16de73bde71ab4d4d9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a939e5d7ee0339a16de73bde71ab4d4d9">§ </a></span>email_helo</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a939e5d7ee0339a16de73bde71ab4d4d9">◆ </a></span>email_helo</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -230,7 +230,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a472ae23fc9fca6599e5c512bc21458d2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a472ae23fc9fca6599e5c512bc21458d2">§ </a></span>email_smtp_ip</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a472ae23fc9fca6599e5c512bc21458d2">◆ </a></span>email_smtp_ip</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -245,7 +245,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a6453a8b92b3de6d2c2101af3edce685e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6453a8b92b3de6d2c2101af3edce685e">§ </a></span>email_to</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6453a8b92b3de6d2c2101af3edce685e">◆ </a></span>email_to</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -260,7 +260,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ac6115d3cbef2e8bac62cc00895bf5fd3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac6115d3cbef2e8bac62cc00895bf5fd3">§ </a></span>estate</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac6115d3cbef2e8bac62cc00895bf5fd3">◆ </a></span>estate</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -275,7 +275,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ab5fbf121195a8e67509c78a42cfbe168"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab5fbf121195a8e67509c78a42cfbe168">§ </a></span>loop</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab5fbf121195a8e67509c78a42cfbe168">◆ </a></span>loop</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -290,7 +290,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a7bbc1964889c984b3da723c86a210e05"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7bbc1964889c984b3da723c86a210e05">§ </a></span>max_content_size</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7bbc1964889c984b3da723c86a210e05">◆ </a></span>max_content_size</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -305,7 +305,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a2aff78c8e04db243052aa91b4d87e987"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a2aff78c8e04db243052aa91b4d87e987">§ </a></span>on_get_body</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a2aff78c8e04db243052aa91b4d87e987">◆ </a></span>on_get_body</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -320,7 +320,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ad8dc60353ee246d84dd59ec0591e9719"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ad8dc60353ee246d84dd59ec0591e9719">§ </a></span>on_next</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ad8dc60353ee246d84dd59ec0591e9719">◆ </a></span>on_next</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -335,7 +335,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a39ef6263d58eb40cca417c8697b227d8"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a39ef6263d58eb40cca417c8697b227d8">§ </a></span>on_sent</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a39ef6263d58eb40cca417c8697b227d8">◆ </a></span>on_sent</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -350,7 +350,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a77723e2f2b940b1c879ef5e1cd88c2be"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a77723e2f2b940b1c879ef5e1cd88c2be">§ </a></span>timeout_email</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a77723e2f2b940b1c879ef5e1cd88c2be">◆ </a></span>timeout_email</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -375,7 +375,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__email.html">lws_email</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_ext_option_arg Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -84,7 +84,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__ext__option__arg.html">lws_ext_option_arg</a> </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="af37f0b6caa7735af51a1ac12b68d5bc5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af37f0b6caa7735af51a1ac12b68d5bc5">§ </a></span>len</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af37f0b6caa7735af51a1ac12b68d5bc5">◆ </a></span>len</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -99,7 +99,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="af57fffcfa253dfa8d98681ac1fb1785f"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af57fffcfa253dfa8d98681ac1fb1785f">§ </a></span>option_index</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af57fffcfa253dfa8d98681ac1fb1785f">◆ </a></span>option_index</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -114,7 +114,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a0a320c56b79271b8f059eeaad9423ac9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0a320c56b79271b8f059eeaad9423ac9">§ </a></span>option_name</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0a320c56b79271b8f059eeaad9423ac9">◆ </a></span>option_name</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -129,7 +129,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a0b1f7b30c3ceaf5f1bf9d105c24568d1"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0b1f7b30c3ceaf5f1bf9d105c24568d1">§ </a></span>start</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0b1f7b30c3ceaf5f1bf9d105c24568d1">◆ </a></span>start</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -154,7 +154,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__ext__option__arg.html">lws_ext_option_arg</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_ext_options Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -80,7 +80,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__ext__options.html">lws_ext_options</a> - Option arguments to the extension. These are used in the negotiation at ws upgrade time. The helper function <a class="el" href="group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b">lws_ext_parse_options()</a> uses these to generate callbacks </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a1769e4a9805bbdda227821e9578ddc7e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1769e4a9805bbdda227821e9578ddc7e">§ </a></span>name</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1769e4a9805bbdda227821e9578ddc7e">◆ </a></span>name</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -95,7 +95,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a7c4dbd62dbeba63a9d50d2306bd1cc61"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7c4dbd62dbeba63a9d50d2306bd1cc61">§ </a></span>type</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7c4dbd62dbeba63a9d50d2306bd1cc61">◆ </a></span>type</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -120,7 +120,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__ext__options.html">lws_ext_options</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_extension Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -82,7 +82,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__extension.html">lws_extension</a> - An extension we support </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="afa21f3b3c8c2c9212a276c52b680c3af"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afa21f3b3c8c2c9212a276c52b680c3af">§ </a></span>callback</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afa21f3b3c8c2c9212a276c52b680c3af">◆ </a></span>callback</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -97,7 +97,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a36b06c213aedb02bf9a402651751855b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a36b06c213aedb02bf9a402651751855b">§ </a></span>client_offer</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a36b06c213aedb02bf9a402651751855b">◆ </a></span>client_offer</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -112,7 +112,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a1e5018c883d85176f5c2152176843f9e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1e5018c883d85176f5c2152176843f9e">§ </a></span>name</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1e5018c883d85176f5c2152176843f9e">◆ </a></span>name</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -137,7 +137,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__extension.html">lws_extension</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_gs_event_args Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -82,7 +82,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__gs__event__args.html">lws_gs_event_args</a> </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="acd17e4f9f91f7f9a8f0fbf0744a3a463"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#acd17e4f9f91f7f9a8f0fbf0744a3a463">§ </a></span>email</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#acd17e4f9f91f7f9a8f0fbf0744a3a463">◆ </a></span>email</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -97,7 +97,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a477274f8ca22ba7411b9285b9dc8dd06"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a477274f8ca22ba7411b9285b9dc8dd06">§ </a></span>event</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a477274f8ca22ba7411b9285b9dc8dd06">◆ </a></span>event</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -112,7 +112,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a2bec693d8a43730d487004a44326178b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a2bec693d8a43730d487004a44326178b">§ </a></span>username</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a2bec693d8a43730d487004a44326178b">◆ </a></span>username</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -137,7 +137,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__gs__event__args.html">lws_gs_event_args</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_http_mount Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -109,7 +109,7 @@ Data Fields</h2></td></tr>
|
|||
<p>arguments for mounting something in a vhost's url namespace </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a614364c770b0bd4db464ad65cddab477"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a614364c770b0bd4db464ad65cddab477">§ </a></span>auth_mask</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a614364c770b0bd4db464ad65cddab477">◆ </a></span>auth_mask</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -124,7 +124,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="aabec1a326780aafe11b977000983be0c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aabec1a326780aafe11b977000983be0c">§ </a></span>cache_intermediaries</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aabec1a326780aafe11b977000983be0c">◆ </a></span>cache_intermediaries</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -139,7 +139,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a4283e30ea89d27ae7d061ad760d1d146"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4283e30ea89d27ae7d061ad760d1d146">§ </a></span>cache_max_age</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4283e30ea89d27ae7d061ad760d1d146">◆ </a></span>cache_max_age</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -154,7 +154,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a8316dd183ffbef50419a5a4968d35d84"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8316dd183ffbef50419a5a4968d35d84">§ </a></span>cache_reusable</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8316dd183ffbef50419a5a4968d35d84">◆ </a></span>cache_reusable</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -169,7 +169,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ae137203040c6153694bd88a708da5395"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae137203040c6153694bd88a708da5395">§ </a></span>cache_revalidate</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae137203040c6153694bd88a708da5395">◆ </a></span>cache_revalidate</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -184,7 +184,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a4a7239d6d4c03986e6e1a72abb6c83aa"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4a7239d6d4c03986e6e1a72abb6c83aa">§ </a></span>cgi_timeout</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4a7239d6d4c03986e6e1a72abb6c83aa">◆ </a></span>cgi_timeout</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -199,7 +199,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ae7b5c0f4c5408061e6ea3a8d281f45af"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae7b5c0f4c5408061e6ea3a8d281f45af">§ </a></span>cgienv</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae7b5c0f4c5408061e6ea3a8d281f45af">◆ </a></span>cgienv</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -214,7 +214,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ae90d1efe7178199fad39de2926902ee4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae90d1efe7178199fad39de2926902ee4">§ </a></span>def</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae90d1efe7178199fad39de2926902ee4">◆ </a></span>def</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -229,7 +229,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a4437423df85ee3dbcae0e15974c89ec7"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4437423df85ee3dbcae0e15974c89ec7">§ </a></span>extra_mimetypes</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4437423df85ee3dbcae0e15974c89ec7">◆ </a></span>extra_mimetypes</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -244,7 +244,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a11ea62b952710d59733dbcf9794a5773"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a11ea62b952710d59733dbcf9794a5773">§ </a></span>interpret</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a11ea62b952710d59733dbcf9794a5773">◆ </a></span>interpret</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -259,7 +259,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a0109baf93f23c07c824c997c3533ee44"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0109baf93f23c07c824c997c3533ee44">§ </a></span>mount_next</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0109baf93f23c07c824c997c3533ee44">◆ </a></span>mount_next</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -274,7 +274,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="aa2391bfcada0b7a290b3c6651f64586c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa2391bfcada0b7a290b3c6651f64586c">§ </a></span>mountpoint</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aa2391bfcada0b7a290b3c6651f64586c">◆ </a></span>mountpoint</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -289,7 +289,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ac8489b60b8f969eb19c9abbdeac90743"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac8489b60b8f969eb19c9abbdeac90743">§ </a></span>mountpoint_len</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac8489b60b8f969eb19c9abbdeac90743">◆ </a></span>mountpoint_len</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -304,7 +304,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a21d86fd6043ec00e121ababbc29af39a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a21d86fd6043ec00e121ababbc29af39a">§ </a></span>origin</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a21d86fd6043ec00e121ababbc29af39a">◆ </a></span>origin</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -319,7 +319,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a6a9b1492a0b9749e39bd19932717a0b7"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6a9b1492a0b9749e39bd19932717a0b7">§ </a></span>origin_protocol</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6a9b1492a0b9749e39bd19932717a0b7">◆ </a></span>origin_protocol</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -334,7 +334,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a05347d92c3d379809564bd4f3eab259b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a05347d92c3d379809564bd4f3eab259b">§ </a></span>protocol</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a05347d92c3d379809564bd4f3eab259b">◆ </a></span>protocol</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -359,7 +359,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__http__mount.html">lws_http_mount</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_plat_file_ops Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -87,7 +87,7 @@ Data Fields</h2></td></tr>
|
|||
<p>These provide platform-agnostic ways to deal with filesystem access in the library and in the user code. </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a034ec96f2fbaf52b4aa3e82d20795f7b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a034ec96f2fbaf52b4aa3e82d20795f7b">§ </a></span>close</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a034ec96f2fbaf52b4aa3e82d20795f7b">◆ </a></span>close</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -102,7 +102,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ad37a97abc68d0af967cef874f4d8df32"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ad37a97abc68d0af967cef874f4d8df32">§ </a></span>open</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ad37a97abc68d0af967cef874f4d8df32">◆ </a></span>open</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -117,7 +117,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a01f483807a9862736b17ba9ed5110c40"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a01f483807a9862736b17ba9ed5110c40">§ </a></span>read</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a01f483807a9862736b17ba9ed5110c40">◆ </a></span>read</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -132,7 +132,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="abfcda19b003dcc13c61ff9e2bb4ff869"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#abfcda19b003dcc13c61ff9e2bb4ff869">§ </a></span>seek_cur</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#abfcda19b003dcc13c61ff9e2bb4ff869">◆ </a></span>seek_cur</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -147,7 +147,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a1fae8330ee94649a3551e31a30809793"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1fae8330ee94649a3551e31a30809793">§ </a></span>write</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1fae8330ee94649a3551e31a30809793">◆ </a></span>write</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -172,7 +172,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__plat__file__ops.html">lws_plat_file_ops</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_plugin Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -86,7 +86,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__plugin.html">lws_plugin</a> </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="ac7f1fdfe8cf8a21f8ee9720c21934a3f"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac7f1fdfe8cf8a21f8ee9720c21934a3f">§ </a></span>caps</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac7f1fdfe8cf8a21f8ee9720c21934a3f">◆ </a></span>caps</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -101,7 +101,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a4ef37a43653715b6c69cbf8a7be747f4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4ef37a43653715b6c69cbf8a7be747f4">§ </a></span>l</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4ef37a43653715b6c69cbf8a7be747f4">◆ </a></span>l</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -116,7 +116,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="af9e1042dc1de5b9d202c2f5fd1834330"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af9e1042dc1de5b9d202c2f5fd1834330">§ </a></span>lib</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af9e1042dc1de5b9d202c2f5fd1834330">◆ </a></span>lib</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -131,7 +131,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a65dffd68fd267ce17b988790d1d35f22"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a65dffd68fd267ce17b988790d1d35f22">§ </a></span>list</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a65dffd68fd267ce17b988790d1d35f22">◆ </a></span>list</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -146,7 +146,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="af4ac8fcb79e10e0c2d960e1804d98105"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af4ac8fcb79e10e0c2d960e1804d98105">§ </a></span>name</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af4ac8fcb79e10e0c2d960e1804d98105">◆ </a></span>name</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -171,7 +171,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__plugin.html">lws_plugin</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_plugin_capability Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -86,7 +86,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__plugin__capability.html">lws_plugin_capability</a> - how a plugin introduces itself to lws </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a523c7cde6f15bba345f56493dcf6b32a"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a523c7cde6f15bba345f56493dcf6b32a">§ </a></span>api_magic</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a523c7cde6f15bba345f56493dcf6b32a">◆ </a></span>api_magic</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -101,7 +101,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="abcf51db969522fdda9aaf902e65739d3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#abcf51db969522fdda9aaf902e65739d3">§ </a></span>count_extensions</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#abcf51db969522fdda9aaf902e65739d3">◆ </a></span>count_extensions</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -116,7 +116,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ae38f7cf1246b9ca3af3cbf9d46b7090f"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae38f7cf1246b9ca3af3cbf9d46b7090f">§ </a></span>count_protocols</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae38f7cf1246b9ca3af3cbf9d46b7090f">◆ </a></span>count_protocols</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -131,7 +131,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a7936f0eb93d79dea76b903d0f8a5f623"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7936f0eb93d79dea76b903d0f8a5f623">§ </a></span>extensions</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7936f0eb93d79dea76b903d0f8a5f623">◆ </a></span>extensions</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -146,7 +146,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a6a4d9d01e770f378ddadc77b37522033"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6a4d9d01e770f378ddadc77b37522033">§ </a></span>protocols</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6a4d9d01e770f378ddadc77b37522033">◆ </a></span>protocols</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -171,7 +171,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__plugin__capability.html">lws_plugin_capability</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_polarssl_context Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -78,7 +78,7 @@ Data Fields</h2></td></tr>
|
|||
</table>
|
||||
<h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a1872f2ea24878d807ae20ca8513674af"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1872f2ea24878d807ae20ca8513674af">§ </a></span>ca</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1872f2ea24878d807ae20ca8513674af">◆ </a></span>ca</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -93,7 +93,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ae7e11c9129ff71c7ee71b3b2e320ff27"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae7e11c9129ff71c7ee71b3b2e320ff27">§ </a></span>certificate</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae7e11c9129ff71c7ee71b3b2e320ff27">◆ </a></span>certificate</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -108,7 +108,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a919c33af37aab170f828d954de1fa270"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a919c33af37aab170f828d954de1fa270">§ </a></span>key</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a919c33af37aab170f828d954de1fa270">◆ </a></span>key</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -133,7 +133,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__polarssl__context.html">lws_polarssl_context</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_pollargs Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -82,7 +82,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__pollargs.html">lws_pollargs</a> - argument structure for all external poll related calls passed in via 'in' </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a00bbffea9f55de342783e32d71ce1de6"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a00bbffea9f55de342783e32d71ce1de6">§ </a></span>events</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a00bbffea9f55de342783e32d71ce1de6">◆ </a></span>events</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -97,7 +97,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="af14a48ef4e78128aef9a76902b104a81"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af14a48ef4e78128aef9a76902b104a81">§ </a></span>fd</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af14a48ef4e78128aef9a76902b104a81">◆ </a></span>fd</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -112,7 +112,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a437fec0de5cf264371e1ab5a401e86d8"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a437fec0de5cf264371e1ab5a401e86d8">§ </a></span>prev_events</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a437fec0de5cf264371e1ab5a401e86d8">◆ </a></span>prev_events</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -137,7 +137,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__pollargs.html">lws_pollargs</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_pollfd Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -78,7 +78,7 @@ Data Fields</h2></td></tr>
|
|||
</table>
|
||||
<h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="ac393db6fc7fb6ed8fe7ca20936908ee9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac393db6fc7fb6ed8fe7ca20936908ee9">§ </a></span>events</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac393db6fc7fb6ed8fe7ca20936908ee9">◆ </a></span>events</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -93,7 +93,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a714cf5ca90b41926117fdde9fa6542be"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a714cf5ca90b41926117fdde9fa6542be">§ </a></span>fd</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a714cf5ca90b41926117fdde9fa6542be">◆ </a></span>fd</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -108,7 +108,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="ae7cecfe7511c59d4a3a44f876d030932"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae7cecfe7511c59d4a3a44f876d030932">§ </a></span>revents</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae7cecfe7511c59d4a3a44f876d030932">◆ </a></span>revents</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -133,7 +133,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__pollfd.html">lws_pollfd</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_process_html_args Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -80,7 +80,7 @@ Data Fields</h2></td></tr>
|
|||
</table>
|
||||
<h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a362547891ee0d693f3900a1f807ea475"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a362547891ee0d693f3900a1f807ea475">§ </a></span>final</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a362547891ee0d693f3900a1f807ea475">◆ </a></span>final</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -95,7 +95,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a754513f2311241cabb0cd1c90d7307ef"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a754513f2311241cabb0cd1c90d7307ef">§ </a></span>len</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a754513f2311241cabb0cd1c90d7307ef">◆ </a></span>len</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -110,7 +110,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a8be7fd396a1942ea2449a2fda990ff99"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8be7fd396a1942ea2449a2fda990ff99">§ </a></span>max_len</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a8be7fd396a1942ea2449a2fda990ff99">◆ </a></span>max_len</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -125,7 +125,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a11859d8bedd379fbf64543b25c65fe14"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a11859d8bedd379fbf64543b25c65fe14">§ </a></span>p</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a11859d8bedd379fbf64543b25c65fe14">◆ </a></span>p</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -150,7 +150,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__process__html__args.html">lws_process_html_args</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_process_html_state Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -86,7 +86,7 @@ Data Fields</h2></td></tr>
|
|||
</table>
|
||||
<h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="adcafd17704775b4bbeea9561fb340968"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#adcafd17704775b4bbeea9561fb340968">§ </a></span>count_vars</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#adcafd17704775b4bbeea9561fb340968">◆ </a></span>count_vars</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -101,7 +101,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="af21119890fdfebe28fb5c4dabfc1bdf5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af21119890fdfebe28fb5c4dabfc1bdf5">§ </a></span>data</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af21119890fdfebe28fb5c4dabfc1bdf5">◆ </a></span>data</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -116,7 +116,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a53234f2948812c7208a256f9f5b23c20"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a53234f2948812c7208a256f9f5b23c20">§ </a></span>pos</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a53234f2948812c7208a256f9f5b23c20">◆ </a></span>pos</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -131,7 +131,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a693d2fb45378afee5da29b539c1ea644"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a693d2fb45378afee5da29b539c1ea644">§ </a></span>replace</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a693d2fb45378afee5da29b539c1ea644">◆ </a></span>replace</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -146,7 +146,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="af0732884ef891e24fe5fa237ebaa21a3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af0732884ef891e24fe5fa237ebaa21a3">§ </a></span>start</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af0732884ef891e24fe5fa237ebaa21a3">◆ </a></span>start</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -161,7 +161,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a71982bc1cbd8cf876ca0f545144404eb"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a71982bc1cbd8cf876ca0f545144404eb">§ </a></span>swallow</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a71982bc1cbd8cf876ca0f545144404eb">◆ </a></span>swallow</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -176,7 +176,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a3b113e00c03a2fded51b1c85ff5bf077"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3b113e00c03a2fded51b1c85ff5bf077">§ </a></span>vars</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3b113e00c03a2fded51b1c85ff5bf077">◆ </a></span>vars</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -201,7 +201,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__process__html__state.html">lws_process_html_state</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_protocol_vhost_options Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -85,7 +85,7 @@ Data Fields</h2></td></tr>
|
|||
<p>This provides a general way to attach a linked-list of name=value pairs, which can also have an optional child link-list using the options member. </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="acf9db77f8eb64cd4e314be9b43d8a8b9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#acf9db77f8eb64cd4e314be9b43d8a8b9">§ </a></span>name</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#acf9db77f8eb64cd4e314be9b43d8a8b9">◆ </a></span>name</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -100,7 +100,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="abc714ddb4171756fc8196e9823a1e21c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#abc714ddb4171756fc8196e9823a1e21c">§ </a></span>next</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#abc714ddb4171756fc8196e9823a1e21c">◆ </a></span>next</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -115,7 +115,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="afd99fbc90be51ea2465b550c2ec47822"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afd99fbc90be51ea2465b550c2ec47822">§ </a></span>options</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afd99fbc90be51ea2465b550c2ec47822">◆ </a></span>options</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -130,7 +130,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a0640a92513c70ee6b9b295a9ad1658e7"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0640a92513c70ee6b9b295a9ad1658e7">§ </a></span>value</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0640a92513c70ee6b9b295a9ad1658e7">◆ </a></span>value</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -155,7 +155,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__protocol__vhost__options.html">lws_protocol_vhost_options</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_protocols Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -88,7 +88,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__protocols.html">lws_protocols</a> - List of protocols and handlers client or server supports. </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="acabf94c1a9bfe7be0387fbb0e0c56b2d"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#acabf94c1a9bfe7be0387fbb0e0c56b2d">§ </a></span>callback</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#acabf94c1a9bfe7be0387fbb0e0c56b2d">◆ </a></span>callback</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -103,7 +103,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a6b632018590c2b1bbe43fbab6d5e6fac"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6b632018590c2b1bbe43fbab6d5e6fac">§ </a></span>id</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6b632018590c2b1bbe43fbab6d5e6fac">◆ </a></span>id</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -118,7 +118,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a0e63edb457a613c3fa4271e0a8f19624"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0e63edb457a613c3fa4271e0a8f19624">§ </a></span>name</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0e63edb457a613c3fa4271e0a8f19624">◆ </a></span>name</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -133,7 +133,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a9bbd85f591ffb4259711cb5acbb05bea"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9bbd85f591ffb4259711cb5acbb05bea">§ </a></span>per_session_data_size</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9bbd85f591ffb4259711cb5acbb05bea">◆ </a></span>per_session_data_size</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -148,7 +148,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a0d1d4996d81b2f5e125bcec981e461c5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0d1d4996d81b2f5e125bcec981e461c5">§ </a></span>rx_buffer_size</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a0d1d4996d81b2f5e125bcec981e461c5">◆ </a></span>rx_buffer_size</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -164,7 +164,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a3cbd903ad076736ae934a54cae36580e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3cbd903ad076736ae934a54cae36580e">§ </a></span>user</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3cbd903ad076736ae934a54cae36580e">◆ </a></span>user</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -189,7 +189,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__protocols.html">lws_protocols</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_session_info Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -86,7 +86,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__session__info.html">lws_session_info</a> - information about user session status </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a94b813cfc6b0da4b182659de30038ad3"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a94b813cfc6b0da4b182659de30038ad3">§ </a></span>email</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a94b813cfc6b0da4b182659de30038ad3">◆ </a></span>email</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -101,7 +101,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a53eed02325e8717a53297391e3e98fac"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a53eed02325e8717a53297391e3e98fac">§ </a></span>ip</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a53eed02325e8717a53297391e3e98fac">◆ </a></span>ip</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -116,7 +116,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="afb924864b70f40372920688a5c1c895e"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afb924864b70f40372920688a5c1c895e">§ </a></span>mask</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#afb924864b70f40372920688a5c1c895e">◆ </a></span>mask</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -131,7 +131,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a4353b5dd19400b2b15edfd7cee1e4cd5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4353b5dd19400b2b15edfd7cee1e4cd5">§ </a></span>session</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4353b5dd19400b2b15edfd7cee1e4cd5">◆ </a></span>session</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -146,7 +146,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a3d57a70b6e7181d95a8bec429b1a7697"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3d57a70b6e7181d95a8bec429b1a7697">§ </a></span>username</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3d57a70b6e7181d95a8bec429b1a7697">◆ </a></span>username</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -171,7 +171,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__session__info.html">lws_session_info</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_token_limits Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -74,7 +74,7 @@ Data Fields</h2></td></tr>
|
|||
</table>
|
||||
<h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a6ec712306cbf8585bce7a56758a3ceff"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6ec712306cbf8585bce7a56758a3ceff">§ </a></span>token_limit</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a6ec712306cbf8585bce7a56758a3ceff">◆ </a></span>token_limit</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -99,7 +99,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__token__limits.html">lws_token_limits</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lws_tokens Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -80,7 +80,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>struct <a class="el" href="structlws__tokens.html">lws_tokens</a> you need these to look at headers that have been parsed if using the LWS_CALLBACK_FILTER_CONNECTION callback. If a header from the enum list below is absent, .token = NULL and token_len = 0. Otherwise .token points to .token_len chars containing that header content. </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a9f3635412bc71a5cb78e9862b55f10cd"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9f3635412bc71a5cb78e9862b55f10cd">§ </a></span>token</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a9f3635412bc71a5cb78e9862b55f10cd">◆ </a></span>token</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -95,7 +95,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="a855b7375d1d58516c0ecd4b60e9a7766"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a855b7375d1d58516c0ecd4b60e9a7766">§ </a></span>token_len</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a855b7375d1d58516c0ecd4b60e9a7766">◆ </a></span>token_len</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -120,7 +120,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlws__tokens.html">lws_tokens</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lwsgw_hash Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -78,7 +78,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>typedef struct <a class="el" href="structlwsgw__hash.html">lwsgw_hash</a> </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="a29435f5cf78747d4257695b0f141d164"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a29435f5cf78747d4257695b0f141d164">§ </a></span>id</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a29435f5cf78747d4257695b0f141d164">◆ </a></span>id</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -103,7 +103,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlwsgw__hash.html">lwsgw_hash</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: lwsgw_hash_bin Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -78,7 +78,7 @@ Data Fields</h2></td></tr>
|
|||
<div class="textblock"><p>typedef struct <a class="el" href="structlwsgw__hash__bin.html">lwsgw_hash_bin</a> </p>
|
||||
</div><h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="ac92f50d9471058525d110597a4e0de6b"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac92f50d9471058525d110597a4e0de6b">§ </a></span>bin</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac92f50d9471058525d110597a4e0de6b">◆ </a></span>bin</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -103,7 +103,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structlwsgw__hash__bin.html">lwsgw_hash_bin</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="generator" content="Doxygen 1.8.13"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>libwebsockets: pollfd Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
|
@ -35,7 +35,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.12 -->
|
||||
<!-- Generated by Doxygen 1.8.13 -->
|
||||
<script type="text/javascript" src="menudata.js"></script>
|
||||
<script type="text/javascript" src="menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -78,7 +78,7 @@ Data Fields</h2></td></tr>
|
|||
</table>
|
||||
<h2 class="groupheader">Field Documentation</h2>
|
||||
<a id="ac9b2f2c5b1f9a7487eb57e67cd4960ef"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac9b2f2c5b1f9a7487eb57e67cd4960ef">§ </a></span>events</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ac9b2f2c5b1f9a7487eb57e67cd4960ef">◆ </a></span>events</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -93,7 +93,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="af084f089bdece61d177f85782d6673d0"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af084f089bdece61d177f85782d6673d0">§ </a></span>fd</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#af084f089bdece61d177f85782d6673d0">◆ </a></span>fd</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -108,7 +108,7 @@ Data Fields</h2></td></tr>
|
|||
</div>
|
||||
</div>
|
||||
<a id="aafb457d11cac415faf0e1e2b825118c2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aafb457d11cac415faf0e1e2b825118c2">§ </a></span>revents</h2>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#aafb457d11cac415faf0e1e2b825118c2">◆ </a></span>revents</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
|
@ -133,7 +133,7 @@ Data Fields</h2></td></tr>
|
|||
<li class="navelem"><a class="el" href="structpollfd.html">pollfd</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>
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -966,6 +966,9 @@ lws_rx_sm(struct lws *wsi, unsigned char c)
|
|||
int ret = 0, n, rx_draining_ext = 0;
|
||||
struct lws_tokens eff_buf;
|
||||
|
||||
eff_buf.token = NULL;
|
||||
eff_buf.token_len = 0;
|
||||
|
||||
if (wsi->socket_is_permanently_unusable)
|
||||
return -1;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue