Thanks for all the detailed comments. But I suppose before going into these details and improving the neats it would be great to hear from Zebediah or Alexandre if this MR is a go in principle. As it is not apparent to me from the initial Zeb's comment.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/384#note_3817
Jinoh Kang (@iamahuman) commented about server/protocol.def:
> - int force_async; /* Force asynchronous mode? */
> + async_data_t async; /* async I/O parameters */
> + int force_async; /* Force asynchronous mode? */
> @REPLY
> obj_handle_t wait; /* handle to wait on for blocking send */
> unsigned int options; /* device open options */
> int nonblocking; /* is socket non-blocking? */
> + int fixup_type; /* socket protocol fixup */
> +@END
> +
> +
> +/* Store info needed for protocol fixup */
> +@REQ(socket_fixup_send_data)
> + obj_handle_t handle; /* socket handle */
> + unsigned short icmp_id; /* ICMP packet id */
> + unsigned short icmp_seq; /* ICMP packed sequence */
Instead of re-aligning tabbing of `@REQ(send_socket)`, maybe we can also use `int` or `short` here. Although `unsigned short` makes more sense if we're going to restrict the scope of the two new server calls only to ICMP packets.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/384#note_3814