updating for to handle ipv6 transparent

This commit is contained in:
jfurtner 2016-08-09 10:21:28 -06:00
parent 2c07ef20f7
commit 80d57dee55
2 changed files with 5 additions and 0 deletions

View File

@ -94,6 +94,7 @@ install: sslh $(MAN)
mkdir -p $(DESTDIR)/$(BINDIR)
mkdir -p $(DESTDIR)/$(MANDIR)
install -p sslh-fork $(DESTDIR)/$(BINDIR)/sslh
install -p sslh-select $(DESTDIR)/$(BINDIR)/sslh-select
install -p -m 0644 $(MAN) $(DESTDIR)/$(MANDIR)/$(MAN)
# "extended" install for Debian: install startup script

View File

@ -165,6 +165,8 @@ int bind_peer(int fd, int fd_from)
struct sockaddr_storage ss;
int res, trans = 1;
fprintf(stderr, "Starting bind_peer\n");
memset(&from, 0, sizeof(from));
from.ai_addr = (struct sockaddr*)&ss;
from.ai_addrlen = sizeof(ss);
@ -207,6 +209,7 @@ int bind_peer(int fd, int fd_from)
}
#ifndef IP_BINDANY /* use IP_TRANSPARENT */
fprintf(stderr, "IP_TRANSPARENT\n");
res = setsockopt(fd, IPPROTO_IP, IP_TRANSPARENT, &trans, sizeof(trans));
CHECK_RES_DIE(res, "setsockopt");
#else
@ -220,6 +223,7 @@ int bind_peer(int fd, int fd_from)
#endif /* IPV6_BINDANY */
}
#endif /* IP_TRANSPARENT / IP_BINDANY */
fprintf(stderr, "bind\n");
res = bind(fd, from.ai_addr, from.ai_addrlen);
CHECK_RES_RETURN(res, "bind");