(svn r15941) -Codechange: jonty-comp's wish partly implemented (content server) ;)

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
rubidium 15 years ago
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…
Cancel
Save