/* Returns 1 if channel is terminating or terminated. */
int ossl_quic_channel_is_term_any(const QUIC_CHANNEL *ch);
-QUIC_TERMINATE_CAUSE ossl_quic_channel_get_terminate_cause(const QUIC_CHANNEL *ch);
+const QUIC_TERMINATE_CAUSE *
+ossl_quic_channel_get_terminate_cause(const QUIC_CHANNEL *ch);
int ossl_quic_channel_is_terminating(const QUIC_CHANNEL *ch);
int ossl_quic_channel_is_terminated(const QUIC_CHANNEL *ch);
int ossl_quic_channel_is_active(const QUIC_CHANNEL *ch);
/* Returns 1 if the server is in any terminating or terminated state */
int ossl_quic_tserver_is_term_any(const QUIC_TSERVER *srv);
-QUIC_TERMINATE_CAUSE ossl_quic_tserver_get_terminate_cause(const QUIC_TSERVER *srv);
+const QUIC_TERMINATE_CAUSE *
+ossl_quic_tserver_get_terminate_cause(const QUIC_TSERVER *srv);
/* Returns 1 if the server is in a terminated state */
int ossl_quic_tserver_is_terminated(const QUIC_TSERVER *srv);
|| ossl_quic_channel_is_terminated(ch);
}
-QUIC_TERMINATE_CAUSE ossl_quic_channel_get_terminate_cause(const QUIC_CHANNEL *ch)
+const QUIC_TERMINATE_CAUSE *
+ossl_quic_channel_get_terminate_cause(const QUIC_CHANNEL *ch)
{
- return ch->terminate_cause;
+ return ossl_quic_channel_is_term_any(ch) ? &ch->terminate_cause : NULL;
}
int ossl_quic_channel_is_handshake_complete(const QUIC_CHANNEL *ch)
return ossl_quic_channel_is_term_any(srv->ch);
}
-QUIC_TERMINATE_CAUSE ossl_quic_tserver_get_terminate_cause(const QUIC_TSERVER *srv)
+const QUIC_TERMINATE_CAUSE *
+ossl_quic_tserver_get_terminate_cause(const QUIC_TSERVER *srv)
{
return ossl_quic_channel_get_terminate_cause(srv->ch);
}
int qtest_check_server_transport_err(QUIC_TSERVER *qtserv, uint64_t code)
{
- QUIC_TERMINATE_CAUSE cause;
+ const QUIC_TERMINATE_CAUSE *cause;
ossl_quic_tserver_tick(qtserv);
return 0;
cause = ossl_quic_tserver_get_terminate_cause(qtserv);
- if (!TEST_true(cause.remote)
- || !TEST_uint64_t_eq(cause.error_code, code))
+ if (!TEST_ptr(cause)
+ || !TEST_true(cause->remote)
+ || !TEST_uint64_t_eq(cause->error_code, code))
return 0;
return 1;