00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef NETWORK_IO_H
00018 #define NETWORK_IO_H
00019
00020 #include "apr_network_io.h"
00021 #include "apr_general.h"
00022 #include "apr_poll.h"
00023
00024 typedef struct sock_userdata_t sock_userdata_t;
00025 struct sock_userdata_t {
00026 sock_userdata_t *next;
00027 const char *key;
00028 void *data;
00029 };
00030
00031 struct apr_socket_t {
00032 apr_pool_t *pool;
00033 SOCKET socketdes;
00034 int type;
00035 int protocol;
00036 apr_sockaddr_t *local_addr;
00037 apr_sockaddr_t *remote_addr;
00038 int timeout_ms;
00039 apr_interval_time_t timeout;
00040 apr_int32_t disconnected;
00041 int local_port_unknown;
00042 int local_interface_unknown;
00043 int remote_addr_unknown;
00044 apr_int32_t options;
00045 apr_int32_t inherit;
00046 #if APR_HAS_SENDFILE
00047
00048
00049
00050
00051 OVERLAPPED *overlapped;
00052 #endif
00053 sock_userdata_t *userdata;
00054
00055
00056 apr_pollset_t *pollset;
00057 };
00058
00059 #ifdef _WIN32_WCE
00060 #ifndef WSABUF
00061 typedef struct _WSABUF {
00062 u_long len;
00063 char FAR * buf;
00064 } WSABUF, FAR * LPWSABUF;
00065 #endif
00066 #else
00067
00068 #define HAVE_STRUCT_IPMREQ
00069 #endif
00070
00071 apr_status_t status_from_res_error(int);
00072
00073 const char *apr_inet_ntop(int af, const void *src, char *dst, apr_size_t size);
00074 int apr_inet_pton(int af, const char *src, void *dst);
00075 void apr_sockaddr_vars_set(apr_sockaddr_t *, int, apr_port_t);
00076
00077 #define apr_is_option_set(skt, option) \
00078 (((skt)->options & (option)) == (option))
00079
00080 #define apr_set_option(skt, option, on) \
00081 do { \
00082 if (on) \
00083 (skt)->options |= (option); \
00084 else \
00085 (skt)->options &= ~(option); \
00086 } while (0)
00087
00088 #endif
00089