[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: [PATCH 4/4] ws2_32: implement AcceptEx and GetAcceptExSockaddrs
From:       Alexandre Julliard <julliard () winehq ! org>
Date:       2010-08-31 14:39:21
Message-ID: 878w3mu9ra.fsf () wine ! dyndns ! org
[Download RAW message or body]

Mike Kaplinskiy <mike.kaplinskiy@gmail.com> writes:

> /***********************************************************************
> + *              WS2_async_recv_accept            (INTERNAL)
> + *
> + * This function is used to finish the read part of an accept request. It is
> + * needed to place the completion on the correct socket (listener).
> + */
> +static NTSTATUS WINAPI WS2_async_recv_accept( void *arg, IO_STATUS_BLOCK *iosb, \
> NTSTATUS status ) +{
> +    void *junk;
> +    struct ws2_accept_async *wsa = arg;
> +
> +    status = WS2_async_recv( wsa->read, iosb, status, &junk );
> +    if (status == STATUS_PENDING)
> +        return status;
> +
> +    if (wsa->user_overlapped->hEvent)
> +        SetEvent(wsa->user_overlapped->hEvent);
> +    if (wsa->cvalue)
> +        WS_AddCompletion( HANDLE2SOCKET(wsa->listen_socket), wsa->cvalue, \
> iosb->u.Status, iosb->Information ); +    HeapFree( GetProcessHeap(), 0, wsa->read \
> ); +    HeapFree( GetProcessHeap(), 0, wsa );
> +
> +    return status;
> +}
> +
> +/***********************************************************************
> + *              WS2_async_accept                (INTERNAL)
> + *
> + * This is the function called to satisfy the AcceptEx callback
> + */
> +static NTSTATUS WINAPI WS2_async_accept( void *arg, IO_STATUS_BLOCK *iosb, \
> NTSTATUS status ) +{

These are not valid async callbacks, the way async callbacks work has
changed since the patch was first written.

-- 
Alexandre Julliard
julliard@winehq.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic