diff options
Diffstat (limited to 'src/server/publicServer.c')
| -rw-r--r-- | src/server/publicServer.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/server/publicServer.c b/src/server/publicServer.c index 1d2ccf0..d7246a0 100644 --- a/src/server/publicServer.c +++ b/src/server/publicServer.c @@ -32,6 +32,8 @@ #include "server/serverConfigFile.h" #include "server/heightScore.h" +#include "net_unix/dns.h" + static int arenaId; static arena_t *arena; static bool_t isSignalEnd; @@ -58,11 +60,23 @@ static int registerPublicServer() /* TODO: dodelat TCP makro */ #ifdef SUPPORT_NET_UNIX_UDP struct sockaddr_in server; - + char *master_server_ip; + + master_server_ip = getIPFormDNS(NET_MASTER_SERVER_DOMAIN); + + //printf("master_server_ip = %s\n", master_server_ip); + + if( master_server_ip == NULL ) // master server is down + { + return -1; + } + server.sin_family = AF_INET; server.sin_port = htons (NET_MASTER_PORT); - server.sin_addr.s_addr = inet_addr (NET_MASTER_SERVER); + server.sin_addr.s_addr = inet_addr (master_server_ip); + free(master_server_ip); + if ((s = socket (AF_INET, SOCK_STREAM, 0)) < 0) { close (s); return 0; |