From 274940d7438af7ef92ce3e11d75620db94675932 Mon Sep 17 00:00:00 2001 From: Gisle Vanem Date: Fri, 8 Jun 2018 15:10:05 +0200 Subject: [PATCH] boringssl + schannel: undef X509_NAME in lib/schannel.h Fixes the build problem when both boringssl and schannel are enabled. Fixes #2634 Closes #2643 --- lib/ldap.c | 9 --------- 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 (in above ) and typedefs - * in BoringSSL's - */ -#ifdef HAVE_BORINGSSL -# undef X509_NAME -# undef X509_CERT_PAIR -# undef X509_EXTENSIONS -#endif - #include "urldata.h" #include #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" +/* has been included via the above . + * Or in case of ldap.c, it was included via . + * And since has this: + * #define X509_NAME ((LPCSTR) 7) + * + * And in BoringSSL's there is: + * typedef struct X509_name_st X509_NAME; + * etc. + * + * this wil cause all kinds of C-preprocessing paste errors in + * BoringSSL's : 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);