This masterserver is outdated and not needed in the trunk anymore.

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@5772 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
aerkefiende
2010-10-19 18:35:47 +00:00
parent 543bff0c22
commit 464373103e
21 changed files with 0 additions and 1466 deletions
-90
View File
@@ -1,90 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{A00CFDD5-210C-415F-A172-386E92A52D9B}</ProjectGuid>
<ProjectTypeGuids>{349C5851-65DF-11DA-9384-00065B846F21};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AssemblyName>AcMasterserver</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin</OutputPath>
<DefineConstants>DEBUG</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Web.Services" />
<Reference Include="ActionCube, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Desktop\master\Bin\ActionCube.dll</HintPath>
</Reference>
<Reference Include="API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Desktop\master\Bin\API.dll</HintPath>
</Reference>
<Reference Include="Cube, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Desktop\master\Bin\Cube.dll</HintPath>
</Reference>
<Reference Include="CubeEngineBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Desktop\master\Bin\CubeEngineBase.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data" />
<Reference Include="MySql.Data, Version=6.1.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Desktop\mysql-connector-net-6.1.2-noinstall\mysql.data.dll</HintPath>
</Reference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\WebApplications\Microsoft.WebApplication.targets" />
<ProjectExtensions>
<MonoDevelop>
<Properties VerifyCodeBehindFields="true" VerifyCodeBehindEvents="true" InternalTargetFrameworkVersion="3.5">
<XspParameters Port="8080" Address="127.0.0.1" SslMode="None" SslProtocol="Default" KeyType="None" CertFile="" KeyFile="" PasswordOptions="None" Password="" Verbose="true" />
</Properties>
</MonoDevelop>
</ProjectExtensions>
<ItemGroup>
<None Include="Blacklist.xml" />
<None Include="README.txt" />
</ItemGroup>
<ItemGroup>
<Content Include="Default.aspx" />
<Content Include="web.config" />
<Content Include="App_Themes\Pro\StyleSheet.css" />
</ItemGroup>
<ItemGroup>
<Compile Include="Default.aspx.cs">
<DependentUpon>Default.aspx</DependentUpon>
</Compile>
<Compile Include="App_Code\CubeMasterDAL.cs" />
<Compile Include="App_Code\CubeMsRequestHandler.cs" />
<Compile Include="App_Code\IPTools.cs" />
<Compile Include="App_Code\RickRoll.cs" />
<Compile Include="App_Code\ServerBlacklist.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="App_Code\" />
<Folder Include="App_Themes\" />
<Folder Include="App_Themes\Pro\" />
</ItemGroup>
</Project>
Binary file not shown.
-147
View File
@@ -1,147 +0,0 @@
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Xml;
using System.IO;
using System.Data.SqlClient;
using System.Text;
using AHSoftware.CubeMon;
using AHSoftware.CubeMon.Games.ActionCube.v094;
/// <summary>
/// Summary description for CubeMS
/// </summary>
public class CubeMS
{
string connectionString;
public string ConnectionString
{
get { return connectionString; }
set { connectionString = value; }
}
private bool AddServer(IPEndPoint address, string name, string description)
{
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("AddServer", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("IP", IPTools.IPToInt(address.Address));
cmd.Parameters.AddWithValue("Port", address.Port);
cmd.Parameters.AddWithValue("Name", name);
cmd.Parameters.AddWithValue("Description", description);
try
{
con.Open();
cmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
finally
{
con.Close();
}
}
public bool Register(IPEndPoint address)
{
Client c = new Client();
c.Socket = new IPEndPoint(address.Address, address.Port+1);
ServerInfo info = null;
try
{
info = (ServerInfo) c.RequestInfo();
}
catch
{
return false;
}
string name = string.Empty;
try
{
name = Dns.GetHostEntry(info.Socket.Address).HostName;
}
catch { };
return AddServer(address, name, info.Description);
}
public string GetServers(bool xml)
{
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(xml ? "GetServersXML" : "GetServers", con);
cmd.CommandType = CommandType.StoredProcedure;
try
{
con.Open();
SqlDataReader r = cmd.ExecuteReader();
StringBuilder sb = new StringBuilder();
if(xml)
{
// sql server handles xml conversion for us, just embed in a new xmldoc
sb.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sb.AppendLine("<Servers>");
if(r.Read())
{
sb.AppendLine(r[0] as string);
}
sb.AppendLine("</Servers>");
}
else
{
// construct server list as cubescript
while(r.Read())
{
sb.AppendFormat("addserver {0} {1};{2}", IPTools.IntToIp((int)r["IP"]).ToString(), r["Port"], Environment.NewLine);
}
}
return sb.ToString();
}
catch
{
return null;
}
finally
{
con.Close();
}
}
public string GetClientScript(string HTTPAgent)
{
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("GetClientScript", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("HTTPAgent", HTTPAgent);
try
{
con.Open();
SqlDataReader r = cmd.ExecuteReader();
r.Read();
return r["Script"] as string;
}
catch
{
return null;
}
finally
{
con.Close();
}
}
}
-235
View File
@@ -1,235 +0,0 @@
using System;
using System.Data;
using System.Data.Common;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Xml;
using System.IO;
//using System.Data.SqlClient;
using System.Text;
using System.Linq;
using MySql.Data.MySqlClient;
using AHSoftware.CubeMon;
using AHSoftware.CubeMon.Games.ActionCube.v094;
/// <summary>
/// Summary description for CubeMS
/// </summary>
public class CubeMasterDAL
{
string connectionString;
//DbProviderFactory factory;
public string ConnectionString
{
get { return connectionString; }
set { connectionString = value; }
}
public CubeMasterDAL()
{
// factory = new MySql.Data.MySqlClient.MySqlClientFactory();
}
IDbConnection CreateConnection()
{
IDbConnection con = new MySqlConnection(); //factory.CreateConnection();
con.ConnectionString = ConnectionString;
//con.Open();
return con;
}
private void AddServer(IPEndPoint address, string name, string description)
{
//SqlConnection con = new SqlConnection(connectionString);
//SqlCommand cmd = new SqlCommand("AddServer", con);
IDbConnection con = CreateConnection();
IDbCommand cmd = con.CreateCommand();
cmd.CommandText = "DELETE FROM Servers WHERE IP=@IP AND Port=@Port; INSERT INTO Servers VALUES(@IP, @Port, @Name, @Description, @Date)";
var param = cmd.CreateParameter();
param.ParameterName = "IP";
param.Value = IPTools.IPToInt(address.Address);
cmd.Parameters.Add(param);
param = cmd.CreateParameter();
param.ParameterName = "Port";
param.Value = address.Port;
cmd.Parameters.Add(param);
param = cmd.CreateParameter();
param.ParameterName = "Name";
param.Value = name;
cmd.Parameters.Add(param);
param = cmd.CreateParameter();
param.ParameterName = "Description";
param.Value = description;
cmd.Parameters.Add(param);
param = cmd.CreateParameter();
param.ParameterName = "Date";
param.Value = DateTime.Now;
cmd.Parameters.Add(param);
Console.WriteLine("opening");
con.Open();
cmd.ExecuteNonQuery();
Console.WriteLine("done");
}
public void Register(IPEndPoint address)
{
Client c = new Client();
c.Socket = new IPEndPoint(address.Address, address.Port + 1);
ServerInfo info = null;
try
{
info = (ServerInfo)c.RequestInfo();
}
catch
{
throw new ApplicationException("Could not ping you. Make sure your server is accessible from the internet.");
}
string name = string.Empty;
try
{
name = Dns.GetHostEntry(info.Socket.Address).HostName;
}
catch { };
if (info.MaxClients > 20)
{
throw new ApplicationException("Your server must have a maxclients setting of 20 or less. Check your configuration.");
}
AddServer(address, name, info.Description);
}
public string GetServers(bool xml)
{
System.Diagnostics.Debug.Assert(xml == false);
IDbConnection con = CreateConnection();
IDbCommand cmd = con.CreateCommand(); //new SqlCommand(xml ? "GetServersXML" : "GetServers", con);
cmd.CommandText = "DELETE FROM Servers WHERE LastModified + INTERVAL 70 MINUTE < NOW(); SELECT * FROM Servers;"; // fixme, xml
try
{
con.Open();
IDataReader r = cmd.ExecuteReader();
StringBuilder sb = new StringBuilder();
if(xml)
{
// sql server handles xml conversion for us, just embed in a new xmldoc
sb.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sb.AppendLine("<Servers>");
if(r.Read())
{
sb.AppendLine(r[0] as string);
}
sb.AppendLine("</Servers>");
}
else
{
// construct server list as cubescript
while(r.Read())
{
sb.AppendFormat("addserver {0} {1};{2}", IPTools.IntToIp((int)r["IP"]).ToString(), r["Port"], Environment.NewLine);
}
}
return sb.ToString();
}
catch
{
return null;
}
finally
{
con.Close();
}
}
public string GetClientScript(string HTTPAgent)
{
IDbConnection con = CreateConnection();
IDbCommand cmd = con.CreateCommand(); // new SqlCommand("GetClientScript", con);
//cmd.Parameters.AddWithValue("HTTPAgent", HTTPAgent);
cmd.CommandText = "SELECT * FROM ClientScripts WHERE HTTPAgent = @HTTPAgent";
var param = cmd.CreateParameter();
param.ParameterName = "HTTPAgent";
param.Value = HTTPAgent;
cmd.Parameters.Add(param);
try
{
con.Open();
IDataReader r = cmd.ExecuteReader();
r.Read();
return r["Script"] as string;
}
catch
{
return null;
}
finally
{
con.Close();
}
}
public enum EventType : int
{
RegistrationFailed = 0,
RegistrationSuceeeded,
RetrieveServers,
Exception,
}
public void AddEvent(EventType type, string data, IPEndPoint address)
{
IDbConnection con = CreateConnection();
IDbCommand cmd = con.CreateCommand(); //new SqlCommand("AddEvent", con);
cmd.CommandText = "INSERT INTO Events (Type, Data, IP, Time) VALUES (@Type, @Data, @IP, @Time)";
var param = cmd.CreateParameter();
param.ParameterName = "Type";
param.Value = type;
cmd.Parameters.Add(param);
param = cmd.CreateParameter();
param.ParameterName = "Data";
param.Value = data;
cmd.Parameters.Add(param);
param = cmd.CreateParameter();
param.ParameterName = "IP";
param.Value = IPTools.IPToInt(address.Address);
cmd.Parameters.Add(param);
param = cmd.CreateParameter();
param.ParameterName = "Time";
param.Value = DateTime.Now;
cmd.Parameters.Add(param);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
@@ -1,210 +0,0 @@
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Xml;
using System.IO;
using System.Web.Configuration;
using System.Web.Caching;
using AHSoftware.CubeMon;
using AHSoftware.CubeMon.Games.ActionCube.v094;
/// <summary>
/// Summary description for RequestHandler
/// </summary>
public class CubeMsRequestHandler : IHttpHandler
{
CubeMasterDAL masterDal;
ServerBlacklist blacklist;
int serverListCacheMinutes;
public CubeMsRequestHandler()
{
masterDal = new CubeMasterDAL();
masterDal.ConnectionString = WebConfigurationManager.ConnectionStrings["CubeMS"].ConnectionString;
serverListCacheMinutes = int.Parse(WebConfigurationManager.AppSettings["ServerListCacheMinutes"] ?? "0");
blacklist = new ServerBlacklist(HttpContext.Current.Server.MapPath("/Blacklist.xml"));
}
#region IHttpHandler Members
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
string serverAddress = context.Request.UserHostAddress;
IPEndPoint address = new IPEndPoint(IPAddress.Parse(serverAddress), 0);
string requestFile = Path.GetFileName(context.Request.FilePath);
try
{
if(requestFile == "register.do" && context.Request.QueryString["action"] == "add")
{
// fixme
//context.Response.ContentType = "text/plain";
try
{
address.Port = int.Parse(context.Request.QueryString["port"]);
}
catch
{
context.Response.Write("Server not registered, invalid request. Maybe you use an older server version?");
masterDal.AddEvent(CubeMasterDAL.EventType.RegistrationFailed, "invalid request", address);
return;
}
if (blacklist.IsBlacklisted(serverAddress) || context.Request.QueryString["bansample"] == "1")
{
/*
context.Response.Write(RickRoll.RickRollMeNow());
context.Response.Flush();
*/
string lyrics = RickRoll.RickRollMeNow();
using(StringReader reader = new StringReader(lyrics))
{
string line = reader.ReadLine();
while(line != null)
{
// rick roll them.. line by line
context.Response.Write(line);
context.Response.Write(Environment.NewLine);
context.Response.Flush();
//System.Threading.Thread.Sleep(250);
line = reader.ReadLine();
}
}
context.Response.Write(Environment.NewLine);
context.Response.Write("Behave and try again in a few days..");
masterDal.AddEvent(CubeMasterDAL.EventType.RegistrationFailed, "blacklisted", address);
return;
}
try
{
masterDal.Register(address);
// TODO: *DOS safety
context.Response.Write("Registration successful. Due to caching it might take a few minutes to see the your server in the serverlist");
masterDal.AddEvent(CubeMasterDAL.EventType.RegistrationSuceeeded, null, address);
}
catch (Exception ex)
{
context.Response.Write("Server not registered: " + ex.Message + ex.StackTrace);
masterDal.AddEvent(CubeMasterDAL.EventType.RegistrationFailed, null, address);
}
}
else if(requestFile == "retrieve.do")
{
string type = context.Request.QueryString["item"];
if(type == "list")
{
// fixme
context.Response.ContentType = "text/plain";
try
{
// send server list
string servers = context.Cache[type] as string;
if(servers == null || servers.Length == 0) // empty cache, or empty server list
{
servers = masterDal.GetServers(false);
if(serverListCacheMinutes > 0) context.Cache.Add(type, servers, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, serverListCacheMinutes, 0), CacheItemPriority.Normal, null);
}
context.Response.Write(servers);
context.Response.Flush();
masterDal.AddEvent(CubeMasterDAL.EventType.RetrieveServers, "list", address);
// append client script if its an older or unknown client
if(bool.Parse((WebConfigurationManager.AppSettings["EnableClientScripts"] ?? "false")) && context.Request.UserAgent != WebConfigurationManager.AppSettings["ClientAgent"])
{
string script = context.Cache["script"] as string;
if(script == null)
{
if((script = masterDal.GetClientScript(context.Request.UserAgent)) != null)
{
int cacheminutes = int.Parse(WebConfigurationManager.AppSettings["ClientScriptCacheMinutes"] ?? "0");
context.Cache.Add("script", script, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, cacheminutes, 0), CacheItemPriority.Normal, null);
}
}
if(script != null)
{
context.Response.Write(script);
context.Response.Flush();
masterDal.AddEvent(CubeMasterDAL.EventType.RetrieveServers, "script", address);
}
}
}
/*
catch
{
// send error to the client
context.Response.Write("echo [An error ocurred on the masterserver]");
context.Response.Flush();
throw; // log errors globally
}
*/
finally
{
}
}
else if(context.Request.QueryString["item"] == "xml")
{
context.Response.ContentType = "text/xml";
string serversXml = context.Cache[type] as string;
if(serversXml == null || serversXml.Length == 0) // empty cache, or empty server list
{
serversXml = masterDal.GetServers(true);
if(serverListCacheMinutes > 0) context.Cache.Add(type, serversXml, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, serverListCacheMinutes, 0), CacheItemPriority.Normal, null);
}
context.Response.Write(serversXml);
context.Response.Flush();
masterDal.AddEvent(CubeMasterDAL.EventType.RetrieveServers, "xml", address);
}
}
}
/*
catch(Exception ex)
{
try
{
// TODO: log all uncaught exceptions
// log.AddEvent(Log.EventType.Exception, ex.Message, address);
}
catch { }
}*/
finally
{
}
}
#endregion
}
-30
View File
@@ -1,30 +0,0 @@
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
/// <summary>
/// Summary description for IPTools
/// </summary>
public static class IPTools
{
public static int IPToInt(IPAddress address)
{
byte[] ip = address.GetAddressBytes();
if(ip.Length == 4) return (int)(ip[0] | (ip[1] << 8) | (ip[2] << 16) | (ip[3] << 24));
else return 0;
}
public static IPAddress IntToIp(int address)
{
byte[] octets = { (byte)(address & 0xFF), (byte)((address >> 8) & 0xFF), (byte)((address >> 16) & 0xFF), (byte)((address >> 24) & 0xFF) };
return new IPAddress(octets);
}
}
-41
View File
@@ -1,41 +0,0 @@
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Xml;
using System.Net;
using System.Data.SqlClient;
/// <summary>
/// Summary description for Log
/// </summary>
public class Log
{
public enum EventType : int
{
RegistrationFailed = 0,
RegistrationSuceeeded,
RetrieveServers,
Exception,
}
public void AddEvent(EventType type, string data, IPEndPoint address)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["CubeMS"].ConnectionString as string);
SqlCommand cmd = new SqlCommand("AddEvent", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("Type", type);
cmd.Parameters.AddWithValue("Data", data);
cmd.Parameters.AddWithValue("IP", IPTools.IPToInt(address.Address));
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
-24
View File
@@ -1,24 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for RickRoll
/// </summary>
public static class RickRoll
{
static readonly string lyrics = @"Never gonna give you up.
Never gonna let you down.
Never gonna run around and desert you.
Never gonna make you cry.
Never gonna say goodbye.
Never gonna tell a lie and hurt you. ";
public static string RickRollMeNow()
{
return lyrics;
}
}
-29
View File
@@ -1,29 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Linq;
/// <summary>
/// Summary description for ServerBlacklist
/// </summary>
public class ServerBlacklist
{
List<string> serverIps = new List<string>();
public ServerBlacklist(string blacklistFile)
{
XDocument document = XDocument.Load(blacklistFile);
var servers = document.Descendants("Server");
foreach (var server in servers)
{
serverIps.Add(server.Attribute("IP").Value);
}
}
public bool IsBlacklisted(string serverIp)
{
return serverIps.Contains(serverIp);
}
}
@@ -1,9 +0,0 @@
body
{
Font-family: "Bitstream Vera Serif", Cambria, Baskerville, Palatino, Georgia, Times, "Times New Roman", serif.;
font-size: 12px;
}
h1
{
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-402
View File
@@ -1,402 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ServerBlacklist>
<BlacklistedServers>
<Server IP="127.0.0.2"/>
<!--
Description: Localhost
DateAdded: 19/07/09
Added by: driAn
-->
<Server IP="88.101.81.214"/>
<!--
DateAdded: 19/07/09
-->
<Server IP="98.15.197.20"/>
<!--
DateAdded: 19/07/09
-->
<Server IP="84.117.195.176"/>
<!--
DateAdded: 19/07/09
-->
<!--
<Server IP="84.23.66.190"/>
ServerName: NoH OSOK 1 / NoH OSOK 2 / NoH CTF 1 / |NoH|Dave
DateAdded: 19/07/09
ServerPort: 28763 / 38376 / 2837 / 2839
Added by: makkE
Removed by: makkE, maprot clean.
Re-banned by: RandumKiwi - Their other (below) server was running a forced dust2 rotation
Unbanned again: makkE: Dave understood now.
-->
<!--
<Server IP="84.23.66.216"/>
ServerName: -NoH-Shaka / NoH-RedRaven / |NoH|Dave's Funny server
BanReason: EzJem forced maprot
ServerPort: 28888 / 2000 / 2839
DateAdded: 19/07/09
Added by: RandumKiwi
Removed by: makkE: Maprot clean.
Re-banned by: RandumKiwi: This server was running a forced dust2 rotation.
Unbanned by: makkE: Let's hope they behave now. Spoke to Dave and explained it.
-->
<!--
<Server IP="83.79.189.61"/>
<Server IP="85.3.160.157"/>
<Server IP="83.79.140.73"/>
Description: Daves funny Server
DateAdded: 27/07/09
Added by: RandumKiwi
ServerPort: 28763
BanReason: Ban evasion, see above.
RemovedBy: RandumKiwi: Since makkE had already unbanned those other servers. See above.
-->
<Server IP="92.51.163.228"/>
<!--
Description: BS's bullshit
DateAdded: 19/07/09
Added by: makkE
-->
<!--
<Server IP="77.57.207.219"/>
ServerName: FunDog Funserver
DateAdded: 19/07/09
Added by: makkE
Removed by: makkE 20/07/09 Maplist now clean.
-->
<Server IP="84.117.195.176"/>
<!--
ServerName: Rot's Dust2
DateAdded: 19/07/09
Added by: makkE
-->
<Server IP="76.115.28.80"/>
<!--
ServerName: sfurules dust2
DateAdded: 19/07/09
Added by: makkE
-->
<Server IP="65.190.249.208"/>
<!--
ServerName: Mizu Clan Server
DateAdded: 19/07/09
Added by: makkE
-->
<!--
<Server IP="78.47.111.46"/>
ServerName: hanze osok 2
DateAdded: 19/07/09
Added by: makkE
Removed by: makkE 20/07/09
-->
<!--
<Server IP="78.47.111.48"/>
ServerName: hanze osok 1
DateAdded: 19/07/09
Added by: makkE
Removed by: makkE 20/07/09
-->
<Server IP="87.98.142.93"/>
<!--
ServerName: DSA| Clan Server
DateAdded: 19/07/09
Added by: makkE
ServerPort: 28763
-->
<Server IP="207.158.11.105"/>
<!--
Description: rot2 ??
DateAdded: 19/07/09
Added by: makkE
-->
<Server IP="85.214.18.115"/>
<!--
ServerName: [b4] Deutschland Server www.battle4.de
DateAdded: 19/07/09
Added by: makkE
ServerPort: 28763
-->
<Server IP="83.18.153.222"/>
<!--
ServerName: [PL] intec.uni.cc AssaultCube [dust2]
BanReason: Forced dust2 maprot
ServerPort: 28763
DateAdded: 19/07/09
Added by: RandumKiwi
-->
<Server IP="76.249.29.219"/>
<!--
ServerName: N/A
BanReason: EzJem forced maprot
ServerPort: 7777
DateAdded: 19/07/09
Added by: RandumKiwi
-->
<Server IP="85.114.130.199"/>
<!--
ServerName: TEST-ONLY
BanReason: Longhorn forced maprot
ServerPort: 28763
DateAdded: 19/07/09
Added by: RandumKiwi
-->
<Server IP="189.53.152.243"/>
<!--
ServerName: FRAGaLOT !! The FRaG PLAcE o.0 !!
BanReason: Noob maprot
ServerPort: 28763
DateAdded: 20/07/09
Added by: RandumKiwi
-->
<Server IP="68.36.206.106"/>
<!--
ServerName: K.I.A Clan Server
BanReason: Pushing bad kia_* maps
ServerPort: 28763
DateAdded: 19/07/09
Added by: makkE
-->
<!--
<Server IP="143.107.130.171"/>
ServerName: IF USP BRASIL 2 (laggy maps)
BanReason: Noob maprot
ServerPort: 28765
DateAdded: 20/07/09
Added by: RandumKiwi
Removed by: RandumKiwi because maprot now clean.
-->
<Server IP="75.126.24.124"/>
<!--
ServerName: WhiteHouseWest_TX
BanReason: Noob maprot (no maps for the maprot on the server either).
ServerPort: 28763
DateAdded: 20/07/09
Added by: RandumKiwi
-->
<Server IP="79.85.139.50"/>
<!--
ServerName: #TDMC#RoyeurServer
BanReason: gema-gema-gema
ServerPort: 28765
DateAdded: 20/07/09
Added by: makkE
-->
<!--
<Server IP="91.189.136.7"/>
ServerName: NS - Servers
BanReason: Unmoderated, becomming a playground for crap.
Talk to nissarin when he comes back from vaccation, he will mod them surely.
ServerPorts: 28763, 28765, 28769, 28771
DateAdded: 23/07/09
Added by: makkE
RemovedBy: RandumKiwi... It's been sorted.
-->
<Server IP="189.61.109.184"/>
<Server IP="189.61.103.121"/>
<Server IP="189.61.113.60"/>
<Server IP="189.61.114.125"/>
<Server IP="189.6.28.104"/>
<Server IP="189.61.114.45"/>
<Server IP="189.61.101.175"/>
<Server IP="189.6.22.218"/>
<Server IP="189.24.176.242"/>
<Server IP="189.24.9.81"/>
<Server IP="189.24.34.54"/>
<Server IP="189.61.107.55"/>
<!--
RepeatOffender: 189.*.*.* range
BanReason: Forced dust2 rotation
ServerPort: 28763
Added by: RandumKiwi
Comment: DON'T EVER UNBAN THESE GUYS.
RangeBan: This is a brazillian range. A range ban for these guys would be: 189.60/14
Also: 189.24/15 Haven't seen any from this range for a while, we'll leave it off for now.
Also: 189.4/14 same for this
-->
<Server IP="187.21.17.72"/>
<Server IP="187.61.114.125"/>
<Server IP="187.21.18.76"/>
<Server IP="187.21.23.113"/>
<Server IP="187.21.24.218"/>
<!--
RepeatOffender: 187.*.*.* range
BanReason: Forced dust2 rotation
ServerPort: 28763
Added by: RandumKiwi
Comment: DON'T EVER UNBAN THESE GUYS.
RangeBan: This is a brazillian range. A range ban for these guys would be: 187.20/14
-->
<Server IP="189.177.121.19"/>
<!--
BanReason: Forced gema
ServerPort: 28765
Added by: RandumKiwi
DateAdded: 29/07/09
Comment: Different IP to the ranges above. Brazillian range.
-->
<Server IP="189.24.98.145"/>
<Server IP="189.24.0.7"/>
<!--
ServerName: dust 2
BanReason: dust2 maprot
ServerPort: 28763
Added by: RandumKiwi
DateAdded: 01/08/09
-->
<Server IP="189.177.41.153"/>
<!--
ServerName: |SK|Gema server
BanReason: obvious
ServerPort: 6304
Added by: RandumKiwi
DateAdded: 03/08/09
-->
<Server IP="189.106.22.209"/>
<Server IP="189.106.164.229"/>
<!--
ServerName: DUST 2
BanReason: obvious
ServerPort: 28763
Added by: RandumKiwi
DateAdded: 09/08/09
-->
<Server IP="78.47.123.193"/>
<!--
ServerName: |TD Group|
BanReason: These are run by as0m. See previous bans
ServerPort: 28763, 28765, 28767
Added by: RandumKiwi
DateAdded: 12/08/09
-->
<Server IP="67.83.76.211"/>
<!--
ServerName: THESOUNDOFRAP
BanReason: Owner/Admin keeps voting terrible maps.
ServerPort: 28750
Added by: RandumKiwi
DateAdded: 24/08/09
-->
<Server IP="82.24.211.176"/>
<!--
ServerName: NSL:CiD's Lax Server :)
BanReason: CiD is a BS member.
ServerPort: 28763
Added by: RandumKiwi
DateAdded: 26/08/09
-->
<Server IP="83.157.83.62"/>
<!--
ServerName: |EC*FR| TEAM S3RV3UR website_http://ecfr.e-monsite.com
BanReason: Server admins keep abusing admin far too much. Banning/kicking innocent players.
Voting crap maps.
Quote: Dreamer said: "I go into this server, and in about 30 seconds, get put through about 10 map changes,
from EZJemVille to SkyScraper City to yadayada, watch 4 or 5 kicks, and 2 or 3 bans, before I say,
'You should stop voting to change maps and abusing admin'. I am then promptly banned as well."
ServerPort: 28763
Added by: RandumKiwi
DateAdded: 28/08/09
-->
<Server IP="189.61.118.31"/>
<!--
ServerName: AndrewFeng's server
BanReason: See |NZ| blacklist...
// Name: AndrewFeng
// BanReason: Offensive, vote-kick abuse, impersonation.
// BanDate: 2009-06-19
118.92.203.181
118.92.197.244
118.93.164.38
118.93.240.242
118.92.196.171
222.154.36.28
Seriously, this guy is VERY offensive. NEVER REMOVE!
This servers IP is brazillian, so, it is not actually AndrewFeng
(he has New Zealand IP's. So, it's some brazillian prick trying to fuck with us).
ServerPort: 28763
Added by: RandumKiwi
DateAdded: 05/09/09
-->
<Server IP="87.238.79.2"/>
<!--
ServerName: UK LONDON PRO SERVER
BanReason: Admin voting "heil hitler" maps.
ServerPort: 28763
Added by: RandumKiwi
DateAdded: 12/09/09
-->
<Server IP="70.187.91.6"/>
<!--
ServerName: Vagina Server! :DDDDD
BanReason: Bad server name
ServerPort: 1337
Added by: RandumKiwi
DateAdded: 12/09/09
-->
<Server IP="92.51.147.234"/>
<!--
ServerName: No OSOK
BanReason: Bad maprot
ServerPort: 28763
Added by: RandumKiwi
DateAdded: 23/09/09
-->
<Server IP="67.183.108.39"/>
<!--
ServerName: Warzone Server
BanReason: Bad maprot
ServerPort: 28763
Added by: RandumKiwi
DateAdded: 23/09/09
-->
<Server IP="88.192.235.161"/>
<!--
ServerName: Finland Assault Cuber Server - Toppeli
BanReason: "hitler" maprot.
ServerPort: 28763
Added by: RandumKiwi
DateAdded: 25/09/09
-->
</BlacklistedServers>
</ServerBlacklist>
-47
View File
@@ -1,47 +0,0 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>AssaultCube Master Server</title>
</head>
<body>
<form id="form1" runat="server">
<div title="AssaultCube Master Server">
<h1>AssaultCube Master Server</h1>
<h2>Server List</h2>
&nbsp;
<asp:GridView ID="GridView1" AutoGenerateColumns="False" CellPadding="4"
DataKeyNames="IP" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%-- <%# IPTools.IntToIp((int)DataBinder.Eval(Container.DataItem, "IP")).ToString() %> --%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Port" HeaderText="Port" SortExpression="Port" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
<asp:BoundField DataField="LastModified" HeaderText="LastModified" SortExpression="LastModified" />
</Columns>
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:CubeMS %>"
SelectCommand="GetServers" SelectCommandType="StoredProcedure"></asp:SqlDataSource>
<ul>
<li><a href="retrieve.do?item=list">CubeScript Server List</a></li>
</ul>
</div>
</form>
</body>
</html>
-17
View File
@@ -1,17 +0,0 @@
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
-42
View File
@@ -1,42 +0,0 @@
CubeMS -- masterserver for the AssaultCube v1.0
License:
ZLIB
http://www.gzip.org/zlib/zlib_license.html
Author:
Adrian 'driAn' Henke
root AT sprintf.org
Version:
v0.3
November 2007
About this Software:
The purpose of this software is to let AssaultCube gameservers register
themselves on a central location and distribute the list of available
servers to all requesting AssaultCube game clients. Also it provides
additional interfaces for external application and possbilities to
control the storage and monitor various events.
This software has been developed to replace other PHP/Perl/Java based
solutions that are not easily expandable for future AssaultCube features
that will require more interaction with the masterserver.
This software is implemented as IIS HTTP-Handler written in C#/ASP.NET
with a MSSQL backend. Integrating the masterserver as HTTP-Handler and using
various caching possiblities ensures good scalability on higher workload.
Installation:
There is no streamlined installation procedure for this software, you
need some knowledge of IIS 5+, MSSQL and ASP.NET to make any use of it.
Here is a quick list of required steps:
* In IIS, create a new (virtual) directory that points to the CubeMS
directory. Configure security, ASP.NET 2.0, etc.
* In IIS, configure the application assignement for your CubeMS app.
Assign the ".do" ending to your aspnet_isapi.dll, restrict to GET requests
and disable the optional checks for existing files.
* In MSSQL, create a new database as well as tables and stored procedures.
Use the provided scripts to get this done.
* In MSSQL, create a new user and configure the web.config file in the CubeMS
directory accordingly.
@@ -1,6 +0,0 @@
This directory is required to fool apache.
The masterserver http handler dispatches requests matching *.do
However apache always checks if the requested file/dir actually exists,
if not the request is being aborted. Therefore we need this directory
to ensure that the request reaches our http handler.
-137
View File
@@ -1,137 +0,0 @@
<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings>
<add key="ClientAgent" value="AssaultCube Client 1000" />
<add key="ServerAgent" value="AssaultCube Server 1000" />
<add key="EnableClientScripts" value="false" />
<add key="ServerListCacheMinutes" value="0" />
<add key="ClientScriptCacheMinutes" value="0" />
</appSettings>
<connectionStrings>
<!--
<add name="CubeMS" connectionString="Data Source=IMVSRV52;Initial Catalog=k0890;User Id=k0890db;Password=25 Cubers online!" providerName="System.Data.SqlClient" />
-->
<add name="CubeMS" connectionString="Server=localhost;Database=?;Uid=?;Pwd=?" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true">
<assemblies>
<add assembly="Mono.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Forms" />
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<customErrors mode="Off" />
<httpHandlers>
<add verb="GET" path="*.do" type="CubeMsRequestHandler" validate="false" />
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpHandlers>
<pages theme="Pro">
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</controls>
</pages>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpModules>
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5" />
<providerOption name="WarnAsError" value="false" />
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5" />
<providerOption name="OptionInfer" value="true" />
<providerOption name="WarnAsError" value="false" />
</compiler>
</compilers>
</system.codedom>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<remove name="ScriptModule" />
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated" />
<remove name="ScriptHandlerFactory" />
<remove name="ScriptHandlerFactoryAppServices" />
<remove name="ScriptResource" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="ConsoleListener" type="System.Diagnostics.ConsoleTraceListener"/>
</listeners>
</trace>
</system.diagnostics>
</configuration>