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 = ("" - "
" - "macadr (must be in the format of aa:bb:cc:dd:ee:ff or aa-bb-cc-dd-ee-ff):\r\n" - "\r\n" - "
\r\n" - "" - "") + responsedata = """ + + macadr (must be in the format of %s or %s): + + + + +
""" % ('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):