Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
9e5fadab
Commit
9e5fadab
authored
Oct 12, 2006
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winsock: Add a WS_ prefix to the BSD types.
parent
e998f9a4
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
83 additions
and
78 deletions
+83
-78
socket.c
dlls/ws2_32/socket.c
+14
-14
winsock.h
include/winsock.h
+48
-43
winsock2.h
include/winsock2.h
+21
-21
No files found.
dlls/ws2_32/socket.c
View file @
9e5fadab
...
@@ -1996,7 +1996,7 @@ INT WINAPI WS_getsockopt(SOCKET s, INT level,
...
@@ -1996,7 +1996,7 @@ INT WINAPI WS_getsockopt(SOCKET s, INT level,
* htonl (WINSOCK.8)
* htonl (WINSOCK.8)
* htonl (WS2_32.8)
* htonl (WS2_32.8)
*/
*/
u_long
WINAPI
WS_htonl
(
u_long
hostlong
)
WS_u_long
WINAPI
WS_htonl
(
WS_
u_long
hostlong
)
{
{
return
htonl
(
hostlong
);
return
htonl
(
hostlong
);
}
}
...
@@ -2006,7 +2006,7 @@ u_long WINAPI WS_htonl(u_long hostlong)
...
@@ -2006,7 +2006,7 @@ u_long WINAPI WS_htonl(u_long hostlong)
* htons (WINSOCK.9)
* htons (WINSOCK.9)
* htons (WS2_32.9)
* htons (WS2_32.9)
*/
*/
u_short
WINAPI
WS_htons
(
u_short
hostshort
)
WS_u_short
WINAPI
WS_htons
(
WS_
u_short
hostshort
)
{
{
return
htons
(
hostshort
);
return
htons
(
hostshort
);
}
}
...
@@ -2018,7 +2018,7 @@ u_short WINAPI WS_htons(u_short hostshort)
...
@@ -2018,7 +2018,7 @@ u_short WINAPI WS_htons(u_short hostshort)
* socket. But why? This function only translates a host byte order
* socket. But why? This function only translates a host byte order
* u_long into a network byte order u_long...
* u_long into a network byte order u_long...
*/
*/
int
WINAPI
WSAHtonl
(
SOCKET
s
,
u_long
hostlong
,
u_long
*
lpnetlong
)
int
WINAPI
WSAHtonl
(
SOCKET
s
,
WS_u_long
hostlong
,
WS_
u_long
*
lpnetlong
)
{
{
if
(
lpnetlong
)
if
(
lpnetlong
)
{
{
...
@@ -2036,7 +2036,7 @@ int WINAPI WSAHtonl(SOCKET s, u_long hostlong, u_long *lpnetlong)
...
@@ -2036,7 +2036,7 @@ int WINAPI WSAHtonl(SOCKET s, u_long hostlong, u_long *lpnetlong)
* socket. But why? This function only translates a host byte order
* socket. But why? This function only translates a host byte order
* u_short into a network byte order u_short...
* u_short into a network byte order u_short...
*/
*/
int
WINAPI
WSAHtons
(
SOCKET
s
,
u_short
hostshort
,
u_short
*
lpnetshort
)
int
WINAPI
WSAHtons
(
SOCKET
s
,
WS_u_short
hostshort
,
WS_
u_short
*
lpnetshort
)
{
{
if
(
lpnetshort
)
if
(
lpnetshort
)
...
@@ -2053,7 +2053,7 @@ int WINAPI WSAHtons(SOCKET s, u_short hostshort, u_short *lpnetshort)
...
@@ -2053,7 +2053,7 @@ int WINAPI WSAHtons(SOCKET s, u_short hostshort, u_short *lpnetshort)
* inet_addr (WINSOCK.10)
* inet_addr (WINSOCK.10)
* inet_addr (WS2_32.11)
* inet_addr (WS2_32.11)
*/
*/
u_long
WINAPI
WS_inet_addr
(
const
char
*
cp
)
WS_
u_long
WINAPI
WS_inet_addr
(
const
char
*
cp
)
{
{
return
inet_addr
(
cp
);
return
inet_addr
(
cp
);
}
}
...
@@ -2063,7 +2063,7 @@ u_long WINAPI WS_inet_addr(const char *cp)
...
@@ -2063,7 +2063,7 @@ u_long WINAPI WS_inet_addr(const char *cp)
* ntohl (WINSOCK.14)
* ntohl (WINSOCK.14)
* ntohl (WS2_32.14)
* ntohl (WS2_32.14)
*/
*/
u_long
WINAPI
WS_ntohl
(
u_long
netlong
)
WS_u_long
WINAPI
WS_ntohl
(
WS_
u_long
netlong
)
{
{
return
ntohl
(
netlong
);
return
ntohl
(
netlong
);
}
}
...
@@ -2073,7 +2073,7 @@ u_long WINAPI WS_ntohl(u_long netlong)
...
@@ -2073,7 +2073,7 @@ u_long WINAPI WS_ntohl(u_long netlong)
* ntohs (WINSOCK.15)
* ntohs (WINSOCK.15)
* ntohs (WS2_32.15)
* ntohs (WS2_32.15)
*/
*/
u_short
WINAPI
WS_ntohs
(
u_short
netshort
)
WS_u_short
WINAPI
WS_ntohs
(
WS_
u_short
netshort
)
{
{
return
ntohs
(
netshort
);
return
ntohs
(
netshort
);
}
}
...
@@ -2121,14 +2121,14 @@ INT WINAPI WSAIoctl(SOCKET s,
...
@@ -2121,14 +2121,14 @@ INT WINAPI WSAIoctl(SOCKET s,
switch
(
dwIoControlCode
)
switch
(
dwIoControlCode
)
{
{
case
WS_FIONBIO
:
case
WS_FIONBIO
:
if
(
cbInBuffer
!=
sizeof
(
u_long
))
{
if
(
cbInBuffer
!=
sizeof
(
WS_
u_long
))
{
WSASetLastError
(
WSAEFAULT
);
WSASetLastError
(
WSAEFAULT
);
return
SOCKET_ERROR
;
return
SOCKET_ERROR
;
}
}
return
WS_ioctlsocket
(
s
,
WS_FIONBIO
,
lpvInBuffer
);
return
WS_ioctlsocket
(
s
,
WS_FIONBIO
,
lpvInBuffer
);
case
WS_FIONREAD
:
case
WS_FIONREAD
:
if
(
cbOutBuffer
!=
sizeof
(
u_long
))
{
if
(
cbOutBuffer
!=
sizeof
(
WS_
u_long
))
{
WSASetLastError
(
WSAEFAULT
);
WSASetLastError
(
WSAEFAULT
);
return
SOCKET_ERROR
;
return
SOCKET_ERROR
;
}
}
...
@@ -2286,7 +2286,7 @@ INT WINAPI WSAIoctl(SOCKET s,
...
@@ -2286,7 +2286,7 @@ INT WINAPI WSAIoctl(SOCKET s,
/***********************************************************************
/***********************************************************************
* ioctlsocket (WS2_32.10)
* ioctlsocket (WS2_32.10)
*/
*/
int
WINAPI
WS_ioctlsocket
(
SOCKET
s
,
long
cmd
,
u_long
*
argp
)
int
WINAPI
WS_ioctlsocket
(
SOCKET
s
,
long
cmd
,
WS_
u_long
*
argp
)
{
{
int
fd
;
int
fd
;
long
newcmd
=
cmd
;
long
newcmd
=
cmd
;
...
@@ -3628,7 +3628,7 @@ int WINAPI __WSAFDIsSet(SOCKET s, WS_fd_set *set)
...
@@ -3628,7 +3628,7 @@ int WINAPI __WSAFDIsSet(SOCKET s, WS_fd_set *set)
{
{
int
i
=
set
->
fd_count
;
int
i
=
set
->
fd_count
;
TRACE
(
"(%d,%
8lx(%i))
\n
"
,
s
,(
unsigned
long
)
set
,
i
);
TRACE
(
"(%d,%
p(%i))
\n
"
,
s
,
set
,
i
);
while
(
i
--
)
while
(
i
--
)
if
(
set
->
fd_array
[
i
]
==
s
)
return
1
;
if
(
set
->
fd_array
[
i
]
==
s
)
return
1
;
...
@@ -4254,7 +4254,7 @@ INT WINAPI WSAStringToAddressA(LPSTR AddressString,
...
@@ -4254,7 +4254,7 @@ INT WINAPI WSAStringToAddressA(LPSTR AddressString,
ptrPort
=
strchr
(
workBuffer
,
':'
);
ptrPort
=
strchr
(
workBuffer
,
':'
);
if
(
ptrPort
)
if
(
ptrPort
)
{
{
((
LPSOCKADDR_IN
)
lpAddress
)
->
sin_port
=
(
u_short
)
atoi
(
ptrPort
+
1
);
((
LPSOCKADDR_IN
)
lpAddress
)
->
sin_port
=
(
WS_
u_short
)
atoi
(
ptrPort
+
1
);
*
ptrPort
=
'\0'
;
*
ptrPort
=
'\0'
;
}
}
else
else
...
@@ -4586,7 +4586,7 @@ INT WINAPI WSALookupServiceNextW( HANDLE lookup, DWORD flags, LPDWORD len, LPWSA
...
@@ -4586,7 +4586,7 @@ INT WINAPI WSALookupServiceNextW( HANDLE lookup, DWORD flags, LPDWORD len, LPWSA
/***********************************************************************
/***********************************************************************
* WSANtohl (WS2_32.64)
* WSANtohl (WS2_32.64)
*/
*/
INT
WINAPI
WSANtohl
(
SOCKET
s
,
u_long
netlong
,
u_long
*
lphostlong
)
INT
WINAPI
WSANtohl
(
SOCKET
s
,
WS_u_long
netlong
,
WS_
u_long
*
lphostlong
)
{
{
TRACE
(
"(0x%04x 0x%08lx %p)
\n
"
,
s
,
netlong
,
lphostlong
);
TRACE
(
"(0x%04x 0x%08lx %p)
\n
"
,
s
,
netlong
,
lphostlong
);
...
@@ -4599,7 +4599,7 @@ INT WINAPI WSANtohl( SOCKET s, u_long netlong, u_long* lphostlong )
...
@@ -4599,7 +4599,7 @@ INT WINAPI WSANtohl( SOCKET s, u_long netlong, u_long* lphostlong )
/***********************************************************************
/***********************************************************************
* WSANtohs (WS2_32.65)
* WSANtohs (WS2_32.65)
*/
*/
INT
WINAPI
WSANtohs
(
SOCKET
s
,
u_short
netshort
,
u_short
*
lphostshort
)
INT
WINAPI
WSANtohs
(
SOCKET
s
,
WS_u_short
netshort
,
WS_
u_short
*
lphostshort
)
{
{
TRACE
(
"(0x%04x 0x%08x %p)
\n
"
,
s
,
netshort
,
lphostshort
);
TRACE
(
"(0x%04x 0x%08x %p)
\n
"
,
s
,
netshort
,
lphostshort
);
...
...
include/winsock.h
View file @
9e5fadab
...
@@ -111,7 +111,12 @@
...
@@ -111,7 +111,12 @@
#ifndef _WINSOCKAPI_
#ifndef _WINSOCKAPI_
#define _WINSOCKAPI_
#define _WINSOCKAPI_
#if (defined(_MSC_VER) || defined(__MINGW_H) || defined(__WATCOMC__)) && !defined(_BSDTYPES_DEFINED)
#ifdef USE_WS_PREFIX
typedef
unsigned
char
WS_u_char
;
typedef
unsigned
short
WS_u_short
;
typedef
unsigned
int
WS_u_int
;
typedef
unsigned
long
WS_u_long
;
#elif (defined(_MSC_VER) || defined(__MINGW_H) || defined(__WATCOMC__)) && !defined(_BSDTYPES_DEFINED)
/* MinGW doesn't define the u_xxx types */
/* MinGW doesn't define the u_xxx types */
typedef
unsigned
char
u_char
;
typedef
unsigned
char
u_char
;
typedef
unsigned
short
u_short
;
typedef
unsigned
short
u_short
;
...
@@ -286,7 +291,7 @@ struct WS(netent)
...
@@ -286,7 +291,7 @@ struct WS(netent)
char
*
n_name
;
/* official name of net */
char
*
n_name
;
/* official name of net */
char
**
n_aliases
;
/* alias list */
char
**
n_aliases
;
/* alias list */
short
n_addrtype
;
/* net address type */
short
n_addrtype
;
/* net address type */
u_long
n_net
;
/* network # */
WS
(
u_long
)
n_net
;
/* network # */
};
};
...
@@ -387,14 +392,14 @@ typedef UINT_PTR SOCKET;
...
@@ -387,14 +392,14 @@ typedef UINT_PTR SOCKET;
typedef
struct
WS
(
sockaddr
)
typedef
struct
WS
(
sockaddr
)
{
{
u_short
sa_family
;
WS
(
u_short
)
sa_family
;
char
sa_data
[
14
];
char
sa_data
[
14
];
}
SOCKADDR
,
*
PSOCKADDR
,
*
LPSOCKADDR
;
}
SOCKADDR
,
*
PSOCKADDR
,
*
LPSOCKADDR
;
typedef
struct
WS
(
linger
)
typedef
struct
WS
(
linger
)
{
{
u_short
l_onoff
;
/* option on/off */
WS
(
u_short
)
l_onoff
;
/* option on/off */
u_short
l_linger
;
/* linger time */
WS
(
u_short
)
l_linger
;
/* linger time */
}
LINGER
,
*
PLINGER
,
*
LPLINGER
;
}
LINGER
,
*
PLINGER
,
*
LPLINGER
;
/*
/*
...
@@ -416,7 +421,7 @@ typedef struct WS(linger)
...
@@ -416,7 +421,7 @@ typedef struct WS(linger)
typedef
struct
WS
(
fd_set
)
typedef
struct
WS
(
fd_set
)
{
{
u_int
fd_count
;
/* how many are SET? */
WS
(
u_int
)
fd_count
;
/* how many are SET? */
# ifndef USE_WS_PREFIX
# ifndef USE_WS_PREFIX
SOCKET
fd_array
[
FD_SETSIZE
];
/* an array of SOCKETs */
SOCKET
fd_array
[
FD_SETSIZE
];
/* an array of SOCKETs */
# else
# else
...
@@ -434,7 +439,7 @@ typedef struct WS(timeval)
...
@@ -434,7 +439,7 @@ typedef struct WS(timeval)
#endif
#endif
#define __WS_FD_CLR(fd, set, cast) do { \
#define __WS_FD_CLR(fd, set, cast) do { \
u
_
int __i; \
u
nsigned
int __i; \
for (__i = 0; __i < ((cast*)(set))->fd_count ; __i++) \
for (__i = 0; __i < ((cast*)(set))->fd_count ; __i++) \
{ \
{ \
if (((cast*)(set))->fd_array[__i] == fd) \
if (((cast*)(set))->fd_array[__i] == fd) \
...
@@ -458,7 +463,7 @@ typedef struct WS(timeval)
...
@@ -458,7 +463,7 @@ typedef struct WS(timeval)
* only if it's not the case
* only if it's not the case
*/
*/
#define __WS_FD_SET2(fd, set, cast) do { \
#define __WS_FD_SET2(fd, set, cast) do { \
u
_
int __i; \
u
nsigned
int __i; \
for (__i = 0; __i < ((cast*)(set))->fd_count ; __i++) \
for (__i = 0; __i < ((cast*)(set))->fd_count ; __i++) \
{ \
{ \
if (((cast*)(set))->fd_array[__i]==(fd)) \
if (((cast*)(set))->fd_array[__i]==(fd)) \
...
@@ -503,20 +508,20 @@ int WINAPI __WSAFDIsSet(SOCKET,WS(fd_set)*);
...
@@ -503,20 +508,20 @@ int WINAPI __WSAFDIsSet(SOCKET,WS(fd_set)*);
#ifdef WORDS_BIGENDIAN
#ifdef WORDS_BIGENDIAN
#define htonl(l) ((
u_long
)(l))
#define htonl(l) ((
WS(u_long)
)(l))
#define htons(s) ((
u_short
)(s))
#define htons(s) ((
WS(u_short)
)(s))
#define ntohl(l) ((
u_long
)(l))
#define ntohl(l) ((
WS(u_long)
)(l))
#define ntohs(s) ((
u_short
)(s))
#define ntohs(s) ((
WS(u_short)
)(s))
#else
/* WORDS_BIGENDIAN */
#else
/* WORDS_BIGENDIAN */
inline
static
u_short
__wine_ushort_swap
(
u_short
s
)
inline
static
WS
(
u_short
)
__wine_ushort_swap
(
WS
(
u_short
)
s
)
{
{
return
(
s
>>
8
)
|
(
s
<<
8
);
return
(
s
>>
8
)
|
(
s
<<
8
);
}
}
inline
static
u_long
__wine_ulong_swap
(
u_long
l
)
inline
static
WS
(
u_long
)
__wine_ulong_swap
(
WS
(
u_long
)
l
)
{
{
return
((
u_long
)
__wine_ushort_swap
((
u_short
)
l
)
<<
16
)
|
__wine_ushort_swap
((
u_short
)(
l
>>
16
));
return
((
WS
(
u_long
))
__wine_ushort_swap
((
WS
(
u_short
))
l
)
<<
16
)
|
__wine_ushort_swap
((
WS
(
u_short
)
)(
l
>>
16
));
}
}
#define htonl(l) __wine_ulong_swap(l)
#define htonl(l) __wine_ulong_swap(l)
#define htons(s) __wine_ushort_swap(s)
#define htons(s) __wine_ushort_swap(s)
...
@@ -564,14 +569,14 @@ inline static u_long __wine_ulong_swap(u_long l)
...
@@ -564,14 +569,14 @@ inline static u_long __wine_ulong_swap(u_long l)
#endif
/* USE_WS_PREFIX */
#endif
/* USE_WS_PREFIX */
#ifndef USE_WS_PREFIX
#ifndef USE_WS_PREFIX
#define INADDR_ANY (
u_long)0x00000000
#define INADDR_ANY (
(u_long)0x00000000)
#define INADDR_LOOPBACK 0x7f000001
#define INADDR_LOOPBACK 0x7f000001
#define INADDR_BROADCAST (
u_long)0xffffffff
#define INADDR_BROADCAST (
(u_long)0xffffffff)
#define INADDR_NONE 0xffffffff
#define INADDR_NONE 0xffffffff
#else
#else
#define WS_INADDR_ANY (
u_long)0x00000000
#define WS_INADDR_ANY (
(WS_u_long)0x00000000)
#define WS_INADDR_LOOPBACK 0x7f000001
#define WS_INADDR_LOOPBACK 0x7f000001
#define WS_INADDR_BROADCAST (
u_long)0xffffffff
#define WS_INADDR_BROADCAST (
(WS_u_long)0xffffffff)
#define WS_INADDR_NONE 0xffffffff
#define WS_INADDR_NONE 0xffffffff
#endif
/* USE_WS_PREFIX */
#endif
/* USE_WS_PREFIX */
...
@@ -579,12 +584,12 @@ typedef struct WS(in_addr)
...
@@ -579,12 +584,12 @@ typedef struct WS(in_addr)
{
{
union
{
union
{
struct
{
struct
{
u_char
s_b1
,
s_b2
,
s_b3
,
s_b4
;
WS
(
u_char
)
s_b1
,
s_b2
,
s_b3
,
s_b4
;
}
S_un_b
;
}
S_un_b
;
struct
{
struct
{
u_short
s_w1
,
s_w2
;
WS
(
u_short
)
s_w1
,
s_w2
;
}
S_un_w
;
}
S_un_w
;
u_long
S_addr
;
WS
(
u_long
)
S_addr
;
}
S_un
;
}
S_un
;
#ifndef USE_WS_PREFIX
#ifndef USE_WS_PREFIX
#define s_addr S_un.S_addr
#define s_addr S_un.S_addr
...
@@ -606,7 +611,7 @@ typedef struct WS(in_addr)
...
@@ -606,7 +611,7 @@ typedef struct WS(in_addr)
typedef
struct
WS
(
sockaddr_in
)
typedef
struct
WS
(
sockaddr_in
)
{
{
short
sin_family
;
short
sin_family
;
u_short
sin_port
;
WS
(
u_short
)
sin_port
;
struct
WS
(
in_addr
)
sin_addr
;
struct
WS
(
in_addr
)
sin_addr
;
char
sin_zero
[
8
];
char
sin_zero
[
8
];
}
SOCKADDR_IN
,
*
PSOCKADDR_IN
,
*
LPSOCKADDR_IN
;
}
SOCKADDR_IN
,
*
PSOCKADDR_IN
,
*
LPSOCKADDR_IN
;
...
@@ -656,7 +661,7 @@ typedef struct WS(WSAData)
...
@@ -656,7 +661,7 @@ typedef struct WS(WSAData)
#define SO_USELOOPBACK 0x0040
#define SO_USELOOPBACK 0x0040
#define SO_LINGER 0x0080
#define SO_LINGER 0x0080
#define SO_OOBINLINE 0x0100
#define SO_OOBINLINE 0x0100
#define SO_DONTLINGER (
u_int)(~SO_LINGER
)
#define SO_DONTLINGER (
(u_int)(~SO_LINGER)
)
#define SO_SNDBUF 0x1001
#define SO_SNDBUF 0x1001
#define SO_RCVBUF 0x1002
#define SO_RCVBUF 0x1002
#define SO_SNDLOWAT 0x1003
#define SO_SNDLOWAT 0x1003
...
@@ -689,7 +694,7 @@ typedef struct WS(WSAData)
...
@@ -689,7 +694,7 @@ typedef struct WS(WSAData)
#define WS_SO_USELOOPBACK 0x0040
#define WS_SO_USELOOPBACK 0x0040
#define WS_SO_LINGER 0x0080
#define WS_SO_LINGER 0x0080
#define WS_SO_OOBINLINE 0x0100
#define WS_SO_OOBINLINE 0x0100
#define WS_SO_DONTLINGER (
u_int)(~WS_SO_LINGER
)
#define WS_SO_DONTLINGER (
(WS_u_int)(~WS_SO_LINGER)
)
#define WS_SO_SNDBUF 0x1001
#define WS_SO_SNDBUF 0x1001
#define WS_SO_RCVBUF 0x1002
#define WS_SO_RCVBUF 0x1002
#define WS_SO_SNDLOWAT 0x1003
#define WS_SO_SNDLOWAT 0x1003
...
@@ -757,14 +762,14 @@ typedef struct WS(WSAData)
...
@@ -757,14 +762,14 @@ typedef struct WS(WSAData)
#define SIOCGLOWAT _IOR('s', 3, u_long)
#define SIOCGLOWAT _IOR('s', 3, u_long)
#define SIOCATMARK _IOR('s', 7, u_long)
#define SIOCATMARK _IOR('s', 7, u_long)
#else
#else
#define WS_FIONREAD WS__IOR('f', 127, u_long)
#define WS_FIONREAD WS__IOR('f', 127,
WS_
u_long)
#define WS_FIONBIO WS__IOW('f', 126, u_long)
#define WS_FIONBIO WS__IOW('f', 126,
WS_
u_long)
#define WS_FIOASYNC WS__IOW('f', 125, u_long)
#define WS_FIOASYNC WS__IOW('f', 125,
WS_
u_long)
#define WS_SIOCSHIWAT WS__IOW('s', 0, u_long)
#define WS_SIOCSHIWAT WS__IOW('s', 0,
WS_
u_long)
#define WS_SIOCGHIWAT WS__IOR('s', 1, u_long)
#define WS_SIOCGHIWAT WS__IOR('s', 1,
WS_
u_long)
#define WS_SIOCSLOWAT WS__IOW('s', 2, u_long)
#define WS_SIOCSLOWAT WS__IOW('s', 2,
WS_
u_long)
#define WS_SIOCGLOWAT WS__IOR('s', 3, u_long)
#define WS_SIOCGLOWAT WS__IOR('s', 3,
WS_
u_long)
#define WS_SIOCATMARK WS__IOR('s', 7, u_long)
#define WS_SIOCATMARK WS__IOR('s', 7,
WS_
u_long)
#endif
#endif
/*
/*
...
@@ -984,13 +989,13 @@ typedef struct WS(WSAData)
...
@@ -984,13 +989,13 @@ typedef struct WS(WSAData)
* "Winsock Function Typedefs" section in winsock2.h.
* "Winsock Function Typedefs" section in winsock2.h.
*/
*/
#if !defined(__WINE_WINSOCK2__) || WS_API_PROTOTYPES
#if !defined(__WINE_WINSOCK2__) || WS_API_PROTOTYPES
HANDLE
WINAPI
WSAAsyncGetHostByAddr
(
HWND
,
u_int
,
const
char
*
,
int
,
int
,
char
*
,
int
);
HANDLE
WINAPI
WSAAsyncGetHostByAddr
(
HWND
,
WS
(
u_int
)
,
const
char
*
,
int
,
int
,
char
*
,
int
);
HANDLE
WINAPI
WSAAsyncGetHostByName
(
HWND
,
u_int
,
const
char
*
,
char
*
,
int
);
HANDLE
WINAPI
WSAAsyncGetHostByName
(
HWND
,
WS
(
u_int
)
,
const
char
*
,
char
*
,
int
);
HANDLE
WINAPI
WSAAsyncGetProtoByName
(
HWND
,
u_int
,
const
char
*
,
char
*
,
int
);
HANDLE
WINAPI
WSAAsyncGetProtoByName
(
HWND
,
WS
(
u_int
)
,
const
char
*
,
char
*
,
int
);
HANDLE
WINAPI
WSAAsyncGetProtoByNumber
(
HWND
,
u_int
,
int
,
char
*
,
int
);
HANDLE
WINAPI
WSAAsyncGetProtoByNumber
(
HWND
,
WS
(
u_int
)
,
int
,
char
*
,
int
);
HANDLE
WINAPI
WSAAsyncGetServByName
(
HWND
,
u_int
,
const
char
*
,
const
char
*
,
char
*
,
int
);
HANDLE
WINAPI
WSAAsyncGetServByName
(
HWND
,
WS
(
u_int
)
,
const
char
*
,
const
char
*
,
char
*
,
int
);
HANDLE
WINAPI
WSAAsyncGetServByPort
(
HWND
,
u_int
,
int
,
const
char
*
,
char
*
,
int
);
HANDLE
WINAPI
WSAAsyncGetServByPort
(
HWND
,
WS
(
u_int
)
,
int
,
const
char
*
,
char
*
,
int
);
int
WINAPI
WSAAsyncSelect
(
SOCKET
,
HWND
,
u_int
,
long
);
int
WINAPI
WSAAsyncSelect
(
SOCKET
,
HWND
,
WS
(
u_int
)
,
long
);
int
WINAPI
WSACancelAsyncRequest
(
HANDLE
);
int
WINAPI
WSACancelAsyncRequest
(
HANDLE
);
int
WINAPI
WSACancelBlockingCall
(
void
);
int
WINAPI
WSACancelBlockingCall
(
void
);
int
WINAPI
WSACleanup
(
void
);
int
WINAPI
WSACleanup
(
void
);
...
@@ -1018,9 +1023,9 @@ struct WS(servent)* WINAPI WS(getservbyname)(const char*,const char*);
...
@@ -1018,9 +1023,9 @@ struct WS(servent)* WINAPI WS(getservbyname)(const char*,const char*);
struct
WS
(
servent
)
*
WINAPI
WS
(
getservbyport
)(
int
,
const
char
*
);
struct
WS
(
servent
)
*
WINAPI
WS
(
getservbyport
)(
int
,
const
char
*
);
int
WINAPI
WS
(
getsockname
)(
SOCKET
,
struct
WS
(
sockaddr
)
*
,
int
*
);
int
WINAPI
WS
(
getsockname
)(
SOCKET
,
struct
WS
(
sockaddr
)
*
,
int
*
);
int
WINAPI
WS
(
getsockopt
)(
SOCKET
,
int
,
int
,
char
*
,
int
*
);
int
WINAPI
WS
(
getsockopt
)(
SOCKET
,
int
,
int
,
char
*
,
int
*
);
unsigned
long
WINAPI
WS
(
inet_addr
)(
const
char
*
);
WS
(
u_long
)
WINAPI
WS
(
inet_addr
)(
const
char
*
);
char
*
WINAPI
WS
(
inet_ntoa
)(
struct
WS
(
in_addr
));
char
*
WINAPI
WS
(
inet_ntoa
)(
struct
WS
(
in_addr
));
int
WINAPI
WS
(
ioctlsocket
)(
SOCKET
,
long
,
u_long
*
);
int
WINAPI
WS
(
ioctlsocket
)(
SOCKET
,
long
,
WS
(
u_long
)
*
);
int
WINAPI
WS
(
listen
)(
SOCKET
,
int
);
int
WINAPI
WS
(
listen
)(
SOCKET
,
int
);
int
WINAPI
WS
(
recv
)(
SOCKET
,
char
*
,
int
,
int
);
int
WINAPI
WS
(
recv
)(
SOCKET
,
char
*
,
int
,
int
);
int
WINAPI
WS
(
recvfrom
)(
SOCKET
,
char
*
,
int
,
int
,
struct
WS
(
sockaddr
)
*
,
int
*
);
int
WINAPI
WS
(
recvfrom
)(
SOCKET
,
char
*
,
int
,
int
,
struct
WS
(
sockaddr
)
*
,
int
*
);
...
...
include/winsock2.h
View file @
9e5fadab
...
@@ -141,7 +141,7 @@ extern "C" {
...
@@ -141,7 +141,7 @@ extern "C" {
#ifndef USE_WS_PREFIX
#ifndef USE_WS_PREFIX
#define SIO_GET_INTERFACE_LIST _IOR ('t', 127, u_long)
#define SIO_GET_INTERFACE_LIST _IOR ('t', 127, u_long)
#else
#else
#define SIO_GET_INTERFACE_LIST WS__IOR ('t', 127, u_long)
#define SIO_GET_INTERFACE_LIST WS__IOR ('t', 127,
WS_
u_long)
#endif
#endif
/* Constants for WSAIoctl() */
/* Constants for WSAIoctl() */
...
@@ -496,13 +496,13 @@ DECL_WINELIB_TYPE_AW(LPWSANAMESPACE_INFO)
...
@@ -496,13 +496,13 @@ DECL_WINELIB_TYPE_AW(LPWSANAMESPACE_INFO)
* "Prototypes" section in winsock.h.
* "Prototypes" section in winsock.h.
*/
*/
#if WS_API_TYPEDEFS
#if WS_API_TYPEDEFS
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETHOSTBYADDR
)(
HWND
,
u_int
,
const
char
*
,
int
,
int
,
char
*
,
int
);
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETHOSTBYADDR
)(
HWND
,
WS
(
u_int
)
,
const
char
*
,
int
,
int
,
char
*
,
int
);
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETHOSTBYNAME
)(
HWND
,
u_int
,
const
char
*
,
char
*
,
int
);
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETHOSTBYNAME
)(
HWND
,
WS
(
u_int
)
,
const
char
*
,
char
*
,
int
);
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETPROTOBYNAME
)(
HWND
,
u_int
,
const
char
*
,
char
*
,
int
);
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETPROTOBYNAME
)(
HWND
,
WS
(
u_int
)
,
const
char
*
,
char
*
,
int
);
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETPROTOBYNUMBER
)(
HWND
,
u_int
,
int
,
char
*
,
int
);
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETPROTOBYNUMBER
)(
HWND
,
WS
(
u_int
)
,
int
,
char
*
,
int
);
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETSERVBYNAME
)(
HWND
,
u_int
,
const
char
*
,
const
char
*
,
char
*
,
int
);
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETSERVBYNAME
)(
HWND
,
WS
(
u_int
)
,
const
char
*
,
const
char
*
,
char
*
,
int
);
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETSERVBYPORT
)(
HWND
,
u_int
,
int
,
const
char
*
,
char
*
,
int
);
typedef
HANDLE
(
WINAPI
*
LPFN_WSAASYNCGETSERVBYPORT
)(
HWND
,
WS
(
u_int
)
,
int
,
const
char
*
,
char
*
,
int
);
typedef
int
(
WINAPI
*
LPFN_WSAASYNCSELECT
)(
SOCKET
,
HWND
,
u_int
,
long
);
typedef
int
(
WINAPI
*
LPFN_WSAASYNCSELECT
)(
SOCKET
,
HWND
,
WS
(
u_int
)
,
long
);
typedef
int
(
WINAPI
*
LPFN_WSACANCELASYNCREQUEST
)(
HANDLE
);
typedef
int
(
WINAPI
*
LPFN_WSACANCELASYNCREQUEST
)(
HANDLE
);
typedef
int
(
WINAPI
*
LPFN_WSACANCELBLOCKINGCALL
)(
void
);
typedef
int
(
WINAPI
*
LPFN_WSACANCELBLOCKINGCALL
)(
void
);
typedef
int
(
WINAPI
*
LPFN_WSACLEANUP
)(
void
);
typedef
int
(
WINAPI
*
LPFN_WSACLEANUP
)(
void
);
...
@@ -530,14 +530,14 @@ typedef struct WS(servent)* (WINAPI *LPFN_GETSERVBYNAME)(const char*,const char*
...
@@ -530,14 +530,14 @@ typedef struct WS(servent)* (WINAPI *LPFN_GETSERVBYNAME)(const char*,const char*
typedef
struct
WS
(
servent
)
*
(
WINAPI
*
LPFN_GETSERVBYPORT
)(
int
,
const
char
*
);
typedef
struct
WS
(
servent
)
*
(
WINAPI
*
LPFN_GETSERVBYPORT
)(
int
,
const
char
*
);
typedef
int
(
WINAPI
*
LPFN_GETSOCKNAME
)(
SOCKET
,
struct
WS
(
sockaddr
)
*
,
int
*
);
typedef
int
(
WINAPI
*
LPFN_GETSOCKNAME
)(
SOCKET
,
struct
WS
(
sockaddr
)
*
,
int
*
);
typedef
int
(
WINAPI
*
LPFN_GETSOCKOPT
)(
SOCKET
,
int
,
int
,
char
*
,
int
*
);
typedef
int
(
WINAPI
*
LPFN_GETSOCKOPT
)(
SOCKET
,
int
,
int
,
char
*
,
int
*
);
typedef
u_long
(
WINAPI
*
LPFN_HTONL
)(
u_long
);
typedef
WS
(
u_long
)
(
WINAPI
*
LPFN_HTONL
)(
WS
(
u_long
)
);
typedef
u_short
(
WINAPI
*
LPFN_HTONS
)(
u_short
);
typedef
WS
(
u_short
)
(
WINAPI
*
LPFN_HTONS
)(
WS
(
u_short
)
);
typedef
unsigned
long
(
WINAPI
*
LPFN_INET_ADDR
)(
const
char
*
);
typedef
unsigned
long
(
WINAPI
*
LPFN_INET_ADDR
)(
const
char
*
);
typedef
char
*
(
WINAPI
*
LPFN_INET_NTOA
)(
struct
WS
(
in_addr
);
typedef
char
*
(
WINAPI
*
LPFN_INET_NTOA
)(
struct
WS
(
in_addr
);
typedef
int
(
WINAPI
*
LPFN_IOCTLSOCKET
)(
SOCKET
,
long
,
u_long
*
);
typedef
int
(
WINAPI
*
LPFN_IOCTLSOCKET
)(
SOCKET
,
long
,
WS
(
u_long
)
*
);
typedef
int
(
WINAPI
*
LPFN_LISTEN
)(
SOCKET
,
int
);
typedef
int
(
WINAPI
*
LPFN_LISTEN
)(
SOCKET
,
int
);
typedef
u_long
(
WINAPI
*
LPFN_NTOHL
)(
u_long
);
typedef
WS
(
u_long
)
(
WINAPI
*
LPFN_NTOHL
)(
WS
(
u_long
)
);
typedef
u_short
(
WINAPI
*
LPFN_NTOHS
)(
u_short
);
typedef
WS
(
u_short
)
(
WINAPI
*
LPFN_NTOHS
)(
WS
(
u_short
)
);
typedef
int
(
WINAPI
*
LPFN_RECV
)(
SOCKET
,
char
*
,
int
,
int
);
typedef
int
(
WINAPI
*
LPFN_RECV
)(
SOCKET
,
char
*
,
int
,
int
);
typedef
int
(
WINAPI
*
LPFN_RECVFROM
)(
SOCKET
,
char
*
,
int
,
int
,
struct
WS
(
sockaddr
)
*
,
int
*
);
typedef
int
(
WINAPI
*
LPFN_RECVFROM
)(
SOCKET
,
char
*
,
int
,
int
,
struct
WS
(
sockaddr
)
*
,
int
*
);
typedef
int
(
WINAPI
*
LPFN_SEND
)(
SOCKET
,
const
char
*
,
int
,
int
);
typedef
int
(
WINAPI
*
LPFN_SEND
)(
SOCKET
,
const
char
*
,
int
,
int
);
...
@@ -582,8 +582,8 @@ INT WINAPI WSAGetServiceClassInfoW(LPGUID,LPGUID,LPDWORD,LPWSASERVICECLASSINFOW)
...
@@ -582,8 +582,8 @@ INT WINAPI WSAGetServiceClassInfoW(LPGUID,LPGUID,LPDWORD,LPWSASERVICECLASSINFOW)
INT
WINAPI
WSAGetServiceClassNameByClassIdA
(
LPGUID
,
LPSTR
,
LPDWORD
);
INT
WINAPI
WSAGetServiceClassNameByClassIdA
(
LPGUID
,
LPSTR
,
LPDWORD
);
INT
WINAPI
WSAGetServiceClassNameByClassIdW
(
LPGUID
,
LPWSTR
,
LPDWORD
);
INT
WINAPI
WSAGetServiceClassNameByClassIdW
(
LPGUID
,
LPWSTR
,
LPDWORD
);
#define WSAGetServiceClassNameByClassId WINELIB_NAME_AW(WSAGetServiceClassNameByClassId)
#define WSAGetServiceClassNameByClassId WINELIB_NAME_AW(WSAGetServiceClassNameByClassId)
int
WINAPI
WSAHtonl
(
SOCKET
,
u_long
,
u_long
*
);
int
WINAPI
WSAHtonl
(
SOCKET
,
WS
(
u_long
),
WS
(
u_long
)
*
);
int
WINAPI
WSAHtons
(
SOCKET
,
u_short
,
u_short
*
);
int
WINAPI
WSAHtons
(
SOCKET
,
WS
(
u_short
),
WS
(
u_short
)
*
);
int
WINAPI
WSAInstallServiceClassA
(
LPWSASERVICECLASSINFOA
);
int
WINAPI
WSAInstallServiceClassA
(
LPWSASERVICECLASSINFOA
);
int
WINAPI
WSAInstallServiceClassW
(
LPWSASERVICECLASSINFOW
);
int
WINAPI
WSAInstallServiceClassW
(
LPWSASERVICECLASSINFOW
);
#define WSAInstallServiceClass WINELIB_NAME_AW(WSAInstallServiceClass)
#define WSAInstallServiceClass WINELIB_NAME_AW(WSAInstallServiceClass)
...
@@ -596,8 +596,8 @@ INT WINAPI WSALookupServiceEnd(HANDLE);
...
@@ -596,8 +596,8 @@ INT WINAPI WSALookupServiceEnd(HANDLE);
INT
WINAPI
WSALookupServiceNextA
(
HANDLE
,
DWORD
,
LPDWORD
,
LPWSAQUERYSETA
);
INT
WINAPI
WSALookupServiceNextA
(
HANDLE
,
DWORD
,
LPDWORD
,
LPWSAQUERYSETA
);
INT
WINAPI
WSALookupServiceNextW
(
HANDLE
,
DWORD
,
LPDWORD
,
LPWSAQUERYSETW
);
INT
WINAPI
WSALookupServiceNextW
(
HANDLE
,
DWORD
,
LPDWORD
,
LPWSAQUERYSETW
);
#define WSALookupServiceNext WINELIB_NAME_AW(WSALookupServiceNext)
#define WSALookupServiceNext WINELIB_NAME_AW(WSALookupServiceNext)
int
WINAPI
WSANtohl
(
SOCKET
,
u_long
,
u_long
*
);
int
WINAPI
WSANtohl
(
SOCKET
,
WS
(
u_long
),
WS
(
u_long
)
*
);
int
WINAPI
WSANtohs
(
SOCKET
,
u_short
,
u_short
*
);
int
WINAPI
WSANtohs
(
SOCKET
,
WS
(
u_short
),
WS
(
u_short
)
*
);
INT
WINAPI
WSAProviderConfigChange
(
LPHANDLE
,
LPWSAOVERLAPPED
,
LPWSAOVERLAPPED_COMPLETION_ROUTINE
);
INT
WINAPI
WSAProviderConfigChange
(
LPHANDLE
,
LPWSAOVERLAPPED
,
LPWSAOVERLAPPED_COMPLETION_ROUTINE
);
int
WINAPI
WSARecv
(
SOCKET
,
LPWSABUF
,
DWORD
,
LPDWORD
,
LPDWORD
,
LPWSAOVERLAPPED
,
LPWSAOVERLAPPED_COMPLETION_ROUTINE
);
int
WINAPI
WSARecv
(
SOCKET
,
LPWSABUF
,
DWORD
,
LPDWORD
,
LPDWORD
,
LPWSAOVERLAPPED
,
LPWSAOVERLAPPED_COMPLETION_ROUTINE
);
int
WINAPI
WSARecvDisconnect
(
SOCKET
,
LPWSABUF
);
int
WINAPI
WSARecvDisconnect
(
SOCKET
,
LPWSABUF
);
...
@@ -655,8 +655,8 @@ typedef INT (WINAPI *LPFNWSAGETSERVICECLASSINFOW)(LPGUID,LPGUID,LPDWORD,LPWSASER
...
@@ -655,8 +655,8 @@ typedef INT (WINAPI *LPFNWSAGETSERVICECLASSINFOW)(LPGUID,LPGUID,LPDWORD,LPWSASER
typedef
INT
(
WINAPI
*
LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA
)(
LPGUID
,
LPSTR
,
LPDWORD
);
typedef
INT
(
WINAPI
*
LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA
)(
LPGUID
,
LPSTR
,
LPDWORD
);
typedef
INT
(
WINAPI
*
LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW
)(
LPGUID
,
LPWSTR
,
LPDWORD
);
typedef
INT
(
WINAPI
*
LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW
)(
LPGUID
,
LPWSTR
,
LPDWORD
);
#define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID WINELIB_NAME_AW(LPFN_WSAGETSERVICECLASSNAMEBYCLASSID)
#define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID WINELIB_NAME_AW(LPFN_WSAGETSERVICECLASSNAMEBYCLASSID)
typedef
int
(
WINAPI
*
LPFN_WSAHTONL
)(
SOCKET
,
u_long
,
u_long
*
);
typedef
int
(
WINAPI
*
LPFN_WSAHTONL
)(
SOCKET
,
WS
(
u_long
),
WS
(
u_long
)
*
);
typedef
int
(
WINAPI
*
LPFN_WSAHTONS
)(
SOCKET
,
u_short
,
u_short
*
);
typedef
int
(
WINAPI
*
LPFN_WSAHTONS
)(
SOCKET
,
WS
(
u_short
),
WS
(
u_short
)
*
);
typedef
int
(
WINAPI
LPFN_WSAINSTALLSERVICECLASSA
)(
LPWSASERVICECLASSINFOA
);
typedef
int
(
WINAPI
LPFN_WSAINSTALLSERVICECLASSA
)(
LPWSASERVICECLASSINFOA
);
typedef
int
(
WINAPI
LPFN_WSAINSTALLSERVICECLASSW
)(
LPWSASERVICECLASSINFOW
);
typedef
int
(
WINAPI
LPFN_WSAINSTALLSERVICECLASSW
)(
LPWSASERVICECLASSINFOW
);
typedef
int
(
WINAPI
*
LPFN_WSAIOCTL
)(
SOCKET
,
DWORD
,
LPVOID
,
DWORD
,
LPVOID
,
DWORD
,
LPDWORD
,
LPWSAOVERLAPPED
,
LPWSAOVERLAPPED_COMPLETION_ROUTINE
);
typedef
int
(
WINAPI
*
LPFN_WSAIOCTL
)(
SOCKET
,
DWORD
,
LPVOID
,
DWORD
,
LPVOID
,
DWORD
,
LPDWORD
,
LPWSAOVERLAPPED
,
LPWSAOVERLAPPED_COMPLETION_ROUTINE
);
...
@@ -668,8 +668,8 @@ typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEEND(HANDLE);
...
@@ -668,8 +668,8 @@ typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEEND(HANDLE);
typedef
INT
(
WINAPI
*
LPFN_WSALOOKUPSERVICENEXTA
)(
HANDLE
,
DWORD
,
LPDWORD
,
LPWSAQUERYSETA
);
typedef
INT
(
WINAPI
*
LPFN_WSALOOKUPSERVICENEXTA
)(
HANDLE
,
DWORD
,
LPDWORD
,
LPWSAQUERYSETA
);
typedef
INT
(
WINAPI
*
LPFN_WSALOOKUPSERVICENEXTW
)(
HANDLE
,
DWORD
,
LPDWORD
,
LPWSAQUERYSETW
);
typedef
INT
(
WINAPI
*
LPFN_WSALOOKUPSERVICENEXTW
)(
HANDLE
,
DWORD
,
LPDWORD
,
LPWSAQUERYSETW
);
#define LPFN_WSALOOKUPSERVICENEXT WINELIB_NAME_AW(LPFN_WSALOOKUPSERVICENEXT)
#define LPFN_WSALOOKUPSERVICENEXT WINELIB_NAME_AW(LPFN_WSALOOKUPSERVICENEXT)
typedef
int
(
WINAPI
*
LPFN_WSANTOHL
)(
SOCKET
,
u_long
,
u_long
*
);
typedef
int
(
WINAPI
*
LPFN_WSANTOHL
)(
SOCKET
,
WS
(
u_long
),
WS
(
u_long
)
*
);
typedef
int
(
WINAPI
*
LPFN_WSANTOHS
)(
SOCKET
,
u_short
,
u_short
*
);
typedef
int
(
WINAPI
*
LPFN_WSANTOHS
)(
SOCKET
,
WS
(
u_short
),
WS
(
u_short
)
*
);
typedef
INT
(
WINAPI
*
LPFN_WSAPROVIDERCONFIGCHANGE
)(
LPHANDLE
,
LPWSAOVERLAPPED
,
LPWSAOVERLAPPED_COMPLETION_ROUTINE
);
typedef
INT
(
WINAPI
*
LPFN_WSAPROVIDERCONFIGCHANGE
)(
LPHANDLE
,
LPWSAOVERLAPPED
,
LPWSAOVERLAPPED_COMPLETION_ROUTINE
);
typedef
int
(
WINAPI
*
LPFN_WSARECV
)(
SOCKET
,
LPWSABUF
,
DWORD
,
LPDWORD
,
LPDWORD
,
LPWSAOVERLAPPED
,
LPWSAOVERLAPPED_COMPLETION_ROUTINE
);
typedef
int
(
WINAPI
*
LPFN_WSARECV
)(
SOCKET
,
LPWSABUF
,
DWORD
,
LPDWORD
,
LPDWORD
,
LPWSAOVERLAPPED
,
LPWSAOVERLAPPED_COMPLETION_ROUTINE
);
typedef
int
(
WINAPI
*
LPFN_WSARECVDISCONNECT
)(
SOCKET
,
LPWSABUF
);
typedef
int
(
WINAPI
*
LPFN_WSARECVDISCONNECT
)(
SOCKET
,
LPWSABUF
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment