litespeed-quic/docs/html/structlsquic__engine__setti...

444 lines
25 KiB
HTML

<!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>LiteSpeed QUIC Library: lsquic_engine_settings Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</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="projectalign" style="padding-left: 0.5em;">
<div id="projectname">LiteSpeed QUIC Library
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
<div class="headertitle">
<div class="title">lsquic_engine_settings Struct Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a9dca1ee29ab43ca9454b6b0a8d5e2799"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#a9dca1ee29ab43ca9454b6b0a8d5e2799">es_versions</a></td></tr>
<tr class="separator:a9dca1ee29ab43ca9454b6b0a8d5e2799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2931ff6b1bc06429379debcc2c5cc5fa"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#a2931ff6b1bc06429379debcc2c5cc5fa">es_cfcw</a></td></tr>
<tr class="separator:a2931ff6b1bc06429379debcc2c5cc5fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac88c5a68eac5f324a1b1524a962be26d"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#ac88c5a68eac5f324a1b1524a962be26d">es_sfcw</a></td></tr>
<tr class="separator:ac88c5a68eac5f324a1b1524a962be26d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7297980e558cd2deafb955534520934b"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#a7297980e558cd2deafb955534520934b">es_max_cfcw</a></td></tr>
<tr class="separator:a7297980e558cd2deafb955534520934b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a695df719026b195b48500890c6ac929c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a695df719026b195b48500890c6ac929c"></a>
unsigned&#160;</td><td class="memItemRight" valign="bottom"><b>es_max_sfcw</b></td></tr>
<tr class="separator:a695df719026b195b48500890c6ac929c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6848de0e8025b08398ba43445de7405"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#ab6848de0e8025b08398ba43445de7405">es_max_streams_in</a></td></tr>
<tr class="separator:ab6848de0e8025b08398ba43445de7405"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeaef9bb4ecadb340cd05cfb85a6901a5"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#aeaef9bb4ecadb340cd05cfb85a6901a5">es_handshake_to</a></td></tr>
<tr class="separator:aeaef9bb4ecadb340cd05cfb85a6901a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ba2bd3e85b8b4d0d929e31d675554e2"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#a4ba2bd3e85b8b4d0d929e31d675554e2">es_idle_conn_to</a></td></tr>
<tr class="separator:a4ba2bd3e85b8b4d0d929e31d675554e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebf95d077a1a0de005b2ddac5afdfdc4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#aebf95d077a1a0de005b2ddac5afdfdc4">es_silent_close</a></td></tr>
<tr class="separator:aebf95d077a1a0de005b2ddac5afdfdc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7b7eb8ab17eb47b8ea69d8ee8ef4a5b"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#ab7b7eb8ab17eb47b8ea69d8ee8ef4a5b">es_max_header_list_size</a></td></tr>
<tr class="separator:ab7b7eb8ab17eb47b8ea69d8ee8ef4a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a578718dc886cffa23e97fa11fb26138b"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#a578718dc886cffa23e97fa11fb26138b">es_ua</a></td></tr>
<tr class="separator:a578718dc886cffa23e97fa11fb26138b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e74be012a75eb6a011993d70aad544b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e74be012a75eb6a011993d70aad544b"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>es_pdmd</b></td></tr>
<tr class="separator:a2e74be012a75eb6a011993d70aad544b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea338274f16f5e98c8396a5c808c3700"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea338274f16f5e98c8396a5c808c3700"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>es_aead</b></td></tr>
<tr class="separator:aea338274f16f5e98c8396a5c808c3700"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4de3557d26cc52c29e5f66139741fb5a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4de3557d26cc52c29e5f66139741fb5a"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>es_kexs</b></td></tr>
<tr class="separator:a4de3557d26cc52c29e5f66139741fb5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfd0c61d3243d85d3676876ca67e6466"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#adfd0c61d3243d85d3676876ca67e6466">es_support_srej</a></td></tr>
<tr class="separator:adfd0c61d3243d85d3676876ca67e6466"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b68eb068b40eb24e5e08cab097f077a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#a8b68eb068b40eb24e5e08cab097f077a">es_support_push</a></td></tr>
<tr class="separator:a8b68eb068b40eb24e5e08cab097f077a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1570dc65c3b4d097987f08ade3cfd993"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#a1570dc65c3b4d097987f08ade3cfd993">es_support_tcid0</a></td></tr>
<tr class="separator:a1570dc65c3b4d097987f08ade3cfd993"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addfa7e19884a81f50ca4d573b9aa16a3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#addfa7e19884a81f50ca4d573b9aa16a3">es_support_nstp</a></td></tr>
<tr class="separator:addfa7e19884a81f50ca4d573b9aa16a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5a3d759dcdf8915a98cbc3dd56d5f22"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#ac5a3d759dcdf8915a98cbc3dd56d5f22">es_honor_prst</a></td></tr>
<tr class="separator:ac5a3d759dcdf8915a98cbc3dd56d5f22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85a83ab74a018c293f83d9b78a797d8e"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#a85a83ab74a018c293f83d9b78a797d8e">es_progress_check</a></td></tr>
<tr class="separator:a85a83ab74a018c293f83d9b78a797d8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9baca38fb49c0028941a54de17a3580a"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#a9baca38fb49c0028941a54de17a3580a">es_pendrw_check</a></td></tr>
<tr class="separator:a9baca38fb49c0028941a54de17a3580a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59907a4c1080bd6eb5c5c7776b968af4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#a59907a4c1080bd6eb5c5c7776b968af4">es_rw_once</a></td></tr>
<tr class="separator:a59907a4c1080bd6eb5c5c7776b968af4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa9758b94c763b457c4a6ccc4f1e8100"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#aaa9758b94c763b457c4a6ccc4f1e8100">es_proc_time_thresh</a></td></tr>
<tr class="separator:aaa9758b94c763b457c4a6ccc4f1e8100"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90403ce7cbb10f9ddf438cfc1bd62530"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlsquic__engine__settings.html#a90403ce7cbb10f9ddf438cfc1bd62530">es_pace_packets</a></td></tr>
<tr class="separator:a90403ce7cbb10f9ddf438cfc1bd62530"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Field Documentation</h2>
<a class="anchor" id="a2931ff6b1bc06429379debcc2c5cc5fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned lsquic_engine_settings::es_cfcw</td>
</tr>
</table>
</div><div class="memdoc">
<p>Initial default CFCW.</p>
<p>In server mode, per-connection values may be set lower than this if resources are scarce.</p>
<p>Do not set es_cfcw and es_sfcw lower than <a class="el" href="lsquic_8h.html#a6fd9104d1ffa8c391dede0a714a5919b">LSQUIC_MIN_FCW</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structlsquic__engine__settings.html#a7297980e558cd2deafb955534520934b">es_max_cfcw</a> </dd></dl>
</div>
</div>
<a class="anchor" id="aeaef9bb4ecadb340cd05cfb85a6901a5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long lsquic_engine_settings::es_handshake_to</td>
</tr>
</table>
</div><div class="memdoc">
<p>Handshake timeout in microseconds.</p>
<p>For client, this can be set to an arbitrary value (zero turns the timeout off). </p>
</div>
</div>
<a class="anchor" id="ac5a3d759dcdf8915a98cbc3dd56d5f22"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int lsquic_engine_settings::es_honor_prst</td>
</tr>
</table>
</div><div class="memdoc">
<p>If set to true value, the library will drop connections when it receives corresponding Public Reset packet. The default is to ignore these packets. </p>
</div>
</div>
<a class="anchor" id="a4ba2bd3e85b8b4d0d929e31d675554e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long lsquic_engine_settings::es_idle_conn_to</td>
</tr>
</table>
</div><div class="memdoc">
<p>ICSL in microseconds </p>
</div>
</div>
<a class="anchor" id="a7297980e558cd2deafb955534520934b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned lsquic_engine_settings::es_max_cfcw</td>
</tr>
</table>
</div><div class="memdoc">
<p>This value is used to specify maximum allowed value CFCW is allowed to reach due to window auto-tuning. By default, this value is zero, which means that CFCW is not allowed to increase from its initial value.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structlsquic__engine__settings.html#a2931ff6b1bc06429379debcc2c5cc5fa">es_cfcw</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ab7b7eb8ab17eb47b8ea69d8ee8ef4a5b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned lsquic_engine_settings::es_max_header_list_size</td>
</tr>
</table>
</div><div class="memdoc">
<p>This corresponds to SETTINGS_MAX_HEADER_LIST_SIZE (RFC 7540, Section 6.5.2). 0 means no limit. Defaults to <a class="el" href="lsquic_8h.html#a1e1ab46b8acff52f127359bf68a8b297">LSQUIC_DF_MAX_HEADER_LIST_SIZE</a>. </p>
</div>
</div>
<a class="anchor" id="ab6848de0e8025b08398ba43445de7405"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned lsquic_engine_settings::es_max_streams_in</td>
</tr>
</table>
</div><div class="memdoc">
<p>MIDS </p>
</div>
</div>
<a class="anchor" id="a90403ce7cbb10f9ddf438cfc1bd62530"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int lsquic_engine_settings::es_pace_packets</td>
</tr>
</table>
</div><div class="memdoc">
<p>If set to true, packet pacing is implemented per connection.</p>
<p>The default value is <a class="el" href="lsquic_8h.html#a332b2fcfbbd83bbeb6027a622ec72f69">LSQUIC_DF_PACE_PACKETS</a>. </p>
</div>
</div>
<a class="anchor" id="a9baca38fb49c0028941a54de17a3580a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned lsquic_engine_settings::es_pendrw_check</td>
</tr>
</table>
</div><div class="memdoc">
<p>A non-zero value enables internal checks to identify suspected infinite loops in Pending RW Queue logic. The value of this setting is the number of times a connection on Pending RW Queue is allowed to be processed without making progress before it is banished from Pending RW Queue.</p>
<p>Progress is considered to have happened if any of the following occurs:</p><ul>
<li>User reads data, FIN, or new error (due to a reset) from a stream.</li>
<li>A new stream-related frame is packetized.</li>
</ul>
<p>The defaut value is <a class="el" href="lsquic_8h.html#a472d9508529e22b2be78b48d0fd69529">LSQUIC_DF_PENDRW_CHECK</a>. </p>
</div>
</div>
<a class="anchor" id="aaa9758b94c763b457c4a6ccc4f1e8100"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned lsquic_engine_settings::es_proc_time_thresh</td>
</tr>
</table>
</div><div class="memdoc">
<p>If set, this value specifies that number of microseconds that functions <a class="el" href="lsquic_8h.html#a60427549acdb608cc360173d817393e3">lsquic_engine_proc_all()</a>, <a class="el" href="lsquic_8h.html#aefe24851a36ebe16289a6fa3c5a1c8cc">lsquic_engine_process_conns_with_incoming()</a>, <a class="el" href="lsquic_8h.html#aefc66717813306c208483cccbb90ab9a">lsquic_engine_process_conns_to_tick()</a>, and <a class="el" href="lsquic_8h.html#aae156a499af8ae01ca6f4fa307da86c6">lsquic_engine_process_conns_with_pend_rw()</a> are allowed to spend before returning.</p>
<p>This is not an exact science and the connections must make progress, so the deadline is checked after all connections get a chance to tick and at least one batch of packets is sent out.</p>
<p>When processing function runs out of its time slice, immediate calls to <a class="el" href="lsquic_8h.html#a74d8c8f033c2e654fdb3487a2bf55d8a">lsquic_engine_has_pend_rw()</a> and <a class="el" href="lsquic_8h.html#a9d5d9609ca70350117994e2e2e934a22">lsquic_engine_has_unsent_packets()</a> return false.</p>
<p>The default value is <a class="el" href="lsquic_8h.html#a4a8cbc259dcff01fa93959ca5b2a0a35">LSQUIC_DF_PROC_TIME_THRESH</a>. </p>
</div>
</div>
<a class="anchor" id="a85a83ab74a018c293f83d9b78a797d8e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned lsquic_engine_settings::es_progress_check</td>
</tr>
</table>
</div><div class="memdoc">
<p>A non-zero value enables internal checks that identify suspected infinite loops in user on_read and on_write callbacks and break them. An infinite loop may occur if user code keeps on performing the same operation without checking status, e.g. reading from a closed stream etc.</p>
<p>The value of this parameter is as follows: should a callback return this number of times in a row without making progress (that is, reading, writing, or changing stream state), loop break will occur.</p>
<p>The defaut value is <a class="el" href="lsquic_8h.html#afc995b576f8013a43436201a7adf0221">LSQUIC_DF_PROGRESS_CHECK</a>. </p>
</div>
</div>
<a class="anchor" id="a59907a4c1080bd6eb5c5c7776b968af4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int lsquic_engine_settings::es_rw_once</td>
</tr>
</table>
</div><div class="memdoc">
<p>A non-zero value make stream dispatch its read-write events once per call.</p>
<p>When zero, read and write events are dispatched until the stream is no longer readable or writeable, respectively, or until the user signals unwillingness to read or write using lsquic_stream_wantread() or lsquic_stream_wantwrite() or shuts down the stream.</p>
<p>The default value is <a class="el" href="lsquic_8h.html#a5665ba68a62be14aa1332316512ec4fe">LSQUIC_DF_RW_ONCE</a>. </p>
</div>
</div>
<a class="anchor" id="ac88c5a68eac5f324a1b1524a962be26d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned lsquic_engine_settings::es_sfcw</td>
</tr>
</table>
</div><div class="memdoc">
<p>Initial default SFCW.</p>
<p>In server mode, per-connection values may be set lower than this if resources are scarce.</p>
<p>Do not set es_cfcw and es_sfcw lower than <a class="el" href="lsquic_8h.html#a6fd9104d1ffa8c391dede0a714a5919b">LSQUIC_MIN_FCW</a>.</p>
<dl class="section see"><dt>See also</dt><dd>es_max_sfcw </dd></dl>
</div>
</div>
<a class="anchor" id="aebf95d077a1a0de005b2ddac5afdfdc4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int lsquic_engine_settings::es_silent_close</td>
</tr>
</table>
</div><div class="memdoc">
<p>SCLS (silent close) </p>
</div>
</div>
<a class="anchor" id="addfa7e19884a81f50ca4d573b9aa16a3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int lsquic_engine_settings::es_support_nstp</td>
</tr>
</table>
</div><div class="memdoc">
<p>Q037 and higher support "No STOP_WAITING frame" mode. When set, the client will send NSTP option in its Client Hello message and will not sent STOP_WAITING frames, while ignoring incoming STOP_WAITING frames, if any. Note that if the version negotiation happens to downgrade the client below Q037, this mode will *not* be used.</p>
<p>This option does not affect the server, as it must support NSTP mode if it was specified by the client. </p>
</div>
</div>
<a class="anchor" id="a8b68eb068b40eb24e5e08cab097f077a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int lsquic_engine_settings::es_support_push</td>
</tr>
</table>
</div><div class="memdoc">
<p>Setting this value to 0 means that</p>
<p>For client: a) we send a SETTINGS frame to indicate that we do not support server push; and b) All incoming pushed streams get reset immediately. (For maximum effect, set es_max_streams_in to 0.) </p>
</div>
</div>
<a class="anchor" id="adfd0c61d3243d85d3676876ca67e6466"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int lsquic_engine_settings::es_support_srej</td>
</tr>
</table>
</div><div class="memdoc">
<p>Support SREJ: for client side, this means supporting server's SREJ responses (this does not work yet) and for server side, this means generating SREJ instead of REJ when appropriate. </p>
</div>
</div>
<a class="anchor" id="a1570dc65c3b4d097987f08ade3cfd993"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int lsquic_engine_settings::es_support_tcid0</td>
</tr>
</table>
</div><div class="memdoc">
<p>If set to true value, the server will not include connection ID in outgoing packets if client's CHLO specifies TCID=0.</p>
<p>For client, this means including TCID=0 into CHLO message. TODO: this does not work yet. </p>
</div>
</div>
<a class="anchor" id="a578718dc886cffa23e97fa11fb26138b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* lsquic_engine_settings::es_ua</td>
</tr>
</table>
</div><div class="memdoc">
<p>UAID &ndash; User-Agent ID. Defaults to <a class="el" href="lsquic_8h.html#aeefb2f925217c311af00c92a77e0f191">LSQUIC_DF_UA</a>. </p>
</div>
</div>
<a class="anchor" id="a9dca1ee29ab43ca9454b6b0a8d5e2799"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned lsquic_engine_settings::es_versions</td>
</tr>
</table>
</div><div class="memdoc">
<p>This is a bit mask wherein each bit corresponds to a value in enum lsquic_version. Client starts negotiating with the highest version and goes down. Server supports either of the versions specified here.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="lsquic_8h.html#a2633ae9ee8d564f4c499f6eb0913d4db">lsquic_version</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>include/<a class="el" href="lsquic_8h_source.html">lsquic.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>