Thank you, StrawberryFride, for a patch to fix SceneBan behavior.

Applied with changes (commented the logging entirely, since Linux defaults
to debug level)
Fixes Mantis #3689
0.6.6-post-fixes
Melanie Thielker 2009-05-20 11:27:15 +00:00
parent a3fed17956
commit 20383a61b8
1 changed files with 23 additions and 19 deletions

View File

@ -34,7 +34,7 @@ namespace OpenSim.Region.CoreModules.Agent.IPBan
{
internal class SceneBanner
{
private static readonly log4net.ILog m_log
private static readonly log4net.ILog m_log
= log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
private List<string> bans;
@ -49,30 +49,34 @@ namespace OpenSim.Region.CoreModules.Agent.IPBan
void EventManager_OnClientConnect(IClientCore client)
{
IClientIPEndpoint ipEndpoint;
if (client.TryGet(out ipEndpoint))
{
IPAddress end = ipEndpoint.EndPoint;
try
// Only need to run through all this if there are entries in the ban list
if (bans.Count > 0)
{
IClientIPEndpoint ipEndpoint;
if (client.TryGet(out ipEndpoint))
{
IPHostEntry rDNS = Dns.GetHostEntry(end);
foreach (string ban in bans)
IPAddress end = ipEndpoint.EndPoint;
try
{
if (rDNS.HostName.Contains(ban) ||
end.ToString().StartsWith(ban))
IPHostEntry rDNS = Dns.GetHostEntry(end);
foreach (string ban in bans)
{
client.Disconnect("Banned - network \"" + ban + "\" is not allowed to connect to this server.");
m_log.Warn("[IPBAN] Disconnected '" + end + "' due to '" + ban + "' ban.");
return;
if (rDNS.HostName.Contains(ban) ||
end.ToString().StartsWith(ban))
{
client.Disconnect("Banned - network \"" + ban + "\" is not allowed to connect to this server.");
m_log.Warn("[IPBAN] Disconnected '" + end + "' due to '" + ban + "' ban.");
return;
}
}
}
catch (System.Net.Sockets.SocketException sex)
{
m_log.WarnFormat("[IPBAN] IP address \"{0}\" cannot be resolved via DNS", end);
}
// m_log.DebugFormat("[IPBAN] User \"{0}\" not in any ban lists. Allowing connection.", end);
}
catch (System.Net.Sockets.SocketException sex)
{
m_log.WarnFormat("[IPBAN] IP address \"{0}\" cannot be resolved via DNS", end);
}
m_log.WarnFormat("[IPBAN] User \"{0}\" not in any ban lists. Allowing connection.", end);
}
}
}