aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorDarkelarious <darkelarious@333networks.com>2017-05-13 14:18:28 +0200
committerDarkelarious <darkelarious@333networks.com>2017-05-13 14:20:49 +0200
commit34a2c7390ea9662d33258d384e72fff1912343ff (patch)
treed96ea33c0107e4906a152aa1de4b5c75b81ba0a8 /data
parent84af66aba26d2088d5d95c240d176f3edaf17b58 (diff)
downloadMasterServer-Perl-34a2c7390ea9662d33258d384e72fff1912343ff.tar.gz
MasterServer-Perl-34a2c7390ea9662d33258d384e72fff1912343ff.zip
revised synchronization methods, config settings and bug fixesv2.3.0
Diffstat (limited to 'data')
-rw-r--r--data/dumps/dumpfile.txt1
-rwxr-xr-xdata/masterserver-config.pl56
-rwxr-xr-xdata/sql/tables-Pg.sql89
-rwxr-xr-xdata/sql/tables-SQLite.sql88
-rwxr-xr-xdata/sql/tables-mysql.sql12
5 files changed, 204 insertions, 42 deletions
diff --git a/data/dumps/dumpfile.txt b/data/dumps/dumpfile.txt
new file mode 100644
index 0000000..03d9604
--- /dev/null
+++ b/data/dumps/dumpfile.txt
@@ -0,0 +1 @@
+dumpfiles go here
diff --git a/data/masterserver-config.pl b/data/masterserver-config.pl
index 8af455a..7cae5de 100755
--- a/data/masterserver-config.pl
+++ b/data/masterserver-config.pl
@@ -1,7 +1,7 @@
package MasterServer;
#
-# Last update: Sun 20 Nov 2016 19:14 GMT+1
+# Last update: Sat 13 May 2017 13:37 GMT+1
#
our (%S, $ROOT);
@@ -32,7 +32,7 @@ our %S = (
# #
# Login credentials for the database that was created manually before. #
# Yes, that means that you need to create the database and tables on your own. #
-# Use only one option: Postgresql, SQLite, MySQL (only tested with Postgresql) #
+# Use only one option: Postgresql, SQLite, MySQL (not tested with MySQL) #
# #
################################################################################
@@ -40,11 +40,15 @@ our %S = (
dblogin => ['dbi:Pg:dbname=masterserver', 'user', 'password'],
# SQLite
- #dblogin => ["dbi:SQLite:dbname=$ROOT/data/testdatabase.db",'',''],
+ #dblogin => ["dbi:SQLite:dbname=$ROOT/data/masterserver.db",'',''],
# MySQL
- #dblogin => ["dbi:mysql:database=database_name;host=localhost;port=3306",'user','password'],
-
+ #dblogin => ["dbi:mysql:database=masterserver;host=localhost;port=3306",'user','password'],
+
+ # backup database dump
+ # new backup for every period of time? options: daily, weekly, monthly, yearly, none
+ dump_db => "daily",
+
################################################################################
# Logging configuration #
# #
@@ -60,20 +64,22 @@ our %S = (
log_rotate => "weekly",
# print both to screen and log (1=screen+log, 0=only log)
- printlog => 0,
+ printlog => 1,
# which messages do you NOT want to see in the logs (and screen)?
# show all entries
#suppress => "none",
- # disable most messages, except for important events
- suppress => "udp add update tcp udp delete uplink stat beacon secure utserver hostname kfstat debug",
+ # show only important events
+ suppress => "debug beacon uplink secure tcp add update delete",
+
+ # more keywords that can be suppressed:
+ # applet-rx error info kfstat stat sync-rx sync-tx list ignore dump support
################################################################################
# Network settings #
# #
# Beacon UDP port (beacons) and Browser TCP port (serverlist) #
-# Settings for games that require different data formats #
# #
################################################################################
@@ -81,9 +87,9 @@ our %S = (
listen_port => 28900, # default 28900
beacon_port => 27900, # default 27900
- # these games require a special hex format instead of \ip\ip:port\
- # if the current protocol is correct, you don't need to touch this ever.
- hex_format => "",
+ # Timeout time for connections. Some clients are on slow connections
+ # or are queued for a relatively long time. Recommended: 5s
+ timeout_time => 10,
################################################################################
# Secure/Validate configuration #
@@ -118,7 +124,7 @@ our %S = (
# Beacon Checker query all addresses in the database, requesting "basic" and
# "info". Execute at least twice per hour, to avoid time-outs in own data.
- # disabling breaks support for certain games [citation needed].
+ # disabling breaks support for certain games [like tribesv].
beacon_checker_enabled => 1,
# Collect server information for the 333networks main site. Identical
@@ -130,18 +136,17 @@ our %S = (
################################################################################
# Synchronization settings #
# #
-# Request the masterlist for selected or all games from other 333networks- #
-# based masterservers. Also uplinks to these servers in return. #
-# #
+# Send beacons to the following selected masterservers. This joins us in the #
+# 333networks network and makes two-way synchronization possible for all games #
+# or only selected games. Requires at least one entry to a live masterserver. #
################################################################################
- # additional masters to sync with (in addition to db-entries)
+ # default masterservers to uplink to
sync_masters => [
- { address => "master.333networks.com", port => 28900, beacon => 27900 }, # default
+ { address => "master.333networks.com", port => 28900, beacon => 27900 },
{ address => "master.noccer.de", port => 28900, beacon => 27900 },
{ address => "master.oldunreal.com", port => 28900, beacon => 27900 },
{ address => "master.errorist.tk", port => 28900, beacon => 27900 },
-# { address => "master.333networks.com", port => 28905, beacon => 28906 }, # if available, devmaster
],
# sync all or selected games?
@@ -157,10 +162,13 @@ our %S = (
# Request the masterlist for single games from the remote UCC applet or #
# equivalent. #
# #
+# Arguments: domain/ip, tcp port, array of gamenames #
################################################################################
master_applet => [
- {ip => "utmaster.epicgames.com", port => 28900, game => "ut"},
- {ip => "master.newbiesplayground.net", port => 28900, game => "unreal"},
+ {address => "utmaster.epicgames.com", port => 28900, games => [qw|ut unreal|]},
+ {address => "master.hypercoop.tk", port => 28900, games => [qw|unreal|]},
+ {address => "sof1master.megalag.org", port => 28900, games => [qw|sofretail|]},
+ {address => "master.deusexnetwork.com", port => 28900, games => [qw|deusex|]},
],
################################################################################
@@ -169,12 +177,12 @@ our %S = (
# Read player statistics from the KFstats file in the UT2004 configuration. #
# Applies to 333networks Killing Floor Server only! #
################################################################################
-
- #kfstats.ini file location
- kfstats_file => "/home/darkelarious/ut2004/System/KFStats.ini",
# Collect kfstats info
kfstats_enabled => 0,
+
+ #kfstats.ini file location
+ kfstats_file => "/UT2004/System/KFStats.ini",
); #end configuration %S
diff --git a/data/sql/tables-Pg.sql b/data/sql/tables-Pg.sql
index f5663ff..b4ddd4d 100755
--- a/data/sql/tables-Pg.sql
+++ b/data/sql/tables-Pg.sql
@@ -1,10 +1,19 @@
+CREATE TABLE appletlist(
+ id SERIAL UNIQUE NOT NULL PRIMARY KEY,
+ ip inet NOT NULL DEFAULT '0.0.0.0',
+ port INTEGER NOT NULL DEFAULT 0,
+ gamename VARCHAR(50) NOT NULL DEFAULT ' ',
+ added timestamptz NOT NULL DEFAULT NOW(),
+ updated timestamptz NOT NULL DEFAULT NOW()
+);
+
CREATE TABLE serverlist(
id SERIAL UNIQUE NOT NULL PRIMARY KEY,
ip inet NOT NULL DEFAULT '0.0.0.0',
port INTEGER NOT NULL DEFAULT 0,
gamename VARCHAR(50) NOT NULL DEFAULT ' ',
gamever VARCHAR(50) NOT NULL DEFAULT ' ',
- hostname VARCHAR(100) NOT NULL DEFAULT ' ',
+ hostname VARCHAR(200) NOT NULL DEFAULT ' ',
hostport INTEGER NOT NULL DEFAULT 0,
country VARCHAR(5),
b333ms BOOLEAN NOT NULL DEFAULT FALSE,
@@ -14,22 +23,84 @@ CREATE TABLE serverlist(
updated timestamptz NOT NULL DEFAULT NOW()
);
+CREATE TABLE games(
+ gamename VARCHAR(50) NOT NULL,
+ cipher VARCHAR(10) NOT NULL DEFAULT ' ',
+ description VARCHAR(200) NOT NULL DEFAULT ' ',
+ default_qport INTEGER NOT NULL DEFAULT 0,
+ num_uplink INTEGER NOT NULL DEFAULT 0,
+ num_total INTEGER NOT NULL DEFAULT 0
+);
+
CREATE TABLE pending(
id SERIAL UNIQUE NOT NULL PRIMARY KEY,
ip inet NOT NULL DEFAULT '0.0.0.0',
beaconport INTEGER NOT NULL DEFAULT 0,
heartbeat INTEGER NOT NULL DEFAULT 0,
gamename VARCHAR(25) NOT NULL DEFAULT ' ',
- secure VARCHAR(12) NOT NULL DEFAULT ' ',
+ secure VARCHAR(12) NOT NULL DEFAULT 'wookie',
enctype INTEGER NOT NULL DEFAULT 0,
added timestamptz NOT NULL DEFAULT NOW()
);
-CREATE TABLE games(
- gamename VARCHAR(50) NOT NULL,
- cipher VARCHAR(10) NOT NULL DEFAULT ' ',
- description VARCHAR(200) NOT NULL DEFAULT ' ',
- default_qport INTEGER NOT NULL DEFAULT 0,
- num_uplink INTEGER NOT NULL DEFAULT 0,
- num_total INTEGER NOT NULL DEFAULT 0
+CREATE TABLE utserver_info(
+ server_id SERIAL REFERENCES serverlist(id),
+ minnetver INTEGER NOT NULL DEFAULT 400,
+ gamever INTEGER NOT NULL DEFAULT 400,
+ location INTEGER NOT NULL DEFAULT 0,
+ listenserver BOOLEAN NOT NULL DEFAULT TRUE,
+ hostport INTEGER NOT NULL DEFAULT 7777,
+ hostname varchar(200) NOT NULL DEFAULT 'Another UT server',
+ adminname varchar(200) NOT NULL DEFAULT '',
+ adminemail varchar(300) NOT NULL DEFAULT '',
+ password BOOLEAN NOT NULL DEFAULT FALSE,
+ gametype varchar(50) NOT NULL DEFAULT '',
+ gamestyle varchar(50) NOT NULL DEFAULT 'Normal',
+ changelevels BOOLEAN NOT NULL DEFAULT FALSE,
+ maptitle varchar(100) NOT NULL DEFAULT 'Unknown',
+ mapname varchar(100) NOT NULL DEFAULT '',
+ numplayers INTEGER NOT NULL DEFAULT 0,
+ maxplayers INTEGER NOT NULL DEFAULT 0,
+ minplayers INTEGER NOT NULL DEFAULT 0,
+ botskill varchar(30) NOT NULL DEFAULT 'Novice',
+ balanceteams BOOLEAN NOT NULL DEFAULT FALSE,
+ playersbalanceteams BOOLEAN NOT NULL DEFAULT FALSE,
+ friendlyfire varchar(10) NOT NULL DEFAULT '0%',
+ maxteams INTEGER NOT NULL DEFAULT 4,
+ timelimit INTEGER NOT NULL DEFAULT 0,
+ goalteamscore INTEGER NOT NULL DEFAULT 0,
+ fraglimit INTEGER NOT NULL DEFAULT 0,
+ mutators TEXT NOT NULL DEFAULT 'None',
+ updated timestamptz NOT NULL DEFAULT NOW()
+);
+
+CREATE TABLE utplayer_info(
+ server_id SERIAL NOT NULL,
+ player varchar(40) NOT NULL DEFAULT 'Player',
+ team INTEGER NOT NULL DEFAULT 255,
+ frags INTEGER NOT NULL DEFAULT 0,
+ mesh varchar(100) NOT NULL DEFAULT '',
+ skin varchar(100) NOT NULL DEFAULT '',
+ face varchar(100) NOT NULL DEFAULT '',
+ ping INTEGER NOT NULL DEFAULT 0,
+ ngsecret varchar(10) NOT NULL DEFAULT 'false',
+ updated timestamptz NOT NULL DEFAULT NOW()
+);
+
+CREATE TABLE kfstats(
+ UTkey varchar(34) NOT NULL,
+ Username varchar(80) NOT NULL DEFAULT '',
+ CurrentVeterancy varchar(80) DEFAULT 'None',
+ TotalKills INTEGER NOT NULL DEFAULT 0,
+ DecaptedKills INTEGER NOT NULL DEFAULT 0,
+ TotalMeleeDamage INTEGER NOT NULL DEFAULT 0,
+ MeleeKills INTEGER NOT NULL DEFAULT 0,
+ PowerWpnKills INTEGER NOT NULL DEFAULT 0,
+ BullpupDamage INTEGER NOT NULL DEFAULT 0,
+ StalkerKills INTEGER NOT NULL DEFAULT 0,
+ TotalWelded INTEGER NOT NULL DEFAULT 0,
+ TotalHealed INTEGER NOT NULL DEFAULT 0,
+ TotalPlaytime INTEGER NOT NULL DEFAULT 0,
+ GamesWon INTEGER NOT NULL DEFAULT 0,
+ GamesLost INTEGER NOT NULL DEFAULT 0
);
diff --git a/data/sql/tables-SQLite.sql b/data/sql/tables-SQLite.sql
index 7d68786..6050acc 100755
--- a/data/sql/tables-SQLite.sql
+++ b/data/sql/tables-SQLite.sql
@@ -1,3 +1,12 @@
+CREATE TABLE appletlist(
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
+ port INTEGER NOT NULL DEFAULT 0,
+ gamename VARCHAR(50) NOT NULL DEFAULT ' ',
+ added timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ updated timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
CREATE TABLE serverlist(
id INTEGER PRIMARY KEY AUTOINCREMENT,
ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
@@ -14,22 +23,85 @@ CREATE TABLE serverlist(
updated timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP
);
+CREATE TABLE games(
+ gamename VARCHAR(50) NOT NULL,
+ cipher VARCHAR(10) NOT NULL DEFAULT ' ',
+ description VARCHAR(200) NOT NULL DEFAULT ' ',
+ default_qport INTEGER NOT NULL DEFAULT 0,
+ num_uplink INTEGER NOT NULL DEFAULT 0,
+ num_total INTEGER NOT NULL DEFAULT 0
+);
+
CREATE TABLE pending(
id INTEGER PRIMARY KEY AUTOINCREMENT,
ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
beaconport INTEGER NOT NULL DEFAULT 0,
heartbeat INTEGER NOT NULL DEFAULT 0,
gamename VARCHAR(25) NOT NULL DEFAULT ' ',
- secure VARCHAR(12) NOT NULL DEFAULT ' ',
+ secure VARCHAR(12) NOT NULL DEFAULT 'wookie',
enctype INTEGER NOT NULL DEFAULT 0,
added timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-CREATE TABLE games(
- gamename VARCHAR(50) NOT NULL,
- cipher VARCHAR(10) NOT NULL DEFAULT ' ',
- description VARCHAR(200) NOT NULL DEFAULT ' ',
- default_qport INTEGER NOT NULL DEFAULT 0,
- num_uplink INTEGER NOT NULL DEFAULT 0,
- num_total INTEGER NOT NULL DEFAULT 0
+CREATE TABLE utserver_info(
+ server_id INTEGER PRIMARY KEY AUTOINCREMENT,
+ minnetver INTEGER NOT NULL DEFAULT 400,
+ gamever INTEGER NOT NULL DEFAULT 400,
+ location INTEGER NOT NULL DEFAULT 0,
+ listenserver BOOLEAN NOT NULL DEFAULT TRUE,
+ hostport INTEGER NOT NULL DEFAULT 7777,
+ hostname varchar(200) NOT NULL DEFAULT 'Another UT server',
+ adminname varchar(200) NOT NULL DEFAULT '',
+ adminemail varchar(300) NOT NULL DEFAULT '',
+ password BOOLEAN NOT NULL DEFAULT 0,
+ gametype varchar(50) NOT NULL DEFAULT '',
+ gamestyle varchar(50) NOT NULL DEFAULT 'Normal',
+ changelevels BOOLEAN NOT NULL DEFAULT 0,
+ maptitle varchar(100) NOT NULL DEFAULT 'Unknown',
+ mapname varchar(100) NOT NULL DEFAULT '',
+ numplayers INTEGER NOT NULL DEFAULT 0,
+ maxplayers INTEGER NOT NULL DEFAULT 0,
+ minplayers INTEGER NOT NULL DEFAULT 0,
+ botskill varchar(30) NOT NULL DEFAULT 'Novice',
+ balanceteams BOOLEAN NOT NULL DEFAULT 0,
+ playersbalanceteams BOOLEAN NOT NULL DEFAULT 0,
+ friendlyfire varchar(10) NOT NULL DEFAULT '0%',
+ maxteams INTEGER NOT NULL DEFAULT 4,
+ timelimit INTEGER NOT NULL DEFAULT 0,
+ goalteamscore INTEGER NOT NULL DEFAULT 0,
+ fraglimit INTEGER NOT NULL DEFAULT 0,
+ mutators TEXT NOT NULL DEFAULT 'None',
+ updated timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ FOREIGN KEY(server_id) REFERENCES serverlist(id)
+);
+
+CREATE TABLE utplayer_info(
+ server_id INTEGER,
+ player varchar(40) NOT NULL DEFAULT 'Player',
+ team INTEGER NOT NULL DEFAULT 255,
+ frags INTEGER NOT NULL DEFAULT 0,
+ mesh varchar(100) NOT NULL DEFAULT '',
+ skin varchar(100) NOT NULL DEFAULT '',
+ face varchar(100) NOT NULL DEFAULT '',
+ ping INTEGER NOT NULL DEFAULT 0,
+ ngsecret varchar(10) NOT NULL DEFAULT 'false',
+ updated timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE TABLE kfstats(
+ UTkey varchar(34) NOT NULL,
+ Username varchar(80) NOT NULL DEFAULT '',
+ CurrentVeterancy varchar(80) DEFAULT 'None',
+ TotalKills INTEGER NOT NULL DEFAULT 0,
+ DecaptedKills INTEGER NOT NULL DEFAULT 0,
+ TotalMeleeDamage INTEGER NOT NULL DEFAULT 0,
+ MeleeKills INTEGER NOT NULL DEFAULT 0,
+ PowerWpnKills INTEGER NOT NULL DEFAULT 0,
+ BullpupDamage INTEGER NOT NULL DEFAULT 0,
+ StalkerKills INTEGER NOT NULL DEFAULT 0,
+ TotalWelded INTEGER NOT NULL DEFAULT 0,
+ TotalHealed INTEGER NOT NULL DEFAULT 0,
+ TotalPlaytime INTEGER NOT NULL DEFAULT 0,
+ GamesWon INTEGER NOT NULL DEFAULT 0,
+ GamesLost INTEGER NOT NULL DEFAULT 0
);
diff --git a/data/sql/tables-mysql.sql b/data/sql/tables-mysql.sql
index c460b1b..0bdfc02 100755
--- a/data/sql/tables-mysql.sql
+++ b/data/sql/tables-mysql.sql
@@ -1,8 +1,18 @@
+CREATE TABLE appletlist(
+ id INTEGER NOT NULL AUTO_INCREMENT,
+ ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
+ port INTEGER NOT NULL DEFAULT 0,
+ gamename VARCHAR(50) NOT NULL DEFAULT ' ',
+ added timestamptz NOT NULL DEFAULT NOW(),
+ updated timestamptz NOT NULL DEFAULT NOW(),
+ PRIMARY KEY (id)
+);
+
CREATE TABLE serverlist(
id INTEGER NOT NULL AUTO_INCREMENT,
ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
port INTEGER NOT NULL DEFAULT 0,
- gamename VARCHAR(100) NOT NULL DEFAULT ' ',
+ gamename VARCHAR(50) NOT NULL DEFAULT ' ',
gamever VARCHAR(50) NOT NULL DEFAULT ' ',
hostname VARCHAR(100) NOT NULL DEFAULT ' ',
hostport INTEGER NOT NULL DEFAULT 0,