pgsql: Break out OpenSSL-specific code to separate files.
От | Heikki Linnakangas |
---|---|
Тема | pgsql: Break out OpenSSL-specific code to separate files. |
Дата | |
Msg-id | E1XGldE-0002Hi-Ag@gemulon.postgresql.org обсуждение исходный текст |
Ответы |
Re: pgsql: Break out OpenSSL-specific code to separate
files.
|
Список | pgsql-committers |
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. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/680513ab79c7e12e402a2aad7921b95a25a4bcc8 Modified Files -------------- configure | 2 +- configure.in | 2 +- src/backend/libpq/Makefile | 4 + src/backend/libpq/auth.c | 14 +- src/backend/libpq/be-secure-openssl.c | 1045 +++++++++++++++++++++ src/backend/libpq/be-secure.c | 1027 +-------------------- src/backend/libpq/hba.c | 2 +- src/backend/postmaster/fork_process.c | 4 +- src/backend/utils/init/postinit.c | 8 +- src/backend/utils/misc/guc.c | 3 - src/bin/psql/command.c | 4 +- src/include/libpq/libpq-be.h | 24 +- src/include/libpq/libpq.h | 9 + src/include/pg_config.h.in | 6 +- src/include/pg_config.h.win32 | 6 +- src/include/pg_config_manual.h | 9 + src/interfaces/libpq/Makefile | 4 + src/interfaces/libpq/fe-connect.c | 7 +- src/interfaces/libpq/fe-misc.c | 4 +- src/interfaces/libpq/fe-secure-openssl.c | 1468 +++++++++++++++++++++++++++++ src/interfaces/libpq/fe-secure.c | 1469 ++---------------------------- src/interfaces/libpq/libpq-int.h | 37 +- src/interfaces/libpq/win32.mak | 12 +- src/tools/msvc/Mkvcbuild.pm | 12 + src/tools/msvc/Solution.pm | 4 +- src/tools/msvc/config_default.pl | 2 +- 26 files changed, 2771 insertions(+), 2417 deletions(-)
В списке pgsql-committers по дате отправления: