GNOME Bugzilla – Bug 580236
win32 socket support is broken
Last modified: 2009-05-20 10:29:43 UTC
gsocket.c assumes that winsock fds behave like unix fds in the glib API, but they don't. In particular, _g_fd_source_new() and g_poll() will not work with winsock fds. See giowin32.c for some of the gory details. For g_socket_create_source(), you could just create a GIOSource instead (using g_io_channel_unix_new() or g_io_channel_win32_new_socket()). For the g_poll() stuff you could use g_io_channel_win32_new_socket() followed by g_io_channel_win32_make_pollfd(), though it might be more efficient to abstract some code out. Oh, and winsock doesn't have sendmsg() and recvmsg() either.
winsock has sendmsg() and recvmsg(). They just need some special work: http://msdn.microsoft.com/en-us/library/ms741692(VS.85).aspx http://msdn.microsoft.com/en-us/library/ms741687(VS.85).aspx
fixed now.