X-Git-Url: http://dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=src%2Fssl-gnutls.c;fp=src%2Fssl-gnutls.c;h=5a11f94c6870df4d66f4b8d2f64c5c18fa0ce8a3;hp=1a797ed15f1497d662f2b6a1f91ea1883d35f0ce;hb=e5c93010c3bbbd1e04619686bfb5e326205123e5;hpb=e9033020314283caf148bd2624da51ba4dfdc478 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); }