mirror of
https://github.com/postgres/postgres.git
synced 2025-06-25 01:02:05 +03:00
Attempt to fix build with unusual OpenSSL versions
Since e3bdb2d926
, libpq failed to build on
some platforms because they did not have SSL_clear_options(). Although
mainline OpenSSL introduced SSL_clear_options() after
SSL_OP_NO_COMPRESSION, so the code should have built fine, at least an
old NetBSD version (build farm "coypu" NetBSD 5.1 gcc 4.1.3 PR-20080704
powerpc) has SSL_OP_NO_COMPRESSION but no SSL_clear_options().
So add a configure check for SSL_clear_options(). If we don't find it,
skip the call. That means on such a platform one cannot *enable* SSL
compression if the built-in default is off, but that seems an unlikely
combination anyway and not very interesting in practice.
This commit is contained in:
@ -1194,8 +1194,16 @@ initialize_SSL(PGconn *conn)
|
||||
#ifdef SSL_OP_NO_COMPRESSION
|
||||
if (conn->sslcompression && conn->sslcompression[0] == '0')
|
||||
SSL_set_options(conn->ssl, SSL_OP_NO_COMPRESSION);
|
||||
/*
|
||||
* Mainline OpenSSL introduced SSL_clear_options() before
|
||||
* SSL_OP_NO_COMPRESSION, so this following #ifdef should not be
|
||||
* necessary, but some old NetBSD version have a locally modified libssl
|
||||
* that has SSL_OP_NO_COMPRESSION but not SSL_clear_options().
|
||||
*/
|
||||
#ifdef HAVE_SSL_CLEAR_OPTIONS
|
||||
else
|
||||
SSL_clear_options(conn->ssl, SSL_OP_NO_COMPRESSION);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user