path: root/compat
diff options
authorErik Faye-Lund <>2009-10-19 15:42:07 (GMT)
committerJunio C Hamano <>2009-10-20 05:17:36 (GMT)
commit514213bf72cb61725e42440aaf8dd53fa4c33a74 (patch)
tree541407959d427118350b2277cacb307219b8dfce /compat
parentf9a88b70f94917f95e247a0e6e4d37f163fb41e3 (diff)
mingw: wrap SSL_set_(w|r)fd to call _get_osfhandle
SSL_set_fd (and friends) expects a OS file handle on Windows, not a file descriptor as on UNIX(-ish). This patch makes the Windows version of SSL_set_fd behave like the UNIX versions, by calling _get_osfhandle on it's input. Signed-off-by: Erik Faye-Lund <> Acked-by: Johannes Sixt <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'compat')
1 files changed, 21 insertions, 0 deletions
diff --git a/compat/mingw.h b/compat/mingw.h
index 5b5258b..6907345 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -124,6 +124,27 @@ static inline int waitpid(pid_t pid, int *status, unsigned options)
return -1;
+#ifndef NO_OPENSSL
+#include <openssl/ssl.h>
+static inline int mingw_SSL_set_fd(SSL *ssl, int fd)
+ return SSL_set_fd(ssl, _get_osfhandle(fd));
+#define SSL_set_fd mingw_SSL_set_fd
+static inline int mingw_SSL_set_rfd(SSL *ssl, int fd)
+ return SSL_set_rfd(ssl, _get_osfhandle(fd));
+#define SSL_set_rfd mingw_SSL_set_rfd
+static inline int mingw_SSL_set_wfd(SSL *ssl, int fd)
+ return SSL_set_wfd(ssl, _get_osfhandle(fd));
+#define SSL_set_wfd mingw_SSL_set_wfd
* implementations of missing functions