From ce5051ab905a1751effebb8658caf9ed15b2be62 Mon Sep 17 00:00:00 2001 From: ame Date: Mon, 13 May 2024 23:43:46 -0500 Subject: setsockopt before bind --- src/net.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/net.c') diff --git a/src/net.c b/src/net.c index 2898f0e..486f44a 100644 --- a/src/net.c +++ b/src/net.c @@ -979,6 +979,10 @@ int start_serv(lua_State* L, int port){ server_addr.sin_addr.s_addr = INADDR_ANY; server_addr.sin_port = htons(port); + + if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, (const char*)&(int){1}, sizeof(int)) < 0) + p_fatal("SO_REUSEADDR refused\n"); + //bind to port if(bind(server_fd, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0) p_fatal("failed to bind to port\n"); @@ -989,9 +993,6 @@ int start_serv(lua_State* L, int port){ if (pthread_mutex_init(&mutex, NULL) != 0) p_fatal("mutex init failed\n"); - if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, (const char*)&(int){1}, sizeof(int)) < 0) - p_fatal("SO_REUSEADDR refused\n"); - for(;;){ struct sockaddr_in client_addr; socklen_t client_addr_len = sizeof(client_addr); -- cgit v1.2.3