📄 apr__network__io_8h-source.html
字号:
00614 <span class="comment"> * @param sock The socket to query</span>
00615 <span class="comment"> * @param opt The option we would like to query. One of:</span>
00616 <span class="comment"> * <PRE></span>
00617 <span class="comment"> * APR_SO_DEBUG -- turn on debugging information </span>
00618 <span class="comment"> * APR_SO_KEEPALIVE -- keep connections active</span>
00619 <span class="comment"> * APR_SO_LINGER -- lingers on close if data is present</span>
00620 <span class="comment"> * APR_SO_NONBLOCK -- Turns blocking on/off for socket</span>
00621 <span class="comment"> * APR_SO_REUSEADDR -- The rules used in validating addresses</span>
00622 <span class="comment"> * supplied to bind should allow reuse</span>
00623 <span class="comment"> * of local addresses.</span>
00624 <span class="comment"> * APR_SO_SNDBUF -- Set the SendBufferSize</span>
00625 <span class="comment"> * APR_SO_RCVBUF -- Set the ReceiveBufferSize</span>
00626 <span class="comment"> * APR_SO_DISCONNECTED -- Query the disconnected state of the socket.</span>
00627 <span class="comment"> * (Currently only used on Windows)</span>
00628 <span class="comment"> * </PRE></span>
00629 <span class="comment"> * @param on Socket option returned on the call.</span>
00630 <span class="comment"> */</span>
00631 APR_DECLARE(apr_status_t) apr_socket_opt_get(apr_socket_t *sock,
00632 apr_int32_t opt, apr_int32_t *on);
00633 <span class="comment"></span>
00634 <span class="comment">/**</span>
00635 <span class="comment"> * Query socket timeout for the specified socket</span>
00636 <span class="comment"> * @param sock The socket to query</span>
00637 <span class="comment"> * @param t Socket timeout returned from the query.</span>
00638 <span class="comment"> */</span>
00639 APR_DECLARE(apr_status_t) apr_socket_timeout_get(apr_socket_t *sock,
00640 apr_interval_time_t *t);
00641 <span class="comment"></span>
00642 <span class="comment">/**</span>
00643 <span class="comment"> * Query the specified socket if at the OOB/Urgent data mark</span>
00644 <span class="comment"> * @param sock The socket to query</span>
00645 <span class="comment"> * @param atmark Is set to true if socket is at the OOB/urgent mark,</span>
00646 <span class="comment"> * otherwise is set to false.</span>
00647 <span class="comment"> */</span>
00648 APR_DECLARE(apr_status_t) apr_socket_atmark(apr_socket_t *sock,
00649 <span class="keywordtype">int</span> *atmark);
00650 <span class="comment"></span>
00651 <span class="comment">/**</span>
00652 <span class="comment"> * Return an apr_sockaddr_t from an apr_socket_t</span>
00653 <span class="comment"> * @param sa The returned apr_sockaddr_t.</span>
00654 <span class="comment"> * @param which Which interface do we want the apr_sockaddr_t for?</span>
00655 <span class="comment"> * @param sock The socket to use</span>
00656 <span class="comment"> */</span>
00657 APR_DECLARE(apr_status_t) apr_socket_addr_get(apr_sockaddr_t **sa,
00658 apr_interface_e which,
00659 apr_socket_t *sock);
00660 <span class="comment"></span>
00661 <span class="comment">/**</span>
00662 <span class="comment"> * Return the IP address (in numeric address string format) in</span>
00663 <span class="comment"> * an APR socket address. APR will allocate storage for the IP address </span>
00664 <span class="comment"> * string from the pool of the apr_sockaddr_t.</span>
00665 <span class="comment"> * @param addr The IP address.</span>
00666 <span class="comment"> * @param sockaddr The socket address to reference.</span>
00667 <span class="comment"> */</span>
00668 APR_DECLARE(apr_status_t) apr_sockaddr_ip_get(<span class="keywordtype">char</span> **addr,
00669 apr_sockaddr_t *sockaddr);
00670 <span class="comment"></span>
00671 <span class="comment">/**</span>
00672 <span class="comment"> * See if the IP addresses in two APR socket addresses are</span>
00673 <span class="comment"> * equivalent. Appropriate logic is present for comparing</span>
00674 <span class="comment"> * IPv4-mapped IPv6 addresses with IPv4 addresses.</span>
00675 <span class="comment"> *</span>
00676 <span class="comment"> * @param addr1 One of the APR socket addresses.</span>
00677 <span class="comment"> * @param addr2 The other APR socket address.</span>
00678 <span class="comment"> * @remark The return value will be non-zero if the addresses</span>
00679 <span class="comment"> * are equivalent.</span>
00680 <span class="comment"> */</span>
00681 APR_DECLARE(<span class="keywordtype">int</span>) apr_sockaddr_equal(const apr_sockaddr_t *addr1,
00682 const apr_sockaddr_t *addr2);
00683 <span class="comment"></span>
00684 <span class="comment">/**</span>
00685 <span class="comment">* Return the type of the socket.</span>
00686 <span class="comment">* @param sock The socket to query.</span>
00687 <span class="comment">* @param type The returned type (e.g., SOCK_STREAM).</span>
00688 <span class="comment">*/</span>
00689 APR_DECLARE(apr_status_t) apr_socket_type_get(apr_socket_t *sock,
00690 <span class="keywordtype">int</span> *type);
00691 <span class="comment"></span>
00692 <span class="comment">/**</span>
00693 <span class="comment"> * Given an apr_sockaddr_t and a service name, set the port for the service</span>
00694 <span class="comment"> * @param sockaddr The apr_sockaddr_t that will have its port set</span>
00695 <span class="comment"> * @param servname The name of the service you wish to use</span>
00696 <span class="comment"> */</span>
00697 APR_DECLARE(apr_status_t) apr_getservbyname(apr_sockaddr_t *sockaddr,
00698 const <span class="keywordtype">char</span> *servname);<span class="comment"></span>
00699 <span class="comment">/**</span>
00700 <span class="comment"> * Build an ip-subnet representation from an IP address and optional netmask or</span>
00701 <span class="comment"> * number-of-bits.</span>
00702 <span class="comment"> * @param ipsub The new ip-subnet representation</span>
00703 <span class="comment"> * @param ipstr The input IP address string</span>
00704 <span class="comment"> * @param mask_or_numbits The input netmask or number-of-bits string, or NULL</span>
00705 <span class="comment"> * @param p The pool to allocate from</span>
00706 <span class="comment"> */</span>
00707 APR_DECLARE(apr_status_t) apr_ipsubnet_create(apr_ipsubnet_t **ipsub,
00708 const <span class="keywordtype">char</span> *ipstr,
00709 const <span class="keywordtype">char</span> *mask_or_numbits,
00710 apr_pool_t *p);
00711 <span class="comment"></span>
00712 <span class="comment">/**</span>
00713 <span class="comment"> * Test the IP address in an apr_sockaddr_t against a pre-built ip-subnet</span>
00714 <span class="comment"> * representation.</span>
00715 <span class="comment"> * @param ipsub The ip-subnet representation</span>
00716 <span class="comment"> * @param sa The socket address to test</span>
00717 <span class="comment"> * @return non-zero if the socket address is within the subnet, 0 otherwise</span>
00718 <span class="comment"> */</span>
00719 APR_DECLARE(<span class="keywordtype">int</span>) apr_ipsubnet_test(apr_ipsubnet_t *ipsub, apr_sockaddr_t *sa);
00720
00721 #if APR_HAS_SO_ACCEPTFILTER || defined(DOXYGEN)<span class="comment"></span>
00722 <span class="comment">/**</span>
00723 <span class="comment"> * Set an OS level accept filter.</span>
00724 <span class="comment"> * @param sock The socket to put the accept filter on.</span>
00725 <span class="comment"> * @param name The accept filter</span>
00726 <span class="comment"> * @param args Any extra args to the accept filter. Passing NULL here removes</span>
00727 <span class="comment"> * the accept filter. </span>
00728 <span class="comment"> */</span>
00729 apr_status_t apr_socket_accept_filter(apr_socket_t *sock, <span class="keywordtype">char</span> *name,
00730 <span class="keywordtype">char</span> *args);
00731 #endif
00732 <span class="comment"></span>
00733 <span class="comment">/**</span>
00734 <span class="comment"> * Return the protocol of the socket.</span>
00735 <span class="comment"> * @param sock The socket to query.</span>
00736 <span class="comment"> * @param protocol The returned protocol (e.g., APR_PROTO_TCP).</span>
00737 <span class="comment"> */</span>
00738 APR_DECLARE(apr_status_t) apr_socket_protocol_get(apr_socket_t *sock,
00739 <span class="keywordtype">int</span> *protocol);
00740 <span class="comment"></span>
00741 <span class="comment">/**</span>
00742 <span class="comment"> * Set a socket to be inherited by child processes.</span>
00743 <span class="comment"> */</span>
00744 APR_DECLARE_INHERIT_SET(socket);
00745 <span class="comment"></span>
00746 <span class="comment">/**</span>
00747 <span class="comment"> * Unset a socket from being inherited by child processes.</span>
00748 <span class="comment"> */</span>
00749 APR_DECLARE_INHERIT_UNSET(socket);
00750 <span class="comment"></span>
00751 <span class="comment">/**</span>
00752 <span class="comment"> * @defgroup apr_mcast IP Multicast</span>
00753 <span class="comment"> * @{</span>
00754 <span class="comment"> */</span>
00755 <span class="comment"></span>
00756 <span class="comment">/**</span>
00757 <span class="comment"> * Join a Multicast Group</span>
00758 <span class="comment"> * @param sock The socket to join a multicast group</span>
00759 <span class="comment"> * @param join The address of the multicast group to join</span>
00760 <span class="comment"> * @param iface Address of the interface to use. If NULL is passed, the </span>
00761 <span class="comment"> * default multicast interface will be used. (OS Dependent)</span>
00762 <span class="comment"> * @param source Source Address to accept transmissions from (non-NULL </span>
00763 <span class="comment"> * implies Source-Specific Multicast)</span>
00764 <span class="comment"> */</span>
00765 APR_DECLARE(apr_status_t) apr_mcast_join(apr_socket_t *sock,
00766 apr_sockaddr_t *join,
00767 apr_sockaddr_t *iface,
00768
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -