diff options
author | Pavan Deolasee | 2018-07-31 06:00:01 +0000 |
---|---|---|
committer | Pavan Deolasee | 2018-07-31 07:07:49 +0000 |
commit | 3eceb70d92756deaf07ae416dd24540cb63c50fd (patch) | |
tree | 5b5acdcdb83ae4718a81b4bec08dd10703f25b24 | |
parent | c8b470c1fbf442a0f9bf23d53f127adfe9a2d1cc (diff) |
Ensure that bad protocol ERROR message is sent to the frontend
In case of receiving bad protocol messages received by the GTM proxy, let
the client know about the error messages.
-rw-r--r-- | src/gtm/proxy/proxy_main.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/gtm/proxy/proxy_main.c b/src/gtm/proxy/proxy_main.c index 8db81b1e3c..ba976eb938 100644 --- a/src/gtm/proxy/proxy_main.c +++ b/src/gtm/proxy/proxy_main.c @@ -1177,6 +1177,9 @@ GTMProxy_ThreadMain(void *argp) */ if (conninfo->con_disconnected) { + EmitErrorReport(conninfo->con_port); + if (conninfo->con_port->sock > 0) + StreamClose(conninfo->con_port->sock); GTMProxy_ThreadRemoveConnection(thrinfo, conninfo); pfree(conninfo); ii--; @@ -2329,8 +2332,6 @@ GTMProxy_HandshakeConnection(GTMProxy_ConnectionInfo *conninfo) if (startup_type != 'A') { conninfo->con_disconnected = true; - if (conninfo->con_port->sock > 0) - StreamClose(conninfo->con_port->sock); ereport(ERROR, (EPROTO, errmsg("Expecting a startup message, but received %c", @@ -2347,8 +2348,6 @@ GTMProxy_HandshakeConnection(GTMProxy_ConnectionInfo *conninfo) if (pq_getmessage(conninfo->con_port, &inBuf, 0)) { conninfo->con_disconnected = true; - if (conninfo->con_port->sock > 0) - StreamClose(conninfo->con_port->sock); ereport(ERROR, (EPROTO, errmsg("Expecting PGXC Node ID, but received EOF"))); |