[PATCH 4/4] ntdll: Fixup ICMP packet id if SOCK_DGRAM fallback is used.

Zebediah Figura zfigura at codeweavers.com
Tue Jul 12 21:58:43 CDT 2022


On 7/5/22 14:53, Paul Gofman wrote:
> +    if (fixup_type == SOCK_PROT_FIXUP_ICMP_OVER_DGRAM && async->count
> +        && (!status || status == STATUS_ALERTED || status == STATUS_PENDING))
> +    {
> +        unsigned short id, seq;
> +        struct icmp_hdr *h;
> +        NTSTATUS ret;
> +
> +        if (async->iov[0].iov_len < sizeof(*h))
> +        {
> +            FIXME( "ICMP over DGRAM fixup is not supported for count %u, len %zu.\n", count, async->iov[0].iov_len );
> +        }
> +        else
> +        {
> +            h = async->iov[0].iov_base;
> +            id = h->un.echo.id;
> +            seq = h->un.echo.sequence;
> +            SERVER_START_REQ( socket_fixup_send_data )
> +            {
> +                req->handle = wine_server_obj_handle( handle );
> +                req->icmp_id = id;
> +                req->icmp_seq = seq;
> +                ret = wine_server_call( req );
> +            }
> +            SERVER_END_REQ;
> +            if (ret) WARN( "socket_fixup_send_data returned %#x.\n", ret );
> +        }
> +    }
> +

Would you mind putting this in a helper function?



More information about the wine-devel mailing list