mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-24 18:55:04 +08:00
Second attempt to silence SSL compile failures on hamerkop.
After further investigation, it seems the cause of the problem is our recent decision to start defining WIN32_LEAN_AND_MEAN. That causes <windows.h> to no longer include <wincrypt.h>, which means that the OpenSSL headers are unable to prevent conflicts with that header by #undef'ing the conflicting macros. Apparently, some other system header that be-secure-openssl.c #includes after the OpenSSL headers is pulling in <wincrypt.h>. It's obscure just where that happens and why we're not seeing it on other Windows buildfarm animals. However, it should work to move the OpenSSL #includes to the end of the list. For the sake of future-proofing, do likewise in fe-secure-openssl.c. In passing, remove useless double inclusions of <openssl/ssl.h>. Thanks to Thomas Munro for running down the relevant information. Discussion: https://postgr.es/m/1051867.1635720347@sss.pgh.pa.us
This commit is contained in:
parent
05e6e78c18
commit
1241fcbd7e
@ -29,15 +29,6 @@
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
|
||||
#include <openssl/ssl.h>
|
||||
#include <openssl/conf.h>
|
||||
#include <openssl/dh.h>
|
||||
#ifndef OPENSSL_NO_ECDH
|
||||
#include <openssl/ec.h>
|
||||
#endif
|
||||
#include <openssl/x509v3.h>
|
||||
|
||||
#include "common/openssl.h"
|
||||
#include "libpq/libpq.h"
|
||||
#include "miscadmin.h"
|
||||
#include "pgstat.h"
|
||||
@ -46,6 +37,21 @@
|
||||
#include "tcop/tcopprot.h"
|
||||
#include "utils/memutils.h"
|
||||
|
||||
/*
|
||||
* These SSL-related #includes must come after all system-provided headers.
|
||||
* This ensures that OpenSSL can take care of conflicts with Windows'
|
||||
* <wincrypt.h> by #undef'ing the conflicting macros. (We don't directly
|
||||
* include <wincrypt.h>, but some other Windows headers do.)
|
||||
*/
|
||||
#include "common/openssl.h"
|
||||
#include <openssl/conf.h>
|
||||
#include <openssl/dh.h>
|
||||
#ifndef OPENSSL_NO_ECDH
|
||||
#include <openssl/ec.h>
|
||||
#endif
|
||||
#include <openssl/x509v3.h>
|
||||
|
||||
|
||||
/* default init hook can be overridden by a shared library */
|
||||
static void default_openssl_tls_init(SSL_CTX *context, bool isServerStart);
|
||||
openssl_tls_init_hook_typ openssl_tls_init_hook = default_openssl_tls_init;
|
||||
|
@ -30,7 +30,6 @@
|
||||
#include "fe-auth.h"
|
||||
#include "fe-secure-common.h"
|
||||
#include "libpq-int.h"
|
||||
#include "common/openssl.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32.h"
|
||||
@ -55,13 +54,20 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <openssl/ssl.h>
|
||||
/*
|
||||
* These SSL-related #includes must come after all system-provided headers.
|
||||
* This ensures that OpenSSL can take care of conflicts with Windows'
|
||||
* <wincrypt.h> by #undef'ing the conflicting macros. (We don't directly
|
||||
* include <wincrypt.h>, but some other Windows headers do.)
|
||||
*/
|
||||
#include "common/openssl.h"
|
||||
#include <openssl/conf.h>
|
||||
#ifdef USE_SSL_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
#include <openssl/x509v3.h>
|
||||
|
||||
|
||||
static int verify_cb(int ok, X509_STORE_CTX *ctx);
|
||||
static int openssl_verify_peer_name_matches_certificate_name(PGconn *conn,
|
||||
ASN1_STRING *name,
|
||||
|
Loading…
Reference in New Issue
Block a user