Commit f04a218c authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Handle IPv6 address -> string conversion too


git-svn-id: http://www.varnish-cache.org/svn/trunk@287 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent a3f9375a
......@@ -6,7 +6,7 @@
#include "vcl_returns.h"
#define VCA_ADDRBUFSIZE 32 /* Sizeof ascii network address */
#define VCA_ADDRBUFSIZE 64 /* Sizeof ascii network address */
struct event_base;
struct cli;
......
......@@ -122,9 +122,9 @@ accept_f(int fd, short event, void *arg)
{
socklen_t l;
struct sessmem *sm;
struct sockaddr addr;
struct sockaddr addr[2];
struct sess *sp;
char port[10];
char port[NI_MAXSERV];
int i;
VSL_stats->client_conn++;
......@@ -141,17 +141,21 @@ accept_f(int fd, short event, void *arg)
sp->mem = sm;
l = sizeof addr;
sp->fd = accept(fd, &addr, &l);
sp->fd = accept(fd, addr, &l);
if (sp->fd < 0) {
free(sp);
return;
}
i = 1;
AZ(setsockopt(sp->fd, SOL_SOCKET, SO_NOSIGPIPE, &i, sizeof i));
AZ(getnameinfo(&addr, l,
i = getnameinfo(addr, l,
sp->addr, VCA_ADDRBUFSIZE,
port, sizeof port, NI_NUMERICHOST | NI_NUMERICSERV));
strlcat(sp->addr, ":", VCA_ADDRBUFSIZE);
port, sizeof port, NI_NUMERICHOST | NI_NUMERICSERV);
if (i) {
printf("getnameinfo = %d %s\n", i,
gai_strerror(i));
}
strlcat(sp->addr, " ", VCA_ADDRBUFSIZE);
strlcat(sp->addr, port, VCA_ADDRBUFSIZE);
VSL(SLT_SessionOpen, sp->fd, "%s", sp->addr);
sp->http = http_New();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment