diff options
Diffstat (limited to 'src/tls_wrap.cc')
-rw-r--r-- | src/tls_wrap.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/tls_wrap.cc b/src/tls_wrap.cc index cd6321b969..a1944df056 100644 --- a/src/tls_wrap.cc +++ b/src/tls_wrap.cc @@ -1033,6 +1033,14 @@ int TLSWrap::SelectSNIContextCallback(SSL* s, int* ad, void* arg) { Local<Object> object = p->object(); Local<Value> ctx; + // Set the servername as early as possible + Local<Object> owner = p->GetOwner(); + if (!owner->Set(env->context(), + env->servername_string(), + OneByteString(env->isolate(), servername)).FromMaybe(false)) { + return SSL_TLSEXT_ERR_NOACK; + } + if (!object->Get(env->context(), env->sni_context_string()).ToLocal(&ctx)) return SSL_TLSEXT_ERR_NOACK; |