X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fssl-gnutls.c;h=de525245910c701044d0c9ac282db98e3131b411;hb=cbc5f085ef03ebab38b9501acc3ec7aeca10e7d3;hp=bad5f4adfd10ec6d1152edbbb0372880e0e281ae;hpb=6ca53b2e5e3b76345fd709a3e9d32aee69889054;p=ashd.git diff --git a/src/ssl-gnutls.c b/src/ssl-gnutls.c index bad5f4a..de52524 100644 --- a/src/ssl-gnutls.c +++ b/src/ssl-gnutls.c @@ -137,8 +137,11 @@ static cookie_io_functions_t iofuns = { static int initreq(struct conn *conn, struct hthead *req) { struct sslconn *ssl = conn->pdata; + struct sockaddr_storage sa; + socklen_t salen; char nmbuf[256]; + headappheader(req, "X-Ash-Address", formathaddress((struct sockaddr *)&ssl->name, sizeof(sa))); if(ssl->name.ss_family == AF_INET) { headappheader(req, "X-Ash-Address", inet_ntop(AF_INET, &((struct sockaddr_in *)&ssl->name)->sin_addr, nmbuf, sizeof(nmbuf))); headappheader(req, "X-Ash-Port", sprintf3("%i", ntohs(((struct sockaddr_in *)&ssl->name)->sin_port))); @@ -146,6 +149,9 @@ static int initreq(struct conn *conn, struct hthead *req) headappheader(req, "X-Ash-Address", inet_ntop(AF_INET6, &((struct sockaddr_in6 *)&ssl->name)->sin6_addr, nmbuf, sizeof(nmbuf))); headappheader(req, "X-Ash-Port", sprintf3("%i", ntohs(((struct sockaddr_in6 *)&ssl->name)->sin6_port))); } + salen = sizeof(sa); + if(!getsockname(ssl->fd, (struct sockaddr *)&sa, &salen)) + 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"); return(0);