From e5c93010c3bbbd1e04619686bfb5e326205123e5 Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Mon, 24 Jul 2023 22:20:55 +0200 Subject: [PATCH] htparser: Expose TLS session-ID in request headers. --- src/ssl-gnutls.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/ssl-gnutls.c b/src/ssl-gnutls.c index 1a797ed..5a11f94 100644 --- a/src/ssl-gnutls.c +++ b/src/ssl-gnutls.c @@ -271,6 +271,8 @@ static int initreq(struct conn *conn, struct hthead *req) struct sslconn *ssl = conn->pdata; struct sockaddr_storage sa; socklen_t salen; + gnutls_datum_t sessid; + char *esessid; headappheader(req, "X-Ash-Address", formathaddress((struct sockaddr *)&ssl->name, sizeof(sa))); if(ssl->name.ss_family == AF_INET) @@ -282,6 +284,11 @@ static int initreq(struct conn *conn, struct hthead *req) headappheader(req, "X-Ash-Server-Address", formathaddress((struct sockaddr *)&sa, sizeof(sa))); headappheader(req, "X-Ash-Server-Port", sprintf3("%i", ssl->port->sport)); headappheader(req, "X-Ash-Protocol", "https"); + if(gnutls_session_get_id2(ssl->sess, &sessid) == GNUTLS_E_SUCCESS) { + esessid = base64encode((void *)sessid.data, sessid.size); + headappheader(req, "X-Ash-TLS-Session", esessid); + free(esessid); + } return(0); } -- 2.11.0