summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Marvin Sielenkemper <sielenk@gmx.de>2016-12-01 12:52:53 +0100
committerGravatar Marvin Sielenkemper <sielenk@gmx.de>2016-12-01 12:52:53 +0100
commit40191906aa4b640838496174af7c594039bd6fd5 (patch)
tree14e70fa9a04af57e9ff0e2b76f808cbc636b2b1a
parent18876ba1e372323b3ed0361bf1d33bd7a22b097e (diff)
pass the proper size to the bind call
-rw-r--r--src/c/http.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/c/http.c b/src/c/http.c
index f7fdc122..f2d3a4c5 100644
--- a/src/c/http.c
+++ b/src/c/http.c
@@ -333,7 +333,7 @@ int main(int argc, char *argv[]) {
int sockfd; // listen on sock_fd
union uw_sockaddr my_addr;
union uw_sockaddr their_addr; // connector's address information
- socklen_t sin_size;
+ socklen_t my_size = 0, sin_size;
int yes = 1, uw_port = 8080, nthreads = 1, i, *names, opt;
int recv_timeout_sec = 5;
@@ -433,11 +433,18 @@ int main(int argc, char *argv[]) {
switch (my_addr.sa.sa_family)
{
- case AF_INET: my_addr.ipv4.sin_port = htons(uw_port); break;
- case AF_INET6: my_addr.ipv6.sin6_port = htons(uw_port); break;
+ case AF_INET:
+ /*my_addr.ipv4.sin_len =*/ my_size = sizeof(my_addr.ipv4);
+ my_addr.ipv4.sin_port = htons(uw_port);
+ break;
+
+ case AF_INET6:
+ /*my_addr.ipv6.sin6_len =*/ my_size = sizeof(my_addr.ipv6);
+ my_addr.ipv6.sin6_port = htons(uw_port);
+ break;
}
- if (bind(sockfd, &my_addr.sa, sizeof my_addr) < 0) {
+ if (bind(sockfd, &my_addr.sa, my_size) < 0) {
fprintf(stderr, "Listener socket bind failed\n");
return 1;
}