remote: Fix TLS transport on Windows
gnulib wraps Windows' SOCKET handle based send() and recv() functions into file descriptor based ones that are used in libvirt. Even though GnuTLS is using gnulib too, it explicitly doesn't use gnulib's replacement functions on Windows. By default GnuTLS uses the SOCKET handle based send() and recv(). This makes gnutls_handshake() fail internally with a WSAENOTSOCK error because libvirt passes a file descriptor; GnuTLS needs the SOCKET handle. To avoid this mismatch make sure that GnuTLS uses gnulib's replacment functions, by setting custom pull() and push() functions for GnuTLS.
Showing
想要评论请 注册 或 登录