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?
A brief search suggests that Solaris, FreeBSD, and NetBSD all have them. Mac has them as well, but it calls it TCP_KEEPALIVE like Windows, not TCP_KEEPIDLE, so we should check for that. If we do break compilation anywhere, I suspect it's fine to wait for a report and fix it after the fact.