diff --git a/admin_page_server.py b/admin_page_server.py
index 26f2835..9d0d854 100644
--- a/admin_page_server.py
+++ b/admin_page_server.py
@@ -34,12 +34,8 @@ import other.utils as utils
import gamespy.gs_utility as gs_utils
import dwc_config
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "AdminPage"
-logger_filename = "admin_page.log"
-logger = utils.create_logger(logger_name, logger_filename, -1,
- logger_output_to_console, logger_output_to_file)
+logger = dwc_config.get_logger('AdminPage')
+_, port = dwc_config.get_ip_port('AdminPage')
# Example of adminpageconf.json
@@ -480,8 +476,6 @@ class AdminPage(resource.Resource):
else:
return self.get_header() + self.get_footer()
-_, port = dwc_config.get_ip_port('AdminPage')
-
class AdminPageServer(object):
def start(self):
@@ -496,5 +490,6 @@ class AdminPageServer(object):
except ReactorAlreadyRunning:
pass
+
if __name__ == "__main__":
AdminPageServer().start()
diff --git a/altwfc.cfg b/altwfc.cfg
index 831fb6f..326948f 100755
--- a/altwfc.cfg
+++ b/altwfc.cfg
@@ -1,51 +1,123 @@
# ALTWFC - Configuration File
+[Config]
+AlternativeConfig = OFF
+AlternativeConfigFile = altwfc_nas.cfg
+
[StorageServer]
IP = 127.0.0.1
Port = 8000
+LoggerName = StorageServer
+LoggerFilename = storage_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
[NasServer]
IP = 127.0.0.1
Port = 9000
-# Port = 80
+LoggerName = NasServer
+LoggerFilename = nas_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
[InternalStatsServer]
IP = 127.0.0.1
Port = 9001
+LoggerName = InternalStatsServer
+LoggerFilename = internal_stats_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
[GameStatsServerHttp]
IP = 127.0.0.1
Port = 9002
+LoggerName = GameStatsServerHttp
+LoggerFilename = gamestats_server_http.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
[AdminPage]
IP = 127.0.0.1
Port = 9009
+LoggerName = AdminPage
+LoggerFilename = admin_page.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[RegisterPage]
+IP = 127.0.0.1
+Port = 9998
+LoggerName = RegisterPage
+LoggerFilename = register_page.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
[GameSpyManager]
# GamespyBackendServer
IP = 127.0.0.1
Port = 27500
+LoggerName = GamespyBackendServer
+LoggerFilename = gamespy_backend_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
[GameSpyQRServer]
IP = 0.0.0.0
Port = 27900
+LoggerName = GameSpyQRServer
+LoggerFilename = gamespy_qr_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
[GameSpyNatNegServer]
IP = 0.0.0.0
Port = 27901
+LoggerName = GameSpyNatNegServer
+LoggerFilename = gamespy_natneg_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
[GameSpyServerBrowserServer]
IP = 0.0.0.0
Port = 28910
+LoggerName = GameSpyServerBrowserServer
+LoggerFilename = gamespy_server_browser_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
[GameSpyProfileServer]
IP = 0.0.0.0
Port = 29900
+LoggerName = GameSpyProfileServer
+LoggerFilename = gamespy_profile_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
[GameSpyPlayerSearchServer]
IP = 0.0.0.0
Port = 29901
+LoggerName = GameSpyPlayerSearchServer
+LoggerFilename = gamespy_player_search_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
[GameSpyGamestatsServer]
IP = 0.0.0.0
Port = 29920
+LoggerName = GameSpyGamestatsServer
+LoggerFilename = gamespy_gamestats_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
diff --git a/altwfc_nas.cfg b/altwfc_nas.cfg
new file mode 100644
index 0000000..5995a09
--- /dev/null
+++ b/altwfc_nas.cfg
@@ -0,0 +1,119 @@
+# ALTWFC - Alternative Configuration File
+
+[StorageServer]
+IP = 127.0.0.1
+Port = 8000
+LoggerName = StorageServer
+LoggerFilename = storage_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[NasServer]
+IP = 127.0.0.1
+Port = 80
+LoggerName = NasServer
+LoggerFilename = nas_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[InternalStatsServer]
+IP = 127.0.0.1
+Port = 9001
+LoggerName = InternalStatsServer
+LoggerFilename = internal_stats_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[GameStatsServerHttp]
+IP = 127.0.0.1
+Port = 9002
+LoggerName = GameStatsServerHttp
+LoggerFilename = gamestats_server_http.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[AdminPage]
+IP = 127.0.0.1
+Port = 9009
+LoggerName = AdminPage
+LoggerFilename = admin_page.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[RegisterPage]
+IP = 127.0.0.1
+Port = 9998
+LoggerName = RegisterPage
+LoggerFilename = register_page.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[GameSpyManager]
+# GamespyBackendServer
+IP = 127.0.0.1
+Port = 27500
+LoggerName = GamespyBackendServer
+LoggerFilename = gamespy_backend_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[GameSpyQRServer]
+IP = 0.0.0.0
+Port = 27900
+LoggerName = GameSpyQRServer
+LoggerFilename = gamespy_qr_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[GameSpyNatNegServer]
+IP = 0.0.0.0
+Port = 27901
+LoggerName = GameSpyNatNegServer
+LoggerFilename = gamespy_natneg_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[GameSpyServerBrowserServer]
+IP = 0.0.0.0
+Port = 28910
+LoggerName = GameSpyServerBrowserServer
+LoggerFilename = gamespy_server_browser_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[GameSpyProfileServer]
+IP = 0.0.0.0
+Port = 29900
+LoggerName = GameSpyProfileServer
+LoggerFilename = gamespy_profile_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[GameSpyPlayerSearchServer]
+IP = 0.0.0.0
+Port = 29901
+LoggerName = GameSpyPlayerSearchServer
+LoggerFilename = gamespy_player_search_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
+
+[GameSpyGamestatsServer]
+IP = 0.0.0.0
+Port = 29920
+LoggerName = GameSpyGamestatsServer
+LoggerFilename = gamespy_gamestats_server.log
+LoggerLevel = -1
+LoggerOutputConsole = ON
+LoggerOutputFile = ON
diff --git a/dwc_config.py b/dwc_config.py
index a034de2..dddc956 100755
--- a/dwc_config.py
+++ b/dwc_config.py
@@ -1,4 +1,4 @@
-"""DWC Network Server Emulator
+"""DWC Network Server Emulator
Copyright (C) 2014 SMTDDR
Copyright (C) 2014 kyle95wm
@@ -28,23 +28,50 @@ except ImportError:
# Python 3
import configparser as ConfigParser
+import other.utils as utils
+
+
+def get_config_filename(filename='altwfc.cfg'):
+ """Return the config filename that will be used."""
+ try:
+ config = ConfigParser.RawConfigParser(allow_no_value=True)
+ config.read(filename)
+ if config.getboolean('Config', 'AlternativeConfig'):
+ return config.get('Config', 'AlternativeConfigFile')
+ except Exception as e:
+ pass
+ return filename
+
def get_ip_port(section, filename='altwfc.cfg'):
"""Return a tuple (IP, Port) of the corresponding section."""
config = ConfigParser.RawConfigParser(allow_no_value=True)
- config.read(filename)
+ config.read(get_config_filename(filename))
return (config.get(section, 'IP'), config.getint(section, 'Port'))
def get_ip(section, filename='altwfc.cfg'):
"""Return the IP of the corresponding section."""
config = ConfigParser.RawConfigParser(allow_no_value=True)
- config.read(filename)
+ config.read(get_config_filename(filename))
return config.get(section, 'IP')
def get_port(section, filename='altwfc.cfg'):
"""Return the port of the corresponding section."""
config = ConfigParser.RawConfigParser(allow_no_value=True)
- config.read(filename)
+ config.read(get_config_filename(filename))
return config.getint(section, 'Port')
+
+
+def get_logger(section, filename='altwfc.cfg'):
+ """Return the logger of the corresponding section."""
+ config = ConfigParser.RawConfigParser(allow_no_value=True)
+ config.read(get_config_filename(filename))
+ return utils.create_logger(
+ config.get(section, 'LoggerName'),
+ config.get(section, 'LoggerFilename'),
+ config.getint(section, 'LoggerLevel'),
+ config.getboolean(section, 'LoggerOutputConsole'),
+ config.getboolean(section, 'LoggerOutputFile')
+ )
diff --git a/dwc_network_server_emulator.pyproj b/dwc_network_server_emulator.pyproj
index 06d0cb0..82c6ba4 100644
--- a/dwc_network_server_emulator.pyproj
+++ b/dwc_network_server_emulator.pyproj
@@ -42,6 +42,7 @@
+
diff --git a/gamespy_backend_server.py b/gamespy_backend_server.py
index f1ffd11..4adda33 100644
--- a/gamespy_backend_server.py
+++ b/gamespy_backend_server.py
@@ -56,6 +56,8 @@ from multiprocessing import freeze_support
import other.utils as utils
import dwc_config
+logger = dwc_config.get_logger('GameSpyManager')
+
class TokenType:
UNKNOWN = 0
@@ -64,14 +66,6 @@ class TokenType:
NUMBER = 3
TOKEN = 4
-# Logger settings
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "GamespyBackendServer"
-logger_filename = "gamespy_backend_server.log"
-logger = utils.create_logger(logger_name, logger_filename, -1,
- logger_output_to_console, logger_output_to_file)
-
class GameSpyServerDatabase(BaseManager):
pass
diff --git a/gamespy_gamestats_server.py b/gamespy_gamestats_server.py
index dae6a38..f72b6c8 100644
--- a/gamespy_gamestats_server.py
+++ b/gamespy_gamestats_server.py
@@ -37,14 +37,7 @@ import gamespy.gs_utility as gs_utils
import other.utils as utils
import dwc_config
-# Logger settings
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "GameSpyGamestatsServer"
-logger_filename = "gamespy_gamestats_server.log"
-logger = utils.create_logger(logger_name, logger_filename, -1,
- logger_output_to_console, logger_output_to_file)
-
+logger = dwc_config.get_logger('GameSpyGamestatsServer')
address = dwc_config.get_ip_port('GameSpyGamestatsServer')
diff --git a/gamespy_natneg_server.py b/gamespy_natneg_server.py
index 6a3051f..3e7ce41 100644
--- a/gamespy_natneg_server.py
+++ b/gamespy_natneg_server.py
@@ -36,13 +36,7 @@ import traceback
from multiprocessing.managers import BaseManager
import dwc_config
-# Logger settings
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "GameSpyNatNegServer"
-logger_filename = "gamespy_natneg_server.log"
-logger = utils.create_logger(logger_name, logger_filename, -1,
- logger_output_to_console, logger_output_to_file)
+logger = dwc_config.get_logger('GameSpyNatNegServer')
class GameSpyServerDatabase(BaseManager):
diff --git a/gamespy_player_search_server.py b/gamespy_player_search_server.py
index c473f75..65d7c77 100644
--- a/gamespy_player_search_server.py
+++ b/gamespy_player_search_server.py
@@ -32,14 +32,7 @@ import gamespy.gs_query as gs_query
import other.utils as utils
import dwc_config
-# Logger settings
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "GameSpyPlayerSearchServer"
-logger_filename = "gamespy_player_search_server.log"
-logger = utils.create_logger(logger_name, logger_filename, -1,
- logger_output_to_console, logger_output_to_file)
-
+logger = dwc_config.get_logger('GameSpyPlayerSearchServer')
address = dwc_config.get_ip_port('GameSpyPlayerSearchServer')
diff --git a/gamespy_profile_server.py b/gamespy_profile_server.py
index 8192fdd..92c66ac 100644
--- a/gamespy_profile_server.py
+++ b/gamespy_profile_server.py
@@ -36,14 +36,7 @@ import gamespy.gs_utility as gs_utils
import other.utils as utils
import dwc_config
-# Logger settings
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "GameSpyProfileServer"
-logger_filename = "gamespy_profile_server.log"
-logger = utils.create_logger(logger_name, logger_filename, -1,
- logger_output_to_console, logger_output_to_file)
-
+logger = dwc_config.get_logger('GameSpyProfileServer')
address = dwc_config.get_ip_port('GameSpyProfileServer')
diff --git a/gamespy_qr_server.py b/gamespy_qr_server.py
index f1f8102..19d40b8 100644
--- a/gamespy_qr_server.py
+++ b/gamespy_qr_server.py
@@ -41,13 +41,7 @@ import other.utils as utils
import dwc_config
from gamespy_server_browser_server import GameSpyServerBrowserServer
-# Logger settings
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "GameSpyQRServer"
-logger_filename = "gamespy_qr_server.log"
-logger = utils.create_logger(logger_name, logger_filename, -1,
- logger_output_to_console, logger_output_to_file)
+logger = dwc_config.get_logger('GameSpyQRServer')
class GameSpyServerDatabase(BaseManager):
diff --git a/gamespy_server_browser_server.py b/gamespy_server_browser_server.py
index ddb1f3e..400decc 100644
--- a/gamespy_server_browser_server.py
+++ b/gamespy_server_browser_server.py
@@ -38,6 +38,8 @@ import dwc_config
from multiprocessing.managers import BaseManager
+logger = dwc_config.get_logger('GameSpyServerBrowserServer')
+
class ServerListFlags:
UNSOLICITED_UDP_FLAG = 1
@@ -49,14 +51,6 @@ class ServerListFlags:
HAS_KEYS_FLAG = 64
HAS_FULL_RULES_FLAG = 128
-# Logger settings
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "GameSpyServerBrowserServer"
-logger_filename = "gamespy_server_browser_server.log"
-logger = utils.create_logger(logger_name, logger_filename, -1,
- logger_output_to_console, logger_output_to_file)
-
class GameSpyServerDatabase(BaseManager):
pass
diff --git a/gamestats_server_http.py b/gamestats_server_http.py
index 057424a..fb6bc3a 100644
--- a/gamestats_server_http.py
+++ b/gamestats_server_http.py
@@ -34,13 +34,7 @@ import gamespy.gs_utility as gs_utils
import other.utils as utils
import dwc_config
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "GameStatsServerHttp"
-logger_filename = "gamestats_server_http.log"
-logger = utils.create_logger(logger_name, logger_filename, -1,
- logger_output_to_console, logger_output_to_file)
-
+logger = dwc_config.get_logger('GameStatsServerHttp')
address = dwc_config.get_ip_port('GameStatsServerHttp')
diff --git a/internal_stats_server.py b/internal_stats_server.py
index de51fd9..5c34afa 100644
--- a/internal_stats_server.py
+++ b/internal_stats_server.py
@@ -30,12 +30,7 @@ import logging
import other.utils as utils
import dwc_config
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "InternalStatsServer"
-logger_filename = "internal_stats_server.log"
-logger = utils.create_logger(logger_name, logger_filename, -1,
- logger_output_to_console, logger_output_to_file)
+logger = dwc_config.get_logger('InternalStatsServer')
class GameSpyServerDatabase(BaseManager):
diff --git a/master_server.py b/master_server.py
index 8e8c2eb..954c123 100644
--- a/master_server.py
+++ b/master_server.py
@@ -32,6 +32,7 @@ from internal_stats_server import InternalStatsServer
from admin_page_server import AdminPageServer
from storage_server import StorageServer
from gamestats_server_http import GameStatsServer
+from register_page import RegPageServer
import gamespy.gs_database as gs_database
@@ -60,6 +61,7 @@ if __name__ == "__main__":
NasServer,
InternalStatsServer,
AdminPageServer,
+ RegPageServer,
StorageServer,
GameStatsServer,
]
diff --git a/nas_server.py b/nas_server.py
index e47c8c5..1e1264b 100644
--- a/nas_server.py
+++ b/nas_server.py
@@ -35,12 +35,7 @@ import gamespy.gs_database as gs_database
import other.utils as utils
import dwc_config
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "NasServer"
-logger_filename = "nas_server.log"
-logger = utils.create_logger(logger_name, logger_filename, -1,
- logger_output_to_console, logger_output_to_file)
+logger = dwc_config.get_logger('NasServer')
# If a game from this list requests a file listing, the server will return
# that only one exists and return a random one.
@@ -178,23 +173,28 @@ class NasHTTPServerHandler(BaseHTTPServer.BaseHTTPRequestHandler):
"retry": "1",
"reason": "User banned."
}
- #Un-comment these lines to enable console registration feature
- #elif not self.server.db.pending(post):
- #logger.log(logging.DEBUG, "Login denied - Unknown console"+str(post))
- #ret = {
- #"datetime": time.strftime("%Y%m%d%H%M%S"),
- #"returncd": "3921",
- #"locator": "gamespy.com",
- #"retry": "1",
- #}
- #elif not self.server.db.registered(post):
- #logger.log(logging.DEBUG, "Login denied - console pending"+str(post))
- #ret = {
- #"datetime": time.strftime("%Y%m%d%H%M%S"),
- #"returncd": "3888",
- #"locator": "gamespy.com",
- #"retry": "1",
- #}
+ # Un-comment these lines to enable console registration
+ # feature
+ # elif not self.server.db.pending(post):
+ # logger.log(logging.DEBUG,
+ # "Login denied - Unknown console %s",
+ # post)
+ # ret = {
+ # "datetime": time.strftime("%Y%m%d%H%M%S"),
+ # "returncd": "3921",
+ # "locator": "gamespy.com",
+ # "retry": "1",
+ # }
+ # elif not self.server.db.registered(post):
+ # logger.log(logging.DEBUG,
+ # "Login denied - console pending %s",
+ # post)
+ # ret = {
+ # "datetime": time.strftime("%Y%m%d%H%M%S"),
+ # "returncd": "3888",
+ # "locator": "gamespy.com",
+ # "retry": "1",
+ # }
else:
challenge = utils.generate_random_str(8)
post["challenge"] = challenge
diff --git a/register_page.py b/register_page.py
index 3af20d6..7b60893 100644
--- a/register_page.py
+++ b/register_page.py
@@ -1,62 +1,69 @@
-# DWC Network Server Emulator
-# Copyright (C) 2014 SMTDDR
-# Copyright (C) 2014 kyle95wm
-# Copyright (C) 2014 AdmiralCurtiss
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+"""DWC Network Server Emulator
+
+ Copyright (C) 2014 SMTDDR
+ Copyright (C) 2014 kyle95wm
+ Copyright (C) 2014 AdmiralCurtiss
+ Copyright (C) 2015 Sepalani
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+"""
from twisted.web import server, resource
from twisted.internet import reactor
from twisted.internet.error import ReactorAlreadyRunning
import re
import base64
-import codecs
+import codecs
import sqlite3
import collections
import json
import time
import datetime
+import logging
+
import other.utils as utils
-import gamespy
import gamespy.gs_utility as gs_utils
+import dwc_config
+
+logger = dwc_config.get_logger('RegisterPage')
+_, port = dwc_config.get_ip_port('RegisterPage')
+
class RegPage(resource.Resource):
isLeaf = True
- def __init__(self,regpage):
+ def __init__(self, regpage):
self.regpage = regpage
- def get_header(self, title = None):
+ def get_header(self, title=None):
if not title:
title = 'Register a Console'
- s = (
- ''
- '
'
- '' + title + ''
- ''
- ''
- ''
- 'Register a console'
- '
'
- )
+ s = """
+
+
+ %s
+
+
+
+ Register a console
+
""" % title
return s
-
+
def get_footer(self):
- s = (
- ''
- ''
- )
+ s = """
+
+ """
return s
def update_maclist(self, request):
@@ -65,13 +72,21 @@ class RegPage(resource.Resource):
macadr = request.args['macadr'][0].strip()
actiontype = request.args['action'][0]
macadr = macadr.lower()
- if not re.match("[0-9a-f]{2}([-:])[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", macadr):
+ if not re.match("[0-9a-f]{2}([-:])[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$",
+ macadr):
request.setResponseCode(500)
- return "The MAC you entered was invalid. Please click the back button and try again!"
- macadr = macadr.replace(":","").replace("-","")
+ return "The MAC you entered was invalid." \
+ "Please click the back button and try again!"
+ macadr = macadr.replace(":", "").replace("-", "")
if actiontype == 'add':
- dbconn.cursor().execute('insert into pending values(?)',(macadr,))
- responsedata = "Added %s to pending list. Please close this window now. It's also not a bad idea to check back on the status of your activation by attempting to connect your console to the server." % (macadr)
+ dbconn.cursor().execute(
+ 'INSERT INTO pending VALUES(?)',
+ (macadr,)
+ )
+ responsedata = "Added %s to pending list." % (macadr)
+ responsedata += "Please close this window now."
+ " It's also not a bad idea to check back on the status of your"
+ " activation by attempting to connect your console to the server."
dbconn.commit()
dbconn.close()
request.setHeader("Content-Type", "text/html; charset=utf-8")
@@ -87,13 +102,14 @@ class RegPage(resource.Resource):
def render_maclist(self, request):
address = request.getClientIP()
dbconn = sqlite3.connect('gpcm.db')
- responsedata = (""
- "\r\n"
- ""
- "")
+ responsedata = """
+
+ """ % ('aa:bb:cc:dd:ee:ff', 'aa-bb-cc-dd-ee-ff')
dbconn.close()
request.setHeader("Content-Type", "text/html; charset=utf-8")
return responsedata
@@ -104,7 +120,7 @@ class RegPage(resource.Resource):
if request.path == "/register":
title = 'Register a Console'
response = self.render_maclist(request)
-
+
return self.get_header(title) + response + self.get_footer()
def render_POST(self, request):
@@ -113,16 +129,20 @@ class RegPage(resource.Resource):
else:
return self.get_header() + self.get_footer()
-port = 9998
+
class RegPageServer(object):
def start(self):
site = server.Site(RegPage(self))
reactor.listenTCP(port, site)
+ logger.log(logging.INFO,
+ "Now listening for connections on port %d...",
+ port)
try:
- if reactor.running == False:
+ if not reactor.running:
reactor.run(installSignalHandlers=0)
except ReactorAlreadyRunning:
pass
+
if __name__ == "__main__":
RegPageServer().start()
diff --git a/storage_server.py b/storage_server.py
index c525be9..5031a78 100644
--- a/storage_server.py
+++ b/storage_server.py
@@ -31,15 +31,11 @@ import other.utils as utils
import gamespy.gs_database as gs_database
import dwc_config
-logger_output_to_console = True
-logger_output_to_file = True
-logger_name = "StorageServer"
-logger_filename = "storage_server.log"
-logger = utils.create_logger(logger_name, logger_filename, -1, logger_output_to_console, logger_output_to_file)
-
# Paths to ProxyPass: /SakeStorageServer, /SakeFileServer
+logger = dwc_config.get_logger('StorageServer')
address = dwc_config.get_ip_port('StorageServer')
+
def escape_xml(s):
s = s.replace( "&", "&" )
s = s.replace( '"', """ )
@@ -48,12 +44,14 @@ def escape_xml(s):
s = s.replace( ">", ">" )
return s
+
class StorageServer(object):
def start(self):
httpd = StorageHTTPServer((address[0], address[1]), StorageHTTPServerHandler)
logger.log(logging.INFO, "Now listening for connections on %s:%d...", address[0], address[1])
httpd.serve_forever()
+
class StorageHTTPServer(BaseHTTPServer.HTTPServer):
def __init__(self, server_address, RequestHandlerClass):
BaseHTTPServer.HTTPServer.__init__(self, server_address, RequestHandlerClass)
@@ -210,10 +208,14 @@ class StorageHTTPServer(BaseHTTPServer.HTTPServer):
except TypeError:
return 'UNKNOWN'
+
class IllegalColumnAccessException(Exception):
pass
+
+
class FilterSyntaxException(Exception):
pass
+
class StorageHTTPServerHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def confirm_columns(self, columndata, table):