diff --git a/src/node_crypto.cc b/src/node_crypto.cc
index cea7e95f853aee..47af180c5f70c5 100644
--- a/src/node_crypto.cc
+++ b/src/node_crypto.cc
@@ -2509,20 +2509,12 @@ int SSLWrap::SelectALPNCallback(SSL* s,
unsigned alpn_protos_len = Buffer::Length(alpn_buffer);
int status = SSL_select_next_proto(const_cast(out), outlen,
alpn_protos, alpn_protos_len, in, inlen);
-
- switch (status) {
- case OPENSSL_NPN_NO_OVERLAP:
- // According to 3.2. Protocol Selection of RFC7301,
- // fatal no_application_protocol alert shall be sent
- // but current openssl does not support it yet. See
- // https://rt.openssl.org/Ticket/Display.html?id=3463&user=guest&pass=guest
- // Instead, we send a warning alert for now.
- return SSL_TLSEXT_ERR_ALERT_WARNING;
- case OPENSSL_NPN_NEGOTIATED:
- return SSL_TLSEXT_ERR_OK;
- default:
- return SSL_TLSEXT_ERR_ALERT_FATAL;
- }
+ // According to 3.2. Protocol Selection of RFC7301, fatal
+ // no_application_protocol alert shall be sent but OpenSSL 1.0.2 does not
+ // support it yet. See
+ // https://rt.openssl.org/Ticket/Display.html?id=3463&user=guest&pass=guest
+ return status == OPENSSL_NPN_NEGOTIATED ? SSL_TLSEXT_ERR_OK
+ : SSL_TLSEXT_ERR_NOACK;
}
#endif // TLSEXT_TYPE_application_layer_protocol_negotiation