RFC - ws2_32/socket.c: SIO_KEEPALIVE_VALS vs TCP_KEEPIDLE/TCP_KEEPINTVL

Juan Lang juan.lang at gmail.com
Tue Aug 30 10:38:56 CDT 2011


Hi Bruno,

> The SIO_KEEPALIVE_VALS message on windows takes parameters as
> miliseconds, on some other systems there are the equivalent
> TCP_KEEPIDLE/TCP_KEEPINTVL which takes the parameters as seconds. To
> solve this there is a division by 1000 on wine source code but the
> problem is that values < 1000 become 0 making the setsockopt function
> return error.
>
> Is it reasonable to do a check to see if the result of the division is
> zero and then set the variable to one so we can get closer to the
> windows implementation and not fail the setsockopt function? It will

Yes, it's reasonable.  I think API-level compatibility is generally
more important to appilcations than timing-level compatibility.
I.o.w. function(args) -> result should be invariant across Windows and
Wine.  The time required to before function(args) yields result is
oftentimes not guaranteed in Windows, so a little fuzziness here is
often okay.
--Juan



More information about the wine-devel mailing list