diff --git a/src/server.c b/src/server.c index ee7b1c46..899b35ec 100644 --- a/src/server.c +++ b/src/server.c @@ -34,6 +34,7 @@ #include #include #include +#include #ifndef __MINGW32__ #include @@ -176,7 +177,16 @@ int create_and_bind(const char *host, const char *port) hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG; /* For wildcard IP address */ hints.ai_protocol = IPPROTO_TCP; - s = getaddrinfo(host, port, &hints, &result); + for (int i = 0; i < 8; i++) { + s = getaddrinfo(host, port, &hints, &result); + if (s == 0) break; + else { + sleep(pow(2, i)); + LOGE("failed to resolve server name, wait for %.0fs", pow(2, i)); + } + + } + if (s != 0) { LOGE("getaddrinfo: %s", gai_strerror(s)); return -1;