diff options
author | Daiki Ueno <dueno@redhat.com> | 2020-03-24 17:51:56 +0100 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2020-05-12 11:12:05 +0200 |
commit | bb3e18e90697cfb2a583aab62aa3ae2b4552b974 (patch) | |
tree | f022eaec6be2d67dbc64a475795301a30b4f7a1e /lib/alert.c | |
parent | 0958603e5a827468f2d8a7b8b6e662fb9d3a7909 (diff) | |
download | gnutls-tmp-quic.tar.gz |
alert: add callback to intercept alert messagestmp-quic
This adds gnutls_alert_set_read_function(), to allow QUIC
implementations to be notified when an alert message is sent.
Signed-off-by: Daiki Ueno <dueno@redhat.com>
Diffstat (limited to 'lib/alert.c')
-rw-r--r-- | lib/alert.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/alert.c b/lib/alert.c index cfd1205d01..7efc0a5af5 100644 --- a/lib/alert.c +++ b/lib/alert.c @@ -165,6 +165,22 @@ gnutls_alert_send(gnutls_session_t session, gnutls_alert_level_t level, _gnutls_record_log("REC: Sending Alert[%d|%d] - %s\n", data[0], data[1], name); + if (session->internals.a_read_func) { + record_parameters_st *params; + + ret = _gnutls_epoch_get(session, EPOCH_WRITE_CURRENT, ¶ms); + if (ret < 0) + return gnutls_assert_val(ret); + ret = session->internals.a_read_func(session, + params->write.level, + level, + desc); + if (ret < 0) + return gnutls_assert_val(ret); + + return ret; + } + if ((ret = _gnutls_send_int(session, GNUTLS_ALERT, -1, EPOCH_WRITE_CURRENT, data, 2, |