Include openssl headers last Windows headers #define some names that openssl uses too. Openssl headers #undef the offending names before reusing them. But if those offending Windows headers get included after the openssl headers the namespace is polluted and nothing good happens. Fixes issue #2850.
diff --git a/src/openssl_stream.c b/src/openssl_stream.c
index e0cf9b6..9ddf6e4 100644
--- a/src/openssl_stream.c
+++ b/src/openssl_stream.c
@@ -7,10 +7,6 @@
#ifdef GIT_SSL
-#include <openssl/ssl.h>
-#include <openssl/err.h>
-#include <openssl/x509v3.h>
-
#include <ctype.h>
#include "global.h"
@@ -26,6 +22,10 @@
# include <netinet/in.h>
#endif
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include <openssl/x509v3.h>
+
static int ssl_set_error(SSL *ssl, int error)
{
int err;