[Bug 29164] Swap buffers in GetAcceptExSockaddrs (WS2_async_accept).

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Nov 25 13:03:36 CST 2011


--- Comment #3 from acDev <admin at myac.msk.ru> 2011-11-25 13:03:36 CST ---
(In reply to comment #1)
> Sorry to bother, it may be obvious to you but can you elaborate a bit more
> about it? What program is affected and how did you reach that conclusion? I
> really would like to understand and others less experienced like me might find
> it helpful too.

My console IOCP server is used under windows (XP and later) and under wine
(1.3.12 and later).
I had to do specifically for the wine option in config file that allows you to
read remote_addr from different positions. 
Here is my code:

procedure TIOCPServer.ExtractAddresses(ChangeAddr: Boolean = False);
  PLoc, PRem: PSockAddrIn;
  LLoc, LRem: integer;
  Server.FGetAcceptExSockaddrs(FRecvBuf, FAddrOffset, Addr_Buf_Len,
Addr_Buf_Len, PLoc, LLoc, PRem, LRem);
  FillChar(FLocalAddr,  SizeOf(FLocalAddr),  0);
  FillChar(FRemoteAddr, SizeOf(FRemoteAddr), 0);
  if ChangeAddr then begin  
    // this is for WINE only !!!
    if SizeOf(FLocalAddr)  = LRem then FLocalAddr  := PRem^; 
    if SizeOf(FRemoteAddr) = LLoc then FRemoteAddr := PLoc^;
  end else begin
    if SizeOf(FLocalAddr)  = LLoc then FLocalAddr  := PLoc^;
    if SizeOf(FRemoteAddr) = LRem then FRemoteAddr := PRem^;

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