diff options
author | Gisle Vanem <gisle.vanem@gmail.com> | 2018-06-08 15:10:05 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2018-06-08 23:25:17 +0200 |
commit | 274940d7438af7ef92ce3e11d75620db94675932 (patch) | |
tree | 7457bcb61eeec23d8432556f847062b0dfcfe4fe | |
parent | 9ff67f7b00f16da9f9f3377b6b8f5859dd9cd2cb (diff) |
boringssl + schannel: undef X509_NAME in lib/schannel.h
Fixes the build problem when both boringssl and schannel are enabled.
Fixes #2634
Closes #2643
-rw-r--r-- | lib/ldap.c | 9 | ||||
-rw-r--r-- | lib/vtls/schannel.h | 19 |
2 files changed, 19 insertions, 9 deletions
diff --git a/lib/ldap.c b/lib/ldap.c index 89047bcbd..4d8f4fa28 100644 --- a/lib/ldap.c +++ b/lib/ldap.c @@ -54,15 +54,6 @@ # endif /* HAVE_LDAP_SSL && HAVE_LDAP_SSL_H */ #endif -/* These are macros in both <wincrypt.h> (in above <winldap.h>) and typedefs - * in BoringSSL's <openssl/x509.h> - */ -#ifdef HAVE_BORINGSSL -# undef X509_NAME -# undef X509_CERT_PAIR -# undef X509_EXTENSIONS -#endif - #include "urldata.h" #include <curl/curl.h> #include "sendf.h" diff --git a/lib/vtls/schannel.h b/lib/vtls/schannel.h index aa44e8e89..51417affe 100644 --- a/lib/vtls/schannel.h +++ b/lib/vtls/schannel.h @@ -32,6 +32,25 @@ #include "urldata.h" +/* <wincrypt.h> has been included via the above <schnlsp.h>. + * Or in case of ldap.c, it was included via <winldap.h>. + * And since <wincrypt.h> has this: + * #define X509_NAME ((LPCSTR) 7) + * + * And in BoringSSL's <openssl/base.h> there is: + * typedef struct X509_name_st X509_NAME; + * etc. + * + * this wil cause all kinds of C-preprocessing paste errors in + * BoringSSL's <openssl/x509.h>: So just undefine those defines here + * (and only here). + */ +#if defined(HAVE_BORINGSSL) || defined(OPENSSL_IS_BORINGSSL) +# undef X509_NAME +# undef X509_CERT_PAIR +# undef X509_EXTENSIONS +#endif + extern const struct Curl_ssl Curl_ssl_schannel; CURLcode verify_certificate(struct connectdata *conn, int sockindex); |