commit 37df23d183de23b74f8a026977b8210dc22701a6 from: Omar Polo date: Fri Jun 23 21:03:29 2023 UTC rename client->addr to raddr (remote address) and keep original length commit - ab55c7815e8e749e775d95c26f0e217744949285 commit + 37df23d183de23b74f8a026977b8210dc22701a6 blob - 0f4694d8ec30754c30d85231eaff7c0d12fe2cb8 blob + f45d9b2ce431ea1f1af8f847a89e3f8d7bfb9a05 --- ge.c +++ ge.c @@ -44,11 +44,9 @@ log_request(struct client *c, char *meta, size_t l) { char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV], b[GEMINI_URL_LEN]; const char *t; - size_t len; int ec; - len = sizeof(c->addr); - ec = getnameinfo((struct sockaddr*)&c->addr, len, + ec = getnameinfo((struct sockaddr*)&c->raddr, c->raddrlen, hbuf, sizeof(hbuf), sbuf, sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV); blob - 22d82b9e19bbe84b979bd5b6c6039b00d23c9158 blob + d3e4cb2d0d3f0d855fa6f743a4e11b55ac7a9ea3 --- gmid.c +++ gmid.c @@ -87,11 +87,9 @@ log_request(struct client *c, char *meta, size_t l) char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV], b[GEMINI_URL_LEN]; char *fmted; const char *t; - size_t len; int ec; - len = sizeof(c->addr); - ec = getnameinfo((struct sockaddr*)&c->addr, len, + ec = getnameinfo((struct sockaddr*)&c->raddr, c->raddrlen, hbuf, sizeof(hbuf), sbuf, sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV); blob - 9a4f1f1d1698ad8b4c6f8798101bc94f60338f63 blob + 644788bcdf6c52441e6cb6ed9a768ff3187332b1 --- gmid.h +++ gmid.h @@ -289,7 +289,9 @@ struct client { char sbuf[1029]; ssize_t len, off; - struct sockaddr_storage addr; + struct sockaddr_storage raddr; + socklen_t raddrlen; + struct vhost *host; /* host they're talking to */ size_t loc; /* location matched */ blob - acf77034dc98e86c92242eed876d37aa6b8b10d3 blob + 05c1d4bf94ed0e278f6b0013480346ad54dd4094 --- server.c +++ server.c @@ -1315,14 +1315,14 @@ do_accept(int sock, short et, void *d) { struct conf *conf = d; struct client *c; - struct sockaddr_storage addr; - struct sockaddr *saddr; + struct sockaddr_storage raddr; + struct sockaddr *sraddr; socklen_t len; int fd; - saddr = (struct sockaddr*)&addr; - len = sizeof(addr); - if ((fd = accept(sock, saddr, &len)) == -1) { + sraddr = (struct sockaddr *)&raddr; + len = sizeof(raddr); + if ((fd = accept(sock, sraddr, &len)) == -1) { if (errno == EWOULDBLOCK || errno == EAGAIN || errno == ECONNABORTED) return; @@ -1336,7 +1336,8 @@ do_accept(int sock, short et, void *d) c->id = ++server_client_id; c->fd = fd; c->pfd = -1; - c->addr = addr; + memcpy(&c->raddr, &raddr, sizeof(raddr)); + c->raddrlen = len; if (tls_accept_socket(ctx, &c->ctx, fd) == -1) { log_warnx("failed to accept socket: %s", tls_error(c->ctx));