From 9e9f62e91d05890e69ca999dfcb3dc81f7e87263 Mon Sep 17 00:00:00 2001 From: panaturbo Date: Tue, 9 Mar 2021 10:58:01 +0800 Subject: [PATCH] Update fcgiwrap.c fixes a bug ,Failed to bind: Address already in use,when restart it ,but tcp connection is in TIME_WAIT status. --- fcgiwrap.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/fcgiwrap.c b/fcgiwrap.c index b44d8aa..a463f74 100644 --- a/fcgiwrap.c +++ b/fcgiwrap.c @@ -690,16 +690,10 @@ static void prefork(int nchildren) } static int listen_on_fd(int fd) { - int one = 1; - if (listen(fd, 511) < 0) { perror("Failed to listen"); return -1; } - if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof one) < 0) { - perror("Failed to enable SO_REUSEADDR"); - return -1; - } if (dup2(fd, 0) < 0) { perror("Failed to move socket to fd 0"); return -1; @@ -787,6 +781,11 @@ static int setup_socket(char *url) { perror("Failed to create socket"); return -1; } + int one = 1; + if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof one) < 0) { + perror("Failed to enable SO_REUSEADDR"); + return -1; + } if (bind(fd, &sa.sa, sockaddr_size) < 0) { perror("Failed to bind"); return -1;