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 3a6369d..108ccfe 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"
@@ -20,6 +16,10 @@
#include "netops.h"
#include "git2/transport.h"
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include <openssl/x509v3.h>
+
static int ssl_set_error(SSL *ssl, int error)
{
int err;