diff options
author | Michael Adam <obnox@samba.org> | 2013-11-07 10:54:56 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2013-11-09 13:34:33 +0100 |
commit | 7eea1638bc881c4466367102919fe393b4ceb724 (patch) | |
tree | f3bc57b05c2402106b6246aee96fcf7eef426445 /src/child.c | |
parent | 4bbd6e8626475222b0aa37dde62d12d77667accb (diff) | |
download | tinyproxy-7eea1638bc881c4466367102919fe393b4ceb724.tar.gz tinyproxy-7eea1638bc881c4466367102919fe393b4ceb724.zip |
sock/child: remove global variable addrlen.
This changes listen_sock() to not return the
addrlen of the used address from getaddrinfo call
to the caller, stored in global addrlen in child.c.
This was only used to be able to allocate enough space for the
arguments to the later accept call depending on whether
IPv4 or IPv6 is used.
This removes the need to pass this info by always allocating
sizeof(struct sockaddr_storage) instead, which is enough
to carry both sockaddr_in and sockaddr_in6.
Signed-off-by: Michael Adam <obnox@samba.org>
Diffstat (limited to '')
-rw-r--r-- | src/child.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/child.c b/src/child.c index 34e20e0..9f8ae10 100644 --- a/src/child.c +++ b/src/child.c @@ -33,7 +33,6 @@ #include "conf.h" static int listenfd; -static socklen_t addrlen; /* * Stores the internal data needed for each child (connection) @@ -188,7 +187,8 @@ static void child_main (struct child_s *ptr) struct sockaddr *cliaddr; socklen_t clilen; - cliaddr = (struct sockaddr *) safemalloc (addrlen); + cliaddr = (struct sockaddr *) + safemalloc (sizeof(struct sockaddr_storage)); if (!cliaddr) { log_message (LOG_CRIT, "Could not allocate memory for child address."); @@ -200,7 +200,7 @@ static void child_main (struct child_s *ptr) while (!config.quit) { ptr->status = T_WAITING; - clilen = addrlen; + clilen = sizeof(struct sockaddr_storage); connfd = accept (listenfd, cliaddr, &clilen); @@ -466,7 +466,7 @@ void child_kill_children (int sig) int child_listening_sock (uint16_t port) { - listenfd = listen_sock (port, &addrlen); + listenfd = listen_sock (port); return listenfd; } |