mirror of
https://github.com/postgres/postgres.git
synced 2025-07-26 01:22:12 +03:00
Break out OpenSSL-specific code to separate files.
This refactoring is in preparation for adding support for other SSL implementations, with no user-visible effects. There are now two #defines, USE_OPENSSL which is defined when building with OpenSSL, and USE_SSL which is defined when building with any SSL implementation. Currently, OpenSSL is the only implementation so the two #defines go together, but USE_SSL is supposed to be used for implementation-independent code. The libpq SSL code is changed to use a custom BIO, which does all the raw I/O, like we've been doing in the backend for a long time. That makes it possible to use MSG_NOSIGNAL to block SIGPIPE when using SSL, which avoids a couple of syscall for each send(). Probably doesn't make much performance difference in practice - the SSL encryption is expensive enough to mask the effect - but it was a natural result of this refactoring. Based on a patch by Martijn van Oosterhout from 2006. Briefly reviewed by Alvaro Herrera, Andreas Karlsson, Jeff Janes.
This commit is contained in:
@ -182,7 +182,7 @@ sub GenerateFiles
|
||||
if ($self->{options}->{integer_datetimes});
|
||||
print O "#define USE_LDAP 1\n" if ($self->{options}->{ldap});
|
||||
print O "#define HAVE_LIBZ 1\n" if ($self->{options}->{zlib});
|
||||
print O "#define USE_SSL 1\n" if ($self->{options}->{openssl});
|
||||
print O "#define USE_OPENSSL 1\n" if ($self->{options}->{openssl});
|
||||
print O "#define ENABLE_NLS 1\n" if ($self->{options}->{nls});
|
||||
|
||||
print O "#define BLCKSZ ", 1024 * $self->{options}->{blocksize}, "\n";
|
||||
@ -628,7 +628,7 @@ sub GetFakeConfigure
|
||||
$cfg .= ' --with-ldap' if ($self->{options}->{ldap});
|
||||
$cfg .= ' --without-zlib' unless ($self->{options}->{zlib});
|
||||
$cfg .= ' --with-extra-version' if ($self->{options}->{extraver});
|
||||
$cfg .= ' --with-openssl' if ($self->{options}->{ssl});
|
||||
$cfg .= ' --with-openssl' if ($self->{options}->{openssl});
|
||||
$cfg .= ' --with-ossp-uuid' if ($self->{options}->{uuid});
|
||||
$cfg .= ' --with-libxml' if ($self->{options}->{xml});
|
||||
$cfg .= ' --with-libxslt' if ($self->{options}->{xslt});
|
||||
|
Reference in New Issue
Block a user