diff options
Diffstat (limited to 'src/network/network_server.cpp')
-rw-r--r-- | src/network/network_server.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 6bf95e2f9..f4de01a5c 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -856,7 +856,7 @@ DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_COMMAND) if (cs->has_quit) return; - const NetworkClientInfo *ci = cs->GetInfo(); + NetworkClientInfo *ci = cs->GetInfo(); if (err != NULL) { IConsolePrintF(CC_ERROR, "WARNING: %s from client %d (IP: %s).", err, ci->client_id, GetClientIP(ci)); @@ -1143,7 +1143,7 @@ DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_CHAT) p->Recv_string(msg, NETWORK_CHAT_LENGTH); int64 data = p->Recv_uint64(); - const NetworkClientInfo *ci = cs->GetInfo(); + NetworkClientInfo *ci = cs->GetInfo(); switch (action) { case NETWORK_ACTION_GIVE_MONEY: if (!IsValidCompanyID(ci->client_playas)) break; @@ -1678,12 +1678,9 @@ void NetworkServerChangeOwner(Owner current_owner, Owner new_owner) } } -const char *GetClientIP(const NetworkClientInfo *ci) +const char *GetClientIP(NetworkClientInfo *ci) { - struct in_addr addr; - - addr.s_addr = ci->client_ip; - return inet_ntoa(addr); + return ci->client_address.GetHostname(); } void NetworkServerShowStatusToConsole() @@ -1702,7 +1699,7 @@ void NetworkServerShowStatusToConsole() NetworkClientSocket *cs; FOR_ALL_CLIENT_SOCKETS(cs) { int lag = NetworkCalculateLag(cs); - const NetworkClientInfo *ci = cs->GetInfo(); + NetworkClientInfo *ci = cs->GetInfo(); const char *status; status = (cs->status < (ptrdiff_t)lengthof(stat_str) ? stat_str[cs->status] : "unknown"); @@ -1787,12 +1784,11 @@ void NetworkServerKickClient(ClientID client_id) void NetworkServerBanIP(const char *banip) { - const NetworkClientInfo *ci; - uint32 ip_number = inet_addr(banip); + NetworkClientInfo *ci; /* There can be multiple clients with the same IP, kick them all */ FOR_ALL_CLIENT_INFOS(ci) { - if (ci->client_ip == ip_number) { + if (ci->client_address.IsInNetmask((char*)banip)) { NetworkServerKickClient(ci->client_id); } } |