Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > e0236b39c613e86bcee76bad717809a5 > files > 209

libapr-devel-1.4.6-0.1mdv2010.2.i586.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Apache Portable Runtime: Network Routines</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Network Routines<br/>
<small>
[<a class="el" href="group___a_p_r.html">Apache Portability Runtime library</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapr__hdtr__t.html">apr_hdtr_t</a></td></tr>
<tr><td colspan="2"><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__sockopt.html">Socket option definitions</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___i_p___proto.html">IP Protocol Definitions for use when creating sockets</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__mcast.html">IP Multicast</a></td></tr>
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga8311c84f6946742188a6b9a45e92ea8e">APR_MAX_SECS_TO_LINGER</a>&nbsp;&nbsp;&nbsp;30</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga7f5b3882209106bb407b1d518d6ad59d">APRMAXHOSTLEN</a>&nbsp;&nbsp;&nbsp;256</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gadce1131c46b897ec63e9e4316a4631dd">APR_ANYADDR</a>&nbsp;&nbsp;&nbsp;&quot;0.0.0.0&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga58aa30a94127b4a80f27fbf2e03fdfd8">APR_IPV4_ADDR_OK</a>&nbsp;&nbsp;&nbsp;0x01</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gaef1f70f9b969d25832a230f429837207">APR_IPV6_ADDR_OK</a>&nbsp;&nbsp;&nbsp;0x02</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga16eb7ee55ff87a5093f2114ea5351217">APR_INADDR_NONE</a>&nbsp;&nbsp;&nbsp;((unsigned int) 0xffffffff)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gaa96e8e8dbf92bc77643a4032017b3d67">APR_INET</a>&nbsp;&nbsp;&nbsp;AF_INET</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gaa7a33b17a7d0820b09ef489bd3328f85">APR_UNSPEC</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gad09d9ea8995f50f35073ae0c77efb44f">APR_INET6</a>&nbsp;&nbsp;&nbsp;AF_INET6</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga46a8b06887871cfd60a3e37385775e22">apr_inet_addr</a>&nbsp;&nbsp;&nbsp;inet_addr</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gaca378d0e24b1588e3fdb143e4ea9090d">APR_SENDFILE_DISCONNECT_SOCKET</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structapr__hdtr__t.html">apr_hdtr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga97887d5358a9c79c241ccafab61d8ff5">apr_hdtr_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct in_addr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gad30d6c55a354a9a2e0a8747abb0c8176">apr_in_addr_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__apr__network__io.html#gac86ee04eb80f938902095d1d0a67c324">apr_ipsubnet_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gac86ee04eb80f938902095d1d0a67c324">apr_ipsubnet_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef apr_uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gaa670a71960f6eb4fe0d0de2a1e7aba03">apr_port_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga373fb6f32d0875c5deb648b779c8a709">apr_sockaddr_t</a></td></tr>
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gae2130f1fa2d0db58c5c3c9c73d9b4009">apr_shutdown_how_e</a> { <a class="el" href="group__apr__network__io.html#ggae2130f1fa2d0db58c5c3c9c73d9b4009a88d0661d35eea5319715d6ca69265b01">APR_SHUTDOWN_READ</a>, 
<a class="el" href="group__apr__network__io.html#ggae2130f1fa2d0db58c5c3c9c73d9b4009a5e335b392088e14df65d1bd5e0db7c46">APR_SHUTDOWN_WRITE</a>, 
<a class="el" href="group__apr__network__io.html#ggae2130f1fa2d0db58c5c3c9c73d9b4009add172f55ff5ee7b930683a3903c99768">APR_SHUTDOWN_READWRITE</a>
 }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga1982f44f48fdf00a8bd754bc7b773edc">apr_interface_e</a> { <a class="el" href="group__apr__network__io.html#gga1982f44f48fdf00a8bd754bc7b773edca6c23a4bf48b8f93dff08adf827382616">APR_LOCAL</a>, 
<a class="el" href="group__apr__network__io.html#gga1982f44f48fdf00a8bd754bc7b773edcaeb8be70b031f06a513ac0ebcaa5bac8a">APR_REMOTE</a>
 }</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga46b81e267ef80e64510d4e83880a91bd">apr_socket_create</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> **new_sock, int family, int type, int protocol, <a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *cont)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gac5aea857a50c493f840c48b930abc48e">apr_socket_shutdown</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *thesocket, <a class="el" href="group__apr__network__io.html#gae2130f1fa2d0db58c5c3c9c73d9b4009">apr_shutdown_how_e</a> how)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga88779f243ce19a2563544aee81894e6d">apr_socket_close</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *thesocket)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga512882c9979c2b9cad7cbc2508516d65">apr_socket_bind</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *sa)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga154bcee918f6f01fe0373359dd74b0c4">apr_socket_listen</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, apr_int32_t backlog)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga1d62711ca77ccc0f6413a298a47876da">apr_socket_accept</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> **new_sock, <a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, <a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *connection_pool)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga8e58bd8112ed2ce5004487918cd9275e">apr_socket_connect</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *sa)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gabfcb1fe4447921e5b86d395126b5d6f0">apr_socket_atreadeof</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, int *atreadeof)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gaa2f399ca2b60b35c0abf7630298c6c9f">apr_sockaddr_info_get</a> (<a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> **sa, const char *hostname, apr_int32_t family, <a class="el" href="group__apr__network__io.html#gaa670a71960f6eb4fe0d0de2a1e7aba03">apr_port_t</a> port, apr_int32_t flags, <a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga7a56fd9573b942753738ec30b887c9de">apr_getnameinfo</a> (char **hostname, <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *sa, apr_int32_t flags)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga90c31b2f012c6b1e2d842a96c4431de3">apr_parse_addr_port</a> (char **addr, char **scope_id, <a class="el" href="group__apr__network__io.html#gaa670a71960f6eb4fe0d0de2a1e7aba03">apr_port_t</a> *port, const char *str, <a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga6bd3d656ba935ca428075f477b8a6f8b">apr_gethostname</a> (char *buf, int len, <a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *cont)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gae76b48d0224a608b4ddb8bd00582eaa7">apr_socket_data_get</a> (void **data, const char *key, <a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gafec197f3aa9a495801cdf7892ff8dcb5">apr_socket_data_set</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, void *data, const char *key, <a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>(*cleanup)(void *))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga943268245cf59f6ff8cf1458c9a9ba8d">apr_socket_send</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, const char *buf, apr_size_t *len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga99ece70c34a7a332daa3941de3950c64">apr_socket_sendv</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, const struct iovec *vec, apr_int32_t nvec, apr_size_t *len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga03ae34bc5712dac2b3fdee39e5f87be3">apr_socket_sendto</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *where, apr_int32_t flags, const char *buf, apr_size_t *len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga80880312b41e86c9c266ede1a504e2ca">apr_socket_recvfrom</a> (<a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *from, <a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, apr_int32_t flags, char *buf, apr_size_t *len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga3d93e6212c4c27f2390b0057f8f4a8be">apr_socket_sendfile</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, <a class="el" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t</a> *file, <a class="el" href="structapr__hdtr__t.html">apr_hdtr_t</a> *hdtr, apr_off_t *offset, apr_size_t *len, apr_int32_t flags)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gaa6ee00191f197f64b5a5409f4aff53d1">apr_socket_recv</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, char *buf, apr_size_t *len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga08f5e505fa611005f56c12783269ffa9">apr_socket_opt_set</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, apr_int32_t opt, apr_int32_t on)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga945bdbe807ec5635d65a6fd9ddb78c29">apr_socket_timeout_set</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, <a class="el" href="group__apr__time.html#gaae2129185a395cc393f76fabf4f43e47">apr_interval_time_t</a> t)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga1934c2d5943efc8ce925f376f3c2e17e">apr_socket_opt_get</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, apr_int32_t opt, apr_int32_t *on)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gaa32313b54afed590367c8571075d2bc1">apr_socket_timeout_get</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, <a class="el" href="group__apr__time.html#gaae2129185a395cc393f76fabf4f43e47">apr_interval_time_t</a> *t)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga2389de257444870974b5ded91cf7a10c">apr_socket_atmark</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, int *atmark)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gacad56b59eafc6ad2459bf6493c992515">apr_socket_addr_get</a> (<a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> **sa, <a class="el" href="group__apr__network__io.html#ga1982f44f48fdf00a8bd754bc7b773edc">apr_interface_e</a> which, <a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gab78fc9b9799c119f4a5517411458a660">apr_sockaddr_ip_get</a> (char **addr, <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *sockaddr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga8c88ae154304e30d47c2696f4370dc6d">apr_sockaddr_ip_getbuf</a> (char *buf, apr_size_t buflen, <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *sockaddr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga1bf65369305ae352f3280af2acc684f5">apr_sockaddr_equal</a> (const <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *addr1, const <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *addr2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga8d23ee2db9a84af2e6408ef460613514">apr_socket_type_get</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, int *type)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gad5b504c0fe4d578e72531e3ca0263654">apr_getservbyname</a> (<a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *sockaddr, const char *servname)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga34a3c7f1666427f4e381e857b9e9c298">apr_ipsubnet_create</a> (<a class="el" href="group__apr__network__io.html#gac86ee04eb80f938902095d1d0a67c324">apr_ipsubnet_t</a> **ipsub, const char *ipstr, const char *mask_or_numbits, <a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gab74d21b8898b7c40bf7fd07ad3eb993d">apr_ipsubnet_test</a> (<a class="el" href="group__apr__network__io.html#gac86ee04eb80f938902095d1d0a67c324">apr_ipsubnet_t</a> *ipsub, <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *sa)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga270b7c0835283fa2b85a05d295dd7ee5">apr_socket_accept_filter</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, char *name, char *args)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#gac402d9426de37b6cede18fa157020bd9">apr_socket_protocol_get</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *sock, int *protocol)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga4f109ecf176aee8fca8ecfa7f8b07d93">apr_socket_pool_get</a> (const <a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *thesocket)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga8ae81c6a7acf90112ebcfb9221ccc649">apr_socket_inherit_set</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *thesocket)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__network__io.html#ga5afabb2cee38c141d076b9c52a3f2ce1">apr_socket_inherit_unset</a> (<a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *thesocket)</td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="gadce1131c46b897ec63e9e4316a4631dd"></a><!-- doxytag: member="apr_network_io.h::APR_ANYADDR" ref="gadce1131c46b897ec63e9e4316a4631dd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_ANYADDR&nbsp;&nbsp;&nbsp;&quot;0.0.0.0&quot;</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Default 'any' address </p>

</div>
</div>
<a class="anchor" id="ga16eb7ee55ff87a5093f2114ea5351217"></a><!-- doxytag: member="apr_network_io.h::APR_INADDR_NONE" ref="ga16eb7ee55ff87a5093f2114ea5351217" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_INADDR_NONE&nbsp;&nbsp;&nbsp;((unsigned int) 0xffffffff)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Not all platforms have a real INADDR_NONE. This macro replaces INADDR_NONE on all platforms. </p>

</div>
</div>
<a class="anchor" id="gaa96e8e8dbf92bc77643a4032017b3d67"></a><!-- doxytag: member="apr_network_io.h::APR_INET" ref="gaa96e8e8dbf92bc77643a4032017b3d67" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_INET&nbsp;&nbsp;&nbsp;AF_INET</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Not all platforms have these defined, so we'll define them here The default values come from FreeBSD 4.1.1 </p>

</div>
</div>
<a class="anchor" id="gad09d9ea8995f50f35073ae0c77efb44f"></a><!-- doxytag: member="apr_network_io.h::APR_INET6" ref="gad09d9ea8995f50f35073ae0c77efb44f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_INET6&nbsp;&nbsp;&nbsp;AF_INET6</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>IPv6 Address Family. Not all platforms may have this defined. </p>

</div>
</div>
<a class="anchor" id="ga46a8b06887871cfd60a3e37385775e22"></a><!-- doxytag: member="apr_network_io.h::apr_inet_addr" ref="ga46a8b06887871cfd60a3e37385775e22" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define apr_inet_addr&nbsp;&nbsp;&nbsp;inet_addr</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The specific declaration of inet_addr's ... some platforms fall back inet_network (this is not good, but necessary) </p>

</div>
</div>
<a class="anchor" id="ga58aa30a94127b4a80f27fbf2e03fdfd8"></a><!-- doxytag: member="apr_network_io.h::APR_IPV4_ADDR_OK" ref="ga58aa30a94127b4a80f27fbf2e03fdfd8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_IPV4_ADDR_OK&nbsp;&nbsp;&nbsp;0x01</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__apr__network__io.html#gaa2f399ca2b60b35c0abf7630298c6c9f">apr_sockaddr_info_get()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaef1f70f9b969d25832a230f429837207"></a><!-- doxytag: member="apr_network_io.h::APR_IPV6_ADDR_OK" ref="gaef1f70f9b969d25832a230f429837207" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_IPV6_ADDR_OK&nbsp;&nbsp;&nbsp;0x02</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__apr__network__io.html#gaa2f399ca2b60b35c0abf7630298c6c9f">apr_sockaddr_info_get()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga8311c84f6946742188a6b9a45e92ea8e"></a><!-- doxytag: member="apr_network_io.h::APR_MAX_SECS_TO_LINGER" ref="ga8311c84f6946742188a6b9a45e92ea8e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_MAX_SECS_TO_LINGER&nbsp;&nbsp;&nbsp;30</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Maximum seconds to linger </p>

</div>
</div>
<a class="anchor" id="gaca378d0e24b1588e3fdb143e4ea9090d"></a><!-- doxytag: member="apr_network_io.h::APR_SENDFILE_DISCONNECT_SOCKET" ref="gaca378d0e24b1588e3fdb143e4ea9090d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_SENDFILE_DISCONNECT_SOCKET&nbsp;&nbsp;&nbsp;1</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Support reusing the socket on platforms which support it (from disconnect, specifically Win32. </p>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>Optional flag passed into <a class="el" href="group__apr__network__io.html#ga3d93e6212c4c27f2390b0057f8f4a8be">apr_socket_sendfile()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaa7a33b17a7d0820b09ef489bd3328f85"></a><!-- doxytag: member="apr_network_io.h::APR_UNSPEC" ref="gaa7a33b17a7d0820b09ef489bd3328f85" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_UNSPEC&nbsp;&nbsp;&nbsp;0</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Let the system decide which address family to use </p>

</div>
</div>
<a class="anchor" id="ga7f5b3882209106bb407b1d518d6ad59d"></a><!-- doxytag: member="apr_network_io.h::APRMAXHOSTLEN" ref="ga7f5b3882209106bb407b1d518d6ad59d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APRMAXHOSTLEN&nbsp;&nbsp;&nbsp;256</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Maximum hostname length </p>

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga97887d5358a9c79c241ccafab61d8ff5"></a><!-- doxytag: member="apr_network_io.h::apr_hdtr_t" ref="ga97887d5358a9c79c241ccafab61d8ff5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structapr__hdtr__t.html">apr_hdtr_t</a> <a class="el" href="structapr__hdtr__t.html">apr_hdtr_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A structure to encapsulate headers and trailers for apr_socket_sendfile </p>

</div>
</div>
<a class="anchor" id="gad30d6c55a354a9a2e0a8747abb0c8176"></a><!-- doxytag: member="apr_network_io.h::apr_in_addr_t" ref="gad30d6c55a354a9a2e0a8747abb0c8176" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct in_addr <a class="el" href="group__apr__network__io.html#gad30d6c55a354a9a2e0a8747abb0c8176">apr_in_addr_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A structure to represent in_addr </p>

</div>
</div>
<a class="anchor" id="gac86ee04eb80f938902095d1d0a67c324"></a><!-- doxytag: member="apr_network_io.h::apr_ipsubnet_t" ref="gac86ee04eb80f938902095d1d0a67c324" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="group__apr__network__io.html#gac86ee04eb80f938902095d1d0a67c324">apr_ipsubnet_t</a> <a class="el" href="group__apr__network__io.html#gac86ee04eb80f938902095d1d0a67c324">apr_ipsubnet_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A structure to represent an IP subnet </p>

</div>
</div>
<a class="anchor" id="gaa670a71960f6eb4fe0d0de2a1e7aba03"></a><!-- doxytag: member="apr_network_io.h::apr_port_t" ref="gaa670a71960f6eb4fe0d0de2a1e7aba03" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef apr_uint16_t <a class="el" href="group__apr__network__io.html#gaa670a71960f6eb4fe0d0de2a1e7aba03">apr_port_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="remark"><dt><b>Remarks:</b></dt><dd>use apr_uint16_t just in case some system has a short that isn't 16 bits... </dd></dl>

</div>
</div>
<a class="anchor" id="ga373fb6f32d0875c5deb648b779c8a709"></a><!-- doxytag: member="apr_network_io.h::apr_sockaddr_t" ref="ga373fb6f32d0875c5deb648b779c8a709" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="remark"><dt><b>Remarks:</b></dt><dd>It's defined here as I think it should all be platform safe... </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga49262b223e7434746e1f1737659aa2c3"></a><!-- doxytag: member="apr_network_io.h::apr_socket_t" ref="ga49262b223e7434746e1f1737659aa2c3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> <a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A structure to represent sockets </p>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga1982f44f48fdf00a8bd754bc7b773edc"></a><!-- doxytag: member="apr_network_io.h::apr_interface_e" ref="ga1982f44f48fdf00a8bd754bc7b773edc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__apr__network__io.html#ga1982f44f48fdf00a8bd754bc7b773edc">apr_interface_e</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Enum used to denote either the local and remote endpoint of a connection. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga1982f44f48fdf00a8bd754bc7b773edca6c23a4bf48b8f93dff08adf827382616"></a><!-- doxytag: member="APR_LOCAL" ref="gga1982f44f48fdf00a8bd754bc7b773edca6c23a4bf48b8f93dff08adf827382616" args="" -->APR_LOCAL</em>&nbsp;</td><td>
<p>Socket information for local end of connection </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga1982f44f48fdf00a8bd754bc7b773edcaeb8be70b031f06a513ac0ebcaa5bac8a"></a><!-- doxytag: member="APR_REMOTE" ref="gga1982f44f48fdf00a8bd754bc7b773edcaeb8be70b031f06a513ac0ebcaa5bac8a" args="" -->APR_REMOTE</em>&nbsp;</td><td>
<p>Socket information for remote end of connection </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="gae2130f1fa2d0db58c5c3c9c73d9b4009"></a><!-- doxytag: member="apr_network_io.h::apr_shutdown_how_e" ref="gae2130f1fa2d0db58c5c3c9c73d9b4009" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__apr__network__io.html#gae2130f1fa2d0db58c5c3c9c73d9b4009">apr_shutdown_how_e</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Define what type of socket shutdown should occur. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ggae2130f1fa2d0db58c5c3c9c73d9b4009a88d0661d35eea5319715d6ca69265b01"></a><!-- doxytag: member="APR_SHUTDOWN_READ" ref="ggae2130f1fa2d0db58c5c3c9c73d9b4009a88d0661d35eea5319715d6ca69265b01" args="" -->APR_SHUTDOWN_READ</em>&nbsp;</td><td>
<p>no longer allow read request </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggae2130f1fa2d0db58c5c3c9c73d9b4009a5e335b392088e14df65d1bd5e0db7c46"></a><!-- doxytag: member="APR_SHUTDOWN_WRITE" ref="ggae2130f1fa2d0db58c5c3c9c73d9b4009a5e335b392088e14df65d1bd5e0db7c46" args="" -->APR_SHUTDOWN_WRITE</em>&nbsp;</td><td>
<p>no longer allow write requests </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggae2130f1fa2d0db58c5c3c9c73d9b4009add172f55ff5ee7b930683a3903c99768"></a><!-- doxytag: member="APR_SHUTDOWN_READWRITE" ref="ggae2130f1fa2d0db58c5c3c9c73d9b4009add172f55ff5ee7b930683a3903c99768" args="" -->APR_SHUTDOWN_READWRITE</em>&nbsp;</td><td>
<p>no longer allow read or write requests </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga6bd3d656ba935ca428075f477b8a6f8b"></a><!-- doxytag: member="apr_network_io.h::apr_gethostname" ref="ga6bd3d656ba935ca428075f477b8a6f8b" args="(char *buf, int len, apr_pool_t *cont)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_gethostname </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cont</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get name of the current machine </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>A buffer to store the hostname in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>The maximum length of the hostname that can be stored in the buffer provided. The suggested length is APRMAXHOSTLEN + 1. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cont</em>&nbsp;</td><td>The pool to use. </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>If the buffer was not large enough, an error will be returned. </dd></dl>

</div>
</div>
<a class="anchor" id="ga7a56fd9573b942753738ec30b887c9de"></a><!-- doxytag: member="apr_network_io.h::apr_getnameinfo" ref="ga7a56fd9573b942753738ec30b887c9de" args="(char **hostname, apr_sockaddr_t *sa, apr_int32_t flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_getnameinfo </td>
          <td>(</td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>hostname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sa</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Look up the host name from an <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hostname</em>&nbsp;</td><td>The hostname. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>The <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>Special processing flags. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad5b504c0fe4d578e72531e3ca0263654"></a><!-- doxytag: member="apr_network_io.h::apr_getservbyname" ref="gad5b504c0fe4d578e72531e3ca0263654" args="(apr_sockaddr_t *sockaddr, const char *servname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_getservbyname </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sockaddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>servname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> and a service name, set the port for the service </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sockaddr</em>&nbsp;</td><td>The <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> that will have its port set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>servname</em>&nbsp;</td><td>The name of the service you wish to use </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga34a3c7f1666427f4e381e857b9e9c298"></a><!-- doxytag: member="apr_network_io.h::apr_ipsubnet_create" ref="ga34a3c7f1666427f4e381e857b9e9c298" args="(apr_ipsubnet_t **ipsub, const char *ipstr, const char *mask_or_numbits, apr_pool_t *p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_ipsubnet_create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#gac86ee04eb80f938902095d1d0a67c324">apr_ipsubnet_t</a> **&nbsp;</td>
          <td class="paramname"> <em>ipsub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>ipstr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>mask_or_numbits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *&nbsp;</td>
          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Build an ip-subnet representation from an IP address and optional netmask or number-of-bits. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ipsub</em>&nbsp;</td><td>The new ip-subnet representation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ipstr</em>&nbsp;</td><td>The input IP address string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mask_or_numbits</em>&nbsp;</td><td>The input netmask or number-of-bits string, or NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pool to allocate from </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gab74d21b8898b7c40bf7fd07ad3eb993d"></a><!-- doxytag: member="apr_network_io.h::apr_ipsubnet_test" ref="gab74d21b8898b7c40bf7fd07ad3eb993d" args="(apr_ipsubnet_t *ipsub, apr_sockaddr_t *sa)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_ipsubnet_test </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#gac86ee04eb80f938902095d1d0a67c324">apr_ipsubnet_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ipsub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sa</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Test the IP address in an <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> against a pre-built ip-subnet representation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ipsub</em>&nbsp;</td><td>The ip-subnet representation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>The socket address to test </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if the socket address is within the subnet, 0 otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="ga90c31b2f012c6b1e2d842a96c4431de3"></a><!-- doxytag: member="apr_network_io.h::apr_parse_addr_port" ref="ga90c31b2f012c6b1e2d842a96c4431de3" args="(char **addr, char **scope_id, apr_port_t *port, const char *str, apr_pool_t *p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_parse_addr_port </td>
          <td>(</td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>scope_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#gaa670a71960f6eb4fe0d0de2a1e7aba03">apr_port_t</a> *&nbsp;</td>
          <td class="paramname"> <em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *&nbsp;</td>
          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Parse hostname/IP address with scope id and port.</p>
<p>Any of the following strings are accepted: 8080 (just the port number) www.apache.org (just the hostname) www.apache.org:8080 (hostname and port number) [fe80::1]:80 (IPv6 numeric address string only) [fe80::1eth0] (IPv6 numeric address string and scope id)</p>
<p>Invalid strings: (empty string) [abc] (not valid IPv6 numeric address string) abc:65536 (invalid port number)</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>The new buffer containing just the hostname. On output, *addr will be NULL if no hostname/IP address was specfied. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>scope_id</em>&nbsp;</td><td>The new buffer containing just the scope id. On output, *scope_id will be NULL if no scope id was specified. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>The port number. On output, *port will be 0 if no port was specified. ### FIXME: 0 is a legal port (per RFC 1700). this should ### return something besides zero if the port is missing. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>The input string to be parsed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pool from which *addr and *scope_id are allocated. </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>If scope id shouldn't be allowed, check for scope_id != NULL in addition to checking the return code. If addr/hostname should be required, check for addr == NULL in addition to checking the return code. </dd></dl>

</div>
</div>
<a class="anchor" id="ga1bf65369305ae352f3280af2acc684f5"></a><!-- doxytag: member="apr_network_io.h::apr_sockaddr_equal" ref="ga1bf65369305ae352f3280af2acc684f5" args="(const apr_sockaddr_t *addr1, const apr_sockaddr_t *addr2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_sockaddr_equal </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>addr1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>addr2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>See if the IP addresses in two APR socket addresses are equivalent. Appropriate logic is present for comparing IPv4-mapped IPv6 addresses with IPv4 addresses.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>addr1</em>&nbsp;</td><td>One of the APR socket addresses. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>addr2</em>&nbsp;</td><td>The other APR socket address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>The return value will be non-zero if the addresses are equivalent. </dd></dl>

</div>
</div>
<a class="anchor" id="gaa2f399ca2b60b35c0abf7630298c6c9f"></a><!-- doxytag: member="apr_network_io.h::apr_sockaddr_info_get" ref="gaa2f399ca2b60b35c0abf7630298c6c9f" args="(apr_sockaddr_t **sa, const char *hostname, apr_int32_t family, apr_port_t port, apr_int32_t flags, apr_pool_t *p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_sockaddr_info_get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> **&nbsp;</td>
          <td class="paramname"> <em>sa</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>hostname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t&nbsp;</td>
          <td class="paramname"> <em>family</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#gaa670a71960f6eb4fe0d0de2a1e7aba03">apr_port_t</a>&nbsp;</td>
          <td class="paramname"> <em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t&nbsp;</td>
          <td class="paramname"> <em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *&nbsp;</td>
          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Create <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> from hostname, address family, and port. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>The new <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>hostname</em>&nbsp;</td><td>The hostname or numeric address string to resolve/parse, or NULL to build an address that corresponds to 0.0.0.0 or :: </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>family</em>&nbsp;</td><td>The address family to use, or APR_UNSPEC if the system should decide. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>The port number. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>Special processing flags: </p>
<pre>
       APR_IPV4_ADDR_OK          first query for IPv4 addresses; only look
                                 for IPv6 addresses if the first query failed;
                                 only valid if family is APR_UNSPEC and hostname
                                 isn't NULL; mutually exclusive with
                                 APR_IPV6_ADDR_OK
       APR_IPV6_ADDR_OK          first query for IPv6 addresses; only look
                                 for IPv4 addresses if the first query failed;
                                 only valid if family is APR_UNSPEC and hostname
                                 isn't NULL and APR_HAVE_IPV6; mutually exclusive
                                 with APR_IPV4_ADDR_OK
 </pre> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pool for the <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> and associated storage. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gab78fc9b9799c119f4a5517411458a660"></a><!-- doxytag: member="apr_network_io.h::apr_sockaddr_ip_get" ref="gab78fc9b9799c119f4a5517411458a660" args="(char **addr, apr_sockaddr_t *sockaddr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_sockaddr_ip_get </td>
          <td>(</td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sockaddr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the IP address (in numeric address string format) in an APR socket address. APR will allocate storage for the IP address string from the pool of the <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>The IP address. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sockaddr</em>&nbsp;</td><td>The socket address to reference. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga8c88ae154304e30d47c2696f4370dc6d"></a><!-- doxytag: member="apr_network_io.h::apr_sockaddr_ip_getbuf" ref="ga8c88ae154304e30d47c2696f4370dc6d" args="(char *buf, apr_size_t buflen, apr_sockaddr_t *sockaddr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_sockaddr_ip_getbuf </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_size_t&nbsp;</td>
          <td class="paramname"> <em>buflen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sockaddr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Write the IP address (in numeric address string format) of the APR socket address <em>sockaddr</em> into the buffer <em>buf</em> (of size <em>buflen</em>). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sockaddr</em>&nbsp;</td><td>The socket address to reference. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga1d62711ca77ccc0f6413a298a47876da"></a><!-- doxytag: member="apr_network_io.h::apr_socket_accept" ref="ga1d62711ca77ccc0f6413a298a47876da" args="(apr_socket_t **new_sock, apr_socket_t *sock, apr_pool_t *connection_pool)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_accept </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> **&nbsp;</td>
          <td class="paramname"> <em>new_sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *&nbsp;</td>
          <td class="paramname"> <em>connection_pool</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Accept a new connection request </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>new_sock</em>&nbsp;</td><td>A copy of the socket that is connected to the socket that made the connection request. This is the socket which should be used for all future communication. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket we are listening on. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>connection_pool</em>&nbsp;</td><td>The pool for the new socket. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga270b7c0835283fa2b85a05d295dd7ee5"></a><!-- doxytag: member="apr_network_io.h::apr_socket_accept_filter" ref="ga270b7c0835283fa2b85a05d295dd7ee5" args="(apr_socket_t *sock, char *name, char *args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_accept_filter </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set an OS level accept filter. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to put the accept filter on. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The accept filter </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>Any extra args to the accept filter. Passing NULL here removes the accept filter. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gacad56b59eafc6ad2459bf6493c992515"></a><!-- doxytag: member="apr_network_io.h::apr_socket_addr_get" ref="gacad56b59eafc6ad2459bf6493c992515" args="(apr_sockaddr_t **sa, apr_interface_e which, apr_socket_t *sock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_addr_get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> **&nbsp;</td>
          <td class="paramname"> <em>sa</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga1982f44f48fdf00a8bd754bc7b773edc">apr_interface_e</a>&nbsp;</td>
          <td class="paramname"> <em>which</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return an address associated with a socket; either the address to which the socket is bound locally or the the address of the peer to which the socket is connected. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>The returned <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>which</em>&nbsp;</td><td>Whether to retrieve the local or remote address </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to use </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga2389de257444870974b5ded91cf7a10c"></a><!-- doxytag: member="apr_network_io.h::apr_socket_atmark" ref="ga2389de257444870974b5ded91cf7a10c" args="(apr_socket_t *sock, int *atmark)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_atmark </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>atmark</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Query the specified socket if at the OOB/Urgent data mark </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to query </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>atmark</em>&nbsp;</td><td>Is set to true if socket is at the OOB/urgent mark, otherwise is set to false. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gabfcb1fe4447921e5b86d395126b5d6f0"></a><!-- doxytag: member="apr_network_io.h::apr_socket_atreadeof" ref="gabfcb1fe4447921e5b86d395126b5d6f0" args="(apr_socket_t *sock, int *atreadeof)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_atreadeof </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>atreadeof</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Determine whether the receive part of the socket has been closed by the peer (such that a subsequent call to apr_socket_read would return APR_EOF), if the socket's receive buffer is empty. This function does not block waiting for I/O.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to check </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>atreadeof</em>&nbsp;</td><td>If APR_SUCCESS is returned, *atreadeof is set to non-zero if a subsequent read would return APR_EOF </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an error is returned if it was not possible to determine the status, in which case *atreadeof is not changed. </dd></dl>

</div>
</div>
<a class="anchor" id="ga512882c9979c2b9cad7cbc2508516d65"></a><!-- doxytag: member="apr_network_io.h::apr_socket_bind" ref="ga512882c9979c2b9cad7cbc2508516d65" args="(apr_socket_t *sock, apr_sockaddr_t *sa)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_bind </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sa</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Bind the socket to its associated port </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to bind </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>The socket address to bind to </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This may be where we will find out if there is any other process using the selected port. </dd></dl>

</div>
</div>
<a class="anchor" id="ga88779f243ce19a2563544aee81894e6d"></a><!-- doxytag: member="apr_network_io.h::apr_socket_close" ref="ga88779f243ce19a2563544aee81894e6d" args="(apr_socket_t *thesocket)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_close </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>thesocket</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Close a socket. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>thesocket</em>&nbsp;</td><td>The socket to close </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga8e58bd8112ed2ce5004487918cd9275e"></a><!-- doxytag: member="apr_network_io.h::apr_socket_connect" ref="ga8e58bd8112ed2ce5004487918cd9275e" args="(apr_socket_t *sock, apr_sockaddr_t *sa)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_connect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sa</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Issue a connection request to a socket either on the same machine or a different one. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket we wish to use for our side of the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>The address of the machine we wish to connect to. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga46b81e267ef80e64510d4e83880a91bd"></a><!-- doxytag: member="apr_network_io.h::apr_socket_create" ref="ga46b81e267ef80e64510d4e83880a91bd" args="(apr_socket_t **new_sock, int family, int type, int protocol, apr_pool_t *cont)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> **&nbsp;</td>
          <td class="paramname"> <em>new_sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>family</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>protocol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cont</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Create a socket. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>new_sock</em>&nbsp;</td><td>The new socket that has been set up. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>family</em>&nbsp;</td><td>The address family of the socket (e.g., APR_INET). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>The type of the socket (e.g., SOCK_STREAM). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>protocol</em>&nbsp;</td><td>The protocol of the socket (e.g., APR_PROTO_TCP). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cont</em>&nbsp;</td><td>The pool for the apr_socket_t and associated storage. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gae76b48d0224a608b4ddb8bd00582eaa7"></a><!-- doxytag: member="apr_network_io.h::apr_socket_data_get" ref="gae76b48d0224a608b4ddb8bd00582eaa7" args="(void **data, const char *key, apr_socket_t *sock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_data_get </td>
          <td>(</td>
          <td class="paramtype">void **&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the data associated with the current socket </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>The user data associated with the socket. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to associate with the user data. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The currently open socket. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gafec197f3aa9a495801cdf7892ff8dcb5"></a><!-- doxytag: member="apr_network_io.h::apr_socket_data_set" ref="gafec197f3aa9a495801cdf7892ff8dcb5" args="(apr_socket_t *sock, void *data, const char *key, apr_status_t(*cleanup)(void *))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_data_set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>(*)(void *)&nbsp;</td>
          <td class="paramname"> <em>cleanup</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the data associated with the current socket. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The currently open socket. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>The user data to associate with the socket. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to associate with the data. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cleanup</em>&nbsp;</td><td>The cleanup to call when the socket is destroyed. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga8ae81c6a7acf90112ebcfb9221ccc649"></a><!-- doxytag: member="apr_network_io.h::apr_socket_inherit_set" ref="ga8ae81c6a7acf90112ebcfb9221ccc649" args="(apr_socket_t *thesocket)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_inherit_set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>thesocket</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set a socket to be inherited by child processes. </p>

</div>
</div>
<a class="anchor" id="ga5afabb2cee38c141d076b9c52a3f2ce1"></a><!-- doxytag: member="apr_network_io.h::apr_socket_inherit_unset" ref="ga5afabb2cee38c141d076b9c52a3f2ce1" args="(apr_socket_t *thesocket)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_inherit_unset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>thesocket</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Unset a socket from being inherited by child processes. </p>

</div>
</div>
<a class="anchor" id="ga154bcee918f6f01fe0373359dd74b0c4"></a><!-- doxytag: member="apr_network_io.h::apr_socket_listen" ref="ga154bcee918f6f01fe0373359dd74b0c4" args="(apr_socket_t *sock, apr_int32_t backlog)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_listen </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t&nbsp;</td>
          <td class="paramname"> <em>backlog</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Listen to a bound socket for connections. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to listen on </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>backlog</em>&nbsp;</td><td>The number of outstanding connections allowed in the sockets listen queue. If this value is less than zero, the listen queue size is set to zero. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga1934c2d5943efc8ce925f376f3c2e17e"></a><!-- doxytag: member="apr_network_io.h::apr_socket_opt_get" ref="ga1934c2d5943efc8ce925f376f3c2e17e" args="(apr_socket_t *sock, apr_int32_t opt, apr_int32_t *on)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_opt_get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t *&nbsp;</td>
          <td class="paramname"> <em>on</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Query socket options for the specified socket </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to query </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option we would like to query. One of: </p>
<pre>
            APR_SO_DEBUG      --  turn on debugging information 
            APR_SO_KEEPALIVE  --  keep connections active
            APR_SO_LINGER     --  lingers on close if data is present
            APR_SO_NONBLOCK   --  Turns blocking on/off for socket
            APR_SO_REUSEADDR  --  The rules used in validating addresses
                                  supplied to bind should allow reuse
                                  of local addresses.
            APR_SO_SNDBUF     --  Set the SendBufferSize
            APR_SO_RCVBUF     --  Set the ReceiveBufferSize
            APR_SO_DISCONNECTED -- Query the disconnected state of the socket.
                                  (Currently only used on Windows)
 </pre> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>on</em>&nbsp;</td><td>Socket option returned on the call. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga08f5e505fa611005f56c12783269ffa9"></a><!-- doxytag: member="apr_network_io.h::apr_socket_opt_set" ref="ga08f5e505fa611005f56c12783269ffa9" args="(apr_socket_t *sock, apr_int32_t opt, apr_int32_t on)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_opt_set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t&nbsp;</td>
          <td class="paramname"> <em>on</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Setup socket options for the specified socket </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to set up. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option we would like to configure. One of: </p>
<pre>
            APR_SO_DEBUG      --  turn on debugging information 
            APR_SO_KEEPALIVE  --  keep connections active
            APR_SO_LINGER     --  lingers on close if data is present
            APR_SO_NONBLOCK   --  Turns blocking on/off for socket
                                  When this option is enabled, use
                                  the <a class="el" href="group___a_p_r___s_t_a_t_u_s___i_s.html#ga9dd578bfcd76a2d997395608ae5b3a4e">APR_STATUS_IS_EAGAIN()</a> macro to
                                  see if a send or receive function
                                  could not transfer data without
                                  blocking.
            APR_SO_REUSEADDR  --  The rules used in validating addresses
                                  supplied to bind should allow reuse
                                  of local addresses.
            APR_SO_SNDBUF     --  Set the SendBufferSize
            APR_SO_RCVBUF     --  Set the ReceiveBufferSize
 </pre> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>on</em>&nbsp;</td><td>Value for the option. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga4f109ecf176aee8fca8ecfa7f8b07d93"></a><!-- doxytag: member="apr_network_io.h::apr_socket_pool_get" ref="ga4f109ecf176aee8fca8ecfa7f8b07d93" args="(const apr_socket_t *thesocket)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a>* apr_socket_pool_get </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>thesocket</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the pool used by the socket. </p>

</div>
</div>
<a class="anchor" id="gac402d9426de37b6cede18fa157020bd9"></a><!-- doxytag: member="apr_network_io.h::apr_socket_protocol_get" ref="gac402d9426de37b6cede18fa157020bd9" args="(apr_socket_t *sock, int *protocol)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_protocol_get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>protocol</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the protocol of the socket. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to query. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>protocol</em>&nbsp;</td><td>The returned protocol (e.g., APR_PROTO_TCP). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa6ee00191f197f64b5a5409f4aff53d1"></a><!-- doxytag: member="apr_network_io.h::apr_socket_recv" ref="gaa6ee00191f197f64b5a5409f4aff53d1" args="(apr_socket_t *sock, char *buf, apr_size_t *len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_recv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_size_t *&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Read data from a network. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to read the data from. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>The buffer to store the data in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>On entry, the number of bytes to receive; on exit, the number of bytes received. </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd><pre>
 This functions acts like a blocking read by default.  To change 
 this behavior, use <a class="el" href="group__apr__network__io.html#ga945bdbe807ec5635d65a6fd9ddb78c29">apr_socket_timeout_set()</a> or the APR_SO_NONBLOCK
 socket option.
 The number of bytes actually received is stored in argument 3.</pre></dd></dl>
<p>It is possible for both bytes to be received and an APR_EOF or other error to be returned.</p>
<pre> APR_EINTR is never returned.
 </pre> 
</div>
</div>
<a class="anchor" id="ga80880312b41e86c9c266ede1a504e2ca"></a><!-- doxytag: member="apr_network_io.h::apr_socket_recvfrom" ref="ga80880312b41e86c9c266ede1a504e2ca" args="(apr_sockaddr_t *from, apr_socket_t *sock, apr_int32_t flags, char *buf, apr_size_t *len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_recvfrom </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>from</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t&nbsp;</td>
          <td class="paramname"> <em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_size_t *&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Read data from a socket. On success, the address of the peer from which the data was sent is copied into the <em>from</em> parameter, and the <em>len</em> parameter is updated to give the number of bytes written to <em>buf</em>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>from</em>&nbsp;</td><td>Updated with the address from which the data was received </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>The flags to use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>The buffer to use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>The length of the available buffer </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga943268245cf59f6ff8cf1458c9a9ba8d"></a><!-- doxytag: member="apr_network_io.h::apr_socket_send" ref="ga943268245cf59f6ff8cf1458c9a9ba8d" args="(apr_socket_t *sock, const char *buf, apr_size_t *len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_size_t *&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Send data over a network. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to send the data over. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>The buffer which contains the data to be sent. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>On entry, the number of bytes to send; on exit, the number of bytes sent. </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd><pre>
 This functions acts like a blocking write by default.  To change 
 this behavior, use <a class="el" href="group__apr__network__io.html#ga945bdbe807ec5635d65a6fd9ddb78c29">apr_socket_timeout_set()</a> or the APR_SO_NONBLOCK
 socket option.</pre></dd></dl>
<p>It is possible for both bytes to be sent and an error to be returned.</p>
<pre> APR_EINTR is never returned.
 </pre> 
</div>
</div>
<a class="anchor" id="ga3d93e6212c4c27f2390b0057f8f4a8be"></a><!-- doxytag: member="apr_network_io.h::apr_socket_sendfile" ref="ga3d93e6212c4c27f2390b0057f8f4a8be" args="(apr_socket_t *sock, apr_file_t *file, apr_hdtr_t *hdtr, apr_off_t *offset, apr_size_t *len, apr_int32_t flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_sendfile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t</a> *&nbsp;</td>
          <td class="paramname"> <em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structapr__hdtr__t.html">apr_hdtr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>hdtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_off_t *&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_size_t *&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Send a file from an open file descriptor to a socket, along with optional headers and trailers </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to which we're writing </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>file</em>&nbsp;</td><td>The open file from which to read </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>hdtr</em>&nbsp;</td><td>A structure containing the headers and trailers to send </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>Offset into the file where we should begin writing </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>(input) - Number of bytes to send from the file (output) - Number of bytes actually sent, including headers, file, and trailers </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>APR flags that are mapped to OS specific flags </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This functions acts like a blocking write by default. To change this behavior, use <a class="el" href="group__apr__network__io.html#ga945bdbe807ec5635d65a6fd9ddb78c29">apr_socket_timeout_set()</a> or the APR_SO_NONBLOCK socket option. The number of bytes actually sent is stored in the len parameter. The offset parameter is passed by reference for no reason; its value will never be modified by the <a class="el" href="group__apr__network__io.html#ga3d93e6212c4c27f2390b0057f8f4a8be">apr_socket_sendfile()</a> function. </dd></dl>

</div>
</div>
<a class="anchor" id="ga03ae34bc5712dac2b3fdee39e5f87be3"></a><!-- doxytag: member="apr_network_io.h::apr_socket_sendto" ref="ga03ae34bc5712dac2b3fdee39e5f87be3" args="(apr_socket_t *sock, apr_sockaddr_t *where, apr_int32_t flags, const char *buf, apr_size_t *len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_sendto </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> *&nbsp;</td>
          <td class="paramname"> <em>where</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t&nbsp;</td>
          <td class="paramname"> <em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_size_t *&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to send from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>where</em>&nbsp;</td><td>The <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> describing where to send the data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>The flags to use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>The data to send </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>The length of the data to send </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga99ece70c34a7a332daa3941de3950c64"></a><!-- doxytag: member="apr_network_io.h::apr_socket_sendv" ref="ga99ece70c34a7a332daa3941de3950c64" args="(apr_socket_t *sock, const struct iovec *vec, apr_int32_t nvec, apr_size_t *len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_sendv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct iovec *&nbsp;</td>
          <td class="paramname"> <em>vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_int32_t&nbsp;</td>
          <td class="paramname"> <em>nvec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_size_t *&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Send multiple packets of data over a network. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to send the data over. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>vec</em>&nbsp;</td><td>The array of iovec structs containing the data to send </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nvec</em>&nbsp;</td><td>The number of iovec structs in the array </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Receives the number of bytes actually written </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd><pre>
 This functions acts like a blocking write by default.  To change 
 this behavior, use <a class="el" href="group__apr__network__io.html#ga945bdbe807ec5635d65a6fd9ddb78c29">apr_socket_timeout_set()</a> or the APR_SO_NONBLOCK
 socket option.
 The number of bytes actually sent is stored in argument 3.</pre></dd></dl>
<p>It is possible for both bytes to be sent and an error to be returned.</p>
<pre> APR_EINTR is never returned.
 </pre> 
</div>
</div>
<a class="anchor" id="gac5aea857a50c493f840c48b930abc48e"></a><!-- doxytag: member="apr_network_io.h::apr_socket_shutdown" ref="gac5aea857a50c493f840c48b930abc48e" args="(apr_socket_t *thesocket, apr_shutdown_how_e how)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_shutdown </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>thesocket</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#gae2130f1fa2d0db58c5c3c9c73d9b4009">apr_shutdown_how_e</a>&nbsp;</td>
          <td class="paramname"> <em>how</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Shutdown either reading, writing, or both sides of a socket. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>thesocket</em>&nbsp;</td><td>The socket to close </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>how</em>&nbsp;</td><td>How to shutdown the socket. One of: </p>
<pre>
            APR_SHUTDOWN_READ         no longer allow read requests
            APR_SHUTDOWN_WRITE        no longer allow write requests
            APR_SHUTDOWN_READWRITE    no longer allow read or write requests 
 </pre> </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__apr__network__io.html#gae2130f1fa2d0db58c5c3c9c73d9b4009">apr_shutdown_how_e</a> </dd></dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This does not actually close the socket descriptor, it just controls which calls are still valid on the socket. </dd></dl>

</div>
</div>
<a class="anchor" id="gaa32313b54afed590367c8571075d2bc1"></a><!-- doxytag: member="apr_network_io.h::apr_socket_timeout_get" ref="gaa32313b54afed590367c8571075d2bc1" args="(apr_socket_t *sock, apr_interval_time_t *t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_timeout_get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__time.html#gaae2129185a395cc393f76fabf4f43e47">apr_interval_time_t</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Query socket timeout for the specified socket </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to query </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>Socket timeout returned from the query. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga945bdbe807ec5635d65a6fd9ddb78c29"></a><!-- doxytag: member="apr_network_io.h::apr_socket_timeout_set" ref="ga945bdbe807ec5635d65a6fd9ddb78c29" args="(apr_socket_t *sock, apr_interval_time_t t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_timeout_set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__apr__time.html#gaae2129185a395cc393f76fabf4f43e47">apr_interval_time_t</a>&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Setup socket timeout for the specified socket </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to set up. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>Value for the timeout. </p>
<pre>
   t &gt; 0  -- read and write calls return APR_TIMEUP if specified time
             elapsess with no data read or written
   t == 0 -- read and write calls never block
   t &lt; 0  -- read and write calls block
 </pre> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga8d23ee2db9a84af2e6408ef460613514"></a><!-- doxytag: member="apr_network_io.h::apr_socket_type_get" ref="ga8d23ee2db9a84af2e6408ef460613514" args="(apr_socket_t *sock, int *type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_socket_type_get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__apr__network__io.html#ga49262b223e7434746e1f1737659aa2c3">apr_socket_t</a> *&nbsp;</td>
          <td class="paramname"> <em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the type of the socket. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sock</em>&nbsp;</td><td>The socket to query. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>The returned type (e.g., SOCK_STREAM). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Feb 14 10:09:01 2012 for Apache Portable Runtime by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>