| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=11"/> |
| <meta name="generator" content="Doxygen 1.12.0"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>lwIP: src/include/lwip/api.h File 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> |
| <script type="text/javascript" src="clipboard.js"></script> |
| <link href="navtree.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="navtreedata.js"></script> |
| <script type="text/javascript" src="navtree.js"></script> |
| <script type="text/javascript" src="resize.js"></script> |
| <script type="text/javascript" src="cookie.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> |
| <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 id="projectrow"> |
| <td id="projectalign"> |
| <div id="projectname">lwIP<span id="projectnumber"> 2.1.3</span> |
| </div> |
| <div id="projectbrief">Lightweight IP stack</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.12.0 --> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| var searchBox = new SearchBox("searchBox", "search/",'.html'); |
| /* @license-end */ |
| </script> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| $(function() { codefold.init(0); }); |
| /* @license-end */ |
| </script> |
| <script type="text/javascript" src="menudata.js"></script> |
| <script type="text/javascript" src="menu.js"></script> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| $(function() { |
| initMenu('',true,false,'search.php','Search',true); |
| $(function() { init_search(); }); |
| }); |
| /* @license-end */ |
| </script> |
| <div id="main-nav"></div> |
| </div><!-- top --> |
| <div id="side-nav" class="ui-resizable side-nav-resizable"> |
| <div id="nav-tree"> |
| <div id="nav-tree-contents"> |
| <div id="nav-sync" class="sync"></div> |
| </div> |
| </div> |
| <div id="splitbar" style="-moz-user-select:none;" |
| class="ui-resizable-handle"> |
| </div> |
| </div> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| $(function(){initNavTree('api_8h.html',''); initResizable(true); }); |
| /* @license-end */ |
| </script> |
| <div id="doc-content"> |
| <!-- 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"> |
| <div id="MSearchResults"> |
| <div class="SRPage"> |
| <div id="SRIndex"> |
| <div id="SRResults"></div> |
| <div class="SRStatus" id="Loading">Loading...</div> |
| <div class="SRStatus" id="Searching">Searching...</div> |
| <div class="SRStatus" id="NoMatches">No Matches</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div class="header"> |
| <div class="summary"> |
| <a href="#nested-classes">Data Structures</a> | |
| <a href="#define-members">Macros</a> | |
| <a href="#typedef-members">Typedefs</a> | |
| <a href="#enum-members">Enumerations</a> | |
| <a href="#func-members">Functions</a> </div> |
| <div class="headertitle"><div class="title">api.h File Reference</div></div> |
| </div><!--header--> |
| <div class="contents"> |
| <div class="textblock"><code>#include "<a class="el" href="opt_8h.html">lwip/opt.h</a>"</code><br /> |
| <code>#include "<a class="el" href="arch_8h.html">lwip/arch.h</a>"</code><br /> |
| <code>#include "<a class="el" href="netbuf_8h.html">lwip/netbuf.h</a>"</code><br /> |
| <code>#include "<a class="el" href="sys_8h.html">lwip/sys.h</a>"</code><br /> |
| <code>#include "<a class="el" href="ip__addr_8h.html">lwip/ip_addr.h</a>"</code><br /> |
| <code>#include "<a class="el" href="err_8h.html">lwip/err.h</a>"</code><br /> |
| </div><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a> |
| Data Structures</h2></td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetconn.html">netconn</a></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetvector.html">netvector</a></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a> |
| Macros</h2></td></tr> |
| <tr class="memitem:af77be7590d3712259e78103c1dddf63f" id="r_af77be7590d3712259e78103c1dddf63f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#af77be7590d3712259e78103c1dddf63f">NETCONN_FLAG_MBOXCLOSED</a>   0x01</td></tr> |
| <tr class="separator:af77be7590d3712259e78103c1dddf63f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:abee57aa0ba63e35742d411bc5224900a" id="r_abee57aa0ba63e35742d411bc5224900a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#abee57aa0ba63e35742d411bc5224900a">NETCONN_FLAG_NON_BLOCKING</a>   0x02</td></tr> |
| <tr class="separator:abee57aa0ba63e35742d411bc5224900a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a70bb861ee643b60ee402fd48f581f58d" id="r_a70bb861ee643b60ee402fd48f581f58d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a70bb861ee643b60ee402fd48f581f58d">NETCONN_FLAG_IN_NONBLOCKING_CONNECT</a>   0x04</td></tr> |
| <tr class="separator:a70bb861ee643b60ee402fd48f581f58d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9d791955a4256a0589a3844e4e6f0f9c" id="r_a9d791955a4256a0589a3844e4e6f0f9c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9d791955a4256a0589a3844e4e6f0f9c">NETCONN_FLAG_CHECK_WRITESPACE</a>   0x10</td></tr> |
| <tr class="separator:a9d791955a4256a0589a3844e4e6f0f9c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a60892e4eb139f10157847fea4266bf5b" id="r_a60892e4eb139f10157847fea4266bf5b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a60892e4eb139f10157847fea4266bf5b">NETCONN_FLAG_IPV6_V6ONLY</a>   0x20</td></tr> |
| <tr class="separator:a60892e4eb139f10157847fea4266bf5b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a24d62a2a03ba421fcf2bdce1ea89b949" id="r_a24d62a2a03ba421fcf2bdce1ea89b949"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a24d62a2a03ba421fcf2bdce1ea89b949">NETCONN_FIN_RX_PENDING</a>   0x80</td></tr> |
| <tr class="separator:a24d62a2a03ba421fcf2bdce1ea89b949"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a3ce590f58be8f60dbde361920863b26d" id="r_a3ce590f58be8f60dbde361920863b26d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a3ce590f58be8f60dbde361920863b26d">API_EVENT</a>(c, e, l)</td></tr> |
| <tr class="separator:a3ce590f58be8f60dbde361920863b26d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab2bd1d5e633e14e428cfc0ca908d5e0c" id="r_gab2bd1d5e633e14e428cfc0ca908d5e0c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gab2bd1d5e633e14e428cfc0ca908d5e0c">netconn_new</a>(t)</td></tr> |
| <tr class="separator:gab2bd1d5e633e14e428cfc0ca908d5e0c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a62cd17ad03bb2817cb0c419e1c9790b1" id="r_a62cd17ad03bb2817cb0c419e1c9790b1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a62cd17ad03bb2817cb0c419e1c9790b1">netconn_type</a>(conn)</td></tr> |
| <tr class="separator:a62cd17ad03bb2817cb0c419e1c9790b1"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6a578dd5b55e4457e0d23574ec9c55bb" id="r_a6a578dd5b55e4457e0d23574ec9c55bb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a6a578dd5b55e4457e0d23574ec9c55bb">netconn_set_nonblocking</a>(conn, val)</td></tr> |
| <tr class="separator:a6a578dd5b55e4457e0d23574ec9c55bb"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a5789f0030b895b40625a74deb5a1092f" id="r_a5789f0030b895b40625a74deb5a1092f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5789f0030b895b40625a74deb5a1092f">netconn_is_nonblocking</a>(conn)</td></tr> |
| <tr class="separator:a5789f0030b895b40625a74deb5a1092f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae56911e2d92bebf43d73e116530e41f1" id="r_gae56911e2d92bebf43d73e116530e41f1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gae56911e2d92bebf43d73e116530e41f1">netconn_set_ipv6only</a>(conn, val)</td></tr> |
| <tr class="separator:gae56911e2d92bebf43d73e116530e41f1"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaf001c7d5fbf97c04eb1d9ac7d14c9c31" id="r_gaf001c7d5fbf97c04eb1d9ac7d14c9c31"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gaf001c7d5fbf97c04eb1d9ac7d14c9c31">netconn_get_ipv6only</a>(conn)</td></tr> |
| <tr class="separator:gaf001c7d5fbf97c04eb1d9ac7d14c9c31"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a3ce3ad9f660e99b11fec20cafaf8f016" id="r_a3ce3ad9f660e99b11fec20cafaf8f016"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a3ce3ad9f660e99b11fec20cafaf8f016">netconn_set_sendtimeout</a>(conn, timeout)</td></tr> |
| <tr class="separator:a3ce3ad9f660e99b11fec20cafaf8f016"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a7d6e84458eec796b0b0ce1bb247f323f" id="r_a7d6e84458eec796b0b0ce1bb247f323f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a7d6e84458eec796b0b0ce1bb247f323f">netconn_get_sendtimeout</a>(conn)</td></tr> |
| <tr class="separator:a7d6e84458eec796b0b0ce1bb247f323f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a04785274634a5b504c760731c2e70725" id="r_a04785274634a5b504c760731c2e70725"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a04785274634a5b504c760731c2e70725">netconn_set_recvbufsize</a>(conn, recvbufsize)</td></tr> |
| <tr class="separator:a04785274634a5b504c760731c2e70725"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac0298c287dc3823047c378c014ff1eb0" id="r_ac0298c287dc3823047c378c014ff1eb0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#ac0298c287dc3823047c378c014ff1eb0">netconn_get_recvbufsize</a>(conn)</td></tr> |
| <tr class="separator:ac0298c287dc3823047c378c014ff1eb0"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a> |
| Typedefs</h2></td></tr> |
| <tr class="memitem:ae9307baa49245990c8c4517bb4e8d47b" id="r_ae9307baa49245990c8c4517bb4e8d47b"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae9307baa49245990c8c4517bb4e8d47b">netconn_callback</a>) (struct <a class="el" href="structnetconn.html">netconn</a> *, enum <a class="el" href="#af722260882d14c49afb765293ffb0155">netconn_evt</a>, u16_t len)</td></tr> |
| <tr class="separator:ae9307baa49245990c8c4517bb4e8d47b"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a> |
| Enumerations</h2></td></tr> |
| <tr class="memitem:gaaba260d28d105fb4bce9185fd0300d91" id="r_gaaba260d28d105fb4bce9185fd0300d91"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netconn__common.html#gaaba260d28d105fb4bce9185fd0300d91">netconn_type</a> { <br /> |
| }</td></tr> |
| <tr class="separator:gaaba260d28d105fb4bce9185fd0300d91"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2c6c9c1869f443c5ec7b31180a44fada" id="r_a2c6c9c1869f443c5ec7b31180a44fada"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2c6c9c1869f443c5ec7b31180a44fada">netconn_state</a> </td></tr> |
| <tr class="separator:a2c6c9c1869f443c5ec7b31180a44fada"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:af722260882d14c49afb765293ffb0155" id="r_af722260882d14c49afb765293ffb0155"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="#af722260882d14c49afb765293ffb0155">netconn_evt</a> </td></tr> |
| <tr class="separator:af722260882d14c49afb765293ffb0155"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a5c6ded2c082de1536019b197a0a912db" id="r_a5c6ded2c082de1536019b197a0a912db"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5c6ded2c082de1536019b197a0a912db">netconn_igmp</a> </td></tr> |
| <tr class="separator:a5c6ded2c082de1536019b197a0a912db"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a> |
| Functions</h2></td></tr> |
| <tr class="memitem:a42711660e5030bc0dff779f3cea4178e" id="r_a42711660e5030bc0dff779f3cea4178e"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structnetconn.html">netconn</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a42711660e5030bc0dff779f3cea4178e">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="#ae9307baa49245990c8c4517bb4e8d47b">netconn_callback</a> callback)</td></tr> |
| <tr class="separator:a42711660e5030bc0dff779f3cea4178e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gad5c079af0ad791a92fe9dade375744f0" id="r_gad5c079af0ad791a92fe9dade375744f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:gad5c079af0ad791a92fe9dade375744f0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab411221f912a6d9e4c82ac3963989403" id="r_gab411221f912a6d9e4c82ac3963989403"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:gab411221f912a6d9e4c82ac3963989403"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a28430d1d86733f1bf98dc31305c42104" id="r_a28430d1d86733f1bf98dc31305c42104"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a28430d1d86733f1bf98dc31305c42104">netconn_getaddr</a> (struct <a class="el" href="structnetconn.html">netconn</a> *conn, <a class="el" href="group__ipaddr.html#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *addr, u16_t *port, u8_t local)</td></tr> |
| <tr class="separator:a28430d1d86733f1bf98dc31305c42104"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga63bcc4d7bd150674fa953a1253fa6230" id="r_ga63bcc4d7bd150674fa953a1253fa6230"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *addr, u16_t port)</td></tr> |
| <tr class="separator:ga63bcc4d7bd150674fa953a1253fa6230"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaa78479deeedcecd3bacade387ac40cc5" id="r_gaa78479deeedcecd3bacade387ac40cc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:gaa78479deeedcecd3bacade387ac40cc5"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gacba7f74d973872ad0b88b9a96098cf77" id="r_gacba7f74d973872ad0b88b9a96098cf77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *addr, u16_t port)</td></tr> |
| <tr class="separator:gacba7f74d973872ad0b88b9a96098cf77"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga90bb4c4d1af6602a655b78fce0520402" id="r_ga90bb4c4d1af6602a655b78fce0520402"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:ga90bb4c4d1af6602a655b78fce0520402"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga84333ba8e7cdf45558d2b4795f53265d" id="r_ga84333ba8e7cdf45558d2b4795f53265d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:ga84333ba8e7cdf45558d2b4795f53265d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga13593148f60f7bbc6a505b567f175d69" id="r_ga13593148f60f7bbc6a505b567f175d69"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:ga13593148f60f7bbc6a505b567f175d69"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga50490bab058f4e740798beffcf48cabf" id="r_ga50490bab058f4e740798beffcf48cabf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:ga50490bab058f4e740798beffcf48cabf"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a805a90b546c5a149f04782351633979b" id="r_a805a90b546c5a149f04782351633979b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#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> |
| <tr class="separator:a805a90b546c5a149f04782351633979b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a505c3b8e400babf9681e09c945b7f421" id="r_a505c3b8e400babf9681e09c945b7f421"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#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> |
| <tr class="separator:a505c3b8e400babf9681e09c945b7f421"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga6893cb7648733d1f05696bac94e10490" id="r_ga6893cb7648733d1f05696bac94e10490"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:ga6893cb7648733d1f05696bac94e10490"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gabb8a242c445ef928c23258a2b2344294" id="r_gabb8a242c445ef928c23258a2b2344294"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:gabb8a242c445ef928c23258a2b2344294"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga8e1d852119bda1e1b602c2995282ef0c" id="r_ga8e1d852119bda1e1b602c2995282ef0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *addr, u16_t port)</td></tr> |
| <tr class="separator:ga8e1d852119bda1e1b602c2995282ef0c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac4d4d10153d47c80a783c34b27c66238" id="r_gac4d4d10153d47c80a783c34b27c66238"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:gac4d4d10153d47c80a783c34b27c66238"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gacf9ce6f71652739d6be2ca83f7c423bf" id="r_gacf9ce6f71652739d6be2ca83f7c423bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:gacf9ce6f71652739d6be2ca83f7c423bf"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a992b4fe8a855fd94861738f7260d0a32" id="r_a992b4fe8a855fd94861738f7260d0a32"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#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> |
| <tr class="separator:a992b4fe8a855fd94861738f7260d0a32"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga25bb1c1c9928f91f53149a026e2e2624" id="r_ga25bb1c1c9928f91f53149a026e2e2624"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:ga25bb1c1c9928f91f53149a026e2e2624"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga6ec6b2cf7b0f59e9371e38ae7dea2a63" id="r_ga6ec6b2cf7b0f59e9371e38ae7dea2a63"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:ga6ec6b2cf7b0f59e9371e38ae7dea2a63"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaaaf2f92eeb38dca70b3e6ad98c3c45ed" id="r_gaaaf2f92eeb38dca70b3e6ad98c3c45ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *multiaddr, const <a class="el" href="group__ipaddr.html#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *netif_addr, enum <a class="el" href="#a5c6ded2c082de1536019b197a0a912db">netconn_igmp</a> join_or_leave)</td></tr> |
| <tr class="separator:gaaaf2f92eeb38dca70b3e6ad98c3c45ed"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga5db2a1cf06a5fbb36f433e637da8729b" id="r_ga5db2a1cf06a5fbb36f433e637da8729b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *multiaddr, u8_t if_idx, enum <a class="el" href="#a5c6ded2c082de1536019b197a0a912db">netconn_igmp</a> join_or_leave)</td></tr> |
| <tr class="separator:ga5db2a1cf06a5fbb36f433e637da8729b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gafb3494b149dff96ed8d1acb770ab52f5" id="r_gafb3494b149dff96ed8d1acb770ab52f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *addr, u8_t dns_addrtype)</td></tr> |
| <tr class="separator:gafb3494b149dff96ed8d1acb770ab52f5"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gab9eccae90351eb6c3d2ca690068445d4" id="r_gab9eccae90351eb6c3d2ca690068445d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> </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> |
| <tr class="separator:gab9eccae90351eb6c3d2ca690068445d4"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> |
| <div class="textblock"><p>netconn API (to be used from non-TCPIP threads) </p> |
| </div><h2 class="groupheader">Macro Definition Documentation</h2> |
| <a id="a3ce590f58be8f60dbde361920863b26d" name="a3ce590f58be8f60dbde361920863b26d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a3ce590f58be8f60dbde361920863b26d">◆ </a></span>API_EVENT</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define API_EVENT</td> |
| <td>(</td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>c</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>e</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>l</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line"> <span class="keywordflow">if</span> (c->callback) { \</div> |
| <div class="line"> (*c->callback)(c, e, l); \</div> |
| <div class="line"> }</div> |
| </div><!-- fragment --><p>Register an Network connection event </p> |
| |
| </div> |
| </div> |
| <a id="a24d62a2a03ba421fcf2bdce1ea89b949" name="a24d62a2a03ba421fcf2bdce1ea89b949"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a24d62a2a03ba421fcf2bdce1ea89b949">◆ </a></span>NETCONN_FIN_RX_PENDING</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define NETCONN_FIN_RX_PENDING   0x80</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>A FIN has been received but not passed to the application yet </p> |
| |
| </div> |
| </div> |
| <a id="a9d791955a4256a0589a3844e4e6f0f9c" name="a9d791955a4256a0589a3844e4e6f0f9c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a9d791955a4256a0589a3844e4e6f0f9c">◆ </a></span>NETCONN_FLAG_CHECK_WRITESPACE</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define NETCONN_FLAG_CHECK_WRITESPACE   0x10</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>If a nonblocking write has been rejected before, poll_tcp needs to check if the netconn is writable again </p> |
| |
| </div> |
| </div> |
| <a id="a70bb861ee643b60ee402fd48f581f58d" name="a70bb861ee643b60ee402fd48f581f58d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a70bb861ee643b60ee402fd48f581f58d">◆ </a></span>NETCONN_FLAG_IN_NONBLOCKING_CONNECT</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define NETCONN_FLAG_IN_NONBLOCKING_CONNECT   0x04</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Was the last connect action a non-blocking one? </p> |
| |
| </div> |
| </div> |
| <a id="a60892e4eb139f10157847fea4266bf5b" name="a60892e4eb139f10157847fea4266bf5b"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a60892e4eb139f10157847fea4266bf5b">◆ </a></span>NETCONN_FLAG_IPV6_V6ONLY</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define NETCONN_FLAG_IPV6_V6ONLY   0x20</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <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> |
| |
| </div> |
| </div> |
| <a id="af77be7590d3712259e78103c1dddf63f" name="af77be7590d3712259e78103c1dddf63f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#af77be7590d3712259e78103c1dddf63f">◆ </a></span>NETCONN_FLAG_MBOXCLOSED</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define NETCONN_FLAG_MBOXCLOSED   0x01</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>This netconn had an error, don't block on recvmbox/acceptmbox any more </p> |
| |
| </div> |
| </div> |
| <a id="abee57aa0ba63e35742d411bc5224900a" name="abee57aa0ba63e35742d411bc5224900a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#abee57aa0ba63e35742d411bc5224900a">◆ </a></span>NETCONN_FLAG_NON_BLOCKING</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define NETCONN_FLAG_NON_BLOCKING   0x02</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Should this netconn avoid blocking? </p> |
| |
| </div> |
| </div> |
| <a id="ac0298c287dc3823047c378c014ff1eb0" name="ac0298c287dc3823047c378c014ff1eb0"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ac0298c287dc3823047c378c014ff1eb0">◆ </a></span>netconn_get_recvbufsize</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define netconn_get_recvbufsize</td> |
| <td>(</td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>conn</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line">((conn)->recv_bufsize)</div> |
| </div><!-- fragment --><p>Get the receive buffer in bytes </p> |
| |
| </div> |
| </div> |
| <a id="a7d6e84458eec796b0b0ce1bb247f323f" name="a7d6e84458eec796b0b0ce1bb247f323f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a7d6e84458eec796b0b0ce1bb247f323f">◆ </a></span>netconn_get_sendtimeout</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define netconn_get_sendtimeout</td> |
| <td>(</td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>conn</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line">((conn)->send_timeout)</div> |
| </div><!-- fragment --><p>Get the send timeout in milliseconds </p> |
| |
| </div> |
| </div> |
| <a id="a5789f0030b895b40625a74deb5a1092f" name="a5789f0030b895b40625a74deb5a1092f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a5789f0030b895b40625a74deb5a1092f">◆ </a></span>netconn_is_nonblocking</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define netconn_is_nonblocking</td> |
| <td>(</td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>conn</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line">(((conn)->flags & <a class="code hl_define" href="#abee57aa0ba63e35742d411bc5224900a">NETCONN_FLAG_NON_BLOCKING</a>) != 0)</div> |
| <div class="ttc" id="aapi_8h_html_abee57aa0ba63e35742d411bc5224900a"><div class="ttname"><a href="#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> |
| </div><!-- fragment --><p>Get the blocking status of netconn calls ( </p> |
| |
| </div> |
| </div> |
| <a id="a6a578dd5b55e4457e0d23574ec9c55bb" name="a6a578dd5b55e4457e0d23574ec9c55bb"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a6a578dd5b55e4457e0d23574ec9c55bb">◆ </a></span>netconn_set_nonblocking</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define netconn_set_nonblocking</td> |
| <td>(</td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>conn</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>val</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <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 hl_define" href="#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 hl_define" href="#abee57aa0ba63e35742d411bc5224900a">NETCONN_FLAG_NON_BLOCKING</a>); }} <span class="keywordflow">while</span>(0)</div> |
| </div><!-- fragment --><p>Set the blocking status of netconn calls ( </p> |
| |
| </div> |
| </div> |
| <a id="a04785274634a5b504c760731c2e70725" name="a04785274634a5b504c760731c2e70725"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a04785274634a5b504c760731c2e70725">◆ </a></span>netconn_set_recvbufsize</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define netconn_set_recvbufsize</td> |
| <td>(</td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>conn</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>recvbufsize</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line">((conn)->recv_bufsize = (recvbufsize))</div> |
| </div><!-- fragment --><p>Set the receive buffer in bytes </p> |
| |
| </div> |
| </div> |
| <a id="a3ce3ad9f660e99b11fec20cafaf8f016" name="a3ce3ad9f660e99b11fec20cafaf8f016"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a3ce3ad9f660e99b11fec20cafaf8f016">◆ </a></span>netconn_set_sendtimeout</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define netconn_set_sendtimeout</td> |
| <td>(</td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>conn</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>timeout</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line">((conn)->send_timeout = (timeout))</div> |
| </div><!-- fragment --><p>Set the send timeout in milliseconds </p> |
| |
| </div> |
| </div> |
| <a id="a62cd17ad03bb2817cb0c419e1c9790b1" name="a62cd17ad03bb2817cb0c419e1c9790b1"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a62cd17ad03bb2817cb0c419e1c9790b1">◆ </a></span>netconn_type</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define <a class="el" href="group__netconn__common.html#gaaba260d28d105fb4bce9185fd0300d91">netconn_type</a></td> |
| <td>(</td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>conn</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line">(conn->type)</div> |
| </div><!-- fragment --><p>Get the type of a netconn (as enum netconn_type). </p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Typedef Documentation</h2> |
| <a id="ae9307baa49245990c8c4517bb4e8d47b" name="ae9307baa49245990c8c4517bb4e8d47b"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ae9307baa49245990c8c4517bb4e8d47b">◆ </a></span>netconn_callback</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">typedef void(* netconn_callback) (struct <a class="el" href="structnetconn.html">netconn</a> *, enum <a class="el" href="#af722260882d14c49afb765293ffb0155">netconn_evt</a>, u16_t len)</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>A callback prototype to inform about events for a netconn </p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Enumeration Type Documentation</h2> |
| <a id="af722260882d14c49afb765293ffb0155" name="af722260882d14c49afb765293ffb0155"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#af722260882d14c49afb765293ffb0155">◆ </a></span>netconn_evt</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">enum <a class="el" href="#af722260882d14c49afb765293ffb0155">netconn_evt</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Used to inform the callback function about changes</p> |
| <p>Event explanation:</p> |
| <p>In the netconn implementation, there are three ways to block a client:</p> |
| <ul> |
| <li>accept mbox (sys_arch_mbox_fetch(&conn->acceptmbox, &accept_ptr, 0); in <a class="el" href="group__netconn__tcp.html#ga13593148f60f7bbc6a505b567f175d69">netconn_accept()</a>)</li> |
| <li>receive mbox (sys_arch_mbox_fetch(&conn->recvmbox, &buf, 0); in netconn_recv_data())</li> |
| <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> |
| </ul> |
| <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> |
| <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> |
| <p>RCVMINUS events say: Your call to to a possibly blocking function is "acknowledged". Socket implementation decrements the counter.</p> |
| <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> |
| |
| </div> |
| </div> |
| <a id="a5c6ded2c082de1536019b197a0a912db" name="a5c6ded2c082de1536019b197a0a912db"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a5c6ded2c082de1536019b197a0a912db">◆ </a></span>netconn_igmp</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">enum <a class="el" href="#a5c6ded2c082de1536019b197a0a912db">netconn_igmp</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Used for <a class="el" href="group__netconn__udp.html#gaaaf2f92eeb38dca70b3e6ad98c3c45ed">netconn_join_leave_group()</a> </p> |
| |
| </div> |
| </div> |
| <a id="a2c6c9c1869f443c5ec7b31180a44fada" name="a2c6c9c1869f443c5ec7b31180a44fada"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a2c6c9c1869f443c5ec7b31180a44fada">◆ </a></span>netconn_state</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">enum <a class="el" href="#a2c6c9c1869f443c5ec7b31180a44fada">netconn_state</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Current state of the netconn. Non-TCP netconns are always in state NETCONN_NONE! </p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Function Documentation</h2> |
| <a id="a28430d1d86733f1bf98dc31305c42104" name="a28430d1d86733f1bf98dc31305c42104"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a28430d1d86733f1bf98dc31305c42104">◆ </a></span>netconn_getaddr()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> netconn_getaddr </td> |
| <td>(</td> |
| <td class="paramtype">struct <a class="el" href="structnetconn.html">netconn</a> *</td> <td class="paramname"><span class="paramname"><em>conn</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__ipaddr.html#ga335a8c9df66319e88a1a529047ce0a1e">ip_addr_t</a> *</td> <td class="paramname"><span class="paramname"><em>addr</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">u16_t *</td> <td class="paramname"><span class="paramname"><em>port</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">u8_t</td> <td class="paramname"><span class="paramname"><em>local</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <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> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">conn</td><td>the netconn to query </td></tr> |
| <tr><td class="paramname">addr</td><td>a pointer to which to save the IP address </td></tr> |
| <tr><td class="paramname">port</td><td>a pointer to which to save the port (or protocol for RAW) </td></tr> |
| <tr><td class="paramname">local</td><td>1 to get the local IP address, 0 to get the remote one </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>ERR_CONN for invalid connections ERR_OK if the information was retrieved </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a42711660e5030bc0dff779f3cea4178e" name="a42711660e5030bc0dff779f3cea4178e"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a42711660e5030bc0dff779f3cea4178e">◆ </a></span>netconn_new_with_proto_and_callback()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">struct <a class="el" href="structnetconn.html">netconn</a> * netconn_new_with_proto_and_callback </td> |
| <td>(</td> |
| <td class="paramtype">enum <a class="el" href="group__netconn__common.html#gaaba260d28d105fb4bce9185fd0300d91">netconn_type</a></td> <td class="paramname"><span class="paramname"><em>t</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">u8_t</td> <td class="paramname"><span class="paramname"><em>proto</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="#ae9307baa49245990c8c4517bb4e8d47b">netconn_callback</a></td> <td class="paramname"><span class="paramname"><em>callback</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Create a new netconn (of a specific type) that has a callback function. The corresponding pcb is also created.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">t</td><td>the type of 'connection' to create (</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd>enum <a class="el" href="#a62cd17ad03bb2817cb0c419e1c9790b1">netconn_type</a>) </dd></dl> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">proto</td><td>the IP protocol for RAW IP pcbs </td></tr> |
| <tr><td class="paramname">callback</td><td>a function to call on status changes (RX available, TX'ed) </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>a newly allocated struct netconn or NULL on memory error </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a805a90b546c5a149f04782351633979b" name="a805a90b546c5a149f04782351633979b"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a805a90b546c5a149f04782351633979b">◆ </a></span>netconn_recv_udp_raw_netbuf()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> netconn_recv_udp_raw_netbuf </td> |
| <td>(</td> |
| <td class="paramtype">struct <a class="el" href="structnetconn.html">netconn</a> *</td> <td class="paramname"><span class="paramname"><em>conn</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">struct <a class="el" href="structnetbuf.html">netbuf</a> **</td> <td class="paramname"><span class="paramname"><em>new_buf</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Receive data (in form of a netbuf) from a UDP or RAW netconn</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">conn</td><td>the netconn from which to receive data </td></tr> |
| <tr><td class="paramname">new_buf</td><td>pointer where a new netbuf is stored when received data </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <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> |
| |
| </div> |
| </div> |
| <a id="a505c3b8e400babf9681e09c945b7f421" name="a505c3b8e400babf9681e09c945b7f421"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a505c3b8e400babf9681e09c945b7f421">◆ </a></span>netconn_recv_udp_raw_netbuf_flags()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> netconn_recv_udp_raw_netbuf_flags </td> |
| <td>(</td> |
| <td class="paramtype">struct <a class="el" href="structnetconn.html">netconn</a> *</td> <td class="paramname"><span class="paramname"><em>conn</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">struct <a class="el" href="structnetbuf.html">netbuf</a> **</td> <td class="paramname"><span class="paramname"><em>new_buf</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">u8_t</td> <td class="paramname"><span class="paramname"><em>apiflags</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Receive data (in form of a netbuf) from a UDP or RAW netconn</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">conn</td><td>the netconn from which to receive data </td></tr> |
| <tr><td class="paramname">new_buf</td><td>pointer where a new netbuf is stored when received data </td></tr> |
| <tr><td class="paramname">apiflags</td><td>flags that control function behaviour. For now only:<ul> |
| <li>NETCONN_DONTBLOCK: only read data that is available now, don't wait for more data </li> |
| </ul> |
| </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <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> |
| |
| </div> |
| </div> |
| <a id="a992b4fe8a855fd94861738f7260d0a32" name="a992b4fe8a855fd94861738f7260d0a32"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a992b4fe8a855fd94861738f7260d0a32">◆ </a></span>netconn_write_vectors_partly()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> netconn_write_vectors_partly </td> |
| <td>(</td> |
| <td class="paramtype">struct <a class="el" href="structnetconn.html">netconn</a> *</td> <td class="paramname"><span class="paramname"><em>conn</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">struct <a class="el" href="structnetvector.html">netvector</a> *</td> <td class="paramname"><span class="paramname"><em>vectors</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">u16_t</td> <td class="paramname"><span class="paramname"><em>vectorcnt</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">u8_t</td> <td class="paramname"><span class="paramname"><em>apiflags</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">size_t *</td> <td class="paramname"><span class="paramname"><em>bytes_written</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Send vectorized data atomically over a TCP netconn.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">conn</td><td>the TCP netconn over which to send data </td></tr> |
| <tr><td class="paramname">vectors</td><td>array of vectors containing data to send </td></tr> |
| <tr><td class="paramname">vectorcnt</td><td>number of vectors in the array </td></tr> |
| <tr><td class="paramname">apiflags</td><td>combination of following flags :<ul> |
| <li>NETCONN_COPY: data will be copied into memory belonging to the stack</li> |
| <li>NETCONN_MORE: for TCP connection, PSH flag will be set on last segment sent</li> |
| <li>NETCONN_DONTBLOCK: only write the data if all data can be written at once </li> |
| </ul> |
| </td></tr> |
| <tr><td class="paramname">bytes_written</td><td>pointer to a location that receives the number of written bytes </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>ERR_OK if data was sent, any other err_t on error </dd></dl> |
| |
| </div> |
| </div> |
| </div><!-- contents --> |
| </div><!-- doc-content --> |
| <!-- start footer part --> |
| <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> |
| <ul> |
| <li class="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> |
| <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |