From 19b7a264af86015158b935abd84b966cea461078 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> Date: Tue, 26 Feb 2019 23:37:50 +0900 Subject: [PATCH] Buffer path as well as packet data --- examples/client.cc | 33 +++++++++-------- examples/client.h | 6 ++-- examples/server.cc | 44 +++++++++++++---------- examples/server.h | 6 ++-- lib/includes/ngtcp2/ngtcp2.h | 3 +- lib/ngtcp2_conn.c | 68 ++++++++++++++++++++---------------- lib/ngtcp2_pkt.c | 7 ++-- lib/ngtcp2_pkt.h | 10 ++++-- tests/ngtcp2_conn_test.c | 27 +++++++------- 9 files changed, 116 insertions(+), 88 deletions(-) diff --git a/examples/client.cc b/examples/client.cc index bcd3f24f..4e255ecf 100644 --- a/examples/client.cc +++ b/examples/client.cc @@ -1202,10 +1202,10 @@ int Client::feed_data(const sockaddr *sa, socklen_t salen, uint8_t *data, size_t datalen) { int rv; + auto path = ngtcp2_path{ + {local_addr_.len, reinterpret_cast<uint8_t *>(&local_addr_.su)}, + {salen, const_cast<uint8_t *>(reinterpret_cast<const uint8_t *>(sa))}}; if (ngtcp2_conn_get_handshake_completed(conn_)) { - auto path = ngtcp2_path{ - {local_addr_.len, reinterpret_cast<uint8_t *>(&local_addr_.su)}, - {salen, const_cast<uint8_t *>(reinterpret_cast<const uint8_t *>(sa))}}; rv = ngtcp2_conn_read_pkt(conn_, &path, data, datalen, util::timestamp(loop_)); if (rv != 0) { @@ -1213,16 +1213,16 @@ int Client::feed_data(const sockaddr *sa, socklen_t salen, uint8_t *data, disconnect(rv); return -1; } - } else { - return do_handshake(data, datalen); + return 0; } - return 0; + return do_handshake(&path, data, datalen); } -int Client::do_handshake_read_once(const uint8_t *data, size_t datalen) { - auto rv = - ngtcp2_conn_read_handshake(conn_, data, datalen, util::timestamp(loop_)); +int Client::do_handshake_read_once(const ngtcp2_path *path, const uint8_t *data, + size_t datalen) { + auto rv = ngtcp2_conn_read_handshake(conn_, path, data, datalen, + util::timestamp(loop_)); if (rv < 0) { std::cerr << "ngtcp2_conn_read_handshake: " << ngtcp2_strerror(rv) << std::endl; @@ -1261,7 +1261,8 @@ ssize_t Client::do_handshake_write_once() { return nwrite; } -int Client::do_handshake(const uint8_t *data, size_t datalen) { +int Client::do_handshake(const ngtcp2_path *path, const uint8_t *data, + size_t datalen) { ssize_t nwrite; if (sendbuf_.size() > 0) { @@ -1271,13 +1272,15 @@ int Client::do_handshake(const uint8_t *data, size_t datalen) { } } - auto rv = do_handshake_read_once(data, datalen); - if (rv != 0) { - return rv; + if (datalen) { + auto rv = do_handshake_read_once(path, data, datalen); + if (rv != 0) { + return rv; + } } // For 0-RTT - rv = write_0rtt_streams(); + auto rv = write_0rtt_streams(); if (rv != 0) { return rv; } @@ -1357,7 +1360,7 @@ int Client::on_write(bool retransmit) { } if (!ngtcp2_conn_get_handshake_completed(conn_)) { - auto rv = do_handshake(nullptr, 0); + auto rv = do_handshake(nullptr, nullptr, 0); schedule_retransmit(); return rv; } diff --git a/examples/client.h b/examples/client.h index dd8baeb5..f74fe5a0 100644 --- a/examples/client.h +++ b/examples/client.h @@ -162,8 +162,10 @@ public: int on_write_0rtt_stream(uint64_t stream_id, uint8_t fin, Buffer &data); int feed_data(const sockaddr *sa, socklen_t salen, uint8_t *data, size_t datalen); - int do_handshake(const uint8_t *data, size_t datalen); - int do_handshake_read_once(const uint8_t *data, size_t datalen); + int do_handshake(const ngtcp2_path *path, const uint8_t *data, + size_t datalen); + int do_handshake_read_once(const ngtcp2_path *path, const uint8_t *data, + size_t datalen); ssize_t do_handshake_write_once(); void schedule_retransmit(); diff --git a/examples/server.cc b/examples/server.cc index 1b29e11d..0bcd6ff6 100644 --- a/examples/server.cc +++ b/examples/server.cc @@ -1425,9 +1425,10 @@ ssize_t Handler::hp_mask(uint8_t *dest, size_t destlen, const uint8_t *key, samplelen); } -int Handler::do_handshake_read_once(const uint8_t *data, size_t datalen) { - auto rv = - ngtcp2_conn_read_handshake(conn_, data, datalen, util::timestamp(loop_)); +int Handler::do_handshake_read_once(const ngtcp2_path *path, + const uint8_t *data, size_t datalen) { + auto rv = ngtcp2_conn_read_handshake(conn_, path, data, datalen, + util::timestamp(loop_)); if (rv != 0) { std::cerr << "ngtcp2_conn_read_handshake: " << ngtcp2_strerror(rv) << std::endl; @@ -1463,10 +1464,13 @@ ssize_t Handler::do_handshake_write_once() { return nwrite; } -int Handler::do_handshake(const uint8_t *data, size_t datalen) { - auto rv = do_handshake_read_once(data, datalen); - if (rv != 0) { - return rv; +int Handler::do_handshake(const ngtcp2_path *path, const uint8_t *data, + size_t datalen) { + if (datalen) { + auto rv = do_handshake_read_once(path, data, datalen); + if (rv != 0) { + return rv; + } } if (sendbuf_.size() > 0) { @@ -1501,12 +1505,13 @@ int Handler::feed_data(Endpoint &ep, const sockaddr *sa, socklen_t salen, uint8_t *data, size_t datalen) { int rv; + auto path = ngtcp2_path{ + {ep.addr.len, + const_cast<uint8_t *>(reinterpret_cast<const uint8_t *>(&ep.addr.su)), + &ep}, + {salen, const_cast<uint8_t *>(reinterpret_cast<const uint8_t *>(sa))}}; + if (ngtcp2_conn_get_handshake_completed(conn_)) { - auto path = ngtcp2_path{ - {ep.addr.len, - const_cast<uint8_t *>(reinterpret_cast<const uint8_t *>(&ep.addr.su)), - &ep}, - {salen, const_cast<uint8_t *>(reinterpret_cast<const uint8_t *>(sa))}}; rv = ngtcp2_conn_read_pkt(conn_, &path, data, datalen, util::timestamp(loop_)); if (rv != 0) { @@ -1517,12 +1522,13 @@ int Handler::feed_data(Endpoint &ep, const sockaddr *sa, socklen_t salen, } return handle_error(rv); } - } else { - // TODO Should we check that path is consistent during handshake? - rv = do_handshake(data, datalen); - if (rv != 0) { - return handle_error(rv); - } + + return 0; + } + + rv = do_handshake(&path, data, datalen); + if (rv != 0) { + return handle_error(rv); } return 0; @@ -1568,7 +1574,7 @@ int Handler::on_write(bool retransmit) { } if (!ngtcp2_conn_get_handshake_completed(conn_)) { - rv = do_handshake(nullptr, 0); + rv = do_handshake(nullptr, nullptr, 0); if (rv == NETWORK_ERR_SEND_NON_FATAL) { schedule_retransmit(); } diff --git a/examples/server.h b/examples/server.h index 2757ccdc..6790977f 100644 --- a/examples/server.h +++ b/examples/server.h @@ -182,9 +182,11 @@ public: int write_stream_data(Stream &stream, int fin, Buffer &data); int feed_data(Endpoint &ep, const sockaddr *sa, socklen_t salen, uint8_t *data, size_t datalen); - int do_handshake_read_once(const uint8_t *data, size_t datalen); + int do_handshake_read_once(const ngtcp2_path *path, const uint8_t *data, + size_t datalen); ssize_t do_handshake_write_once(); - int do_handshake(const uint8_t *data, size_t datalen); + int do_handshake(const ngtcp2_path *path, const uint8_t *data, + size_t datalen); void schedule_retransmit(); void signal_write(); diff --git a/lib/includes/ngtcp2/ngtcp2.h b/lib/includes/ngtcp2/ngtcp2.h index 823587cd..8aa78111 100644 --- a/lib/includes/ngtcp2/ngtcp2.h +++ b/lib/includes/ngtcp2/ngtcp2.h @@ -1540,7 +1540,7 @@ NGTCP2_EXTERN void ngtcp2_conn_del(ngtcp2_conn *conn); * * `ngtcp2_conn_read_handshake` performs QUIC cryptographic handshake * by reading given data. |pkt| points to the buffer to read and - * |pktlen| is the length of the buffer. + * |pktlen| is the length of the buffer. |path| is the network path. * * The application should call `ngtcp2_conn_write_handshake` (or * `ngtcp2_conn_client_write_handshake` for client session) to make @@ -1558,6 +1558,7 @@ NGTCP2_EXTERN void ngtcp2_conn_del(ngtcp2_conn *conn); * negative error codes: (TBD). */ NGTCP2_EXTERN int ngtcp2_conn_read_handshake(ngtcp2_conn *conn, + const ngtcp2_path *path, const uint8_t *pkt, size_t pktlen, ngtcp2_tstamp ts); diff --git a/lib/ngtcp2_conn.c b/lib/ngtcp2_conn.c index f97e0358..8ecebd03 100644 --- a/lib/ngtcp2_conn.c +++ b/lib/ngtcp2_conn.c @@ -3605,8 +3605,8 @@ static void conn_recv_max_data(ngtcp2_conn *conn, const ngtcp2_max_data *fr) { * Out of memory. */ static int conn_buffer_pkt(ngtcp2_conn *conn, ngtcp2_pkt_chain **ppc, - const uint8_t *pkt, size_t pktlen, - ngtcp2_tstamp ts) { + const ngtcp2_path *path, const uint8_t *pkt, + size_t pktlen, ngtcp2_tstamp ts) { int rv; ngtcp2_pkt_chain *pc; size_t i; @@ -3618,7 +3618,7 @@ static int conn_buffer_pkt(ngtcp2_conn *conn, ngtcp2_pkt_chain **ppc, return 0; } - rv = ngtcp2_pkt_chain_new(&pc, pkt, pktlen, ts, conn->mem); + rv = ngtcp2_pkt_chain_new(&pc, path, pkt, pktlen, ts, conn->mem); if (rv != 0) { return rv; } @@ -3630,9 +3630,10 @@ static int conn_buffer_pkt(ngtcp2_conn *conn, ngtcp2_pkt_chain **ppc, /* * conn_buffer_protected_pkt buffers a protected packet |pkt| whose - * length is |pktlen|. This function is called when a protected - * packet is received, but the local endpoint has not established - * cryptographic context (e.g., Handshake packet is lost or delayed). + * length is |pktlen|. The packet is obtained via network |path|. + * This function is called when a protected packet is received, but + * the local endpoint has not established cryptographic context (e.g., + * Handshake packet is lost or delayed). * * This function also buffers 0-RTT Protected packet if it arrives * before Initial packet. @@ -3646,15 +3647,16 @@ static int conn_buffer_pkt(ngtcp2_conn *conn, ngtcp2_pkt_chain **ppc, * NGTCP2_ERR_NOMEM * Out of memory. */ -static int conn_buffer_protected_pkt(ngtcp2_conn *conn, const uint8_t *pkt, - size_t pktlen, ngtcp2_tstamp ts) { - return conn_buffer_pkt(conn, &conn->buffed_rx_ppkts, pkt, pktlen, ts); +static int conn_buffer_protected_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, + const uint8_t *pkt, size_t pktlen, + ngtcp2_tstamp ts) { + return conn_buffer_pkt(conn, &conn->buffed_rx_ppkts, path, pkt, pktlen, ts); } /* * conn_buffer_handshake_pkt buffers Handshake packet which comes * before Initial packet, in other words, before handshake rx key is - * generated. + * generated. The packet is obtained via network |path|. * * This function returns 0 if it succeeds, or one of the following * negative error codes: @@ -3662,9 +3664,10 @@ static int conn_buffer_protected_pkt(ngtcp2_conn *conn, const uint8_t *pkt, * NGTCP2_ERR_NOMEM * Out of memory. */ -static int conn_buffer_handshake_pkt(ngtcp2_conn *conn, const uint8_t *pkt, - size_t pktlen, ngtcp2_tstamp ts) { - return conn_buffer_pkt(conn, &conn->buffed_rx_hs_pkts, pkt, pktlen, ts); +static int conn_buffer_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, + const uint8_t *pkt, size_t pktlen, + ngtcp2_tstamp ts) { + return conn_buffer_pkt(conn, &conn->buffed_rx_hs_pkts, path, pkt, pktlen, ts); } /* @@ -4076,8 +4079,10 @@ static ssize_t conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, * In addition to the above error codes, error codes returned from * conn_recv_pkt are also returned. */ -static ssize_t conn_recv_handshake_pkt(ngtcp2_conn *conn, const uint8_t *pkt, - size_t pktlen, ngtcp2_tstamp ts) { +static ssize_t conn_recv_handshake_pkt(ngtcp2_conn *conn, + const ngtcp2_path *path, + const uint8_t *pkt, size_t pktlen, + ngtcp2_tstamp ts) { ssize_t nread; ngtcp2_pkt_hd hd; ngtcp2_max_frame mfr; @@ -4122,7 +4127,7 @@ static ssize_t conn_recv_handshake_pkt(ngtcp2_conn *conn, const uint8_t *pkt, ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, "buffering Short packet len=%zu", pktlen); - rv = conn_buffer_protected_pkt(conn, pkt, pktlen, ts); + rv = conn_buffer_protected_pkt(conn, path, pkt, pktlen, ts); if (rv != 0) { assert(ngtcp2_err_is_fatal(rv)); return rv; @@ -4249,7 +4254,7 @@ static ssize_t conn_recv_handshake_pkt(ngtcp2_conn *conn, const uint8_t *pkt, ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, "buffering 0-RTT Protected packet len=%zu", pktlen); - rv = conn_buffer_protected_pkt(conn, pkt, pktlen, ts); + rv = conn_buffer_protected_pkt(conn, path, pkt, pktlen, ts); if (rv != 0) { assert(ngtcp2_err_is_fatal(rv)); return rv; @@ -4288,7 +4293,7 @@ static ssize_t conn_recv_handshake_pkt(ngtcp2_conn *conn, const uint8_t *pkt, ngtcp2_log_info(&conn->log, NGTCP2_LOG_EVENT_CON, "buffering Handshake packet len=%zu", pktlen); - rv = conn_buffer_handshake_pkt(conn, pkt, pktlen, ts); + rv = conn_buffer_handshake_pkt(conn, path, pkt, pktlen, ts); if (rv != 0) { assert(ngtcp2_err_is_fatal(rv)); return rv; @@ -4509,13 +4514,14 @@ static ssize_t conn_recv_handshake_pkt(ngtcp2_conn *conn, const uint8_t *pkt, * This function returns the same error code returned by * conn_recv_handshake_pkt. */ -static int conn_recv_handshake_cpkt(ngtcp2_conn *conn, const uint8_t *pkt, - size_t pktlen, ngtcp2_tstamp ts) { +static int conn_recv_handshake_cpkt(ngtcp2_conn *conn, const ngtcp2_path *path, + const uint8_t *pkt, size_t pktlen, + ngtcp2_tstamp ts) { ssize_t nread; size_t origlen = pktlen; while (pktlen) { - nread = conn_recv_handshake_pkt(conn, pkt, pktlen, ts); + nread = conn_recv_handshake_pkt(conn, path, pkt, pktlen, ts); if (nread < 0) { if (ngtcp2_err_is_fatal((int)nread)) { return (int)nread; @@ -6234,10 +6240,8 @@ static int conn_process_buffered_protected_pkt(ngtcp2_conn *conn, for (ppc = &conn->buffed_rx_ppkts; *ppc;) { next = (*ppc)->next; - /* TODO Assume that protected packet is received in the expected - path. */ - nread = - conn_recv_pkt(conn, &conn->dcid.path, (*ppc)->pkt, (*ppc)->pktlen, ts); + nread = conn_recv_pkt(conn, &(*ppc)->path.path, (*ppc)->pkt, (*ppc)->pktlen, + ts); ngtcp2_pkt_chain_del(*ppc, conn->mem); *ppc = next; if (nread < 0) { @@ -6265,7 +6269,8 @@ static int conn_process_buffered_handshake_pkt(ngtcp2_conn *conn, for (ppc = &conn->buffed_rx_hs_pkts; *ppc;) { next = (*ppc)->next; - nread = conn_recv_handshake_pkt(conn, (*ppc)->pkt, (*ppc)->pktlen, ts); + nread = conn_recv_handshake_pkt(conn, &(*ppc)->path.path, (*ppc)->pkt, + (*ppc)->pktlen, ts); ngtcp2_pkt_chain_del(*ppc, conn->mem); *ppc = next; if (nread < 0) { @@ -6424,8 +6429,9 @@ static size_t conn_server_hs_tx_left(ngtcp2_conn *conn) { return conn->hs_recved * 3 - conn->hs_sent; } -int ngtcp2_conn_read_handshake(ngtcp2_conn *conn, const uint8_t *pkt, - size_t pktlen, ngtcp2_tstamp ts) { +int ngtcp2_conn_read_handshake(ngtcp2_conn *conn, const ngtcp2_path *path, + const uint8_t *pkt, size_t pktlen, + ngtcp2_tstamp ts) { int rv; ngtcp2_pktns *hs_pktns = &conn->hs_pktns; @@ -6441,7 +6447,7 @@ int ngtcp2_conn_read_handshake(ngtcp2_conn *conn, const uint8_t *pkt, /* TODO Better to log something when we ignore input */ return 0; case NGTCP2_CS_CLIENT_WAIT_HANDSHAKE: - rv = conn_recv_handshake_cpkt(conn, pkt, pktlen, ts); + rv = conn_recv_handshake_cpkt(conn, path, pkt, pktlen, ts); if (rv < 0) { return rv; } @@ -6460,7 +6466,7 @@ int ngtcp2_conn_read_handshake(ngtcp2_conn *conn, const uint8_t *pkt, return 0; case NGTCP2_CS_SERVER_INITIAL: - rv = conn_recv_handshake_cpkt(conn, pkt, pktlen, ts); + rv = conn_recv_handshake_cpkt(conn, path, pkt, pktlen, ts); if (rv < 0) { return rv; } @@ -6483,7 +6489,7 @@ int ngtcp2_conn_read_handshake(ngtcp2_conn *conn, const uint8_t *pkt, return 0; case NGTCP2_CS_SERVER_WAIT_HANDSHAKE: - rv = conn_recv_handshake_cpkt(conn, pkt, pktlen, ts); + rv = conn_recv_handshake_cpkt(conn, path, pkt, pktlen, ts); if (rv < 0) { return rv; } diff --git a/lib/ngtcp2_pkt.c b/lib/ngtcp2_pkt.c index 63f354a1..adb36dcc 100644 --- a/lib/ngtcp2_pkt.c +++ b/lib/ngtcp2_pkt.c @@ -33,13 +33,16 @@ #include "ngtcp2_cid.h" #include "ngtcp2_mem.h" -int ngtcp2_pkt_chain_new(ngtcp2_pkt_chain **ppc, const uint8_t *pkt, - size_t pktlen, ngtcp2_tstamp ts, ngtcp2_mem *mem) { +int ngtcp2_pkt_chain_new(ngtcp2_pkt_chain **ppc, const ngtcp2_path *path, + const uint8_t *pkt, size_t pktlen, ngtcp2_tstamp ts, + ngtcp2_mem *mem) { *ppc = ngtcp2_mem_malloc(mem, sizeof(ngtcp2_pkt_chain) + pktlen); if (*ppc == NULL) { return NGTCP2_ERR_NOMEM; } + ngtcp2_path_storage_init(&(*ppc)->path, path->local.addr, path->local.len, + path->remote.addr, path->remote.len); (*ppc)->next = NULL; (*ppc)->pkt = (uint8_t *)(*ppc) + sizeof(ngtcp2_pkt_chain); (*ppc)->pktlen = pktlen; diff --git a/lib/ngtcp2_pkt.h b/lib/ngtcp2_pkt.h index f7863f28..dc672458 100644 --- a/lib/ngtcp2_pkt.h +++ b/lib/ngtcp2_pkt.h @@ -88,6 +88,7 @@ typedef struct ngtcp2_pkt_chain ngtcp2_pkt_chain; * ngtcp2_pkt_chain is the chain of incoming packets buffered. */ struct ngtcp2_pkt_chain { + ngtcp2_path_storage path; ngtcp2_pkt_chain *next; uint8_t *pkt; size_t pktlen; @@ -97,7 +98,9 @@ struct ngtcp2_pkt_chain { /* * ngtcp2_pkt_chain_new allocates ngtcp2_pkt_chain objects, and * assigns its pointer to |*ppc|. The content of buffer pointed by - * |pkt| of length |pktlen| is copied into |*ppc|. + * |pkt| of length |pktlen| is copied into |*ppc|. The packet is + * obtained via the network |path|. The values of path->local and + * path->remote are copied into |*ppc|. * * This function returns 0 if it succeeds, or one of the following * negative error codes: @@ -105,8 +108,9 @@ struct ngtcp2_pkt_chain { * NGTCP2_ERR_NOMEM * Out of memory. */ -int ngtcp2_pkt_chain_new(ngtcp2_pkt_chain **ppc, const uint8_t *pkt, - size_t pktlen, ngtcp2_tstamp ts, ngtcp2_mem *mem); +int ngtcp2_pkt_chain_new(ngtcp2_pkt_chain **ppc, const ngtcp2_path *path, + const uint8_t *pkt, size_t pktlen, ngtcp2_tstamp ts, + ngtcp2_mem *mem); /* * ngtcp2_pkt_chain_del deallocates |pc|. It also frees the memory diff --git a/tests/ngtcp2_conn_test.c b/tests/ngtcp2_conn_test.c index 95843bef..c65d7d1e 100644 --- a/tests/ngtcp2_conn_test.c +++ b/tests/ngtcp2_conn_test.c @@ -2078,7 +2078,8 @@ void test_ngtcp2_conn_recv_retry(void) { CU_ASSERT(spktlen > 0); - rv = ngtcp2_conn_read_handshake(conn, buf, (size_t)spktlen, ++t); + rv = + ngtcp2_conn_read_handshake(conn, &null_path, buf, (size_t)spktlen, ++t); CU_ASSERT(0 == rv); @@ -2113,7 +2114,7 @@ void test_ngtcp2_conn_recv_retry(void) { CU_ASSERT(spktlen > 0); - rv = ngtcp2_conn_read_handshake(conn, buf, (size_t)spktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, (size_t)spktlen, ++t); CU_ASSERT(0 == rv); @@ -2153,7 +2154,7 @@ void test_ngtcp2_conn_recv_retry(void) { CU_ASSERT(spktlen > 0); - rv = ngtcp2_conn_read_handshake(conn, buf, (size_t)spktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, (size_t)spktlen, ++t); CU_ASSERT(0 == rv); @@ -2306,7 +2307,7 @@ void test_ngtcp2_conn_handshake(void) { conn, buf, sizeof(buf), NGTCP2_PKT_INITIAL, &rcid, ngtcp2_conn_get_dcid(conn), ++pkt_num, conn->version, &fr); - rv = ngtcp2_conn_read_handshake(conn, buf, pktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, pktlen, ++t); CU_ASSERT(0 == rv); @@ -2346,7 +2347,7 @@ void test_ngtcp2_conn_handshake_error(void) { conn, buf, sizeof(buf), NGTCP2_PKT_INITIAL, &conn->oscid, ngtcp2_conn_get_dcid(conn), ++pkt_num, conn->version, &fr); - rv = ngtcp2_conn_read_handshake(conn, buf, pktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, pktlen, ++t); CU_ASSERT(NGTCP2_ERR_CRYPTO == rv); @@ -2366,7 +2367,7 @@ void test_ngtcp2_conn_handshake_error(void) { conn, buf, sizeof(buf), NGTCP2_PKT_INITIAL, &rcid, ngtcp2_conn_get_dcid(conn), ++pkt_num, conn->version, &fr); - rv = ngtcp2_conn_read_handshake(conn, buf, pktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, pktlen, ++t); CU_ASSERT(NGTCP2_ERR_CRYPTO == rv); @@ -3315,7 +3316,7 @@ void test_ngtcp2_conn_recv_early_data(void) { conn, buf, sizeof(buf), NGTCP2_PKT_INITIAL, &rcid, ngtcp2_conn_get_dcid(conn), ++pkt_num, conn->version, &fr); - rv = ngtcp2_conn_read_handshake(conn, buf, pktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, pktlen, ++t); CU_ASSERT(0 == rv); @@ -3335,7 +3336,7 @@ void test_ngtcp2_conn_recv_early_data(void) { conn, buf, sizeof(buf), NGTCP2_PKT_0RTT_PROTECTED, &rcid, ngtcp2_conn_get_dcid(conn), ++pkt_num, conn->version, &fr); - rv = ngtcp2_conn_read_handshake(conn, buf, pktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, pktlen, ++t); CU_ASSERT(0 == rv); @@ -3365,7 +3366,7 @@ void test_ngtcp2_conn_recv_early_data(void) { conn, buf, sizeof(buf), NGTCP2_PKT_0RTT_PROTECTED, &rcid, ngtcp2_conn_get_dcid(conn), ++pkt_num, conn->version, &fr); - rv = ngtcp2_conn_read_handshake(conn, buf, pktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, pktlen, ++t); CU_ASSERT(0 == rv); @@ -3383,7 +3384,7 @@ void test_ngtcp2_conn_recv_early_data(void) { conn, buf, sizeof(buf), NGTCP2_PKT_INITIAL, &rcid, ngtcp2_conn_get_dcid(conn), ++pkt_num, conn->version, &fr); - rv = ngtcp2_conn_read_handshake(conn, buf, pktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, pktlen, ++t); CU_ASSERT(0 == rv); @@ -3423,7 +3424,7 @@ void test_ngtcp2_conn_recv_early_data(void) { conn, buf + pktlen, sizeof(buf) - pktlen, NGTCP2_PKT_0RTT_PROTECTED, &rcid, ngtcp2_conn_get_dcid(conn), ++pkt_num, conn->version, &fr); - rv = ngtcp2_conn_read_handshake(conn, buf, pktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, pktlen, ++t); CU_ASSERT(0 == rv); @@ -3468,7 +3469,7 @@ void test_ngtcp2_conn_recv_compound_pkt(void) { conn, buf + pktlen, sizeof(buf) - pktlen, NGTCP2_PKT_INITIAL, &conn->oscid, ngtcp2_conn_get_dcid(conn), ++pkt_num, conn->version, &fr); - rv = ngtcp2_conn_read_handshake(conn, buf, pktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, pktlen, ++t); CU_ASSERT(0 == rv); @@ -3558,7 +3559,7 @@ void test_ngtcp2_conn_pkt_payloadlen(void) { write_pkt_payloadlen(buf, dcid, &conn->oscid, payloadlen + 1); /* The incoming packet should be ignored */ - rv = ngtcp2_conn_read_handshake(conn, buf, pktlen, ++t); + rv = ngtcp2_conn_read_handshake(conn, &null_path, buf, pktlen, ++t); CU_ASSERT(0 == rv); CU_ASSERT(NGTCP2_CS_SERVER_INITIAL == conn->state); -- GitLab