mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #1889 from Gator96100/develop
Added support for hostnames
This commit is contained in:
commit
7b4f6e7008
|
@ -314,7 +314,7 @@ bool Network::BeginClient(const char* host, unsigned short port)
|
||||||
|
|
||||||
SOCKADDR_IN server_address;
|
SOCKADDR_IN server_address;
|
||||||
server_address.sin_family = AF_INET;
|
server_address.sin_family = AF_INET;
|
||||||
server_address.sin_addr.S_un.S_addr = inet_addr(host);
|
server_address.sin_addr.S_un.S_addr = inet_addr(network_getAddress((char *)host));
|
||||||
server_address.sin_port = htons(port);
|
server_address.sin_port = htons(port);
|
||||||
|
|
||||||
if (connect(server_socket, (SOCKADDR*)&server_address, sizeof(SOCKADDR_IN)) != 0) {
|
if (connect(server_socket, (SOCKADDR*)&server_address, sizeof(SOCKADDR_IN)) != 0) {
|
||||||
|
@ -1047,6 +1047,20 @@ void network_send_gamecmd(uint32 eax, uint32 ebx, uint32 ecx, uint32 edx, uint32
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *network_getAddress(char *host)
|
||||||
|
{
|
||||||
|
struct hostent *remoteHost;
|
||||||
|
struct in_addr addr;
|
||||||
|
|
||||||
|
remoteHost = gethostbyname(host);
|
||||||
|
if (remoteHost != NULL && remoteHost->h_addrtype == AF_INET && remoteHost->h_addr_list[0] != 0) {
|
||||||
|
addr.s_addr = *(u_long *)remoteHost->h_addr_list[0];
|
||||||
|
return inet_ntoa(addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return host;
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
int network_get_mode() { return NETWORK_MODE_NONE; }
|
int network_get_mode() { return NETWORK_MODE_NONE; }
|
||||||
uint32 network_get_server_tick() { return RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_TICKS, uint32); }
|
uint32 network_get_server_tick() { return RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_TICKS, uint32); }
|
||||||
|
|
|
@ -241,6 +241,7 @@ void network_send_chat(const char* text);
|
||||||
void network_send_gamecmd(uint32 eax, uint32 ebx, uint32 ecx, uint32 edx, uint32 esi, uint32 edi, uint32 ebp, uint8 callback);
|
void network_send_gamecmd(uint32 eax, uint32 ebx, uint32 ecx, uint32 edx, uint32 esi, uint32 edi, uint32 ebp, uint8 callback);
|
||||||
|
|
||||||
void network_print_error();
|
void network_print_error();
|
||||||
|
static char *network_getAddress(char *host);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue