static void BackendInitialize(ClientSocket *client_sock, CAC_state cac);
static int ProcessSSLStartup(Port *port);
-static int ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done);
+static int ProcessStartupPacket(Port *port);
static void ProcessCancelRequestPacket(Port *port, void *pkt, int pktlen);
static void SendNegotiateProtocolVersion(List *unrecognized_protocol_options);
static void process_startup_packet_die(SIGNAL_ARGS);
* packet).
*/
if (status == STATUS_OK)
- status = ProcessStartupPacket(port, false, false);
+ status = ProcessStartupPacket(port);
/*
* If we're going to reject the connection due to database state, say so
* send anything to the client, which would typically be appropriate
* if we detect a communications failure.)
*
- * Set ssl_done and/or gss_done when negotiation of an encrypted layer
- * (currently, TLS or GSSAPI) is completed. A successful negotiation of either
- * encryption layer sets both flags, but a rejected negotiation sets only the
- * flag for that layer, since the client may wish to try the other one. We
- * should make no assumption here about the order in which the client may make
- * requests.
*/
static int
-ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done)
+ProcessStartupPacket(Port *port)
{
int32 len;
char *buf = NULL;
ProtocolVersion proto;
MemoryContext oldcontext;
+ bool gss_done;
+ bool ssl_done;
+
+ /*
+ * Set ssl_done and/or gss_done when negotiation of an encrypted layer
+ * (currently, TLS or GSSAPI) is completed. A successful negotiation of
+ * either encryption layer sets both flags, but a rejected negotiation
+ * sets only the flag for that layer, since the client may wish to try the
+ * other one. We should make no assumption here about the order in which
+ * the client may make requests.
+ */
+ gss_done = false;
+ ssl_done = false;
retry:
pq_startmsgread();