api_8h.html 59 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.13"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>lwIP: src/include/lwip/api.h File Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="resize.js"></script>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript">
  17. $(document).ready(initResizable);
  18. </script>
  19. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  20. <script type="text/javascript" src="search/searchdata.js"></script>
  21. <script type="text/javascript" src="search/search.js"></script>
  22. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  23. </head>
  24. <body>
  25. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  26. <div id="titlearea">
  27. <table cellspacing="0" cellpadding="0">
  28. <tbody>
  29. <tr style="height: 56px;">
  30. <td id="projectalign" style="padding-left: 0.5em;">
  31. <div id="projectname">lwIP
  32. &#160;<span id="projectnumber">2.1.2</span>
  33. </div>
  34. <div id="projectbrief">Lightweight IP stack</div>
  35. </td>
  36. </tr>
  37. </tbody>
  38. </table>
  39. </div>
  40. <!-- end header part -->
  41. <!-- Generated by Doxygen 1.8.13 -->
  42. <script type="text/javascript">
  43. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  44. </script>
  45. <script type="text/javascript" src="menudata.js"></script>
  46. <script type="text/javascript" src="menu.js"></script>
  47. <script type="text/javascript">
  48. $(function() {
  49. initMenu('',true,false,'search.php','Search');
  50. $(document).ready(function() { init_search(); });
  51. });
  52. </script>
  53. <div id="main-nav"></div>
  54. </div><!-- top -->
  55. <div id="side-nav" class="ui-resizable side-nav-resizable">
  56. <div id="nav-tree">
  57. <div id="nav-tree-contents">
  58. <div id="nav-sync" class="sync"></div>
  59. </div>
  60. </div>
  61. <div id="splitbar" style="-moz-user-select:none;"
  62. class="ui-resizable-handle">
  63. </div>
  64. </div>
  65. <script type="text/javascript">
  66. $(document).ready(function(){initNavTree('api_8h.html','');});
  67. </script>
  68. <div id="doc-content">
  69. <!-- window showing the filter options -->
  70. <div id="MSearchSelectWindow"
  71. onmouseover="return searchBox.OnSearchSelectShow()"
  72. onmouseout="return searchBox.OnSearchSelectHide()"
  73. onkeydown="return searchBox.OnSearchSelectKey(event)">
  74. </div>
  75. <!-- iframe showing the search results (closed by default) -->
  76. <div id="MSearchResultsWindow">
  77. <iframe src="javascript:void(0)" frameborder="0"
  78. name="MSearchResults" id="MSearchResults">
  79. </iframe>
  80. </div>
  81. <div class="header">
  82. <div class="summary">
  83. <a href="#nested-classes">Data Structures</a> &#124;
  84. <a href="#define-members">Macros</a> &#124;
  85. <a href="#typedef-members">Typedefs</a> &#124;
  86. <a href="#enum-members">Enumerations</a> &#124;
  87. <a href="#func-members">Functions</a> </div>
  88. <div class="headertitle">
  89. <div class="title">api.h File Reference</div> </div>
  90. </div><!--header-->
  91. <div class="contents">
  92. <div class="textblock"><code>#include &quot;<a class="el" href="opt_8h.html">lwip/opt.h</a>&quot;</code><br />
  93. <code>#include &quot;<a class="el" href="arch_8h.html">lwip/arch.h</a>&quot;</code><br />
  94. <code>#include &quot;<a class="el" href="netbuf_8h.html">lwip/netbuf.h</a>&quot;</code><br />
  95. <code>#include &quot;<a class="el" href="sys_8h.html">lwip/sys.h</a>&quot;</code><br />
  96. <code>#include &quot;<a class="el" href="ip__addr_8h.html">lwip/ip_addr.h</a>&quot;</code><br />
  97. <code>#include &quot;<a class="el" href="err_8h.html">lwip/err.h</a>&quot;</code><br />
  98. </div><table class="memberdecls">
  99. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
  100. Data Structures</h2></td></tr>
  101. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnetconn.html">netconn</a></td></tr>
  102. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  103. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnetvector.html">netvector</a></td></tr>
  104. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  105. </table><table class="memberdecls">
  106. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
  107. Macros</h2></td></tr>
  108. <tr class="memitem:af77be7590d3712259e78103c1dddf63f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#af77be7590d3712259e78103c1dddf63f">NETCONN_FLAG_MBOXCLOSED</a>&#160;&#160;&#160;0x01</td></tr>
  109. <tr class="separator:af77be7590d3712259e78103c1dddf63f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. <tr class="memitem:abee57aa0ba63e35742d411bc5224900a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#abee57aa0ba63e35742d411bc5224900a">NETCONN_FLAG_NON_BLOCKING</a>&#160;&#160;&#160;0x02</td></tr>
  111. <tr class="separator:abee57aa0ba63e35742d411bc5224900a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  112. <tr class="memitem:a70bb861ee643b60ee402fd48f581f58d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a70bb861ee643b60ee402fd48f581f58d">NETCONN_FLAG_IN_NONBLOCKING_CONNECT</a>&#160;&#160;&#160;0x04</td></tr>
  113. <tr class="separator:a70bb861ee643b60ee402fd48f581f58d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  114. <tr class="memitem:a9d791955a4256a0589a3844e4e6f0f9c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a9d791955a4256a0589a3844e4e6f0f9c">NETCONN_FLAG_CHECK_WRITESPACE</a>&#160;&#160;&#160;0x10</td></tr>
  115. <tr class="separator:a9d791955a4256a0589a3844e4e6f0f9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:a60892e4eb139f10157847fea4266bf5b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a60892e4eb139f10157847fea4266bf5b">NETCONN_FLAG_IPV6_V6ONLY</a>&#160;&#160;&#160;0x20</td></tr>
  117. <tr class="separator:a60892e4eb139f10157847fea4266bf5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  118. <tr class="memitem:a24d62a2a03ba421fcf2bdce1ea89b949"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a24d62a2a03ba421fcf2bdce1ea89b949">NETCONN_FIN_RX_PENDING</a>&#160;&#160;&#160;0x80</td></tr>
  119. <tr class="separator:a24d62a2a03ba421fcf2bdce1ea89b949"><td class="memSeparator" colspan="2">&#160;</td></tr>
  120. <tr class="memitem:a3ce590f58be8f60dbde361920863b26d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a3ce590f58be8f60dbde361920863b26d">API_EVENT</a>(c, e, l)</td></tr>
  121. <tr class="separator:a3ce590f58be8f60dbde361920863b26d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr class="memitem:gab2bd1d5e633e14e428cfc0ca908d5e0c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gab2bd1d5e633e14e428cfc0ca908d5e0c">netconn_new</a>(t)&#160;&#160;&#160;<a class="el" href="api_8h.html#ad0a0434e5ff08bb350740cb840e2aca8">netconn_new_with_proto_and_callback</a>(t, 0, NULL)</td></tr>
  123. <tr class="separator:gab2bd1d5e633e14e428cfc0ca908d5e0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  124. <tr class="memitem:a62cd17ad03bb2817cb0c419e1c9790b1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a62cd17ad03bb2817cb0c419e1c9790b1">netconn_type</a>(conn)&#160;&#160;&#160;(conn-&gt;type)</td></tr>
  125. <tr class="separator:a62cd17ad03bb2817cb0c419e1c9790b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  126. <tr class="memitem:ga1065e769f2276270722a7700182077bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#ga1065e769f2276270722a7700182077bc">netconn_peer</a>(c, i, p)&#160;&#160;&#160;<a class="el" href="api_8h.html#a28430d1d86733f1bf98dc31305c42104">netconn_getaddr</a>(c,i,p,0)</td></tr>
  127. <tr class="separator:ga1065e769f2276270722a7700182077bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  128. <tr class="memitem:ga37ec33522cfc26fa57251c33e4cebb3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#ga37ec33522cfc26fa57251c33e4cebb3e">netconn_addr</a>(c, i, p)&#160;&#160;&#160;<a class="el" href="api_8h.html#a28430d1d86733f1bf98dc31305c42104">netconn_getaddr</a>(c,i,p,1)</td></tr>
  129. <tr class="separator:ga37ec33522cfc26fa57251c33e4cebb3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  130. <tr class="memitem:ga43e3f4c2169dec0f666c502e490416b7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__tcp.html#ga43e3f4c2169dec0f666c502e490416b7">netconn_listen</a>(conn)&#160;&#160;&#160;<a class="el" href="group__netconn__tcp.html#ga84333ba8e7cdf45558d2b4795f53265d">netconn_listen_with_backlog</a>(conn, <a class="el" href="group__lwip__opts__tcp.html#ga93cce3f47e33df11248c908d1775bacf">TCP_DEFAULT_LISTEN_BACKLOG</a>)</td></tr>
  131. <tr class="separator:ga43e3f4c2169dec0f666c502e490416b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132. <tr class="memitem:gafea5e9b90770a7c6cd0762ceb65e5b46"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__tcp.html#gafea5e9b90770a7c6cd0762ceb65e5b46">netconn_write</a>(conn, dataptr, size, apiflags)&#160;&#160;&#160;<a class="el" href="group__netconn__tcp.html#gacf9ce6f71652739d6be2ca83f7c423bf">netconn_write_partly</a>(conn, dataptr, size, apiflags, NULL)</td></tr>
  133. <tr class="separator:gafea5e9b90770a7c6cd0762ceb65e5b46"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="memitem:a6a578dd5b55e4457e0d23574ec9c55bb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a6a578dd5b55e4457e0d23574ec9c55bb">netconn_set_nonblocking</a>(conn, val)</td></tr>
  135. <tr class="separator:a6a578dd5b55e4457e0d23574ec9c55bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  136. <tr class="memitem:a5789f0030b895b40625a74deb5a1092f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a5789f0030b895b40625a74deb5a1092f">netconn_is_nonblocking</a>(conn)&#160;&#160;&#160;(((conn)-&gt;flags &amp; <a class="el" href="api_8h.html#abee57aa0ba63e35742d411bc5224900a">NETCONN_FLAG_NON_BLOCKING</a>) != 0)</td></tr>
  137. <tr class="separator:a5789f0030b895b40625a74deb5a1092f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. <tr class="memitem:gae56911e2d92bebf43d73e116530e41f1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gae56911e2d92bebf43d73e116530e41f1">netconn_set_ipv6only</a>(conn, val)</td></tr>
  139. <tr class="separator:gae56911e2d92bebf43d73e116530e41f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140. <tr class="memitem:gaf001c7d5fbf97c04eb1d9ac7d14c9c31"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gaf001c7d5fbf97c04eb1d9ac7d14c9c31">netconn_get_ipv6only</a>(conn)&#160;&#160;&#160;(((conn)-&gt;flags &amp; <a class="el" href="api_8h.html#a60892e4eb139f10157847fea4266bf5b">NETCONN_FLAG_IPV6_V6ONLY</a>) != 0)</td></tr>
  141. <tr class="separator:gaf001c7d5fbf97c04eb1d9ac7d14c9c31"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. <tr class="memitem:a3ce3ad9f660e99b11fec20cafaf8f016"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a3ce3ad9f660e99b11fec20cafaf8f016">netconn_set_sendtimeout</a>(conn, timeout)&#160;&#160;&#160;((conn)-&gt;send_timeout = (timeout))</td></tr>
  143. <tr class="separator:a3ce3ad9f660e99b11fec20cafaf8f016"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:a7d6e84458eec796b0b0ce1bb247f323f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a7d6e84458eec796b0b0ce1bb247f323f">netconn_get_sendtimeout</a>(conn)&#160;&#160;&#160;((conn)-&gt;send_timeout)</td></tr>
  145. <tr class="separator:a7d6e84458eec796b0b0ce1bb247f323f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  146. <tr class="memitem:a04785274634a5b504c760731c2e70725"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a04785274634a5b504c760731c2e70725">netconn_set_recvbufsize</a>(conn, recvbufsize)&#160;&#160;&#160;((conn)-&gt;recv_bufsize = (recvbufsize))</td></tr>
  147. <tr class="separator:a04785274634a5b504c760731c2e70725"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148. <tr class="memitem:ac0298c287dc3823047c378c014ff1eb0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#ac0298c287dc3823047c378c014ff1eb0">netconn_get_recvbufsize</a>(conn)&#160;&#160;&#160;((conn)-&gt;recv_bufsize)</td></tr>
  149. <tr class="separator:ac0298c287dc3823047c378c014ff1eb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. </table><table class="memberdecls">
  151. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
  152. Typedefs</h2></td></tr>
  153. <tr class="memitem:a3e130339f00202b3ab714af502163a2d"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a3e130339f00202b3ab714af502163a2d">netconn_callback</a>) (struct <a class="el" href="structnetconn.html">netconn</a> *, enum <a class="el" href="api_8h.html#af722260882d14c49afb765293ffb0155">netconn_evt</a>, u16_t len)</td></tr>
  154. <tr class="separator:a3e130339f00202b3ab714af502163a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  155. </table><table class="memberdecls">
  156. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
  157. Enumerations</h2></td></tr>
  158. <tr class="memitem:gaaba260d28d105fb4bce9185fd0300d91"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gaaba260d28d105fb4bce9185fd0300d91">netconn_type</a> { , <br />
  159. &#160;&#160;<a class="el" href="group__netconn__common.html#ggaaba260d28d105fb4bce9185fd0300d91a75d14318b91af7a452230189f47e5e1a">NETCONN_TCP</a> = 0x10,
  160. <a class="el" href="group__netconn__common.html#ggaaba260d28d105fb4bce9185fd0300d91ae7efa7c4e50b7b381531a2136cd5a013">NETCONN_TCP_IPV6</a> = NETCONN_TCP | 0x08,
  161. <a class="el" href="group__netconn__common.html#ggaaba260d28d105fb4bce9185fd0300d91a6b8ec191d69f7e639f4ab40779069636">NETCONN_UDP</a> = 0x20,
  162. <a class="el" href="group__netconn__common.html#ggaaba260d28d105fb4bce9185fd0300d91a655e1625cc7e6a93f1e3d2646f56a1e4">NETCONN_UDPLITE</a> = 0x21,
  163. <br />
  164. &#160;&#160;<a class="el" href="group__netconn__common.html#ggaaba260d28d105fb4bce9185fd0300d91a7e0c3f566b3d4321b36b711b6b1ad6de">NETCONN_UDPNOCHKSUM</a> = 0x22,
  165. <a class="el" href="group__netconn__common.html#ggaaba260d28d105fb4bce9185fd0300d91a34ee1c89f6705462590a4fe2c9772d9e">NETCONN_UDP_IPV6</a> = NETCONN_UDP | 0x08,
  166. <a class="el" href="group__netconn__common.html#ggaaba260d28d105fb4bce9185fd0300d91aa9cabc9d90606b5c5939fcc02ac588c7">NETCONN_UDPLITE_IPV6</a> = NETCONN_UDPLITE | 0x08,
  167. <a class="el" href="group__netconn__common.html#ggaaba260d28d105fb4bce9185fd0300d91a2c7f548d26f6c411f084b6c59247b60e">NETCONN_UDPNOCHKSUM_IPV6</a> = NETCONN_UDPNOCHKSUM | 0x08,
  168. <br />
  169. &#160;&#160;<a class="el" href="group__netconn__common.html#ggaaba260d28d105fb4bce9185fd0300d91a0d828a7e9c1614d4cae56602b09f39e9">NETCONN_RAW</a> = 0x40
  170. <br />
  171. }</td></tr>
  172. <tr class="separator:gaaba260d28d105fb4bce9185fd0300d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
  173. <tr class="memitem:a2c6c9c1869f443c5ec7b31180a44fada"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a2c6c9c1869f443c5ec7b31180a44fada">netconn_state</a> </td></tr>
  174. <tr class="separator:a2c6c9c1869f443c5ec7b31180a44fada"><td class="memSeparator" colspan="2">&#160;</td></tr>
  175. <tr class="memitem:af722260882d14c49afb765293ffb0155"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#af722260882d14c49afb765293ffb0155">netconn_evt</a> </td></tr>
  176. <tr class="separator:af722260882d14c49afb765293ffb0155"><td class="memSeparator" colspan="2">&#160;</td></tr>
  177. <tr class="memitem:a5c6ded2c082de1536019b197a0a912db"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a5c6ded2c082de1536019b197a0a912db">netconn_igmp</a> </td></tr>
  178. <tr class="separator:a5c6ded2c082de1536019b197a0a912db"><td class="memSeparator" colspan="2">&#160;</td></tr>
  179. </table><table class="memberdecls">
  180. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
  181. Functions</h2></td></tr>
  182. <tr class="memitem:ad0a0434e5ff08bb350740cb840e2aca8"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structnetconn.html">netconn</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#ad0a0434e5ff08bb350740cb840e2aca8">netconn_new_with_proto_and_callback</a> (enum <a class="el" href="group__netconn__common.html#gaaba260d28d105fb4bce9185fd0300d91">netconn_type</a> t, u8_t proto, <a class="el" href="api_8h.html#a3e130339f00202b3ab714af502163a2d">netconn_callback</a> callback)</td></tr>
  183. <tr class="separator:ad0a0434e5ff08bb350740cb840e2aca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  184. <tr class="memitem:gad5c079af0ad791a92fe9dade375744f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gad5c079af0ad791a92fe9dade375744f0">netconn_prepare_delete</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn)</td></tr>
  185. <tr class="separator:gad5c079af0ad791a92fe9dade375744f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  186. <tr class="memitem:gab411221f912a6d9e4c82ac3963989403"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gab411221f912a6d9e4c82ac3963989403">netconn_delete</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn)</td></tr>
  187. <tr class="separator:gab411221f912a6d9e4c82ac3963989403"><td class="memSeparator" colspan="2">&#160;</td></tr>
  188. <tr class="memitem:a28430d1d86733f1bf98dc31305c42104"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a28430d1d86733f1bf98dc31305c42104">netconn_getaddr</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, <a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *addr, u16_t *port, u8_t local)</td></tr>
  189. <tr class="separator:a28430d1d86733f1bf98dc31305c42104"><td class="memSeparator" colspan="2">&#160;</td></tr>
  190. <tr class="memitem:ga63bcc4d7bd150674fa953a1253fa6230"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#ga63bcc4d7bd150674fa953a1253fa6230">netconn_bind</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, const <a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *addr, u16_t port)</td></tr>
  191. <tr class="separator:ga63bcc4d7bd150674fa953a1253fa6230"><td class="memSeparator" colspan="2">&#160;</td></tr>
  192. <tr class="memitem:gaa78479deeedcecd3bacade387ac40cc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gaa78479deeedcecd3bacade387ac40cc5">netconn_bind_if</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, u8_t if_idx)</td></tr>
  193. <tr class="separator:gaa78479deeedcecd3bacade387ac40cc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  194. <tr class="memitem:gacba7f74d973872ad0b88b9a96098cf77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gacba7f74d973872ad0b88b9a96098cf77">netconn_connect</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, const <a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *addr, u16_t port)</td></tr>
  195. <tr class="separator:gacba7f74d973872ad0b88b9a96098cf77"><td class="memSeparator" colspan="2">&#160;</td></tr>
  196. <tr class="memitem:ga90bb4c4d1af6602a655b78fce0520402"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__udp.html#ga90bb4c4d1af6602a655b78fce0520402">netconn_disconnect</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn)</td></tr>
  197. <tr class="separator:ga90bb4c4d1af6602a655b78fce0520402"><td class="memSeparator" colspan="2">&#160;</td></tr>
  198. <tr class="memitem:ga84333ba8e7cdf45558d2b4795f53265d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__tcp.html#ga84333ba8e7cdf45558d2b4795f53265d">netconn_listen_with_backlog</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, u8_t backlog)</td></tr>
  199. <tr class="separator:ga84333ba8e7cdf45558d2b4795f53265d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  200. <tr class="memitem:ga13593148f60f7bbc6a505b567f175d69"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__tcp.html#ga13593148f60f7bbc6a505b567f175d69">netconn_accept</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, struct <a class="el" href="structnetconn.html">netconn</a> **new_conn)</td></tr>
  201. <tr class="separator:ga13593148f60f7bbc6a505b567f175d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
  202. <tr class="memitem:ga50490bab058f4e740798beffcf48cabf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#ga50490bab058f4e740798beffcf48cabf">netconn_recv</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, struct <a class="el" href="structnetbuf.html">netbuf</a> **new_buf)</td></tr>
  203. <tr class="separator:ga50490bab058f4e740798beffcf48cabf"><td class="memSeparator" colspan="2">&#160;</td></tr>
  204. <tr class="memitem:a805a90b546c5a149f04782351633979b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a805a90b546c5a149f04782351633979b">netconn_recv_udp_raw_netbuf</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, struct <a class="el" href="structnetbuf.html">netbuf</a> **new_buf)</td></tr>
  205. <tr class="separator:a805a90b546c5a149f04782351633979b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  206. <tr class="memitem:a505c3b8e400babf9681e09c945b7f421"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a505c3b8e400babf9681e09c945b7f421">netconn_recv_udp_raw_netbuf_flags</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, struct <a class="el" href="structnetbuf.html">netbuf</a> **new_buf, u8_t apiflags)</td></tr>
  207. <tr class="separator:a505c3b8e400babf9681e09c945b7f421"><td class="memSeparator" colspan="2">&#160;</td></tr>
  208. <tr class="memitem:ga6893cb7648733d1f05696bac94e10490"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__tcp.html#ga6893cb7648733d1f05696bac94e10490">netconn_recv_tcp_pbuf</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, struct <a class="el" href="structpbuf.html">pbuf</a> **new_buf)</td></tr>
  209. <tr class="separator:ga6893cb7648733d1f05696bac94e10490"><td class="memSeparator" colspan="2">&#160;</td></tr>
  210. <tr class="memitem:gabb8a242c445ef928c23258a2b2344294"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__tcp.html#gabb8a242c445ef928c23258a2b2344294">netconn_recv_tcp_pbuf_flags</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, struct <a class="el" href="structpbuf.html">pbuf</a> **new_buf, u8_t apiflags)</td></tr>
  211. <tr class="separator:gabb8a242c445ef928c23258a2b2344294"><td class="memSeparator" colspan="2">&#160;</td></tr>
  212. <tr class="memitem:ga8e1d852119bda1e1b602c2995282ef0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__udp.html#ga8e1d852119bda1e1b602c2995282ef0c">netconn_sendto</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, struct <a class="el" href="structnetbuf.html">netbuf</a> *buf, const <a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *addr, u16_t port)</td></tr>
  213. <tr class="separator:ga8e1d852119bda1e1b602c2995282ef0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  214. <tr class="memitem:gac4d4d10153d47c80a783c34b27c66238"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__udp.html#gac4d4d10153d47c80a783c34b27c66238">netconn_send</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, struct <a class="el" href="structnetbuf.html">netbuf</a> *buf)</td></tr>
  215. <tr class="separator:gac4d4d10153d47c80a783c34b27c66238"><td class="memSeparator" colspan="2">&#160;</td></tr>
  216. <tr class="memitem:gacf9ce6f71652739d6be2ca83f7c423bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__tcp.html#gacf9ce6f71652739d6be2ca83f7c423bf">netconn_write_partly</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, const void *dataptr, size_t size, u8_t apiflags, size_t *bytes_written)</td></tr>
  217. <tr class="separator:gacf9ce6f71652739d6be2ca83f7c423bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
  218. <tr class="memitem:a992b4fe8a855fd94861738f7260d0a32"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="api_8h.html#a992b4fe8a855fd94861738f7260d0a32">netconn_write_vectors_partly</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, struct <a class="el" href="structnetvector.html">netvector</a> *vectors, u16_t vectorcnt, u8_t apiflags, size_t *bytes_written)</td></tr>
  219. <tr class="separator:a992b4fe8a855fd94861738f7260d0a32"><td class="memSeparator" colspan="2">&#160;</td></tr>
  220. <tr class="memitem:ga25bb1c1c9928f91f53149a026e2e2624"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__tcp.html#ga25bb1c1c9928f91f53149a026e2e2624">netconn_close</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn)</td></tr>
  221. <tr class="separator:ga25bb1c1c9928f91f53149a026e2e2624"><td class="memSeparator" colspan="2">&#160;</td></tr>
  222. <tr class="memitem:ga6ec6b2cf7b0f59e9371e38ae7dea2a63"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__tcp.html#ga6ec6b2cf7b0f59e9371e38ae7dea2a63">netconn_shutdown</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, u8_t shut_rx, u8_t shut_tx)</td></tr>
  223. <tr class="separator:ga6ec6b2cf7b0f59e9371e38ae7dea2a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
  224. <tr class="memitem:gaaaf2f92eeb38dca70b3e6ad98c3c45ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__udp.html#gaaaf2f92eeb38dca70b3e6ad98c3c45ed">netconn_join_leave_group</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, const <a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *multiaddr, const <a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *netif_addr, enum <a class="el" href="api_8h.html#a5c6ded2c082de1536019b197a0a912db">netconn_igmp</a> join_or_leave)</td></tr>
  225. <tr class="separator:gaaaf2f92eeb38dca70b3e6ad98c3c45ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
  226. <tr class="memitem:ga5db2a1cf06a5fbb36f433e637da8729b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__udp.html#ga5db2a1cf06a5fbb36f433e637da8729b">netconn_join_leave_group_netif</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, const <a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *multiaddr, u8_t if_idx, enum <a class="el" href="api_8h.html#a5c6ded2c082de1536019b197a0a912db">netconn_igmp</a> join_or_leave)</td></tr>
  227. <tr class="separator:ga5db2a1cf06a5fbb36f433e637da8729b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  228. <tr class="memitem:gafb3494b149dff96ed8d1acb770ab52f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gafb3494b149dff96ed8d1acb770ab52f5">netconn_gethostbyname_addrtype</a> (const char *name, <a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *addr, u8_t dns_addrtype)</td></tr>
  229. <tr class="separator:gafb3494b149dff96ed8d1acb770ab52f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  230. <tr class="memitem:gab9eccae90351eb6c3d2ca690068445d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gab9eccae90351eb6c3d2ca690068445d4">netconn_err</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn)</td></tr>
  231. <tr class="separator:gab9eccae90351eb6c3d2ca690068445d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  232. </table>
  233. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  234. <div class="textblock"><p>netconn API (to be used from non-TCPIP threads) </p>
  235. </div><h2 class="groupheader">Macro Definition Documentation</h2>
  236. <a id="a3ce590f58be8f60dbde361920863b26d"></a>
  237. <h2 class="memtitle"><span class="permalink"><a href="#a3ce590f58be8f60dbde361920863b26d">&#9670;&nbsp;</a></span>API_EVENT</h2>
  238. <div class="memitem">
  239. <div class="memproto">
  240. <table class="memname">
  241. <tr>
  242. <td class="memname">#define API_EVENT</td>
  243. <td>(</td>
  244. <td class="paramtype">&#160;</td>
  245. <td class="paramname">c, </td>
  246. </tr>
  247. <tr>
  248. <td class="paramkey"></td>
  249. <td></td>
  250. <td class="paramtype">&#160;</td>
  251. <td class="paramname">e, </td>
  252. </tr>
  253. <tr>
  254. <td class="paramkey"></td>
  255. <td></td>
  256. <td class="paramtype">&#160;</td>
  257. <td class="paramname">l&#160;</td>
  258. </tr>
  259. <tr>
  260. <td></td>
  261. <td>)</td>
  262. <td></td><td></td>
  263. </tr>
  264. </table>
  265. </div><div class="memdoc">
  266. <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (c-&gt;callback) { \</div><div class="line"> (*c-&gt;callback)(c, e, l); \</div><div class="line"> }</div></div><!-- fragment --><p>Register an Network connection event </p>
  267. </div>
  268. </div>
  269. <a id="a24d62a2a03ba421fcf2bdce1ea89b949"></a>
  270. <h2 class="memtitle"><span class="permalink"><a href="#a24d62a2a03ba421fcf2bdce1ea89b949">&#9670;&nbsp;</a></span>NETCONN_FIN_RX_PENDING</h2>
  271. <div class="memitem">
  272. <div class="memproto">
  273. <table class="memname">
  274. <tr>
  275. <td class="memname">#define NETCONN_FIN_RX_PENDING&#160;&#160;&#160;0x80</td>
  276. </tr>
  277. </table>
  278. </div><div class="memdoc">
  279. <p>A FIN has been received but not passed to the application yet </p>
  280. </div>
  281. </div>
  282. <a id="a9d791955a4256a0589a3844e4e6f0f9c"></a>
  283. <h2 class="memtitle"><span class="permalink"><a href="#a9d791955a4256a0589a3844e4e6f0f9c">&#9670;&nbsp;</a></span>NETCONN_FLAG_CHECK_WRITESPACE</h2>
  284. <div class="memitem">
  285. <div class="memproto">
  286. <table class="memname">
  287. <tr>
  288. <td class="memname">#define NETCONN_FLAG_CHECK_WRITESPACE&#160;&#160;&#160;0x10</td>
  289. </tr>
  290. </table>
  291. </div><div class="memdoc">
  292. <p>If a nonblocking write has been rejected before, poll_tcp needs to check if the netconn is writable again </p>
  293. </div>
  294. </div>
  295. <a id="a70bb861ee643b60ee402fd48f581f58d"></a>
  296. <h2 class="memtitle"><span class="permalink"><a href="#a70bb861ee643b60ee402fd48f581f58d">&#9670;&nbsp;</a></span>NETCONN_FLAG_IN_NONBLOCKING_CONNECT</h2>
  297. <div class="memitem">
  298. <div class="memproto">
  299. <table class="memname">
  300. <tr>
  301. <td class="memname">#define NETCONN_FLAG_IN_NONBLOCKING_CONNECT&#160;&#160;&#160;0x04</td>
  302. </tr>
  303. </table>
  304. </div><div class="memdoc">
  305. <p>Was the last connect action a non-blocking one? </p>
  306. </div>
  307. </div>
  308. <a id="a60892e4eb139f10157847fea4266bf5b"></a>
  309. <h2 class="memtitle"><span class="permalink"><a href="#a60892e4eb139f10157847fea4266bf5b">&#9670;&nbsp;</a></span>NETCONN_FLAG_IPV6_V6ONLY</h2>
  310. <div class="memitem">
  311. <div class="memproto">
  312. <table class="memname">
  313. <tr>
  314. <td class="memname">#define NETCONN_FLAG_IPV6_V6ONLY&#160;&#160;&#160;0x20</td>
  315. </tr>
  316. </table>
  317. </div><div class="memdoc">
  318. <p>If this flag is set then only IPv6 communication is allowed on the netconn. As per RFC#3493 this features defaults to OFF allowing dual-stack usage by default. </p>
  319. </div>
  320. </div>
  321. <a id="af77be7590d3712259e78103c1dddf63f"></a>
  322. <h2 class="memtitle"><span class="permalink"><a href="#af77be7590d3712259e78103c1dddf63f">&#9670;&nbsp;</a></span>NETCONN_FLAG_MBOXCLOSED</h2>
  323. <div class="memitem">
  324. <div class="memproto">
  325. <table class="memname">
  326. <tr>
  327. <td class="memname">#define NETCONN_FLAG_MBOXCLOSED&#160;&#160;&#160;0x01</td>
  328. </tr>
  329. </table>
  330. </div><div class="memdoc">
  331. <p>This netconn had an error, don't block on recvmbox/acceptmbox any more </p>
  332. </div>
  333. </div>
  334. <a id="abee57aa0ba63e35742d411bc5224900a"></a>
  335. <h2 class="memtitle"><span class="permalink"><a href="#abee57aa0ba63e35742d411bc5224900a">&#9670;&nbsp;</a></span>NETCONN_FLAG_NON_BLOCKING</h2>
  336. <div class="memitem">
  337. <div class="memproto">
  338. <table class="memname">
  339. <tr>
  340. <td class="memname">#define NETCONN_FLAG_NON_BLOCKING&#160;&#160;&#160;0x02</td>
  341. </tr>
  342. </table>
  343. </div><div class="memdoc">
  344. <p>Should this netconn avoid blocking? </p>
  345. </div>
  346. </div>
  347. <a id="ac0298c287dc3823047c378c014ff1eb0"></a>
  348. <h2 class="memtitle"><span class="permalink"><a href="#ac0298c287dc3823047c378c014ff1eb0">&#9670;&nbsp;</a></span>netconn_get_recvbufsize</h2>
  349. <div class="memitem">
  350. <div class="memproto">
  351. <table class="memname">
  352. <tr>
  353. <td class="memname">#define netconn_get_recvbufsize</td>
  354. <td>(</td>
  355. <td class="paramtype">&#160;</td>
  356. <td class="paramname">conn</td><td>)</td>
  357. <td>&#160;&#160;&#160;((conn)-&gt;recv_bufsize)</td>
  358. </tr>
  359. </table>
  360. </div><div class="memdoc">
  361. <p>Get the receive buffer in bytes </p>
  362. </div>
  363. </div>
  364. <a id="a7d6e84458eec796b0b0ce1bb247f323f"></a>
  365. <h2 class="memtitle"><span class="permalink"><a href="#a7d6e84458eec796b0b0ce1bb247f323f">&#9670;&nbsp;</a></span>netconn_get_sendtimeout</h2>
  366. <div class="memitem">
  367. <div class="memproto">
  368. <table class="memname">
  369. <tr>
  370. <td class="memname">#define netconn_get_sendtimeout</td>
  371. <td>(</td>
  372. <td class="paramtype">&#160;</td>
  373. <td class="paramname">conn</td><td>)</td>
  374. <td>&#160;&#160;&#160;((conn)-&gt;send_timeout)</td>
  375. </tr>
  376. </table>
  377. </div><div class="memdoc">
  378. <p>Get the send timeout in milliseconds </p>
  379. </div>
  380. </div>
  381. <a id="a5789f0030b895b40625a74deb5a1092f"></a>
  382. <h2 class="memtitle"><span class="permalink"><a href="#a5789f0030b895b40625a74deb5a1092f">&#9670;&nbsp;</a></span>netconn_is_nonblocking</h2>
  383. <div class="memitem">
  384. <div class="memproto">
  385. <table class="memname">
  386. <tr>
  387. <td class="memname">#define netconn_is_nonblocking</td>
  388. <td>(</td>
  389. <td class="paramtype">&#160;</td>
  390. <td class="paramname">conn</td><td>)</td>
  391. <td>&#160;&#160;&#160;(((conn)-&gt;flags &amp; <a class="el" href="api_8h.html#abee57aa0ba63e35742d411bc5224900a">NETCONN_FLAG_NON_BLOCKING</a>) != 0)</td>
  392. </tr>
  393. </table>
  394. </div><div class="memdoc">
  395. <p>Get the blocking status of netconn calls ( </p>
  396. </div>
  397. </div>
  398. <a id="a6a578dd5b55e4457e0d23574ec9c55bb"></a>
  399. <h2 class="memtitle"><span class="permalink"><a href="#a6a578dd5b55e4457e0d23574ec9c55bb">&#9670;&nbsp;</a></span>netconn_set_nonblocking</h2>
  400. <div class="memitem">
  401. <div class="memproto">
  402. <table class="memname">
  403. <tr>
  404. <td class="memname">#define netconn_set_nonblocking</td>
  405. <td>(</td>
  406. <td class="paramtype">&#160;</td>
  407. <td class="paramname">conn, </td>
  408. </tr>
  409. <tr>
  410. <td class="paramkey"></td>
  411. <td></td>
  412. <td class="paramtype">&#160;</td>
  413. <td class="paramname">val&#160;</td>
  414. </tr>
  415. <tr>
  416. <td></td>
  417. <td>)</td>
  418. <td></td><td></td>
  419. </tr>
  420. </table>
  421. </div><div class="memdoc">
  422. <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { <span class="keywordflow">if</span>(val) { \</div><div class="line"> netconn_set_flags(conn, <a class="code" href="api_8h.html#abee57aa0ba63e35742d411bc5224900a">NETCONN_FLAG_NON_BLOCKING</a>); \</div><div class="line">} <span class="keywordflow">else</span> { \</div><div class="line"> netconn_clear_flags(conn, <a class="code" href="api_8h.html#abee57aa0ba63e35742d411bc5224900a">NETCONN_FLAG_NON_BLOCKING</a>); }} <span class="keywordflow">while</span>(0)</div><div class="ttc" id="api_8h_html_abee57aa0ba63e35742d411bc5224900a"><div class="ttname"><a href="api_8h.html#abee57aa0ba63e35742d411bc5224900a">NETCONN_FLAG_NON_BLOCKING</a></div><div class="ttdeci">#define NETCONN_FLAG_NON_BLOCKING</div><div class="ttdef"><b>Definition:</b> api.h:73</div></div>
  423. </div><!-- fragment --><p>Set the blocking status of netconn calls ( </p>
  424. </div>
  425. </div>
  426. <a id="a04785274634a5b504c760731c2e70725"></a>
  427. <h2 class="memtitle"><span class="permalink"><a href="#a04785274634a5b504c760731c2e70725">&#9670;&nbsp;</a></span>netconn_set_recvbufsize</h2>
  428. <div class="memitem">
  429. <div class="memproto">
  430. <table class="memname">
  431. <tr>
  432. <td class="memname">#define netconn_set_recvbufsize</td>
  433. <td>(</td>
  434. <td class="paramtype">&#160;</td>
  435. <td class="paramname">conn, </td>
  436. </tr>
  437. <tr>
  438. <td class="paramkey"></td>
  439. <td></td>
  440. <td class="paramtype">&#160;</td>
  441. <td class="paramname">recvbufsize&#160;</td>
  442. </tr>
  443. <tr>
  444. <td></td>
  445. <td>)</td>
  446. <td></td><td>&#160;&#160;&#160;((conn)-&gt;recv_bufsize = (recvbufsize))</td>
  447. </tr>
  448. </table>
  449. </div><div class="memdoc">
  450. <p>Set the receive buffer in bytes </p>
  451. </div>
  452. </div>
  453. <a id="a3ce3ad9f660e99b11fec20cafaf8f016"></a>
  454. <h2 class="memtitle"><span class="permalink"><a href="#a3ce3ad9f660e99b11fec20cafaf8f016">&#9670;&nbsp;</a></span>netconn_set_sendtimeout</h2>
  455. <div class="memitem">
  456. <div class="memproto">
  457. <table class="memname">
  458. <tr>
  459. <td class="memname">#define netconn_set_sendtimeout</td>
  460. <td>(</td>
  461. <td class="paramtype">&#160;</td>
  462. <td class="paramname">conn, </td>
  463. </tr>
  464. <tr>
  465. <td class="paramkey"></td>
  466. <td></td>
  467. <td class="paramtype">&#160;</td>
  468. <td class="paramname">timeout&#160;</td>
  469. </tr>
  470. <tr>
  471. <td></td>
  472. <td>)</td>
  473. <td></td><td>&#160;&#160;&#160;((conn)-&gt;send_timeout = (timeout))</td>
  474. </tr>
  475. </table>
  476. </div><div class="memdoc">
  477. <p>Set the send timeout in milliseconds </p>
  478. </div>
  479. </div>
  480. <a id="a62cd17ad03bb2817cb0c419e1c9790b1"></a>
  481. <h2 class="memtitle"><span class="permalink"><a href="#a62cd17ad03bb2817cb0c419e1c9790b1">&#9670;&nbsp;</a></span>netconn_type</h2>
  482. <div class="memitem">
  483. <div class="memproto">
  484. <table class="memname">
  485. <tr>
  486. <td class="memname">#define <a class="el" href="group__netconn__common.html#gaaba260d28d105fb4bce9185fd0300d91">netconn_type</a></td>
  487. <td>(</td>
  488. <td class="paramtype">&#160;</td>
  489. <td class="paramname">conn</td><td>)</td>
  490. <td>&#160;&#160;&#160;(conn-&gt;type)</td>
  491. </tr>
  492. </table>
  493. </div><div class="memdoc">
  494. <p>Get the type of a netconn (as enum netconn_type). </p>
  495. </div>
  496. </div>
  497. <h2 class="groupheader">Typedef Documentation</h2>
  498. <a id="a3e130339f00202b3ab714af502163a2d"></a>
  499. <h2 class="memtitle"><span class="permalink"><a href="#a3e130339f00202b3ab714af502163a2d">&#9670;&nbsp;</a></span>netconn_callback</h2>
  500. <div class="memitem">
  501. <div class="memproto">
  502. <table class="memname">
  503. <tr>
  504. <td class="memname">typedef void(* netconn_callback) (struct <a class="el" href="structnetconn.html">netconn</a> *, enum <a class="el" href="api_8h.html#af722260882d14c49afb765293ffb0155">netconn_evt</a>, u16_t len)</td>
  505. </tr>
  506. </table>
  507. </div><div class="memdoc">
  508. <p>A callback prototype to inform about events for a netconn </p>
  509. </div>
  510. </div>
  511. <h2 class="groupheader">Enumeration Type Documentation</h2>
  512. <a id="af722260882d14c49afb765293ffb0155"></a>
  513. <h2 class="memtitle"><span class="permalink"><a href="#af722260882d14c49afb765293ffb0155">&#9670;&nbsp;</a></span>netconn_evt</h2>
  514. <div class="memitem">
  515. <div class="memproto">
  516. <table class="memname">
  517. <tr>
  518. <td class="memname">enum <a class="el" href="api_8h.html#af722260882d14c49afb765293ffb0155">netconn_evt</a></td>
  519. </tr>
  520. </table>
  521. </div><div class="memdoc">
  522. <p>Used to inform the callback function about changes</p>
  523. <p>Event explanation:</p>
  524. <p>In the netconn implementation, there are three ways to block a client:</p>
  525. <ul>
  526. <li>accept mbox (sys_arch_mbox_fetch(&amp;conn-&gt;acceptmbox, &amp;accept_ptr, 0); in <a class="el" href="group__netconn__tcp.html#ga13593148f60f7bbc6a505b567f175d69">netconn_accept()</a>)</li>
  527. <li>receive mbox (sys_arch_mbox_fetch(&amp;conn-&gt;recvmbox, &amp;buf, 0); in netconn_recv_data())</li>
  528. <li>send queue is full (sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0); in <a class="el" href="api__msg_8c.html#aca4545a471ead1bc673ea93fe85f7e5c">lwip_netconn_do_write()</a>)</li>
  529. </ul>
  530. <p>The events have to be seen as events signaling the state of these mboxes/semaphores. For non-blocking connections, you need to know in advance whether a call to a netconn function call would block or not, and these events tell you about that.</p>
  531. <p>RCVPLUS events say: Safe to perform a potentially blocking call call once more. They are counted in sockets - three RCVPLUS events for accept mbox means you are safe to call netconn_accept 3 times without being blocked. Same thing for receive mbox.</p>
  532. <p>RCVMINUS events say: Your call to to a possibly blocking function is "acknowledged". Socket implementation decrements the counter.</p>
  533. <p>For TX, there is no need to count, its merely a flag. SENDPLUS means you may send something. SENDPLUS occurs when enough data was delivered to peer so <a class="el" href="group__netconn__udp.html#gac4d4d10153d47c80a783c34b27c66238">netconn_send()</a> can be called again. A SENDMINUS event occurs when the next call to a <a class="el" href="group__netconn__udp.html#gac4d4d10153d47c80a783c34b27c66238">netconn_send()</a> would be blocking. </p>
  534. </div>
  535. </div>
  536. <a id="a5c6ded2c082de1536019b197a0a912db"></a>
  537. <h2 class="memtitle"><span class="permalink"><a href="#a5c6ded2c082de1536019b197a0a912db">&#9670;&nbsp;</a></span>netconn_igmp</h2>
  538. <div class="memitem">
  539. <div class="memproto">
  540. <table class="memname">
  541. <tr>
  542. <td class="memname">enum <a class="el" href="api_8h.html#a5c6ded2c082de1536019b197a0a912db">netconn_igmp</a></td>
  543. </tr>
  544. </table>
  545. </div><div class="memdoc">
  546. <p>Used for <a class="el" href="group__netconn__udp.html#gaaaf2f92eeb38dca70b3e6ad98c3c45ed">netconn_join_leave_group()</a> </p>
  547. </div>
  548. </div>
  549. <a id="a2c6c9c1869f443c5ec7b31180a44fada"></a>
  550. <h2 class="memtitle"><span class="permalink"><a href="#a2c6c9c1869f443c5ec7b31180a44fada">&#9670;&nbsp;</a></span>netconn_state</h2>
  551. <div class="memitem">
  552. <div class="memproto">
  553. <table class="memname">
  554. <tr>
  555. <td class="memname">enum <a class="el" href="api_8h.html#a2c6c9c1869f443c5ec7b31180a44fada">netconn_state</a></td>
  556. </tr>
  557. </table>
  558. </div><div class="memdoc">
  559. <p>Current state of the netconn. Non-TCP netconns are always in state NETCONN_NONE! </p>
  560. </div>
  561. </div>
  562. <h2 class="groupheader">Function Documentation</h2>
  563. <a id="a28430d1d86733f1bf98dc31305c42104"></a>
  564. <h2 class="memtitle"><span class="permalink"><a href="#a28430d1d86733f1bf98dc31305c42104">&#9670;&nbsp;</a></span>netconn_getaddr()</h2>
  565. <div class="memitem">
  566. <div class="memproto">
  567. <table class="memname">
  568. <tr>
  569. <td class="memname"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> netconn_getaddr </td>
  570. <td>(</td>
  571. <td class="paramtype">struct <a class="el" href="structnetconn.html">netconn</a> *&#160;</td>
  572. <td class="paramname"><em>conn</em>, </td>
  573. </tr>
  574. <tr>
  575. <td class="paramkey"></td>
  576. <td></td>
  577. <td class="paramtype"><a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *&#160;</td>
  578. <td class="paramname"><em>addr</em>, </td>
  579. </tr>
  580. <tr>
  581. <td class="paramkey"></td>
  582. <td></td>
  583. <td class="paramtype">u16_t *&#160;</td>
  584. <td class="paramname"><em>port</em>, </td>
  585. </tr>
  586. <tr>
  587. <td class="paramkey"></td>
  588. <td></td>
  589. <td class="paramtype">u8_t&#160;</td>
  590. <td class="paramname"><em>local</em>&#160;</td>
  591. </tr>
  592. <tr>
  593. <td></td>
  594. <td>)</td>
  595. <td></td><td></td>
  596. </tr>
  597. </table>
  598. </div><div class="memdoc">
  599. <p>Get the local or remote IP address and port of a netconn. For RAW netconns, this returns the protocol instead of a port!</p>
  600. <dl class="params"><dt>Parameters</dt><dd>
  601. <table class="params">
  602. <tr><td class="paramname">conn</td><td>the netconn to query </td></tr>
  603. <tr><td class="paramname">addr</td><td>a pointer to which to save the IP address </td></tr>
  604. <tr><td class="paramname">port</td><td>a pointer to which to save the port (or protocol for RAW) </td></tr>
  605. <tr><td class="paramname">local</td><td>1 to get the local IP address, 0 to get the remote one </td></tr>
  606. </table>
  607. </dd>
  608. </dl>
  609. <dl class="section return"><dt>Returns</dt><dd>ERR_CONN for invalid connections ERR_OK if the information was retrieved </dd></dl>
  610. </div>
  611. </div>
  612. <a id="ad0a0434e5ff08bb350740cb840e2aca8"></a>
  613. <h2 class="memtitle"><span class="permalink"><a href="#ad0a0434e5ff08bb350740cb840e2aca8">&#9670;&nbsp;</a></span>netconn_new_with_proto_and_callback()</h2>
  614. <div class="memitem">
  615. <div class="memproto">
  616. <table class="memname">
  617. <tr>
  618. <td class="memname">struct <a class="el" href="structnetconn.html">netconn</a>* netconn_new_with_proto_and_callback </td>
  619. <td>(</td>
  620. <td class="paramtype">enum <a class="el" href="group__netconn__common.html#gaaba260d28d105fb4bce9185fd0300d91">netconn_type</a>&#160;</td>
  621. <td class="paramname"><em>t</em>, </td>
  622. </tr>
  623. <tr>
  624. <td class="paramkey"></td>
  625. <td></td>
  626. <td class="paramtype">u8_t&#160;</td>
  627. <td class="paramname"><em>proto</em>, </td>
  628. </tr>
  629. <tr>
  630. <td class="paramkey"></td>
  631. <td></td>
  632. <td class="paramtype"><a class="el" href="api_8h.html#a3e130339f00202b3ab714af502163a2d">netconn_callback</a>&#160;</td>
  633. <td class="paramname"><em>callback</em>&#160;</td>
  634. </tr>
  635. <tr>
  636. <td></td>
  637. <td>)</td>
  638. <td></td><td></td>
  639. </tr>
  640. </table>
  641. </div><div class="memdoc">
  642. <p>Create a new netconn (of a specific type) that has a callback function. The corresponding pcb is also created.</p>
  643. <dl class="params"><dt>Parameters</dt><dd>
  644. <table class="params">
  645. <tr><td class="paramname">t</td><td>the type of 'connection' to create (</td></tr>
  646. </table>
  647. </dd>
  648. </dl>
  649. <dl class="section see"><dt>See also</dt><dd>enum <a class="el" href="group__netconn__common.html#gaaba260d28d105fb4bce9185fd0300d91">netconn_type</a>) </dd></dl>
  650. <dl class="params"><dt>Parameters</dt><dd>
  651. <table class="params">
  652. <tr><td class="paramname">proto</td><td>the IP protocol for RAW IP pcbs </td></tr>
  653. <tr><td class="paramname">callback</td><td>a function to call on status changes (RX available, TX'ed) </td></tr>
  654. </table>
  655. </dd>
  656. </dl>
  657. <dl class="section return"><dt>Returns</dt><dd>a newly allocated struct netconn or NULL on memory error </dd></dl>
  658. </div>
  659. </div>
  660. <a id="a805a90b546c5a149f04782351633979b"></a>
  661. <h2 class="memtitle"><span class="permalink"><a href="#a805a90b546c5a149f04782351633979b">&#9670;&nbsp;</a></span>netconn_recv_udp_raw_netbuf()</h2>
  662. <div class="memitem">
  663. <div class="memproto">
  664. <table class="memname">
  665. <tr>
  666. <td class="memname"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> netconn_recv_udp_raw_netbuf </td>
  667. <td>(</td>
  668. <td class="paramtype">struct <a class="el" href="structnetconn.html">netconn</a> *&#160;</td>
  669. <td class="paramname"><em>conn</em>, </td>
  670. </tr>
  671. <tr>
  672. <td class="paramkey"></td>
  673. <td></td>
  674. <td class="paramtype">struct <a class="el" href="structnetbuf.html">netbuf</a> **&#160;</td>
  675. <td class="paramname"><em>new_buf</em>&#160;</td>
  676. </tr>
  677. <tr>
  678. <td></td>
  679. <td>)</td>
  680. <td></td><td></td>
  681. </tr>
  682. </table>
  683. </div><div class="memdoc">
  684. <p>Receive data (in form of a netbuf) from a UDP or RAW netconn</p>
  685. <dl class="params"><dt>Parameters</dt><dd>
  686. <table class="params">
  687. <tr><td class="paramname">conn</td><td>the netconn from which to receive data </td></tr>
  688. <tr><td class="paramname">new_buf</td><td>pointer where a new netbuf is stored when received data </td></tr>
  689. </table>
  690. </dd>
  691. </dl>
  692. <dl class="section return"><dt>Returns</dt><dd>ERR_OK if data has been received, an error code otherwise (timeout, memory error or another error) ERR_ARG if conn is not a UDP/RAW netconn </dd></dl>
  693. </div>
  694. </div>
  695. <a id="a505c3b8e400babf9681e09c945b7f421"></a>
  696. <h2 class="memtitle"><span class="permalink"><a href="#a505c3b8e400babf9681e09c945b7f421">&#9670;&nbsp;</a></span>netconn_recv_udp_raw_netbuf_flags()</h2>
  697. <div class="memitem">
  698. <div class="memproto">
  699. <table class="memname">
  700. <tr>
  701. <td class="memname"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> netconn_recv_udp_raw_netbuf_flags </td>
  702. <td>(</td>
  703. <td class="paramtype">struct <a class="el" href="structnetconn.html">netconn</a> *&#160;</td>
  704. <td class="paramname"><em>conn</em>, </td>
  705. </tr>
  706. <tr>
  707. <td class="paramkey"></td>
  708. <td></td>
  709. <td class="paramtype">struct <a class="el" href="structnetbuf.html">netbuf</a> **&#160;</td>
  710. <td class="paramname"><em>new_buf</em>, </td>
  711. </tr>
  712. <tr>
  713. <td class="paramkey"></td>
  714. <td></td>
  715. <td class="paramtype">u8_t&#160;</td>
  716. <td class="paramname"><em>apiflags</em>&#160;</td>
  717. </tr>
  718. <tr>
  719. <td></td>
  720. <td>)</td>
  721. <td></td><td></td>
  722. </tr>
  723. </table>
  724. </div><div class="memdoc">
  725. <p>Receive data (in form of a netbuf) from a UDP or RAW netconn</p>
  726. <dl class="params"><dt>Parameters</dt><dd>
  727. <table class="params">
  728. <tr><td class="paramname">conn</td><td>the netconn from which to receive data </td></tr>
  729. <tr><td class="paramname">new_buf</td><td>pointer where a new netbuf is stored when received data </td></tr>
  730. <tr><td class="paramname">apiflags</td><td>flags that control function behaviour. For now only:<ul>
  731. <li>NETCONN_DONTBLOCK: only read data that is available now, don't wait for more data </li>
  732. </ul>
  733. </td></tr>
  734. </table>
  735. </dd>
  736. </dl>
  737. <dl class="section return"><dt>Returns</dt><dd>ERR_OK if data has been received, an error code otherwise (timeout, memory error or another error) ERR_ARG if conn is not a UDP/RAW netconn </dd></dl>
  738. </div>
  739. </div>
  740. <a id="a992b4fe8a855fd94861738f7260d0a32"></a>
  741. <h2 class="memtitle"><span class="permalink"><a href="#a992b4fe8a855fd94861738f7260d0a32">&#9670;&nbsp;</a></span>netconn_write_vectors_partly()</h2>
  742. <div class="memitem">
  743. <div class="memproto">
  744. <table class="memname">
  745. <tr>
  746. <td class="memname"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> netconn_write_vectors_partly </td>
  747. <td>(</td>
  748. <td class="paramtype">struct <a class="el" href="structnetconn.html">netconn</a> *&#160;</td>
  749. <td class="paramname"><em>conn</em>, </td>
  750. </tr>
  751. <tr>
  752. <td class="paramkey"></td>
  753. <td></td>
  754. <td class="paramtype">struct <a class="el" href="structnetvector.html">netvector</a> *&#160;</td>
  755. <td class="paramname"><em>vectors</em>, </td>
  756. </tr>
  757. <tr>
  758. <td class="paramkey"></td>
  759. <td></td>
  760. <td class="paramtype">u16_t&#160;</td>
  761. <td class="paramname"><em>vectorcnt</em>, </td>
  762. </tr>
  763. <tr>
  764. <td class="paramkey"></td>
  765. <td></td>
  766. <td class="paramtype">u8_t&#160;</td>
  767. <td class="paramname"><em>apiflags</em>, </td>
  768. </tr>
  769. <tr>
  770. <td class="paramkey"></td>
  771. <td></td>
  772. <td class="paramtype">size_t *&#160;</td>
  773. <td class="paramname"><em>bytes_written</em>&#160;</td>
  774. </tr>
  775. <tr>
  776. <td></td>
  777. <td>)</td>
  778. <td></td><td></td>
  779. </tr>
  780. </table>
  781. </div><div class="memdoc">
  782. <p>Send vectorized data atomically over a TCP netconn.</p>
  783. <dl class="params"><dt>Parameters</dt><dd>
  784. <table class="params">
  785. <tr><td class="paramname">conn</td><td>the TCP netconn over which to send data </td></tr>
  786. <tr><td class="paramname">vectors</td><td>array of vectors containing data to send </td></tr>
  787. <tr><td class="paramname">vectorcnt</td><td>number of vectors in the array </td></tr>
  788. <tr><td class="paramname">apiflags</td><td>combination of following flags :<ul>
  789. <li>NETCONN_COPY: data will be copied into memory belonging to the stack</li>
  790. <li>NETCONN_MORE: for TCP connection, PSH flag will be set on last segment sent</li>
  791. <li>NETCONN_DONTBLOCK: only write the data if all data can be written at once </li>
  792. </ul>
  793. </td></tr>
  794. <tr><td class="paramname">bytes_written</td><td>pointer to a location that receives the number of written bytes </td></tr>
  795. </table>
  796. </dd>
  797. </dl>
  798. <dl class="section return"><dt>Returns</dt><dd>ERR_OK if data was sent, any other err_t on error </dd></dl>
  799. </div>
  800. </div>
  801. </div><!-- contents -->
  802. </div><!-- doc-content -->
  803. <!-- start footer part -->
  804. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  805. <ul>
  806. <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b0856f6b0d80ccb263b2f415c91f9e17.html">include</a></li><li class="navelem"><a class="el" href="dir_4e6b3cf33a61b6caac9c8ac30c866f37.html">lwip</a></li><li class="navelem"><a class="el" href="api_8h.html">api.h</a></li>
  807. <li class="footer">Generated by
  808. <a href="http://www.doxygen.org/index.html">
  809. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  810. </ul>
  811. </div>
  812. </body>
  813. </html>