[Bug 38224] New: AcceptEx detaches the socket from its IO completion port

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Mar 13 09:47:18 CDT 2015


https://bugs.winehq.org/show_bug.cgi?id=38224

            Bug ID: 38224
           Summary: AcceptEx detaches the socket from its IO completion
                    port
           Product: Wine
           Version: 1.6.2
          Hardware: x86
                OS: Mac OS X
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: winsock
          Assignee: wine-bugs at winehq.org
          Reporter: mterrisse at free.fr

Created attachment 51024
  --> https://bugs.winehq.org/attachment.cgi?id=51024
Source + binary for BugAcceptEx

Hello,

On a server I have a listening socket
    lListeningSocket := socket (PF_INET, SOCK_STREAM, IPPROTO_TCP);
    CreateIoCompletionPort (lListeningSocket, lIoCompletionPort, 0, 0);
    bind (lListeningSocket, PSockAddr (@lAddress)^, SizeOf (TSockAddrIn));
    listen (lListeningSocket, 1);
and I prepare a socket for a new connection
    lSocket := socket (PF_INET, SOCK_STREAM, IPPROTO_TCP);
    CreateIoCompletionPort (lSocket, lIoCompletionPort, 0, 0);
then call AcceptEx
    lPtrAcceptEx (lListeningSocket, lSocket, ...);

GetQueuedCompletionStatus (lIoCompletionPort, ...) signals completion for
AcceptEx for an incoming connection (so CreateIoCompletionPort
(lListeningSocket, ...) works fine), but never signals completion for events on
lSocket, not even a disconnection.

If I call again
   CreateIoCompletionPort (lSocket, lIoCompletionPort, 0, 0);
after the completion of AcceptEx, it works fine.
So AcceptEx as detached lSocket from the IO completion port.

To help reproducting it, I created a little command line server BugAcceptEx.exe
Here attached is the code (Delphi) and the executable.

In a command prompt run
  BugAcceptEx 1234
and in another command prompt
  telnet localhost 1234
and press a key

Under Windows it works fine, under Mac + Wine the server signals the incoming
connection but never signals data nor disconnection.

Now if you do
  BugAcceptEx 1235 WithPatch
and
  telnet localhost 1235
it works fine

Thank you for your help.

Regards,

Michel Terrisse

-- 
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