socket "s" member (actual socket): Should be SOCKET on Win32?
Really dippy question as I was trying to compile libslirp on x86_64 Windows (a LP64 platform, where sizeof(void *) > sizeof(int)): Should socket's "s" member vary by platform? On Win32 (x86 and x86_64), this is the SOCKET type, which is an alias for a pointer type, whereas for most normal platforms, it's an int.
Here's the problem: the compiler ends up slicing the SOCKET pointer to fit into an int, then zero-extending the int back into the SOCKET pointer. This is generally bad foo on LP64 platforms (macOS is also LP64, but normal with respect to socket descriptors.)
I suspect that most use cases for libslirp on Win32 compile to x86, where sizeof(void *) == sizeof(int). Haven't seen other reports mentioning 64-bit Windows, so figured I'd ask.