From 76659e8a8bdee4eb6264e6c2b83f8b455c43599e Mon Sep 17 00:00:00 2001 From: James M Snell Date: Sat, 6 Jan 2024 20:13:34 -0800 Subject: [PATCH] quic: fixup changes that were problematic on windows --- src/quic/data.cc | 8 ++++---- src/quic/data.h | 4 ++-- src/quic/preferredaddress.cc | 6 +++--- src/quic/preferredaddress.h | 10 +++++----- src/quic/session.cc | 8 ++++---- src/quic/session.h | 2 +- test/cctest/test_quic_error.cc | 16 +++++++++------- 7 files changed, 28 insertions(+), 26 deletions(-) diff --git a/src/quic/data.cc b/src/quic/data.cc index 37656dae81aa24..b01e10ad05707b 100644 --- a/src/quic/data.cc +++ b/src/quic/data.cc @@ -177,8 +177,8 @@ QuicError::QuicError(const ngtcp2_ccerr& error) ptr_(&error_) {} QuicError::operator bool() const { - if ((code() == NO_ERROR && type() == Type::TRANSPORT) || - ((code() == APP_NO_ERROR && type() == Type::APPLICATION))) { + if ((code() == QUIC_NO_ERROR && type() == Type::TRANSPORT) || + ((code() == QUIC_APP_NO_ERROR && type() == Type::APPLICATION))) { return false; } return true; @@ -323,9 +323,9 @@ QuicError QuicError::FromConnectionClose(ngtcp2_conn* session) { } QuicError QuicError::TRANSPORT_NO_ERROR = - QuicError::ForTransport(QuicError::NO_ERROR); + QuicError::ForTransport(QuicError::QUIC_NO_ERROR); QuicError QuicError::APPLICATION_NO_ERROR = - QuicError::ForApplication(QuicError::APP_NO_ERROR); + QuicError::ForApplication(QuicError::QUIC_APP_NO_ERROR); QuicError QuicError::VERSION_NEGOTIATION = QuicError::ForVersionNegotiation(); QuicError QuicError::IDLE_CLOSE = QuicError::ForIdleClose(); QuicError QuicError::INTERNAL_ERROR = diff --git a/src/quic/data.h b/src/quic/data.h index 6fd8d3a79ff700..ef36e248bbf562 100644 --- a/src/quic/data.h +++ b/src/quic/data.h @@ -74,8 +74,8 @@ class Store final : public MemoryRetainer { class QuicError final : public MemoryRetainer { public: - static constexpr error_code NO_ERROR = NGTCP2_NO_ERROR; - static constexpr error_code APP_NO_ERROR = 65280; + static constexpr error_code QUIC_NO_ERROR = NGTCP2_NO_ERROR; + static constexpr error_code QUIC_APP_NO_ERROR = 65280; enum class Type { TRANSPORT = NGTCP2_CCERR_TYPE_TRANSPORT, diff --git a/src/quic/preferredaddress.cc b/src/quic/preferredaddress.cc index 54292b793ffc2b..42788d4afc136b 100644 --- a/src/quic/preferredaddress.cc +++ b/src/quic/preferredaddress.cc @@ -143,14 +143,14 @@ void PreferredAddress::Set(ngtcp2_transport_params* params, Maybe PreferredAddress::tryGetPolicy( Environment* env, Local value) { if (value->IsUndefined()) { - return Just(PreferredAddress::Policy::USE); + return Just(PreferredAddress::Policy::USE_PREFERRED); } if (value->IsUint32()) { switch (value.As()->Value()) { case PREFERRED_ADDRESS_IGNORE: - return Just(Policy::IGNORE); + return Just(Policy::IGNORE_PREFERRED); case PREFERRED_ADDRESS_USE: - return Just(Policy::USE); + return Just(Policy::USE_PREFERRED); } } THROW_ERR_INVALID_ARG_VALUE(env, "invalid preferred address policy"); diff --git a/src/quic/preferredaddress.h b/src/quic/preferredaddress.h index 9f5b3f885df4f8..37003e2eb704c7 100644 --- a/src/quic/preferredaddress.h +++ b/src/quic/preferredaddress.h @@ -21,9 +21,9 @@ class PreferredAddress final { public: enum class Policy : uint32_t { // Ignore the server-advertised preferred address. - IGNORE, + IGNORE_PREFERRED, // Use the server-advertised preferred address. - USE, + USE_PREFERRED, }; static v8::Maybe tryGetPolicy(Environment* env, @@ -32,11 +32,11 @@ class PreferredAddress final { // The QUIC_* constants are expected to be exported out to be used on // the JavaScript side of the API. static constexpr auto PREFERRED_ADDRESS_USE = - static_cast(Policy::USE); + static_cast(Policy::USE_PREFERRED); static constexpr auto PREFERRED_ADDRESS_IGNORE = - static_cast(Policy::IGNORE); + static_cast(Policy::IGNORE_PREFERRED); static constexpr auto DEFAULT_PREFERRED_ADDRESS_POLICY = - static_cast(Policy::USE); + static_cast(Policy::USE_PREFERRED); static void Initialize(Environment* env, v8::Local target); diff --git a/src/quic/session.cc b/src/quic/session.cc index 91672e83e26749..c53e7f584470f3 100644 --- a/src/quic/session.cc +++ b/src/quic/session.cc @@ -226,7 +226,7 @@ bool SetOption(Environment* env, const v8::Local& object, const v8::Local& name) { Local value; - PreferredAddress::Policy policy = PreferredAddress::Policy::USE; + PreferredAddress::Policy policy = PreferredAddress::Policy::USE_PREFERRED; if (!object->Get(env->context(), name).ToLocal(&value) || !PreferredAddress::tryGetPolicy(env, value).To(&policy)) { return false; @@ -449,9 +449,9 @@ std::string Session::Options::ToString() const { auto policy = ([&] { switch (preferred_address_strategy) { - case PreferredAddress::Policy::USE: + case PreferredAddress::Policy::USE_PREFERRED: return "use"; - case PreferredAddress::Policy::IGNORE: + case PreferredAddress::Policy::IGNORE_PREFERRED: return "ignore"; } return ""; @@ -1463,7 +1463,7 @@ void Session::HandshakeConfirmed() { void Session::SelectPreferredAddress(PreferredAddress* preferredAddress) { if (config_.options.preferred_address_strategy == - PreferredAddress::Policy::IGNORE) { + PreferredAddress::Policy::IGNORE_PREFERRED) { Debug(this, "Ignoring preferred address"); return; } diff --git a/src/quic/session.h b/src/quic/session.h index 9dde18ec01c9cc..41a797dad6844d 100644 --- a/src/quic/session.h +++ b/src/quic/session.h @@ -106,7 +106,7 @@ class Session final : public AsyncWrap, private SessionTicket::AppData::Source { // By default a client session will use the preferred address advertised by // the the server. This option is only relevant for client sessions. PreferredAddress::Policy preferred_address_strategy = - PreferredAddress::Policy::USE; + PreferredAddress::Policy::USE_PREFERRED; TransportParams::Options transport_params = TransportParams::Options::kDefault; diff --git a/test/cctest/test_quic_error.cc b/test/cctest/test_quic_error.cc index 74c978615ce647..f342f8b9ebf060 100644 --- a/test/cctest/test_quic_error.cc +++ b/test/cctest/test_quic_error.cc @@ -9,22 +9,22 @@ using node::quic::QuicError; TEST(QuicError, NoError) { QuicError err; - CHECK_EQ(err.code(), QuicError::NO_ERROR); + CHECK_EQ(err.code(), QuicError::QUIC_NO_ERROR); CHECK_EQ(err.type(), QuicError::Type::TRANSPORT); CHECK_EQ(err.reason(), ""); CHECK_EQ(err, QuicError::TRANSPORT_NO_ERROR); CHECK(!err); QuicError err2("a reason"); - CHECK_EQ(err2.code(), QuicError::NO_ERROR); + CHECK_EQ(err2.code(), QuicError::QUIC_NO_ERROR); CHECK_EQ(err2.type(), QuicError::Type::TRANSPORT); CHECK_EQ(err2.reason(), "a reason"); // Equality check ignores the reason CHECK_EQ(err2, QuicError::TRANSPORT_NO_ERROR); - auto err3 = QuicError::ForTransport(QuicError::NO_ERROR); - CHECK_EQ(err3.code(), QuicError::NO_ERROR); + auto err3 = QuicError::ForTransport(QuicError::QUIC_NO_ERROR); + CHECK_EQ(err3.code(), QuicError::QUIC_NO_ERROR); CHECK_EQ(err3.type(), QuicError::Type::TRANSPORT); CHECK_EQ(err3.reason(), ""); CHECK_EQ(err3, QuicError::TRANSPORT_NO_ERROR); @@ -68,13 +68,15 @@ TEST(QuicError, NoError) { } TEST(QuicError, ApplicationNoError) { - CHECK_EQ(QuicError::APPLICATION_NO_ERROR.code(), QuicError::APP_NO_ERROR); + CHECK_EQ(QuicError::APPLICATION_NO_ERROR.code(), + QuicError::QUIC_APP_NO_ERROR); CHECK_EQ(QuicError::APPLICATION_NO_ERROR.type(), QuicError::Type::APPLICATION); CHECK_EQ(QuicError::APPLICATION_NO_ERROR.reason(), ""); - auto err = QuicError::ForApplication(QuicError::APP_NO_ERROR, "a reason"); - CHECK_EQ(err.code(), QuicError::APP_NO_ERROR); + auto err = + QuicError::ForApplication(QuicError::QUIC_APP_NO_ERROR, "a reason"); + CHECK_EQ(err.code(), QuicError::QUIC_APP_NO_ERROR); CHECK_EQ(err.type(), QuicError::Type::APPLICATION); CHECK_EQ(err.reason(), "a reason"); CHECK_EQ(err.ToString(), "QuicError(APPLICATION) 65280: a reason");