ws2_32: Use the struct information when the parameters are zero in WSASocket.
This commit is contained in:
parent
bffc240b4e
commit
8e29fcddb9
|
@ -5884,20 +5884,20 @@ SOCKET WINAPI WSASocketW(int af, int type, int protocol,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (lpProtocolInfo)
|
||||||
|
{
|
||||||
|
if (af == FROM_PROTOCOL_INFO || !af)
|
||||||
|
af = lpProtocolInfo->iAddressFamily;
|
||||||
|
if (type == FROM_PROTOCOL_INFO || !type)
|
||||||
|
type = lpProtocolInfo->iSocketType;
|
||||||
|
if (protocol == FROM_PROTOCOL_INFO || !protocol)
|
||||||
|
protocol = lpProtocolInfo->iProtocol;
|
||||||
|
}
|
||||||
|
|
||||||
/* convert the socket family and type */
|
/* convert the socket family and type */
|
||||||
af = convert_af_w2u(af);
|
af = convert_af_w2u(af);
|
||||||
type = convert_socktype_w2u(type);
|
type = convert_socktype_w2u(type);
|
||||||
|
|
||||||
if (lpProtocolInfo)
|
|
||||||
{
|
|
||||||
if (af == FROM_PROTOCOL_INFO)
|
|
||||||
af = lpProtocolInfo->iAddressFamily;
|
|
||||||
if (type == FROM_PROTOCOL_INFO)
|
|
||||||
type = lpProtocolInfo->iSocketType;
|
|
||||||
if (protocol == FROM_PROTOCOL_INFO)
|
|
||||||
protocol = lpProtocolInfo->iProtocol;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( af == AF_UNSPEC) /* did they not specify the address family? */
|
if ( af == AF_UNSPEC) /* did they not specify the address family? */
|
||||||
{
|
{
|
||||||
if ((protocol == IPPROTO_TCP && type == SOCK_STREAM) ||
|
if ((protocol == IPPROTO_TCP && type == SOCK_STREAM) ||
|
||||||
|
|
|
@ -1946,7 +1946,6 @@ todo_wine
|
||||||
pi[0].iSocketType = SOCK_DGRAM;
|
pi[0].iSocketType = SOCK_DGRAM;
|
||||||
pi[0].iAddressFamily = AF_INET;
|
pi[0].iAddressFamily = AF_INET;
|
||||||
sock = WSASocketA(0, 0, 0, &pi[0], 0, 0);
|
sock = WSASocketA(0, 0, 0, &pi[0], 0, 0);
|
||||||
todo_wine {
|
|
||||||
ok(sock != INVALID_SOCKET, "Failed to create socket: %d\n",
|
ok(sock != INVALID_SOCKET, "Failed to create socket: %d\n",
|
||||||
WSAGetLastError());
|
WSAGetLastError());
|
||||||
size = sizeof(socktype);
|
size = sizeof(socktype);
|
||||||
|
@ -1956,7 +1955,7 @@ todo_wine {
|
||||||
ok(socktype == SOCK_DGRAM, "Wrong socket type, expected %d received %d\n",
|
ok(socktype == SOCK_DGRAM, "Wrong socket type, expected %d received %d\n",
|
||||||
SOCK_DGRAM, socktype);
|
SOCK_DGRAM, socktype);
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
}
|
|
||||||
sock = WSASocketA(AF_INET, SOCK_STREAM, IPPROTO_TCP, &pi[0], 0, 0);
|
sock = WSASocketA(AF_INET, SOCK_STREAM, IPPROTO_TCP, &pi[0], 0, 0);
|
||||||
ok(sock != INVALID_SOCKET, "Failed to create socket: %d\n",
|
ok(sock != INVALID_SOCKET, "Failed to create socket: %d\n",
|
||||||
WSAGetLastError());
|
WSAGetLastError());
|
||||||
|
|
Loading…
Reference in New Issue