diff options
author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2021-10-31 22:38:44 +0900 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2021-11-01 15:54:24 +0100 |
commit | e05c08687f6e1ef930a1d9aac127147573550a1a (patch) | |
tree | 86350c0b918449f912d2336b4eb9bca318c87af9 | |
parent | 407392b424e16311645f0f77b0f5d329055b21c4 (diff) | |
download | curl-e05c08687f6e1ef930a1d9aac127147573550a1a.tar.gz |
ngtcp2: specify the missing required callback functions
Closes #7929
-rw-r--r-- | lib/vquic/ngtcp2.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/vquic/ngtcp2.c b/lib/vquic/ngtcp2.c index 6f15ceda0..2b0f7dbed 100644 --- a/lib/vquic/ngtcp2.c +++ b/lib/vquic/ngtcp2.c @@ -647,6 +647,20 @@ static int cb_extend_max_stream_data(ngtcp2_conn *tconn, int64_t stream_id, return 0; } +static void cb_rand(uint8_t *dest, size_t destlen, + const ngtcp2_rand_ctx *rand_ctx) +{ + CURLcode result; + (void)rand_ctx; + + result = Curl_rand(NULL, dest, destlen); + if(result) { + /* cb_rand is only used for non-cryptographic context. If Curl_rand + failed, just fill 0 and call it *random*. */ + memset(dest, 0, destlen); + } +} + static int cb_get_new_connection_id(ngtcp2_conn *tconn, ngtcp2_cid *cid, uint8_t *token, size_t cidlen, void *user_data) @@ -684,7 +698,7 @@ static ngtcp2_callbacks ng_callbacks = { ngtcp2_crypto_recv_retry_cb, cb_extend_max_local_streams_bidi, NULL, /* extend_max_local_streams_uni */ - NULL, /* rand */ + cb_rand, cb_get_new_connection_id, NULL, /* remove_connection_id */ ngtcp2_crypto_update_key_cb, /* update_key */ @@ -702,7 +716,7 @@ static ngtcp2_callbacks ng_callbacks = { NULL, /* recv_datagram */ NULL, /* ack_datagram */ NULL, /* lost_datagram */ - NULL, /* get_path_challenge_data */ + ngtcp2_crypto_get_path_challenge_data_cb, cb_stream_stop_sending }; |