Module Name: src
Committed By: martin
Date: Wed Feb 22 13:24:05 UTC 2023
Modified Files:
src/external/bsd/fetch/dist/libfetch [netbsd-10]: common.c
Log Message:
Pull up following revision(s) (requested by mlelstv in ticket #95):
external/bsd/fetch/dist/libfetch/common.c: revision 1.3
external/bsd/fetch/dist/libfetch/common.c: revision 1.4
Use SNI.
Shut down SSL when closing connection.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.2.54.1 src/external/bsd/fetch/dist/libfetch/common.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/bsd/fetch/dist/libfetch/common.c
diff -u src/external/bsd/fetch/dist/libfetch/common.c:1.2 src/external/bsd/fetch/dist/libfetch/common.c:1.2.54.1
--- src/external/bsd/fetch/dist/libfetch/common.c:1.2 Sat Jun 25 20:27:01 2011
+++ src/external/bsd/fetch/dist/libfetch/common.c Wed Feb 22 13:24:05 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: common.c,v 1.2 2011/06/25 20:27:01 christos Exp $ */
+/* $NetBSD: common.c,v 1.2.54.1 2023/02/22 13:24:05 martin Exp $ */
/*-
* Copyright (c) 1998-2004 Dag-Erling Co�dan Sm�rgrav
* Copyright (c) 2008, 2010 Joerg Sonnenberger <[email protected]>
@@ -452,6 +452,10 @@ fetch_ssl(conn_t *conn, int verbose)
return (-1);
}
SSL_set_fd(conn->ssl, conn->sd);
+ if (!SSL_set_tlsext_host_name(conn->ssl, conn->cache_url->host)) {
+ fprintf(stderr, "SSL hostname setting failed\n");
+ return (-1);
+ }
if (SSL_connect(conn->ssl) == -1){
ERR_print_errors_fp(stderr);
return (-1);
@@ -709,6 +713,22 @@ fetch_close(conn_t *conn)
{
int ret;
+#ifdef WITH_SSL
+ if (conn->ssl) {
+ SSL_shutdown(conn->ssl);
+ SSL_set_connect_state(conn->ssl);
+ SSL_free(conn->ssl);
+ conn->ssl = NULL;
+ }
+ if (conn->ssl_ctx) {
+ SSL_CTX_free(conn->ssl_ctx);
+ conn->ssl_ctx = NULL;
+ }
+ if (conn->ssl_cert) {
+ X509_free(conn->ssl_cert);
+ conn->ssl_cert = NULL;
+ }
+#endif
ret = close(conn->sd);
if (conn->cache_url)
fetchFreeURL(conn->cache_url);