-#ifdef HAVE_WINSOCK2_H
-# include <winsock2.h>
-# include <ws2tcpip.h> /* socklen_t, but doubtful */
-# ifndef HAVE_WINSOCK_H
-# define HAVE_WINSOCK_H
-# endif
-#elif HAVE_WINSOCK_H
-# include <winsock.h>
-#endif
-
-#ifdef HAVE_WINSOCK_H
-# define tcp_read( s, buf, len ) recv( s, buf, len, 0 )
-# define tcp_write( s, buf, len ) send( s, buf, len, 0 )
-# define ioctl( s, c, a ) ioctlsocket( (s), (c), (a) )
-# define ioctl_t u_long
-# define AC_SOCKET_INVALID ((unsigned int) ~0)
-
-# ifdef SD_BOTH
-# define tcp_close( s ) (shutdown( s, SD_BOTH ), closesocket( s ))
-# else
-# define tcp_close( s ) closesocket( s )
-# endif
-
-# define EWOULDBLOCK WSAEWOULDBLOCK
-# define EINPROGRESS WSAEINPROGRESS
-# define ETIMEDOUT WSAETIMEDOUT
-
-# undef sock_errno
-# undef sock_errstr
-# define sock_errno WSAGetLastError()
-# define sock_errstr(err) gras_wsa_err2string(err)