1*10465441SEvalZero<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2*10465441SEvalZero<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> 3*10465441SEvalZero<title>uIP 1.0: uIP application functions</title> 4*10465441SEvalZero<link href="doxygen.css" rel="stylesheet" type="text/css"> 5*10465441SEvalZero<link href="tabs.css" rel="stylesheet" type="text/css"> 6*10465441SEvalZero</head><body> 7*10465441SEvalZero<!-- Generated by Doxygen 1.4.6 --> 8*10465441SEvalZero<div class="tabs"> 9*10465441SEvalZero <ul> 10*10465441SEvalZero <li><a href="main.html"><span>Main Page</span></a></li> 11*10465441SEvalZero <li><a href="modules.html"><span>Modules</span></a></li> 12*10465441SEvalZero <li><a href="classes.html"><span>Data Structures</span></a></li> 13*10465441SEvalZero <li><a href="files.html"><span>Files</span></a></li> 14*10465441SEvalZero <li><a href="examples.html"><span>Examples</span></a></li> 15*10465441SEvalZero </ul></div> 16*10465441SEvalZero<h1>uIP application functions<br> 17*10465441SEvalZero<small> 18*10465441SEvalZero[<a class="el" href="a00150.html">The uIP TCP/IP stack</a>]</small> 19*10465441SEvalZero</h1><hr><a name="_details"></a><h2>Detailed Description</h2> 20*10465441SEvalZeroFunctions used by an application running of top of uIP. 21*10465441SEvalZero<p> 22*10465441SEvalZero 23*10465441SEvalZero<p> 24*10465441SEvalZero<table border="0" cellpadding="0" cellspacing="0"> 25*10465441SEvalZero<tr><td></td></tr> 26*10465441SEvalZero<tr><td colspan="2"><br><h2>Defines</h2></td></tr> 27*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gef14e83c046e19ab9fe9d1bbcca276c2"></a><!-- doxytag: member="uipappfunc::uip_outstanding" ref="gef14e83c046e19ab9fe9d1bbcca276c2" args="(conn)" --> 28*10465441SEvalZero#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#gef14e83c046e19ab9fe9d1bbcca276c2">uip_outstanding</a>(conn) ((conn)->len)</td></tr> 29*10465441SEvalZero 30*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g1a1bc437c09ddef238abab41d77c3177">uip_datalen</a>()</td></tr> 31*10465441SEvalZero 32*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">The length of any incoming data that is currently avaliable (if avaliable) in the uip_appdata buffer. <a href="#g1a1bc437c09ddef238abab41d77c3177"></a><br></td></tr> 33*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g8411c95a4d89367ad2d9d6bde1a3d537">uip_urgdatalen</a>()</td></tr> 34*10465441SEvalZero 35*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">The length of any out-of-band data (urgent data) that has arrived on the connection. <a href="#g8411c95a4d89367ad2d9d6bde1a3d537"></a><br></td></tr> 36*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g61db1dcb7c760e4dd5d60bf4e5576dca">uip_close</a>()</td></tr> 37*10465441SEvalZero 38*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Close the current connection. <a href="#g61db1dcb7c760e4dd5d60bf4e5576dca"></a><br></td></tr> 39*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g88d2ccf7cd821f89d9a8df7e3948b56c">uip_abort</a>()</td></tr> 40*10465441SEvalZero 41*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Abort the current connection. <a href="#g88d2ccf7cd821f89d9a8df7e3948b56c"></a><br></td></tr> 42*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g0a8bb9d6d0f1f56852ccfccbbad6c5d8">uip_stop</a>()</td></tr> 43*10465441SEvalZero 44*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Tell the sending host to stop sending data. <a href="#g0a8bb9d6d0f1f56852ccfccbbad6c5d8"></a><br></td></tr> 45*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g64a238a5c02640a7a4aef004163aeb47"></a><!-- doxytag: member="uipappfunc::uip_stopped" ref="g64a238a5c02640a7a4aef004163aeb47" args="(conn)" --> 46*10465441SEvalZero#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g64a238a5c02640a7a4aef004163aeb47">uip_stopped</a>(conn)</td></tr> 47*10465441SEvalZero 48*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Find out if the current connection has been previously stopped with <a class="el" href="a00147.html#g0a8bb9d6d0f1f56852ccfccbbad6c5d8">uip_stop()</a>. <br></td></tr> 49*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g81ac47cee1c18f6aa479044069db7ca3">uip_restart</a>()</td></tr> 50*10465441SEvalZero 51*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Restart the current connection, if is has previously been stopped with <a class="el" href="a00147.html#g0a8bb9d6d0f1f56852ccfccbbad6c5d8">uip_stop()</a>. <a href="#g81ac47cee1c18f6aa479044069db7ca3"></a><br></td></tr> 52*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ga9de254b8aa308eb4aab17efdde622d2">uip_udpconnection</a>()</td></tr> 53*10465441SEvalZero 54*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Is the current connection a UDP connection? <a href="#ga9de254b8aa308eb4aab17efdde622d2"></a><br></td></tr> 55*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g26a14b8dae3f861830af9e7cf1e03725">uip_newdata</a>()</td></tr> 56*10465441SEvalZero 57*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Is new incoming data available? <a href="#g26a14b8dae3f861830af9e7cf1e03725"></a><br></td></tr> 58*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#gde6634974418e3240c212b9b16864368">uip_acked</a>()</td></tr> 59*10465441SEvalZero 60*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Has previously sent data been acknowledged? <a href="#gde6634974418e3240c212b9b16864368"></a><br></td></tr> 61*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#gdb971fb1525d0c5002f52125b05f3218">uip_connected</a>()</td></tr> 62*10465441SEvalZero 63*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Has the connection just been connected? <a href="#gdb971fb1525d0c5002f52125b05f3218"></a><br></td></tr> 64*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#gef6c4140c632b6a406779342cf3b6eb6">uip_closed</a>()</td></tr> 65*10465441SEvalZero 66*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Has the connection been closed by the other end? <a href="#gef6c4140c632b6a406779342cf3b6eb6"></a><br></td></tr> 67*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#gfbd5fc486dfdf6bf6fc9db52b1f418c4">uip_aborted</a>()</td></tr> 68*10465441SEvalZero 69*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Has the connection been aborted by the other end? <a href="#gfbd5fc486dfdf6bf6fc9db52b1f418c4"></a><br></td></tr> 70*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g7b2ac4b18bd2ac3912fe67b3b17158c3">uip_timedout</a>()</td></tr> 71*10465441SEvalZero 72*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Has the connection timed out? <a href="#g7b2ac4b18bd2ac3912fe67b3b17158c3"></a><br></td></tr> 73*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ga8933ad15a2e2947dae4a5cff50e6007">uip_rexmit</a>()</td></tr> 74*10465441SEvalZero 75*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Do we need to retransmit previously data? <a href="#ga8933ad15a2e2947dae4a5cff50e6007"></a><br></td></tr> 76*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g58bb90796c1cdad3aac2ecf44d87b20e">uip_poll</a>()</td></tr> 77*10465441SEvalZero 78*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Is the connection being polled by uIP? <a href="#g58bb90796c1cdad3aac2ecf44d87b20e"></a><br></td></tr> 79*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga87feebc7cffd4d8300e776cf64e4fec"></a><!-- doxytag: member="uipappfunc::uip_initialmss" ref="ga87feebc7cffd4d8300e776cf64e4fec" args="()" --> 80*10465441SEvalZero#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ga87feebc7cffd4d8300e776cf64e4fec">uip_initialmss</a>()</td></tr> 81*10465441SEvalZero 82*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the initial maxium segment size (MSS) of the current connection. <br></td></tr> 83*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#gb5fecbc62edd128012cea0f47b57ab9f">uip_mss</a>()</td></tr> 84*10465441SEvalZero 85*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the current maxium segment size that can be sent on the current connection. <a href="#gb5fecbc62edd128012cea0f47b57ab9f"></a><br></td></tr> 86*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#gf2dbaceb10c67783a115075b5b6d66df">uip_udp_remove</a>(conn)</td></tr> 87*10465441SEvalZero 88*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Removed a UDP connection. <a href="#gf2dbaceb10c67783a115075b5b6d66df"></a><br></td></tr> 89*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ga20812098a4663c8a9fc4ce8e95391b6">uip_udp_bind</a>(conn, port)</td></tr> 90*10465441SEvalZero 91*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Bind a UDP connection to a local port. <a href="#ga20812098a4663c8a9fc4ce8e95391b6"></a><br></td></tr> 92*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ge5ab69d40013e6cf86ef1763c95d920e">uip_udp_send</a>(len)</td></tr> 93*10465441SEvalZero 94*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Send a UDP datagram of length len on the current connection. <a href="#ge5ab69d40013e6cf86ef1763c95d920e"></a><br></td></tr> 95*10465441SEvalZero<tr><td colspan="2"><br><h2>Functions</h2></td></tr> 96*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#gdd1ab3704ecd4900eec61a6897d32dc8">uip_listen</a> (<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> port)</td></tr> 97*10465441SEvalZero 98*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Start listening to the specified port. <a href="#gdd1ab3704ecd4900eec61a6897d32dc8"></a><br></td></tr> 99*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#gaa585784b0914cac1d37f07f85457008">uip_unlisten</a> (<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> port)</td></tr> 100*10465441SEvalZero 101*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Stop listening to the specified port. <a href="#gaa585784b0914cac1d37f07f85457008"></a><br></td></tr> 102*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00088.html">uip_conn</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g8096b0c4b543dc408f4dd031ddae7240">uip_connect</a> (<a class="el" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> *ripaddr, <a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> port)</td></tr> 103*10465441SEvalZero 104*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Connect to a remote host using TCP. <a href="#g8096b0c4b543dc408f4dd031ddae7240"></a><br></td></tr> 105*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g04b053a623aac7cd4195157d470661b3">uip_send</a> (const void *data, int len)</td></tr> 106*10465441SEvalZero 107*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Send data on the current connection. <a href="#g04b053a623aac7cd4195157d470661b3"></a><br></td></tr> 108*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00095.html">uip_udp_conn</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#g79c4110211247df3fb30b8cf1c4c02af">uip_udp_new</a> (<a class="el" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> *ripaddr, <a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> rport)</td></tr> 109*10465441SEvalZero 110*10465441SEvalZero<tr><td class="mdescLeft"> </td><td class="mdescRight">Set up a new UDP connection. <a href="#g79c4110211247df3fb30b8cf1c4c02af"></a><br></td></tr> 111*10465441SEvalZero</table> 112*10465441SEvalZero<hr><h2>Define Documentation</h2> 113*10465441SEvalZero<a class="anchor" name="g88d2ccf7cd821f89d9a8df7e3948b56c"></a><!-- doxytag: member="uip.h::uip_abort" ref="g88d2ccf7cd821f89d9a8df7e3948b56c" args="()" --><p> 114*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 115*10465441SEvalZero <tr> 116*10465441SEvalZero <td class="mdRow"> 117*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 118*10465441SEvalZero <tr> 119*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_abort </td> 120*10465441SEvalZero <td class="md" valign="top">( </td> 121*10465441SEvalZero </td> 122*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 123*10465441SEvalZero <td class="md" valign="top"> ) </td> 124*10465441SEvalZero <td class="md" nowrap></td> 125*10465441SEvalZero </tr> 126*10465441SEvalZero </table> 127*10465441SEvalZero </td> 128*10465441SEvalZero </tr> 129*10465441SEvalZero</table> 130*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 131*10465441SEvalZero <tr> 132*10465441SEvalZero <td> 133*10465441SEvalZero 134*10465441SEvalZero </td> 135*10465441SEvalZero <td> 136*10465441SEvalZero 137*10465441SEvalZero<p> 138*10465441SEvalZeroAbort the current connection. 139*10465441SEvalZero<p> 140*10465441SEvalZeroThis function will abort (reset) the current connection, and is usually used when an error has occured that prevents using the <a class="el" href="a00147.html#g61db1dcb7c760e4dd5d60bf4e5576dca">uip_close()</a> function. <dl compact><dt><b>Examples: </b></dt><dd> 141*10465441SEvalZero<a class="el" href="a00040.html#a285">webclient.c</a>.</dl> 142*10465441SEvalZero<p> 143*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00581">581</a> of file <a class="el" href="a00202.html">uip.h</a>. 144*10465441SEvalZero<p> 145*10465441SEvalZeroReferenced by <a class="el" href="a00184.html#l00298">httpd_appcall()</a>, and <a class="el" href="a00180.html#l00378">webclient_appcall()</a>. </td> 146*10465441SEvalZero </tr> 147*10465441SEvalZero</table> 148*10465441SEvalZero<a class="anchor" name="gfbd5fc486dfdf6bf6fc9db52b1f418c4"></a><!-- doxytag: member="uip.h::uip_aborted" ref="gfbd5fc486dfdf6bf6fc9db52b1f418c4" args="()" --><p> 149*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 150*10465441SEvalZero <tr> 151*10465441SEvalZero <td class="mdRow"> 152*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 153*10465441SEvalZero <tr> 154*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_aborted </td> 155*10465441SEvalZero <td class="md" valign="top">( </td> 156*10465441SEvalZero </td> 157*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 158*10465441SEvalZero <td class="md" valign="top"> ) </td> 159*10465441SEvalZero <td class="md" nowrap></td> 160*10465441SEvalZero </tr> 161*10465441SEvalZero </table> 162*10465441SEvalZero </td> 163*10465441SEvalZero </tr> 164*10465441SEvalZero</table> 165*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 166*10465441SEvalZero <tr> 167*10465441SEvalZero <td> 168*10465441SEvalZero 169*10465441SEvalZero </td> 170*10465441SEvalZero <td> 171*10465441SEvalZero 172*10465441SEvalZero<p> 173*10465441SEvalZeroHas the connection been aborted by the other end? 174*10465441SEvalZero<p> 175*10465441SEvalZeroNon-zero if the current connection has been aborted (reset) by the remote host. <dl compact><dt><b>Examples: </b></dt><dd> 176*10465441SEvalZero<a class="el" href="a00038.html#a185">smtp.c</a>, <a class="el" href="a00044.html#a236">telnetd.c</a>, and <a class="el" href="a00040.html#a297">webclient.c</a>.</dl> 177*10465441SEvalZero<p> 178*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00680">680</a> of file <a class="el" href="a00202.html">uip.h</a>. 179*10465441SEvalZero<p> 180*10465441SEvalZeroReferenced by <a class="el" href="a00184.html#l00298">httpd_appcall()</a>, <a class="el" href="a00174.html#l00190">smtp_appcall()</a>, and <a class="el" href="a00180.html#l00378">webclient_appcall()</a>. </td> 181*10465441SEvalZero </tr> 182*10465441SEvalZero</table> 183*10465441SEvalZero<a class="anchor" name="gde6634974418e3240c212b9b16864368"></a><!-- doxytag: member="uip.h::uip_acked" ref="gde6634974418e3240c212b9b16864368" args="()" --><p> 184*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 185*10465441SEvalZero <tr> 186*10465441SEvalZero <td class="mdRow"> 187*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 188*10465441SEvalZero <tr> 189*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_acked </td> 190*10465441SEvalZero <td class="md" valign="top">( </td> 191*10465441SEvalZero </td> 192*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 193*10465441SEvalZero <td class="md" valign="top"> ) </td> 194*10465441SEvalZero <td class="md" nowrap></td> 195*10465441SEvalZero </tr> 196*10465441SEvalZero </table> 197*10465441SEvalZero </td> 198*10465441SEvalZero </tr> 199*10465441SEvalZero</table> 200*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 201*10465441SEvalZero <tr> 202*10465441SEvalZero <td> 203*10465441SEvalZero 204*10465441SEvalZero </td> 205*10465441SEvalZero <td> 206*10465441SEvalZero 207*10465441SEvalZero<p> 208*10465441SEvalZeroHas previously sent data been acknowledged? 209*10465441SEvalZero<p> 210*10465441SEvalZeroWill reduce to non-zero if the previously sent data has been acknowledged by the remote host. This means that the application can send new data. <dl compact><dt><b>Examples: </b></dt><dd> 211*10465441SEvalZero<a class="el" href="a00044.html#a238">telnetd.c</a>, and <a class="el" href="a00040.html#a300">webclient.c</a>.</dl> 212*10465441SEvalZero<p> 213*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00648">648</a> of file <a class="el" href="a00202.html">uip.h</a>. 214*10465441SEvalZero<p> 215*10465441SEvalZeroReferenced by <a class="el" href="a00180.html#l00378">webclient_appcall()</a>. </td> 216*10465441SEvalZero </tr> 217*10465441SEvalZero</table> 218*10465441SEvalZero<a class="anchor" name="g61db1dcb7c760e4dd5d60bf4e5576dca"></a><!-- doxytag: member="uip.h::uip_close" ref="g61db1dcb7c760e4dd5d60bf4e5576dca" args="()" --><p> 219*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 220*10465441SEvalZero <tr> 221*10465441SEvalZero <td class="mdRow"> 222*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 223*10465441SEvalZero <tr> 224*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_close </td> 225*10465441SEvalZero <td class="md" valign="top">( </td> 226*10465441SEvalZero </td> 227*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 228*10465441SEvalZero <td class="md" valign="top"> ) </td> 229*10465441SEvalZero <td class="md" nowrap></td> 230*10465441SEvalZero </tr> 231*10465441SEvalZero </table> 232*10465441SEvalZero </td> 233*10465441SEvalZero </tr> 234*10465441SEvalZero</table> 235*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 236*10465441SEvalZero <tr> 237*10465441SEvalZero <td> 238*10465441SEvalZero 239*10465441SEvalZero </td> 240*10465441SEvalZero <td> 241*10465441SEvalZero 242*10465441SEvalZero<p> 243*10465441SEvalZeroClose the current connection. 244*10465441SEvalZero<p> 245*10465441SEvalZeroThis function will close the current connection in a nice way. <dl compact><dt><b>Examples: </b></dt><dd> 246*10465441SEvalZero<a class="el" href="a00044.html#a234">telnetd.c</a>.</dl> 247*10465441SEvalZero<p> 248*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00570">570</a> of file <a class="el" href="a00202.html">uip.h</a>. </td> 249*10465441SEvalZero </tr> 250*10465441SEvalZero</table> 251*10465441SEvalZero<a class="anchor" name="gef6c4140c632b6a406779342cf3b6eb6"></a><!-- doxytag: member="uip.h::uip_closed" ref="gef6c4140c632b6a406779342cf3b6eb6" args="()" --><p> 252*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 253*10465441SEvalZero <tr> 254*10465441SEvalZero <td class="mdRow"> 255*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 256*10465441SEvalZero <tr> 257*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_closed </td> 258*10465441SEvalZero <td class="md" valign="top">( </td> 259*10465441SEvalZero </td> 260*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 261*10465441SEvalZero <td class="md" valign="top"> ) </td> 262*10465441SEvalZero <td class="md" nowrap></td> 263*10465441SEvalZero </tr> 264*10465441SEvalZero </table> 265*10465441SEvalZero </td> 266*10465441SEvalZero </tr> 267*10465441SEvalZero</table> 268*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 269*10465441SEvalZero <tr> 270*10465441SEvalZero <td> 271*10465441SEvalZero 272*10465441SEvalZero </td> 273*10465441SEvalZero <td> 274*10465441SEvalZero 275*10465441SEvalZero<p> 276*10465441SEvalZeroHas the connection been closed by the other end? 277*10465441SEvalZero<p> 278*10465441SEvalZeroIs non-zero if the connection has been closed by the remote host. The application may then do the necessary clean-ups. <dl compact><dt><b>Examples: </b></dt><dd> 279*10465441SEvalZero<a class="el" href="a00038.html#a184">smtp.c</a>, <a class="el" href="a00044.html#a235">telnetd.c</a>, and <a class="el" href="a00040.html#a305">webclient.c</a>.</dl> 280*10465441SEvalZero<p> 281*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00670">670</a> of file <a class="el" href="a00202.html">uip.h</a>. 282*10465441SEvalZero<p> 283*10465441SEvalZeroReferenced by <a class="el" href="a00184.html#l00298">httpd_appcall()</a>, <a class="el" href="a00174.html#l00190">smtp_appcall()</a>, and <a class="el" href="a00180.html#l00378">webclient_appcall()</a>. </td> 284*10465441SEvalZero </tr> 285*10465441SEvalZero</table> 286*10465441SEvalZero<a class="anchor" name="gdb971fb1525d0c5002f52125b05f3218"></a><!-- doxytag: member="uip.h::uip_connected" ref="gdb971fb1525d0c5002f52125b05f3218" args="()" --><p> 287*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 288*10465441SEvalZero <tr> 289*10465441SEvalZero <td class="mdRow"> 290*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 291*10465441SEvalZero <tr> 292*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_connected </td> 293*10465441SEvalZero <td class="md" valign="top">( </td> 294*10465441SEvalZero </td> 295*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 296*10465441SEvalZero <td class="md" valign="top"> ) </td> 297*10465441SEvalZero <td class="md" nowrap></td> 298*10465441SEvalZero </tr> 299*10465441SEvalZero </table> 300*10465441SEvalZero </td> 301*10465441SEvalZero </tr> 302*10465441SEvalZero</table> 303*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 304*10465441SEvalZero <tr> 305*10465441SEvalZero <td> 306*10465441SEvalZero 307*10465441SEvalZero </td> 308*10465441SEvalZero <td> 309*10465441SEvalZero 310*10465441SEvalZero<p> 311*10465441SEvalZeroHas the connection just been connected? 312*10465441SEvalZero<p> 313*10465441SEvalZeroReduces to non-zero if the current connection has been connected to a remote host. This will happen both if the connection has been actively opened (with <a class="el" href="a00147.html#g8096b0c4b543dc408f4dd031ddae7240">uip_connect()</a>) or passively opened (with <a class="el" href="a00147.html#gdd1ab3704ecd4900eec61a6897d32dc8">uip_listen()</a>). <dl compact><dt><b>Examples: </b></dt><dd> 314*10465441SEvalZero<a class="el" href="a00036.html#a107">hello-world.c</a>, <a class="el" href="a00044.html#a232">telnetd.c</a>, and <a class="el" href="a00040.html#a293">webclient.c</a>.</dl> 315*10465441SEvalZero<p> 316*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00660">660</a> of file <a class="el" href="a00202.html">uip.h</a>. 317*10465441SEvalZero<p> 318*10465441SEvalZeroReferenced by <a class="el" href="a00170.html#l00055">hello_world_appcall()</a>, <a class="el" href="a00184.html#l00298">httpd_appcall()</a>, and <a class="el" href="a00180.html#l00378">webclient_appcall()</a>. </td> 319*10465441SEvalZero </tr> 320*10465441SEvalZero</table> 321*10465441SEvalZero<a class="anchor" name="g1a1bc437c09ddef238abab41d77c3177"></a><!-- doxytag: member="uip.h::uip_datalen" ref="g1a1bc437c09ddef238abab41d77c3177" args="()" --><p> 322*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 323*10465441SEvalZero <tr> 324*10465441SEvalZero <td class="mdRow"> 325*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 326*10465441SEvalZero <tr> 327*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_datalen </td> 328*10465441SEvalZero <td class="md" valign="top">( </td> 329*10465441SEvalZero </td> 330*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 331*10465441SEvalZero <td class="md" valign="top"> ) </td> 332*10465441SEvalZero <td class="md" nowrap></td> 333*10465441SEvalZero </tr> 334*10465441SEvalZero </table> 335*10465441SEvalZero </td> 336*10465441SEvalZero </tr> 337*10465441SEvalZero</table> 338*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 339*10465441SEvalZero <tr> 340*10465441SEvalZero <td> 341*10465441SEvalZero 342*10465441SEvalZero </td> 343*10465441SEvalZero <td> 344*10465441SEvalZero 345*10465441SEvalZero<p> 346*10465441SEvalZeroThe length of any incoming data that is currently avaliable (if avaliable) in the uip_appdata buffer. 347*10465441SEvalZero<p> 348*10465441SEvalZeroThe test function uip_data() must first be used to check if there is any data available at all. <dl compact><dt><b>Examples: </b></dt><dd> 349*10465441SEvalZero<a class="el" href="a00048.html#a15">dhcpc.c</a>, <a class="el" href="a00044.html#a231">telnetd.c</a>, and <a class="el" href="a00040.html#a290">webclient.c</a>.</dl> 350*10465441SEvalZero<p> 351*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00550">550</a> of file <a class="el" href="a00202.html">uip.h</a>. </td> 352*10465441SEvalZero </tr> 353*10465441SEvalZero</table> 354*10465441SEvalZero<a class="anchor" name="gb5fecbc62edd128012cea0f47b57ab9f"></a><!-- doxytag: member="uip.h::uip_mss" ref="gb5fecbc62edd128012cea0f47b57ab9f" args="()" --><p> 355*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 356*10465441SEvalZero <tr> 357*10465441SEvalZero <td class="mdRow"> 358*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 359*10465441SEvalZero <tr> 360*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_mss </td> 361*10465441SEvalZero <td class="md" valign="top">( </td> 362*10465441SEvalZero </td> 363*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 364*10465441SEvalZero <td class="md" valign="top"> ) </td> 365*10465441SEvalZero <td class="md" nowrap></td> 366*10465441SEvalZero </tr> 367*10465441SEvalZero </table> 368*10465441SEvalZero </td> 369*10465441SEvalZero </tr> 370*10465441SEvalZero</table> 371*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 372*10465441SEvalZero <tr> 373*10465441SEvalZero <td> 374*10465441SEvalZero 375*10465441SEvalZero </td> 376*10465441SEvalZero <td> 377*10465441SEvalZero 378*10465441SEvalZero<p> 379*10465441SEvalZeroGet the current maxium segment size that can be sent on the current connection. 380*10465441SEvalZero<p> 381*10465441SEvalZeroThe current maxiumum segment size that can be sent on the connection is computed from the receiver's window and the MSS of the connection (which also is available by calling <a class="el" href="a00147.html#ga87feebc7cffd4d8300e776cf64e4fec">uip_initialmss()</a>). <dl compact><dt><b>Examples: </b></dt><dd> 382*10465441SEvalZero<a class="el" href="a00044.html#a225">telnetd.c</a>, and <a class="el" href="a00040.html#a277">webclient.c</a>.</dl> 383*10465441SEvalZero<p> 384*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00737">737</a> of file <a class="el" href="a00202.html">uip.h</a>. </td> 385*10465441SEvalZero </tr> 386*10465441SEvalZero</table> 387*10465441SEvalZero<a class="anchor" name="g26a14b8dae3f861830af9e7cf1e03725"></a><!-- doxytag: member="uip.h::uip_newdata" ref="g26a14b8dae3f861830af9e7cf1e03725" args="()" --><p> 388*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 389*10465441SEvalZero <tr> 390*10465441SEvalZero <td class="mdRow"> 391*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 392*10465441SEvalZero <tr> 393*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_newdata </td> 394*10465441SEvalZero <td class="md" valign="top">( </td> 395*10465441SEvalZero </td> 396*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 397*10465441SEvalZero <td class="md" valign="top"> ) </td> 398*10465441SEvalZero <td class="md" nowrap></td> 399*10465441SEvalZero </tr> 400*10465441SEvalZero </table> 401*10465441SEvalZero </td> 402*10465441SEvalZero </tr> 403*10465441SEvalZero</table> 404*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 405*10465441SEvalZero <tr> 406*10465441SEvalZero <td> 407*10465441SEvalZero 408*10465441SEvalZero </td> 409*10465441SEvalZero <td> 410*10465441SEvalZero 411*10465441SEvalZero<p> 412*10465441SEvalZeroIs new incoming data available? 413*10465441SEvalZero<p> 414*10465441SEvalZeroWill reduce to non-zero if there is new data for the application present at the uip_appdata pointer. The size of the data is avaliable through the uip_len variable. <dl compact><dt><b>Examples: </b></dt><dd> 415*10465441SEvalZero<a class="el" href="a00048.html#a25">dhcpc.c</a>, <a class="el" href="a00046.html#a145">resolv.c</a>, <a class="el" href="a00044.html#a239">telnetd.c</a>, and <a class="el" href="a00040.html#a301">webclient.c</a>.</dl> 416*10465441SEvalZero<p> 417*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00637">637</a> of file <a class="el" href="a00202.html">uip.h</a>. 418*10465441SEvalZero<p> 419*10465441SEvalZeroReferenced by <a class="el" href="a00192.html#l00253">psock_newdata()</a>, <a class="el" href="a00172.html#l00331">resolv_appcall()</a>, and <a class="el" href="a00180.html#l00378">webclient_appcall()</a>. </td> 420*10465441SEvalZero </tr> 421*10465441SEvalZero</table> 422*10465441SEvalZero<a class="anchor" name="g58bb90796c1cdad3aac2ecf44d87b20e"></a><!-- doxytag: member="uip.h::uip_poll" ref="g58bb90796c1cdad3aac2ecf44d87b20e" args="()" --><p> 423*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 424*10465441SEvalZero <tr> 425*10465441SEvalZero <td class="mdRow"> 426*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 427*10465441SEvalZero <tr> 428*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_poll </td> 429*10465441SEvalZero <td class="md" valign="top">( </td> 430*10465441SEvalZero </td> 431*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 432*10465441SEvalZero <td class="md" valign="top"> ) </td> 433*10465441SEvalZero <td class="md" nowrap></td> 434*10465441SEvalZero </tr> 435*10465441SEvalZero </table> 436*10465441SEvalZero </td> 437*10465441SEvalZero </tr> 438*10465441SEvalZero</table> 439*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 440*10465441SEvalZero <tr> 441*10465441SEvalZero <td> 442*10465441SEvalZero 443*10465441SEvalZero </td> 444*10465441SEvalZero <td> 445*10465441SEvalZero 446*10465441SEvalZero<p> 447*10465441SEvalZeroIs the connection being polled by uIP? 448*10465441SEvalZero<p> 449*10465441SEvalZeroIs non-zero if the reason the application is invoked is that the current connection has been idle for a while and should be polled.<p> 450*10465441SEvalZeroThe polling event can be used for sending data without having to wait for the remote host to send data. <dl compact><dt><b>Examples: </b></dt><dd> 451*10465441SEvalZero<a class="el" href="a00046.html#a144">resolv.c</a>, <a class="el" href="a00044.html#a241">telnetd.c</a>, and <a class="el" href="a00040.html#a303">webclient.c</a>.</dl> 452*10465441SEvalZero<p> 453*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00716">716</a> of file <a class="el" href="a00202.html">uip.h</a>. 454*10465441SEvalZero<p> 455*10465441SEvalZeroReferenced by <a class="el" href="a00184.html#l00298">httpd_appcall()</a>, <a class="el" href="a00172.html#l00331">resolv_appcall()</a>, and <a class="el" href="a00180.html#l00378">webclient_appcall()</a>. </td> 456*10465441SEvalZero </tr> 457*10465441SEvalZero</table> 458*10465441SEvalZero<a class="anchor" name="g81ac47cee1c18f6aa479044069db7ca3"></a><!-- doxytag: member="uip.h::uip_restart" ref="g81ac47cee1c18f6aa479044069db7ca3" args="()" --><p> 459*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 460*10465441SEvalZero <tr> 461*10465441SEvalZero <td class="mdRow"> 462*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 463*10465441SEvalZero <tr> 464*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_restart </td> 465*10465441SEvalZero <td class="md" valign="top">( </td> 466*10465441SEvalZero </td> 467*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 468*10465441SEvalZero <td class="md" valign="top"> ) </td> 469*10465441SEvalZero <td class="md" nowrap></td> 470*10465441SEvalZero </tr> 471*10465441SEvalZero </table> 472*10465441SEvalZero </td> 473*10465441SEvalZero </tr> 474*10465441SEvalZero</table> 475*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 476*10465441SEvalZero <tr> 477*10465441SEvalZero <td> 478*10465441SEvalZero 479*10465441SEvalZero </td> 480*10465441SEvalZero <td> 481*10465441SEvalZero 482*10465441SEvalZero<p> 483*10465441SEvalZeroRestart the current connection, if is has previously been stopped with <a class="el" href="a00147.html#g0a8bb9d6d0f1f56852ccfccbbad6c5d8">uip_stop()</a>. 484*10465441SEvalZero<p> 485*10465441SEvalZeroThis function will open the receiver's window again so that we start receiving data for the current connection. 486*10465441SEvalZero<p> 487*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00610">610</a> of file <a class="el" href="a00202.html">uip.h</a>. </td> 488*10465441SEvalZero </tr> 489*10465441SEvalZero</table> 490*10465441SEvalZero<a class="anchor" name="ga8933ad15a2e2947dae4a5cff50e6007"></a><!-- doxytag: member="uip.h::uip_rexmit" ref="ga8933ad15a2e2947dae4a5cff50e6007" args="()" --><p> 491*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 492*10465441SEvalZero <tr> 493*10465441SEvalZero <td class="mdRow"> 494*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 495*10465441SEvalZero <tr> 496*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_rexmit </td> 497*10465441SEvalZero <td class="md" valign="top">( </td> 498*10465441SEvalZero </td> 499*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 500*10465441SEvalZero <td class="md" valign="top"> ) </td> 501*10465441SEvalZero <td class="md" nowrap></td> 502*10465441SEvalZero </tr> 503*10465441SEvalZero </table> 504*10465441SEvalZero </td> 505*10465441SEvalZero </tr> 506*10465441SEvalZero</table> 507*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 508*10465441SEvalZero <tr> 509*10465441SEvalZero <td> 510*10465441SEvalZero 511*10465441SEvalZero </td> 512*10465441SEvalZero <td> 513*10465441SEvalZero 514*10465441SEvalZero<p> 515*10465441SEvalZeroDo we need to retransmit previously data? 516*10465441SEvalZero<p> 517*10465441SEvalZeroReduces to non-zero if the previously sent data has been lost in the network, and the application should retransmit it. The application should send the exact same data as it did the last time, using the <a class="el" href="a00147.html#g04b053a623aac7cd4195157d470661b3">uip_send()</a> function. <dl compact><dt><b>Examples: </b></dt><dd> 518*10465441SEvalZero<a class="el" href="a00044.html#a240">telnetd.c</a>, and <a class="el" href="a00040.html#a302">webclient.c</a>.</dl> 519*10465441SEvalZero<p> 520*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00702">702</a> of file <a class="el" href="a00202.html">uip.h</a>. 521*10465441SEvalZero<p> 522*10465441SEvalZeroReferenced by <a class="el" href="a00180.html#l00378">webclient_appcall()</a>. </td> 523*10465441SEvalZero </tr> 524*10465441SEvalZero</table> 525*10465441SEvalZero<a class="anchor" name="g0a8bb9d6d0f1f56852ccfccbbad6c5d8"></a><!-- doxytag: member="uip.h::uip_stop" ref="g0a8bb9d6d0f1f56852ccfccbbad6c5d8" args="()" --><p> 526*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 527*10465441SEvalZero <tr> 528*10465441SEvalZero <td class="mdRow"> 529*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 530*10465441SEvalZero <tr> 531*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_stop </td> 532*10465441SEvalZero <td class="md" valign="top">( </td> 533*10465441SEvalZero </td> 534*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 535*10465441SEvalZero <td class="md" valign="top"> ) </td> 536*10465441SEvalZero <td class="md" nowrap></td> 537*10465441SEvalZero </tr> 538*10465441SEvalZero </table> 539*10465441SEvalZero </td> 540*10465441SEvalZero </tr> 541*10465441SEvalZero</table> 542*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 543*10465441SEvalZero <tr> 544*10465441SEvalZero <td> 545*10465441SEvalZero 546*10465441SEvalZero </td> 547*10465441SEvalZero <td> 548*10465441SEvalZero 549*10465441SEvalZero<p> 550*10465441SEvalZeroTell the sending host to stop sending data. 551*10465441SEvalZero<p> 552*10465441SEvalZeroThis function will close our receiver's window so that we stop receiving data for the current connection. 553*10465441SEvalZero<p> 554*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00591">591</a> of file <a class="el" href="a00202.html">uip.h</a>. </td> 555*10465441SEvalZero </tr> 556*10465441SEvalZero</table> 557*10465441SEvalZero<a class="anchor" name="g7b2ac4b18bd2ac3912fe67b3b17158c3"></a><!-- doxytag: member="uip.h::uip_timedout" ref="g7b2ac4b18bd2ac3912fe67b3b17158c3" args="()" --><p> 558*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 559*10465441SEvalZero <tr> 560*10465441SEvalZero <td class="mdRow"> 561*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 562*10465441SEvalZero <tr> 563*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_timedout </td> 564*10465441SEvalZero <td class="md" valign="top">( </td> 565*10465441SEvalZero </td> 566*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 567*10465441SEvalZero <td class="md" valign="top"> ) </td> 568*10465441SEvalZero <td class="md" nowrap></td> 569*10465441SEvalZero </tr> 570*10465441SEvalZero </table> 571*10465441SEvalZero </td> 572*10465441SEvalZero </tr> 573*10465441SEvalZero</table> 574*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 575*10465441SEvalZero <tr> 576*10465441SEvalZero <td> 577*10465441SEvalZero 578*10465441SEvalZero </td> 579*10465441SEvalZero <td> 580*10465441SEvalZero 581*10465441SEvalZero<p> 582*10465441SEvalZeroHas the connection timed out? 583*10465441SEvalZero<p> 584*10465441SEvalZeroNon-zero if the current connection has been aborted due to too many retransmissions. <dl compact><dt><b>Examples: </b></dt><dd> 585*10465441SEvalZero<a class="el" href="a00038.html#a186">smtp.c</a>, <a class="el" href="a00044.html#a237">telnetd.c</a>, and <a class="el" href="a00040.html#a298">webclient.c</a>.</dl> 586*10465441SEvalZero<p> 587*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00690">690</a> of file <a class="el" href="a00202.html">uip.h</a>. 588*10465441SEvalZero<p> 589*10465441SEvalZeroReferenced by <a class="el" href="a00184.html#l00298">httpd_appcall()</a>, <a class="el" href="a00174.html#l00190">smtp_appcall()</a>, and <a class="el" href="a00180.html#l00378">webclient_appcall()</a>. </td> 590*10465441SEvalZero </tr> 591*10465441SEvalZero</table> 592*10465441SEvalZero<a class="anchor" name="ga20812098a4663c8a9fc4ce8e95391b6"></a><!-- doxytag: member="uip.h::uip_udp_bind" ref="ga20812098a4663c8a9fc4ce8e95391b6" args="(conn, port)" --><p> 593*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 594*10465441SEvalZero <tr> 595*10465441SEvalZero <td class="mdRow"> 596*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 597*10465441SEvalZero <tr> 598*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_udp_bind </td> 599*10465441SEvalZero <td class="md" valign="top">( </td> 600*10465441SEvalZero <td class="md" nowrap valign="top">conn, <tr> 601*10465441SEvalZero <td class="md" nowrap align="right"></td> 602*10465441SEvalZero <td class="md"></td> 603*10465441SEvalZero <td class="md" nowrap>port </td> 604*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 605*10465441SEvalZero <td class="md" valign="top"> ) </td> 606*10465441SEvalZero <td class="md" nowrap></td> 607*10465441SEvalZero </tr> 608*10465441SEvalZero </table> 609*10465441SEvalZero </td> 610*10465441SEvalZero </tr> 611*10465441SEvalZero</table> 612*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 613*10465441SEvalZero <tr> 614*10465441SEvalZero <td> 615*10465441SEvalZero 616*10465441SEvalZero </td> 617*10465441SEvalZero <td> 618*10465441SEvalZero 619*10465441SEvalZero<p> 620*10465441SEvalZeroBind a UDP connection to a local port. 621*10465441SEvalZero<p> 622*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd> 623*10465441SEvalZero <table border="0" cellspacing="2" cellpadding="0"> 624*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>conn</em> </td><td>A pointer to the <a class="el" href="a00095.html">uip_udp_conn</a> structure for the connection.</td></tr> 625*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>port</em> </td><td>The local port number, in network byte order. </td></tr> 626*10465441SEvalZero </table> 627*10465441SEvalZero</dl> 628*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd> 629*10465441SEvalZero<a class="el" href="a00048.html#a40">dhcpc.c</a>.</dl> 630*10465441SEvalZero<p> 631*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00787">787</a> of file <a class="el" href="a00202.html">uip.h</a>. </td> 632*10465441SEvalZero </tr> 633*10465441SEvalZero</table> 634*10465441SEvalZero<a class="anchor" name="gf2dbaceb10c67783a115075b5b6d66df"></a><!-- doxytag: member="uip.h::uip_udp_remove" ref="gf2dbaceb10c67783a115075b5b6d66df" args="(conn)" --><p> 635*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 636*10465441SEvalZero <tr> 637*10465441SEvalZero <td class="mdRow"> 638*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 639*10465441SEvalZero <tr> 640*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_udp_remove </td> 641*10465441SEvalZero <td class="md" valign="top">( </td> 642*10465441SEvalZero <td class="md" nowrap valign="top">conn </td> 643*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 644*10465441SEvalZero <td class="md" valign="top"> ) </td> 645*10465441SEvalZero <td class="md" nowrap></td> 646*10465441SEvalZero </tr> 647*10465441SEvalZero </table> 648*10465441SEvalZero </td> 649*10465441SEvalZero </tr> 650*10465441SEvalZero</table> 651*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 652*10465441SEvalZero <tr> 653*10465441SEvalZero <td> 654*10465441SEvalZero 655*10465441SEvalZero </td> 656*10465441SEvalZero <td> 657*10465441SEvalZero 658*10465441SEvalZero<p> 659*10465441SEvalZeroRemoved a UDP connection. 660*10465441SEvalZero<p> 661*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd> 662*10465441SEvalZero <table border="0" cellspacing="2" cellpadding="0"> 663*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>conn</em> </td><td>A pointer to the <a class="el" href="a00095.html">uip_udp_conn</a> structure for the connection. </td></tr> 664*10465441SEvalZero </table> 665*10465441SEvalZero</dl> 666*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd> 667*10465441SEvalZero<a class="el" href="a00046.html#a152">resolv.c</a>.</dl> 668*10465441SEvalZero<p> 669*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00775">775</a> of file <a class="el" href="a00202.html">uip.h</a>. 670*10465441SEvalZero<p> 671*10465441SEvalZeroReferenced by <a class="el" href="a00172.html#l00438">resolv_conf()</a>. </td> 672*10465441SEvalZero </tr> 673*10465441SEvalZero</table> 674*10465441SEvalZero<a class="anchor" name="ge5ab69d40013e6cf86ef1763c95d920e"></a><!-- doxytag: member="uip.h::uip_udp_send" ref="ge5ab69d40013e6cf86ef1763c95d920e" args="(len)" --><p> 675*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 676*10465441SEvalZero <tr> 677*10465441SEvalZero <td class="mdRow"> 678*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 679*10465441SEvalZero <tr> 680*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_udp_send </td> 681*10465441SEvalZero <td class="md" valign="top">( </td> 682*10465441SEvalZero <td class="md" nowrap valign="top">len </td> 683*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 684*10465441SEvalZero <td class="md" valign="top"> ) </td> 685*10465441SEvalZero <td class="md" nowrap></td> 686*10465441SEvalZero </tr> 687*10465441SEvalZero </table> 688*10465441SEvalZero </td> 689*10465441SEvalZero </tr> 690*10465441SEvalZero</table> 691*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 692*10465441SEvalZero <tr> 693*10465441SEvalZero <td> 694*10465441SEvalZero 695*10465441SEvalZero </td> 696*10465441SEvalZero <td> 697*10465441SEvalZero 698*10465441SEvalZero<p> 699*10465441SEvalZeroSend a UDP datagram of length len on the current connection. 700*10465441SEvalZero<p> 701*10465441SEvalZeroThis function can only be called in response to a UDP event (poll or newdata). The data must be present in the uip_buf buffer, at the place pointed to by the uip_appdata pointer.<p> 702*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd> 703*10465441SEvalZero <table border="0" cellspacing="2" cellpadding="0"> 704*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>The length of the data in the uip_buf buffer. </td></tr> 705*10465441SEvalZero </table> 706*10465441SEvalZero</dl> 707*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd> 708*10465441SEvalZero<a class="el" href="a00046.html#a140">resolv.c</a>.</dl> 709*10465441SEvalZero<p> 710*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00800">800</a> of file <a class="el" href="a00202.html">uip.h</a>. </td> 711*10465441SEvalZero </tr> 712*10465441SEvalZero</table> 713*10465441SEvalZero<a class="anchor" name="ga9de254b8aa308eb4aab17efdde622d2"></a><!-- doxytag: member="uip.h::uip_udpconnection" ref="ga9de254b8aa308eb4aab17efdde622d2" args="()" --><p> 714*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 715*10465441SEvalZero <tr> 716*10465441SEvalZero <td class="mdRow"> 717*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 718*10465441SEvalZero <tr> 719*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_udpconnection </td> 720*10465441SEvalZero <td class="md" valign="top">( </td> 721*10465441SEvalZero </td> 722*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 723*10465441SEvalZero <td class="md" valign="top"> ) </td> 724*10465441SEvalZero <td class="md" nowrap></td> 725*10465441SEvalZero </tr> 726*10465441SEvalZero </table> 727*10465441SEvalZero </td> 728*10465441SEvalZero </tr> 729*10465441SEvalZero</table> 730*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 731*10465441SEvalZero <tr> 732*10465441SEvalZero <td> 733*10465441SEvalZero 734*10465441SEvalZero </td> 735*10465441SEvalZero <td> 736*10465441SEvalZero 737*10465441SEvalZero<p> 738*10465441SEvalZeroIs the current connection a UDP connection? 739*10465441SEvalZero<p> 740*10465441SEvalZeroThis function checks whether the current connection is a UDP connection. 741*10465441SEvalZero<p> 742*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00626">626</a> of file <a class="el" href="a00202.html">uip.h</a>. </td> 743*10465441SEvalZero </tr> 744*10465441SEvalZero</table> 745*10465441SEvalZero<a class="anchor" name="g8411c95a4d89367ad2d9d6bde1a3d537"></a><!-- doxytag: member="uip.h::uip_urgdatalen" ref="g8411c95a4d89367ad2d9d6bde1a3d537" args="()" --><p> 746*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 747*10465441SEvalZero <tr> 748*10465441SEvalZero <td class="mdRow"> 749*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 750*10465441SEvalZero <tr> 751*10465441SEvalZero <td class="md" nowrap valign="top">#define uip_urgdatalen </td> 752*10465441SEvalZero <td class="md" valign="top">( </td> 753*10465441SEvalZero </td> 754*10465441SEvalZero <td class="mdname1" valign="top" nowrap> </td> 755*10465441SEvalZero <td class="md" valign="top"> ) </td> 756*10465441SEvalZero <td class="md" nowrap></td> 757*10465441SEvalZero </tr> 758*10465441SEvalZero </table> 759*10465441SEvalZero </td> 760*10465441SEvalZero </tr> 761*10465441SEvalZero</table> 762*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 763*10465441SEvalZero <tr> 764*10465441SEvalZero <td> 765*10465441SEvalZero 766*10465441SEvalZero </td> 767*10465441SEvalZero <td> 768*10465441SEvalZero 769*10465441SEvalZero<p> 770*10465441SEvalZeroThe length of any out-of-band data (urgent data) that has arrived on the connection. 771*10465441SEvalZero<p> 772*10465441SEvalZero<dl compact><dt><b>Note:</b></dt><dd>The configuration parameter UIP_URGDATA must be set for this function to be enabled. </dd></dl> 773*10465441SEvalZero 774*10465441SEvalZero<p> 775*10465441SEvalZeroDefinition at line <a class="el" href="a00202.html#l00561">561</a> of file <a class="el" href="a00202.html">uip.h</a>. </td> 776*10465441SEvalZero </tr> 777*10465441SEvalZero</table> 778*10465441SEvalZero<hr><h2>Function Documentation</h2> 779*10465441SEvalZero<a class="anchor" name="g8096b0c4b543dc408f4dd031ddae7240"></a><!-- doxytag: member="uip.h::uip_connect" ref="g8096b0c4b543dc408f4dd031ddae7240" args="(uip_ipaddr_t *ripaddr, u16_t port)" --><p> 780*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 781*10465441SEvalZero <tr> 782*10465441SEvalZero <td class="mdRow"> 783*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 784*10465441SEvalZero <tr> 785*10465441SEvalZero <td class="md" nowrap valign="top">struct <a class="el" href="a00088.html">uip_conn</a>* uip_connect </td> 786*10465441SEvalZero <td class="md" valign="top">( </td> 787*10465441SEvalZero <td class="md" nowrap valign="top"><a class="el" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> * </td> 788*10465441SEvalZero <td class="mdname" nowrap> <em>ripaddr</em>, </td> 789*10465441SEvalZero </tr> 790*10465441SEvalZero <tr> 791*10465441SEvalZero <td class="md" nowrap align="right"></td> 792*10465441SEvalZero <td class="md"></td> 793*10465441SEvalZero <td class="md" nowrap><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> </td> 794*10465441SEvalZero <td class="mdname" nowrap> <em>port</em></td> 795*10465441SEvalZero </tr> 796*10465441SEvalZero <tr> 797*10465441SEvalZero <td class="md"></td> 798*10465441SEvalZero <td class="md">) </td> 799*10465441SEvalZero <td class="md" colspan="2"></td> 800*10465441SEvalZero </tr> 801*10465441SEvalZero </table> 802*10465441SEvalZero </td> 803*10465441SEvalZero </tr> 804*10465441SEvalZero</table> 805*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 806*10465441SEvalZero <tr> 807*10465441SEvalZero <td> 808*10465441SEvalZero 809*10465441SEvalZero </td> 810*10465441SEvalZero <td> 811*10465441SEvalZero 812*10465441SEvalZero<p> 813*10465441SEvalZeroConnect to a remote host using TCP. 814*10465441SEvalZero<p> 815*10465441SEvalZeroThis function is used to start a new connection to the specified port on the specied host. It allocates a new connection identifier, sets the connection to the SYN_SENT state and sets the retransmission timer to 0. This will cause a TCP SYN segment to be sent out the next time this connection is periodically processed, which usually is done within 0.5 seconds after the call to <a class="el" href="a00147.html#g8096b0c4b543dc408f4dd031ddae7240">uip_connect()</a>.<p> 816*10465441SEvalZero<dl compact><dt><b>Note:</b></dt><dd>This function is avaliable only if support for active open has been configured by defining UIP_ACTIVE_OPEN to 1 in <a class="el" href="a00140.html">uipopt.h</a>.<p> 817*10465441SEvalZeroSince this function requires the port number to be in network byte order, a conversion using <a class="el" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS()</a> or <a class="el" href="a00148.html#ga22b04cac8cf283ca12f028578bebc06">htons()</a> is necessary.</dd></dl> 818*10465441SEvalZero<div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr; 819*10465441SEvalZero 820*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&ipaddr, 192,168,1,2); 821*10465441SEvalZero <a class="code" href="a00147.html#g8096b0c4b543dc408f4dd031ddae7240">uip_connect</a>(&ipaddr, <a class="code" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS</a>(80)); 822*10465441SEvalZero</pre></div><p> 823*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd> 824*10465441SEvalZero <table border="0" cellspacing="2" cellpadding="0"> 825*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>ripaddr</em> </td><td>The IP address of the remote hot.</td></tr> 826*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>port</em> </td><td>A 16-bit port number in network byte order.</td></tr> 827*10465441SEvalZero </table> 828*10465441SEvalZero</dl> 829*10465441SEvalZero<dl compact><dt><b>Returns:</b></dt><dd>A pointer to the uIP connection identifier for the new connection, or NULL if no connection could be allocated. </dd></dl> 830*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd> 831*10465441SEvalZero<a class="el" href="a00038.html#a190">smtp.c</a>, and <a class="el" href="a00040.html#a273">webclient.c</a>.</dl> 832*10465441SEvalZero<p> 833*10465441SEvalZeroDefinition at line <a class="el" href="a00201.html#l00407">407</a> of file <a class="el" href="a00201.html">uip.c</a>. 834*10465441SEvalZero<p> 835*10465441SEvalZeroReferences <a class="el" href="a00201.html#l01882">htons()</a>, <a class="el" href="a00202.html#l01156">uip_conn::lport</a>, <a class="el" href="a00202.html#l01174">uip_conn::tcpstateflags</a>, <a class="el" href="a00202.html#l01372">UIP_CLOSED</a>, <a class="el" href="a00201.html#l00163">uip_conn</a>, <a class="el" href="a00206.html#l00245">UIP_CONNS</a>, and <a class="el" href="a00201.html#l00166">uip_conns</a>. 836*10465441SEvalZero<p> 837*10465441SEvalZeroReferenced by <a class="el" href="a00174.html#l00233">smtp_send()</a>, and <a class="el" href="a00180.html#l00140">webclient_get()</a>. </td> 838*10465441SEvalZero </tr> 839*10465441SEvalZero</table> 840*10465441SEvalZero<a class="anchor" name="gdd1ab3704ecd4900eec61a6897d32dc8"></a><!-- doxytag: member="uip.h::uip_listen" ref="gdd1ab3704ecd4900eec61a6897d32dc8" args="(u16_t port)" --><p> 841*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 842*10465441SEvalZero <tr> 843*10465441SEvalZero <td class="mdRow"> 844*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 845*10465441SEvalZero <tr> 846*10465441SEvalZero <td class="md" nowrap valign="top">void uip_listen </td> 847*10465441SEvalZero <td class="md" valign="top">( </td> 848*10465441SEvalZero <td class="md" nowrap valign="top"><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> </td> 849*10465441SEvalZero <td class="mdname1" valign="top" nowrap> <em>port</em> </td> 850*10465441SEvalZero <td class="md" valign="top"> ) </td> 851*10465441SEvalZero <td class="md" nowrap></td> 852*10465441SEvalZero </tr> 853*10465441SEvalZero </table> 854*10465441SEvalZero </td> 855*10465441SEvalZero </tr> 856*10465441SEvalZero</table> 857*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 858*10465441SEvalZero <tr> 859*10465441SEvalZero <td> 860*10465441SEvalZero 861*10465441SEvalZero </td> 862*10465441SEvalZero <td> 863*10465441SEvalZero 864*10465441SEvalZero<p> 865*10465441SEvalZeroStart listening to the specified port. 866*10465441SEvalZero<p> 867*10465441SEvalZero<dl compact><dt><b>Note:</b></dt><dd>Since this function expects the port number in network byte order, a conversion using <a class="el" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS()</a> or <a class="el" href="a00148.html#ga22b04cac8cf283ca12f028578bebc06">htons()</a> is necessary.</dd></dl> 868*10465441SEvalZero<div class="fragment"><pre class="fragment"> <a class="code" href="a00147.html#gdd1ab3704ecd4900eec61a6897d32dc8">uip_listen</a>(<a class="code" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS</a>(80)); 869*10465441SEvalZero</pre></div><p> 870*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd> 871*10465441SEvalZero <table border="0" cellspacing="2" cellpadding="0"> 872*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>port</em> </td><td>A 16-bit port number in network byte order. </td></tr> 873*10465441SEvalZero </table> 874*10465441SEvalZero</dl> 875*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd> 876*10465441SEvalZero<a class="el" href="a00036.html#a102">hello-world.c</a>, and <a class="el" href="a00044.html#a218">telnetd.c</a>.</dl> 877*10465441SEvalZero<p> 878*10465441SEvalZeroDefinition at line <a class="el" href="a00201.html#l00529">529</a> of file <a class="el" href="a00201.html">uip.c</a>. 879*10465441SEvalZero<p> 880*10465441SEvalZeroReferences <a class="el" href="a00206.html#l00259">UIP_LISTENPORTS</a>. 881*10465441SEvalZero<p> 882*10465441SEvalZeroReferenced by <a class="el" href="a00170.html#l00041">hello_world_init()</a>, and <a class="el" href="a00184.html#l00333">httpd_init()</a>. </td> 883*10465441SEvalZero </tr> 884*10465441SEvalZero</table> 885*10465441SEvalZero<a class="anchor" name="g04b053a623aac7cd4195157d470661b3"></a><!-- doxytag: member="uip.h::uip_send" ref="g04b053a623aac7cd4195157d470661b3" args="(const void *data, int len)" --><p> 886*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 887*10465441SEvalZero <tr> 888*10465441SEvalZero <td class="mdRow"> 889*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 890*10465441SEvalZero <tr> 891*10465441SEvalZero <td class="md" nowrap valign="top">void uip_send </td> 892*10465441SEvalZero <td class="md" valign="top">( </td> 893*10465441SEvalZero <td class="md" nowrap valign="top">const void * </td> 894*10465441SEvalZero <td class="mdname" nowrap> <em>data</em>, </td> 895*10465441SEvalZero </tr> 896*10465441SEvalZero <tr> 897*10465441SEvalZero <td class="md" nowrap align="right"></td> 898*10465441SEvalZero <td class="md"></td> 899*10465441SEvalZero <td class="md" nowrap>int </td> 900*10465441SEvalZero <td class="mdname" nowrap> <em>len</em></td> 901*10465441SEvalZero </tr> 902*10465441SEvalZero <tr> 903*10465441SEvalZero <td class="md"></td> 904*10465441SEvalZero <td class="md">) </td> 905*10465441SEvalZero <td class="md" colspan="2"></td> 906*10465441SEvalZero </tr> 907*10465441SEvalZero </table> 908*10465441SEvalZero </td> 909*10465441SEvalZero </tr> 910*10465441SEvalZero</table> 911*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 912*10465441SEvalZero <tr> 913*10465441SEvalZero <td> 914*10465441SEvalZero 915*10465441SEvalZero </td> 916*10465441SEvalZero <td> 917*10465441SEvalZero 918*10465441SEvalZero<p> 919*10465441SEvalZeroSend data on the current connection. 920*10465441SEvalZero<p> 921*10465441SEvalZeroThis function is used to send out a single segment of TCP data. Only applications that have been invoked by uIP for event processing can send data.<p> 922*10465441SEvalZeroThe amount of data that actually is sent out after a call to this funcion is determined by the maximum amount of data TCP allows. uIP will automatically crop the data so that only the appropriate amount of data is sent. The function <a class="el" href="a00147.html#gb5fecbc62edd128012cea0f47b57ab9f">uip_mss()</a> can be used to query uIP for the amount of data that actually will be sent.<p> 923*10465441SEvalZero<dl compact><dt><b>Note:</b></dt><dd>This function does not guarantee that the sent data will arrive at the destination. If the data is lost in the network, the application will be invoked with the <a class="el" href="a00147.html#ga8933ad15a2e2947dae4a5cff50e6007">uip_rexmit()</a> event being set. The application will then have to resend the data using this function.</dd></dl> 924*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd> 925*10465441SEvalZero <table border="0" cellspacing="2" cellpadding="0"> 926*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>A pointer to the data which is to be sent.</td></tr> 927*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>The maximum amount of data bytes to be sent. </td></tr> 928*10465441SEvalZero </table> 929*10465441SEvalZero</dl> 930*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd> 931*10465441SEvalZero<a class="el" href="a00048.html#a10">dhcpc.c</a>, <a class="el" href="a00044.html#a226">telnetd.c</a>, and <a class="el" href="a00040.html#a278">webclient.c</a>.</dl> 932*10465441SEvalZero<p> 933*10465441SEvalZeroDefinition at line <a class="el" href="a00201.html#l01888">1888</a> of file <a class="el" href="a00201.html">uip.c</a>. 934*10465441SEvalZero<p> 935*10465441SEvalZeroReferences <a class="el" href="a00201.html#l00145">uip_sappdata</a>, and <a class="el" href="a00201.html#l00155">uip_slen</a>. </td> 936*10465441SEvalZero </tr> 937*10465441SEvalZero</table> 938*10465441SEvalZero<a class="anchor" name="g79c4110211247df3fb30b8cf1c4c02af"></a><!-- doxytag: member="uip.h::uip_udp_new" ref="g79c4110211247df3fb30b8cf1c4c02af" args="(uip_ipaddr_t *ripaddr, u16_t rport)" --><p> 939*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 940*10465441SEvalZero <tr> 941*10465441SEvalZero <td class="mdRow"> 942*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 943*10465441SEvalZero <tr> 944*10465441SEvalZero <td class="md" nowrap valign="top">struct <a class="el" href="a00095.html">uip_udp_conn</a>* uip_udp_new </td> 945*10465441SEvalZero <td class="md" valign="top">( </td> 946*10465441SEvalZero <td class="md" nowrap valign="top"><a class="el" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> * </td> 947*10465441SEvalZero <td class="mdname" nowrap> <em>ripaddr</em>, </td> 948*10465441SEvalZero </tr> 949*10465441SEvalZero <tr> 950*10465441SEvalZero <td class="md" nowrap align="right"></td> 951*10465441SEvalZero <td class="md"></td> 952*10465441SEvalZero <td class="md" nowrap><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> </td> 953*10465441SEvalZero <td class="mdname" nowrap> <em>rport</em></td> 954*10465441SEvalZero </tr> 955*10465441SEvalZero <tr> 956*10465441SEvalZero <td class="md"></td> 957*10465441SEvalZero <td class="md">) </td> 958*10465441SEvalZero <td class="md" colspan="2"></td> 959*10465441SEvalZero </tr> 960*10465441SEvalZero </table> 961*10465441SEvalZero </td> 962*10465441SEvalZero </tr> 963*10465441SEvalZero</table> 964*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 965*10465441SEvalZero <tr> 966*10465441SEvalZero <td> 967*10465441SEvalZero 968*10465441SEvalZero </td> 969*10465441SEvalZero <td> 970*10465441SEvalZero 971*10465441SEvalZero<p> 972*10465441SEvalZeroSet up a new UDP connection. 973*10465441SEvalZero<p> 974*10465441SEvalZeroThis function sets up a new UDP connection. The function will automatically allocate an unused local port for the new connection. However, another port can be chosen by using the <a class="el" href="a00147.html#ga20812098a4663c8a9fc4ce8e95391b6">uip_udp_bind()</a> call, after the <a class="el" href="a00147.html#g79c4110211247df3fb30b8cf1c4c02af">uip_udp_new()</a> function has been called.<p> 975*10465441SEvalZeroExample: <div class="fragment"><pre class="fragment"> <a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> addr; 976*10465441SEvalZero <span class="keyword">struct </span><a class="code" href="a00095.html">uip_udp_conn</a> *c; 977*10465441SEvalZero 978*10465441SEvalZero <a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(&addr, 192,168,2,1); 979*10465441SEvalZero c = <a class="code" href="a00147.html#g79c4110211247df3fb30b8cf1c4c02af">uip_udp_new</a>(&addr, <a class="code" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS</a>(12345)); 980*10465441SEvalZero <span class="keywordflow">if</span>(c != <a class="code" href="a00160.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) { 981*10465441SEvalZero <a class="code" href="a00147.html#ga20812098a4663c8a9fc4ce8e95391b6">uip_udp_bind</a>(c, <a class="code" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS</a>(12344)); 982*10465441SEvalZero } 983*10465441SEvalZero</pre></div> <dl compact><dt><b>Parameters:</b></dt><dd> 984*10465441SEvalZero <table border="0" cellspacing="2" cellpadding="0"> 985*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>ripaddr</em> </td><td>The IP address of the remote host.</td></tr> 986*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>rport</em> </td><td>The remote port number in network byte order.</td></tr> 987*10465441SEvalZero </table> 988*10465441SEvalZero</dl> 989*10465441SEvalZero<dl compact><dt><b>Returns:</b></dt><dd>The <a class="el" href="a00095.html">uip_udp_conn</a> structure for the new connection or NULL if no connection could be allocated. </dd></dl> 990*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd> 991*10465441SEvalZero<a class="el" href="a00048.html#a38">dhcpc.c</a>, and <a class="el" href="a00046.html#a153">resolv.c</a>.</dl> 992*10465441SEvalZero<p> 993*10465441SEvalZeroDefinition at line <a class="el" href="a00201.html#l00473">473</a> of file <a class="el" href="a00201.html">uip.c</a>. 994*10465441SEvalZero<p> 995*10465441SEvalZeroReferences <a class="el" href="a00201.html#l01882">htons()</a>, <a class="el" href="a00202.html#l01212">uip_udp_conn::lport</a>, <a class="el" href="a00201.html#l00173">uip_udp_conn</a>, <a class="el" href="a00206.html#l00206">UIP_UDP_CONNS</a>, and <a class="el" href="a00201.html#l00174">uip_udp_conns</a>. 996*10465441SEvalZero<p> 997*10465441SEvalZeroReferenced by <a class="el" href="a00172.html#l00438">resolv_conf()</a>. </td> 998*10465441SEvalZero </tr> 999*10465441SEvalZero</table> 1000*10465441SEvalZero<a class="anchor" name="gaa585784b0914cac1d37f07f85457008"></a><!-- doxytag: member="uip.h::uip_unlisten" ref="gaa585784b0914cac1d37f07f85457008" args="(u16_t port)" --><p> 1001*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0"> 1002*10465441SEvalZero <tr> 1003*10465441SEvalZero <td class="mdRow"> 1004*10465441SEvalZero <table cellpadding="0" cellspacing="0" border="0"> 1005*10465441SEvalZero <tr> 1006*10465441SEvalZero <td class="md" nowrap valign="top">void uip_unlisten </td> 1007*10465441SEvalZero <td class="md" valign="top">( </td> 1008*10465441SEvalZero <td class="md" nowrap valign="top"><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> </td> 1009*10465441SEvalZero <td class="mdname1" valign="top" nowrap> <em>port</em> </td> 1010*10465441SEvalZero <td class="md" valign="top"> ) </td> 1011*10465441SEvalZero <td class="md" nowrap></td> 1012*10465441SEvalZero </tr> 1013*10465441SEvalZero </table> 1014*10465441SEvalZero </td> 1015*10465441SEvalZero </tr> 1016*10465441SEvalZero</table> 1017*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0"> 1018*10465441SEvalZero <tr> 1019*10465441SEvalZero <td> 1020*10465441SEvalZero 1021*10465441SEvalZero </td> 1022*10465441SEvalZero <td> 1023*10465441SEvalZero 1024*10465441SEvalZero<p> 1025*10465441SEvalZeroStop listening to the specified port. 1026*10465441SEvalZero<p> 1027*10465441SEvalZero<dl compact><dt><b>Note:</b></dt><dd>Since this function expects the port number in network byte order, a conversion using <a class="el" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS()</a> or <a class="el" href="a00148.html#ga22b04cac8cf283ca12f028578bebc06">htons()</a> is necessary.</dd></dl> 1028*10465441SEvalZero<div class="fragment"><pre class="fragment"> <a class="code" href="a00147.html#gaa585784b0914cac1d37f07f85457008">uip_unlisten</a>(<a class="code" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS</a>(80)); 1029*10465441SEvalZero</pre></div><p> 1030*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd> 1031*10465441SEvalZero <table border="0" cellspacing="2" cellpadding="0"> 1032*10465441SEvalZero <tr><td valign="top"></td><td valign="top"><em>port</em> </td><td>A 16-bit port number in network byte order. </td></tr> 1033*10465441SEvalZero </table> 1034*10465441SEvalZero</dl> 1035*10465441SEvalZero 1036*10465441SEvalZero<p> 1037*10465441SEvalZeroDefinition at line <a class="el" href="a00201.html#l00518">518</a> of file <a class="el" href="a00201.html">uip.c</a>. 1038*10465441SEvalZero<p> 1039*10465441SEvalZeroReferences <a class="el" href="a00206.html#l00259">UIP_LISTENPORTS</a>. </td> 1040*10465441SEvalZero </tr> 1041*10465441SEvalZero</table> 1042*10465441SEvalZero<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by 1043*10465441SEvalZero<a href="http://www.doxygen.org/index.html"> 1044*10465441SEvalZero<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address> 1045*10465441SEvalZero</body> 1046*10465441SEvalZero</html> 1047