Ensure socket is closed
@@ -376,6 +376,8 @@ static void remote_sasl_process_outcome(pn_transport_t *transport)
//only consider complete if failed; if successful wait for the open frame
if (impl->outcome != PN_SASL_OK && !notify_upstream(impl, DOWNSTREAM_OUTCOME_RECEIVED)) {
pnx_sasl_set_desired_state(transport, SASL_ERROR);
+ pn_transport_close_tail(transport);
+ pn_transport_close_head(transport);
}
}
}
@@ -641,6 +643,8 @@ void qdr_handle_authentication_service_connection_event(pn_event_t *e)
//close downstream connection
pn_connection_close(conn);
+ pn_transport_close_tail(transport);
+ pn_transport_close_head(transport);
} else if (pn_event_type(e) == PN_CONNECTION_REMOTE_CLOSE) {
qd_log(auth_service_log, QD_LOG_DEBUG, "authentication service closed connection");
pn_connection_close(conn);
