aboutsummaryrefslogtreecommitdiff
path: root/drivers/builtin_openssl2/ssl/ssl_lib.c
diff options
context:
space:
mode:
authormrezai2016-05-03 23:59:14 +0430
committermrezai2016-05-03 23:59:14 +0430
commitab623c923d4e2c950342aec5da371cb92b1fbbc6 (patch)
tree14edc317fa408ca610bd85e6a82468dd347865db /drivers/builtin_openssl2/ssl/ssl_lib.c
parente0d27c55237d4f61910b1e72b744fc043e9b6bff (diff)
downloadgodot-ab623c923d4e2c950342aec5da371cb92b1fbbc6.tar.gz
godot-ab623c923d4e2c950342aec5da371cb92b1fbbc6.tar.zst
godot-ab623c923d4e2c950342aec5da371cb92b1fbbc6.zip
Diffstat (limited to 'drivers/builtin_openssl2/ssl/ssl_lib.c')
-rw-r--r--drivers/builtin_openssl2/ssl/ssl_lib.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/builtin_openssl2/ssl/ssl_lib.c b/drivers/builtin_openssl2/ssl/ssl_lib.c
index f1279bbf9..fd94325bb 100644
--- a/drivers/builtin_openssl2/ssl/ssl_lib.c
+++ b/drivers/builtin_openssl2/ssl/ssl_lib.c
@@ -244,7 +244,16 @@ int SSL_clear(SSL *s)
ssl_clear_hash_ctx(&s->write_hash);
s->first_packet = 0;
-
+#ifndef OPENSSL_NO_TLSEXT
+ if (s->cert != NULL) {
+ if (s->cert->alpn_proposed) {
+ OPENSSL_free(s->cert->alpn_proposed);
+ s->cert->alpn_proposed = NULL;
+ }
+ s->cert->alpn_proposed_len = 0;
+ s->cert->alpn_sent = 0;
+ }
+#endif
#if 1
/*
* Check to see if we were changed into a different method, if so, revert
@@ -3174,6 +3183,12 @@ SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx)
ssl->cert->ciphers_rawlen = ocert->ciphers_rawlen;
ocert->ciphers_raw = NULL;
}
+#ifndef OPENSSL_NO_TLSEXT
+ ssl->cert->alpn_proposed = ocert->alpn_proposed;
+ ssl->cert->alpn_proposed_len = ocert->alpn_proposed_len;
+ ocert->alpn_proposed = NULL;
+ ssl->cert->alpn_sent = ocert->alpn_sent;
+#endif
ssl_cert_free(ocert);
}