17#include "apr_arch_networkio.h"
24#include "apr_arch_inherit.h"
25#include "apr_arch_misc.h"
31#define SOMAXCONN_HINT(b) (-(b))
74 (*new)->local_addr->pool =
p;
78 (*new)->remote_addr->pool =
p;
79 (*new)->remote_addr_unknown = 1;
132#if APR_HAS_UNICODE_FS && !defined(_WIN32_WCE)
151#if APR_HAS_ANSI_FS || defined(_WIN32_WCE)
167 (*new)->timeout = -1;
168 (*new)->disconnected = 0;
275 (*new)->timeout = -1;
276 (*new)->disconnected = 0;
278 (*new)->socketdes =
s;
280 (*new)->remote_addr->salen =
sizeof((*new)->remote_addr->sa);
281 memcpy (&(*new)->remote_addr->sa, &
sa, salen);
283 (*new)->remote_addr_unknown = 0;
289 (*new)->local_addr->
pool =
p;
293 (*new)->local_addr->ipaddr_ptr = &(*new)->local_addr->sa.sin.sin_addr;
297 (*new)->local_addr->ipaddr_ptr = &(*new)->local_addr->sa.sin6.sin6_addr;
300 (*new)->remote_addr->port =
ntohs((*new)->remote_addr->sa.sin.sin_port);
303 (*new)->local_port_unknown = 1;
306#if APR_TCP_NODELAY_INHERITED
311#if APR_O_NONBLOCK_INHERITED
327 (*new)->local_interface_unknown = 1;
498 (*apr_sock)->timeout = -1;
499 (*apr_sock)->disconnected = 0;
502 memcpy(&(*apr_sock)->local_addr->sa.sin,
504 (*apr_sock)->local_addr->salen);
505 (*apr_sock)->local_addr->pool =
cont;
507 (*apr_sock)->local_addr->port =
ntohs((*apr_sock)->local_addr->sa.sin.sin_port);
510 (*apr_sock)->local_port_unknown = (*apr_sock)->local_interface_unknown = 1;
513 memcpy(&(*apr_sock)->remote_addr->sa.sin,
515 (*apr_sock)->remote_addr->salen);
516 (*apr_sock)->remote_addr->pool =
cont;
518 (*apr_sock)->remote_addr->port =
ntohs((*apr_sock)->remote_addr->sa.sin.sin_port);
519 (*apr_sock)->remote_addr_unknown = 0;
537 (*sock)->timeout = -1;
538 (*sock)->disconnected = 0;
540 (*sock)->local_port_unknown = (*sock)->local_interface_unknown = 1;
541 (*sock)->remote_addr_unknown = 1;
#define GetCurrentProcess()
#define DuplicateHandle(h1, h2, h3, ph4, d1, b, d2)
APR Miscellaneous library routines.
APR general purpose library routines.
APR Portability Routines.
const void apr_status_t(*) apr_status_t(* APR_DECLARE)(void) apr_pool_pre_cleanup_register(apr_pool_t *p
#define APR_FROM_OS_ERROR(e)
#define apr_get_netos_error()
void const char apr_status_t(* cleanup)(void *))
apr_sockaddr_t * sockaddr
#define APR_POOL_IMPLEMENT_ACCESSOR(type)
#define apr_pcalloc(p, size)
apr_os_sock_info_t * os_sock_info
#define apr_time_sec(time)
#define apr_time_usec(time)
void apr_sockaddr_vars_set(apr_sockaddr_t *, int, apr_port_t)
static void alloc_socket(apr_socket_t **new, apr_pool_t *p)
static apr_status_t socket_cleanup(void *sock)
static void set_socket_vars(apr_socket_t *sock, int family, int type, int protocol)
union apr_sockaddr_t::@55 sa
sock_userdata_t * userdata
apr_interval_time_t timeout
int local_interface_unknown
apr_sockaddr_t * remote_addr
apr_sockaddr_t * local_addr
#define apr_is_option_set(skt, option)
#define apr_set_option(skt, option, on)
apr_status_t apr_os_sock_get(apr_os_sock_t *thesock, apr_socket_t *sock)
apr_status_t apr_socket_accept(apr_socket_t **new, apr_socket_t *sock, apr_pool_t *connection_context)
apr_status_t apr_socket_listen(apr_socket_t *sock, apr_int32_t backlog)
apr_status_t apr_socket_bind(apr_socket_t *sock, apr_sockaddr_t *sa)
apr_status_t apr_os_sock_make(apr_socket_t **apr_sock, apr_os_sock_info_t *os_sock_info, apr_pool_t *cont)
apr_status_t apr_os_sock_put(apr_socket_t **sock, apr_os_sock_t *thesock, apr_pool_t *cont)
apr_status_t apr_socket_close(apr_socket_t *thesocket)
apr_status_t apr_socket_type_get(apr_socket_t *sock, int *type)
apr_status_t apr_socket_connect(apr_socket_t *sock, apr_sockaddr_t *sa)
apr_status_t apr_socket_protocol_get(apr_socket_t *sock, int *protocol)
apr_status_t apr_socket_shutdown(apr_socket_t *thesocket, apr_shutdown_how_e how)
static char generic_inaddr_any[16]
apr_status_t apr_socket_create(apr_socket_t **new, int ofamily, int type, int protocol, apr_pool_t *cont)
apr_status_t apr_socket_data_get(void **data, const char *key, apr_socket_t *sock)
apr_status_t apr_socket_data_set(apr_socket_t *sock, void *data, const char *key, apr_status_t(*cleanup)(void *))
#define ELSE_WIN_OS_IS_ANSI
typedef int(WSAAPI *apr_winapi_fpt_WSAPoll)(IN OUT LPWSAPOLLFD fdArray
typedef HANDLE(WINAPI *apr_winapi_fpt_CreateToolhelp32Snapshot)(DWORD dwFlags
APR_DECLARE_DATA apr_oslevel_e apr_os_level
#define IF_WIN_OS_IS_UNICODE
static apr_status_t wait_for_connect(apr_socket_t *sock)
#define SOMAXCONN_HINT(b)