From 1c29da8236f0017fa3a09eaeba3c48309d08375b Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Thu, 11 Jan 2018 03:33:49 +0800 Subject: tls: migrate C++ errors to internal/errors.js * Throw ERR_TLS_SNI_FROM_SERVER when setting server names on a server-side socket instead of returning silently * Assert on wrap_->started and wrap_->ssl instead of throwing errors since these errors indicate that the user either uses private APIs, or monkey-patches internals, or hits a bug. PR-URL: https://github.com/nodejs/node/pull/18125 Reviewed-By: Anna Henningsen Reviewed-By: Fedor Indutny Reviewed-By: James M Snell --- src/tls_wrap.cc | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/tls_wrap.cc b/src/tls_wrap.cc index e505032345..18b3cf01f4 100644 --- a/src/tls_wrap.cc +++ b/src/tls_wrap.cc @@ -225,13 +225,11 @@ void TLSWrap::Receive(const FunctionCallbackInfo& args) { void TLSWrap::Start(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - TLSWrap* wrap; ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder()); - if (wrap->started_) - return env->ThrowError("Already started."); + CHECK(!wrap->started_); + wrap->started_ = true; // Send ClientHello handshake @@ -747,17 +745,13 @@ int TLSWrap::DoShutdown(ShutdownWrap* req_wrap) { void TLSWrap::SetVerifyMode(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - TLSWrap* wrap; ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder()); CHECK_EQ(args.Length(), 2); CHECK(args[0]->IsBoolean()); CHECK(args[1]->IsBoolean()); - - if (wrap->ssl_ == nullptr) - return env->ThrowTypeError("SetVerifyMode after destroySSL"); + CHECK_NE(wrap->ssl_, nullptr); int verify_mode; if (wrap->is_server()) { @@ -785,10 +779,7 @@ void TLSWrap::EnableSessionCallbacks( const FunctionCallbackInfo& args) { TLSWrap* wrap; ASSIGN_OR_RETURN_UNWRAP(&wrap, args.Holder()); - if (wrap->ssl_ == nullptr) { - return wrap->env()->ThrowTypeError( - "EnableSessionCallbacks after destroySSL"); - } + CHECK_NE(wrap->ssl_, nullptr); wrap->enable_session_callbacks(); crypto::NodeBIO::FromBIO(wrap->enc_in_)->set_initial(kMaxHelloLength); wrap->hello_parser_.Start(SSLWrap::OnClientHello, @@ -852,12 +843,8 @@ void TLSWrap::SetServername(const FunctionCallbackInfo& args) { CHECK_EQ(args.Length(), 1); CHECK(args[0]->IsString()); - - if (wrap->started_) - return env->ThrowError("Already started."); - - if (!wrap->is_client()) - return; + CHECK(!wrap->started_); + CHECK(wrap->is_client()); CHECK_NE(wrap->ssl_, nullptr); -- cgit v1.2.3