mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-12 02:19:41 +00:00
(svn r15941) -Codechange: jonty-comp's wish partly implemented (content server) ;)
This commit is contained in:
parent
1463b00b48
commit
ce06df313d
@ -27,9 +27,13 @@ const char *NetworkAddress::GetHostname()
|
|||||||
uint16 NetworkAddress::GetPort() const
|
uint16 NetworkAddress::GetPort() const
|
||||||
{
|
{
|
||||||
switch (this->address.ss_family) {
|
switch (this->address.ss_family) {
|
||||||
|
case AF_UNSPEC:
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
return ntohs(((struct sockaddr_in *)&this->address)->sin_port);
|
return ntohs(((struct sockaddr_in *)&this->address)->sin_port);
|
||||||
|
|
||||||
|
case AF_INET6:
|
||||||
|
return ntohs(((struct sockaddr_in6 *)&this->address)->sin6_port);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
NOT_REACHED();
|
NOT_REACHED();
|
||||||
}
|
}
|
||||||
@ -38,10 +42,15 @@ uint16 NetworkAddress::GetPort() const
|
|||||||
void NetworkAddress::SetPort(uint16 port)
|
void NetworkAddress::SetPort(uint16 port)
|
||||||
{
|
{
|
||||||
switch (this->address.ss_family) {
|
switch (this->address.ss_family) {
|
||||||
|
case AF_UNSPEC:
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
((struct sockaddr_in*)&this->address)->sin_port = htons(port);
|
((struct sockaddr_in*)&this->address)->sin_port = htons(port);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case AF_INET6:
|
||||||
|
((struct sockaddr_in6*)&this->address)->sin6_port = htons(port);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
NOT_REACHED();
|
NOT_REACHED();
|
||||||
}
|
}
|
||||||
|
@ -79,13 +79,14 @@ public:
|
|||||||
* Create a network address based on a unresolved host and port
|
* Create a network address based on a unresolved host and port
|
||||||
* @param ip the unresolved hostname
|
* @param ip the unresolved hostname
|
||||||
* @param port the port
|
* @param port the port
|
||||||
|
* @param family the address family
|
||||||
*/
|
*/
|
||||||
NetworkAddress(const char *hostname = "0.0.0.0", uint16 port = 0) :
|
NetworkAddress(const char *hostname = "0.0.0.0", uint16 port = 0, int family = AF_INET) :
|
||||||
hostname(strdup(hostname)),
|
hostname(strdup(hostname)),
|
||||||
address_length(0)
|
address_length(0)
|
||||||
{
|
{
|
||||||
memset(&this->address, 0, sizeof(this->address));
|
memset(&this->address, 0, sizeof(this->address));
|
||||||
this->address.ss_family = AF_INET;
|
this->address.ss_family = family;
|
||||||
this->SetPort(port);
|
this->SetPort(port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -471,7 +471,7 @@ void ClientNetworkContentSocketHandler::Connect()
|
|||||||
|
|
||||||
if (this->sock != INVALID_SOCKET || this->isConnecting) return;
|
if (this->sock != INVALID_SOCKET || this->isConnecting) return;
|
||||||
this->isConnecting = true;
|
this->isConnecting = true;
|
||||||
new NetworkContentConnecter(NetworkAddress(NETWORK_CONTENT_SERVER_HOST, NETWORK_CONTENT_SERVER_PORT));
|
new NetworkContentConnecter(NetworkAddress(NETWORK_CONTENT_SERVER_HOST, NETWORK_CONTENT_SERVER_PORT, AF_UNSPEC));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user