[Bug 11248] New: fixme:winsock:WSASocketW Unsupported socket family -1!
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri Jan 18 10:17:17 CST 2008
http://bugs.winehq.org/show_bug.cgi?id=11248
Summary: fixme:winsock:WSASocketW Unsupported socket family -1!
Product: Wine
Version: 0.9.53.
Platform: PC
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P1
Component: winsock
AssignedTo: wine-bugs at winehq.org
ReportedBy: andrej.andolsek at gmail.com
Hello guys!
If I run Bitvise Tunnelier (Tunnelier.exe, installer can be downloaded from
www.bitvise.com/download-area) in Wine 0.9.53 I get the following problem when
I try to login (establish a TCP/IP connection):
fixme:winsock:convert_af_w2u unhandled Windows address family -1
fixme:winsock:WSASocketW Unsupported socket family -1!
---
This is how Tunnelier calls WSASocketW():
WSASocketW(FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO,
&m_protocolInfo, 0, WSA_FLAG_OVERLAPPED);
and FROM_PROTOCOL_INFO has the value of -1.
If you check WSASocket() in MSDN -
http://msdn2.microsoft.com/en-us/library/ms742212(VS.85).aspx - the 3rd
paragraph of Remarks says the following:
If the lpProtocolInfo is not NULL, the socket will be bound to the provider
associated with the indicated WSAPROTOCOL_INFO structure. In this instance, the
application can supply the manifest constant FROM_PROTOCOL_INFO as the value
for any of af, type, or protocol parameters. This indicates that the
corresponding values from the indicated WSAPROTOCOL_INFO structure
(iAddressFamily, iSocketType, iProtocol) are to be assumed. In any case, the
values specified for af, type, and protocol are passed unmodified to the
transport-service provider.
So, in dlls/ws2_32/socket.c WSASocketW() something like the code following
needs to be added (taking into account that the trasport-service provider
requirements doesn't affect Wine):
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;
}
So you see, it's a show stopper with a very simple solution.
Keep up the good work!
Andrej Andolsek
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list