Application "ZusiDisplay" wants to set these socket options. setsockopt() currently returns an error on wine, which prevents the application from working correctly.
I'm not really sure if I'm using the IOCTL_AFD_WINE_SET/GET_* correctly. Maybe the new ones should have different "function" numbers and be sorted below the one for TCP_NODELAY?
Also, not sure if anything needs to be done in unix/socket.c for portability. Are these TCP_KEEPIDLE etc. constants defined on all OSes supported by wine? If not, how should I handle this?
ZusiDisplay seems to work fine if the setsockopt() call is ignored in wine, without returning an error. So if this merge request is not that great, I'd be happy to send a merge request to ignore the call instead.
--
v2: ws2_32: Implement TCP_KEEP{ALIVE,CNT,INTVL} options.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5195
The tests on line 495, 498 and 499 in the file `dlls/comctl32/tests/monthcal.c` fail on February 29th of a leap year.
The failure originates from the line 484 `st[1].wYear++;` where a year is added to the current date making it for example Feb 29th 2025. This will then produce a failure in the handling of the message. Specifically, the function call to `MONTHCAL_ValidateDate(&range[1])` in the function `MONTHCAL_SetRange` in the file `/dlls/comctl32/monthcal.c` will return `FALSE`. Note that the source code is handling the leap year correctly. It is only the test that fails incorrectly.
The fix on the new line 472 is technically not necessary, since the limits of that test message are 0 and thus the date is not checked for validity. However, it was included in this patch for completeness.
Happy leap year :smile:
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5196