• M
    remote: Fix TLS transport on Windows · 9abe1e43
    Matthias Bolte 提交于
    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.
    9abe1e43
remote_driver.c 318.8 KB