aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorTest_User <hax@andrewyu.org>2024-08-17 21:27:02 -0400
committerTest_User <hax@andrewyu.org>2024-08-17 21:27:02 -0400
commitf576099a00cdf87d2e8931da8ec03e2b27c449a2 (patch)
tree875cb1b89a8834d5e17ef21215fdef5c81cff9d1 /main.c
parente4768d794d676e82db9428148b52aab46292d80e (diff)
downloadc_coupserv-f576099a00cdf87d2e8931da8ec03e2b27c449a2.tar.gz
c_coupserv-f576099a00cdf87d2e8931da8ec03e2b27c449a2.zip
Retry binding for the client socket if EADDRINUSE
Diffstat (limited to '')
-rw-r--r--main.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/main.c b/main.c
index e3ba683..1ec66bc 100644
--- a/main.c
+++ b/main.c
@@ -39,6 +39,14 @@
#include "types.h"
void *client_loop(void *ign) {
+ while (!client_listen_fd_ready) {
+ if (bind(client_listen_fd, (struct sockaddr *)&client_listen_fd_bind_addr, sizeof(client_listen_fd_bind_addr)) == -1) {
+ sleep(1);
+ } else {
+ client_listen_fd_ready = 1;
+ }
+ }
+
pthread_mutex_lock(&send_lock);
while (1) {
struct string full_msg = {.data = malloc(0), .len = 0};