From fbfeceb25362097c5552751427151a07d23b8241 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 17 Apr 2017 12:51:40 -0400 Subject: Back-patch 9.4-era SSL renegotiation code into 9.3 and 9.2. This back-patches 9.4 commits 31cf1a1a4, 86029b31e, and 36a3be654 into the prior branches, along with relevant bits of b1aebbb6a and 7ce2a45ae. We had foreseen doing this once the code was proven, but that never did happen, probably because we got sufficiently fed up with renegotiation to disable it by default. However, we have to do something now because the prior code doesn't even compile against OpenSSL 1.1. Per discussion, the best solution seems to be to make the older branches look like 9.4. Discussion: https://postgr.es/m/20047.1492305247@sss.pgh.pa.us --- src/backend/tcop/postgres.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/backend/tcop/postgres.c') diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 3ba3a0c6142..4c140ee3154 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -553,16 +553,22 @@ prepare_for_client_read(void) /* * client_read_ended -- get out of the client-input state + * + * This is called just after low-level reads. It must preserve errno! */ void client_read_ended(void) { if (DoingCommandRead) { + int save_errno = errno; + ImmediateInterruptOK = false; DisableNotifyInterrupt(); DisableCatchupInterrupt(); + + errno = save_errno; } } -- cgit v1.2.3