[PATCH 1/3] ws2_32: Ask the server to process unsupported WSAIoctl operations (resend).

Alexandre Julliard julliard at winehq.org
Wed Feb 12 13:43:08 CST 2014


"Erich E. Hoover" <erich.e.hoover at gmail.com> writes:

> @@ -4101,11 +4125,29 @@ INT WINAPI WSAIoctl(SOCKET s, DWORD code, LPVOID in_buff, DWORD in_size, LPVOID
>          WSASetLastError(WSAEOPNOTSUPP);
>          return SOCKET_ERROR;
>      default:
> -        FIXME("unsupported WS_IOCTL cmd (%s)\n", debugstr_wsaioctl(code));
>          status = WSAEOPNOTSUPP;
>          break;
>      }
>  
> +    if (status == WSAEOPNOTSUPP)
> +    {
> +        status = server_ioctl_sock(s, code, in_buff, in_size, out_buff, out_size, ret_size,
> +                                   overlapped, completion);
> +        if (status != WSAEOPNOTSUPP)
> +        {
> +            if (status == 0 || status == WSA_IO_PENDING)
> +                TRACE("-> %s request\n", debugstr_wsaioctl(code));
> +            else
> +                ERR("-> %s request failed with status 0x%x\n", debugstr_wsaioctl(code), status);
> +
> +            /* overlapped and completion operations will be handled by the server */
> +            completion = NULL;
> +            overlapped = NULL;
> +        }
> +        else
> +            FIXME("unsupported WS_IOCTL cmd (%s)\n", debugstr_wsaioctl(code));
> +    }

The returned size handling doesn't look right.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list