Fixes client ip handling for the banlist.

master
Rene Jochum 2011-04-25 20:32:03 +02:00
parent b4ad9f00b5
commit 027229f5c9
1 changed files with 18 additions and 23 deletions

View File

@ -152,7 +152,6 @@ static struct IGDdatas data;
// local ip address
static char lanaddr[16];
static char clientAddress[40] = { '\0' };
/**
* Used for connections with clients.
*/
@ -2303,20 +2302,6 @@ static void NETallowJoining(void)
char ModList[modlist_string_size] = { '\0' };
char GamePassword[password_string_size] = { '\0' };
if (onBanList(clientAddress))
{
char buf[256] = {'\0'};
ssprintf(buf, "** A player that you have kicked tried to rejoin the game, and was rejected. IP:%s", clientAddress );
debug(LOG_INFO, "%s", buf);
NETlogEntry(buf, SYNC_FLAG, i);
SocketSet_DelSocket(tmp_socket_set, tmp_socket[i]);
socketClose(tmp_socket[i]);
tmp_socket[i] = NULL;
sync_counter.rejected++;
return;
}
NETbeginDecode(NETnetTmpQueue(i), NET_JOIN);
NETstring(name, sizeof(name));
NETint32_t(&MajorVersion); // NETCODE_VERSION_MAJOR
@ -2348,7 +2333,20 @@ static void NETallowJoining(void)
SocketSet_AddSocket(socket_set, connected_bsocket[index]);
NETmoveQueue(NETnetTmpQueue(i), NETnetQueue(index));
if (!NETisCorrectVersion(MajorVersion, MinorVersion))
// Copy players ip Address.
sstrcpy(NetPlay.players[index].IPtextAddress, getSocketTextAddress(connected_bsocket[index]));
if (onBanList(NetPlay.players[index].IPtextAddress))
{
char buf[256] = {'\0'};
ssprintf(buf, "** A player that you have kicked tried to rejoin the game, and was rejected. IP: %s", NetPlay.players[index].IPtextAddress);
debug(LOG_INFO, "%s", buf);
NETlogEntry(buf, SYNC_FLAG, i);
// Player has been kicked before, kick again.
rejected = (uint8_t)ERROR_KICKED;
}
else if (!NETisCorrectVersion(MajorVersion, MinorVersion))
{
// Wrong version. Reject.
rejected = (uint8_t)ERROR_WRONGVERSION;
@ -2388,13 +2386,6 @@ static void NETallowJoining(void)
return;
}
sstrcpy(NetPlay.players[index].IPtextAddress, clientAddress);
{
char buf[250] = {'\0'};
snprintf(buf, sizeof(buf), "Player %d has joined, IP is:%s", index, clientAddress);
NETlogEntry(buf, SYNC_FLAG, index);
}
NETbeginEncode(NETnetQueue(index), NET_ACCEPTED);
NETuint8_t(&index);
NETend();
@ -2404,6 +2395,10 @@ static void NETallowJoining(void)
// then send info about newcomer to all players.
NETBroadcastPlayerInfo(index);
char buf[250] = {'\0'};
snprintf(buf, sizeof(buf), "Player %s has joined, IP is: %s", name, NetPlay.players[index].IPtextAddress);
NETlogEntry(buf, SYNC_FLAG, index);
debug(LOG_NET, "Player, %s, with index of %u has joined using socket %p", name, (unsigned int)index, connected_bsocket[index]);
// Increment player count