X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fssl-gnutls.c;h=a181adda62917e31f6f63d607eab0f6252806bf8;hb=a5f636534f95a749b4e0e002cccb3267c53da009;hp=459556e061a4423f2d004676a12fc5b95ac3245a;hpb=3ae5664988dd86d1e780f5cc59a3c6f819f78264;p=ashd.git diff --git a/src/ssl-gnutls.c b/src/ssl-gnutls.c index 459556e..a181add 100644 --- a/src/ssl-gnutls.c +++ b/src/ssl-gnutls.c @@ -266,16 +266,12 @@ 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))); + if(ssl->name.ss_family == AF_INET) headappheader(req, "X-Ash-Port", sprintf3("%i", ntohs(((struct sockaddr_in *)&ssl->name)->sin_port))); - } else if(ssl->name.ss_family == AF_INET6) { - headappheader(req, "X-Ash-Address", inet_ntop(AF_INET6, &((struct sockaddr_in6 *)&ssl->name)->sin6_addr, nmbuf, sizeof(nmbuf))); + else if(ssl->name.ss_family == AF_INET6) 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))); @@ -375,6 +371,8 @@ static void listenloop(struct muth *muth, va_list args) if(ns < 0) { if(errno == EAGAIN) break; + if(errno == ECONNABORTED) + continue; flog(LOG_ERR, "accept: %s", strerror(errno)); goto out; }