37#define SOCK_EINTR WSAEINTR
38#define SOCK_EAGAIN WSAEINPROGRESS
39#define SOCK_EWOULDBLOCK WSAEWOULDBLOCK
40#define SOCK_EINPROGRESS WSAEINPROGRESS
41#define SOCK_EALREADY WSAEALREADY
42#define SOCK_ECONNREFUSED WSAECONNREFUSED
43#define SOCK_ECONNRESET WSAECONNRESET
44#define SOCK_ERRNO task_errno
45#define SOCK_OPT_REUSEADDR SO_EXCLUSIVEADDRUSE
46#define GET_OS_ERR WSAGetLastError()
47#define SET_OS_ERR(x) WSASetLastError(x)
48#define CLOSESOCKET(x) closesocket(x)
49#define SOCK_SHUT_RDWR SD_BOTH
61#if (_WIN32_WINNT < 0x0600)
62#error "Need _WIN32_WINNT >= 0x0600"
68 return nfds == 0 ? 0 : WSAPoll(fds, nfds,
timeout);
76#include <netinet/in.h>
77#include <netinet/tcp.h>
78#include <sys/socket.h>
86#define IPPROTO_TCP SOL_TCP
89#define SOCK_EINTR EINTR
90#define SOCK_EAGAIN EAGAIN
91#define SOCK_EWOULDBLOCK EWOULDBLOCK
92#define SOCK_EINPROGRESS EINPROGRESS
93#define SOCK_EALREADY EALREADY
94#define SOCK_ECONNREFUSED ECONNREFUSED
95#define SOCK_ECONNRESET ECONNRESET
96#define SOCK_ERRNO task_errno
97#define SOCK_OPT_REUSEADDR SO_REUSEADDR
98#define GET_OS_ERR errno
99#define SET_OS_ERR(x) errno = (x)
100#define CLOSESOCKET(x) close(x)
101#define SOCK_SHUT_RDWR (SHUT_RD | SHUT_WR)
102#define SOCK_SHUT_RW SHUT_WR
103#define SOCK_SHUT_RD SHUT_RD
124 static LPFN_DISCONNECTEX DisconnectEx =
NULL;
125 if (DisconnectEx ==
NULL) {
126 DWORD dwBytesReturned;
127 GUID guidDisconnectEx = WSAID_DISCONNECTEX;
128 WSAIoctl(*
sock, SIO_GET_EXTENSION_FUNCTION_POINTER, &guidDisconnectEx,
129 sizeof(GUID), &DisconnectEx,
sizeof(DisconnectEx),
132 if (DisconnectEx !=
NULL) {
133 DisconnectEx(*
sock, (LPOVERLAPPED)
NULL, (DWORD)0, (DWORD)0);
140 socklen_t *namelen) {
144 *namelen = (socklen_t)x;
155 socklen_t *namelen) {
#define IFDBG(mask, body)
Definition: gcs_debug.h:278
#define FN
Definition: gcs_debug.h:307
@ D_FILEOP
Definition: gcs_debug.h:186
#define STRLIT(x)
Definition: gcs_debug.h:315
#define NDBG(x, f)
Definition: gcs_debug.h:317
static MYSQL * sock
Definition: mysqlcheck.cc:56
static Value err()
Create a Value object that represents an error condition.
Definition: json_binary.cc:909
static bool timeout(bool(*wait_condition)())
Timeout function.
Definition: log0meb.cc:497
MYSQL_STRINGS_EXPORT void shutdown()
Shutdown character set/collation library.
Definition: collations.cc:104
stdx::expected< size_t, std::error_code > poll(poll_fd *fds, size_t num_fds, std::chrono::milliseconds timeout)
Definition: poll.h:52
stdx::expected< void, error_type > getpeername(native_handle_type native_handle, struct sockaddr *addr, size_t *addr_len)
Definition: socket.h:423
static int to_errno(int err)
Definition: result.h:37
static int from_errno(int err)
Definition: result.h:41
struct sockaddr sockaddr
Definition: sock_probe_win32.h:62
case opt name
Definition: sslopt-case.h:32
int val
Definition: result.h:30
int funerr
Definition: result.h:31
void remove_and_wakeup(int fd)
Definition: task.cc:879
#define CLOSESOCKET(x)
Definition: task_os.h:100
static result xcom_shut_close_socket(int *sock)
Definition: task_os.h:174
#define SET_OS_ERR(x)
Definition: task_os.h:99
static int is_socket_error(int x)
Definition: task_os.h:115
#define SOCK_SHUT_RDWR
Definition: task_os.h:101
static int hard_select_err(int err)
Definition: task_os.h:109
struct pollfd pollfd
Definition: task_os.h:113
static int xcom_getpeername(int s, struct sockaddr *name, socklen_t *namelen)
Definition: task_os.h:154
#define SOCK_EWOULDBLOCK
Definition: task_os.h:91
static int hard_connect_err(int err)
Definition: task_os.h:105
static void shutdown_socket(int *sock)
Definition: task_os.h:150
#define GET_OS_ERR
Definition: task_os.h:98
static result xcom_close_socket(int *sock)
Definition: task_os.h:161
#define SOCK_EINTR
Definition: task_os.h:89
#define NULL
Definition: types.h:54