From 10bced3d68854dfe905b6dc2f4d729760f6e2988 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Sat, 30 May 2020 03:47:40 +0200 Subject: [PATCH] rip out port forwarding. Broken and as a result mostly unused. --- MultiServer.py | 38 +------------------------------------- requirements.txt | 1 - 2 files changed, 1 insertion(+), 38 deletions(-) diff --git a/MultiServer.py b/MultiServer.py index b85d7bd4..9f0f1bbb 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -967,34 +967,6 @@ async def console(ctx: Context): traceback.print_exc() -async def forward_port(port: int): - import upnpy - import socket - - upnp = upnpy.UPnP() - upnp.discover() - device = upnp.get_igd() - - service = device['WANPPPConnection.1'] - - # get own lan IP - ip = socket.gethostbyname(socket.gethostname()) - - # This specific action returns an empty dict: {} - service.AddPortMapping( - NewRemoteHost='', - NewExternalPort=port, - NewProtocol='TCP', - NewInternalPort=port, - NewInternalClient=ip, - NewEnabled=1, - NewPortMappingDescription='Berserker\'s Multiworld', - NewLeaseDuration=60 * 60 * 24 # 24 hours - ) - - logging.info(f"Attempted to forward port {port} to {ip}, your local ip address.") - - def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser() defaults = Utils.get_options()["server_options"] @@ -1009,7 +981,6 @@ def parse_args() -> argparse.Namespace: parser.add_argument('--location_check_points', default=defaults["location_check_points"], type=int) parser.add_argument('--hint_cost', default=defaults["hint_cost"], type=int) parser.add_argument('--disable_item_cheat', default=defaults["disable_item_cheat"], action='store_true') - parser.add_argument('--port_forward', default=defaults["port_forward"], action='store_true') parser.add_argument('--forfeit_mode', default=defaults["forfeit_mode"], nargs='?', choices=['auto', 'enabled', 'disabled', "goal", "auto-enabled"], help='''\ Select !forfeit Accessibility. (default: %(default)s) @@ -1032,9 +1003,6 @@ def parse_args() -> argparse.Namespace: async def main(args: argparse.Namespace): logging.basicConfig(format='[%(asctime)s] %(message)s', level=getattr(logging, args.loglevel.upper(), logging.INFO)) - portforwardtask = None - if args.port_forward: - portforwardtask = asyncio.create_task(forward_port(args.port)) ctx = Context(args.host, args.port, args.password, args.location_check_points, args.hint_cost, not args.disable_item_cheat, args.forfeit_mode, args.remaining_mode) @@ -1081,11 +1049,7 @@ async def main(args: argparse.Namespace): logging.error('No save data found, starting a new game') except Exception as e: logging.exception(e) - if portforwardtask: - try: - await portforwardtask - except: - logging.exception("Automatic port forwarding failed with:") + ctx.server = websockets.serve(functools.partial(server, ctx=ctx), ctx.host, ctx.port, ping_timeout=None, ping_interval=None) logging.info('Hosting game at %s:%d (%s)' % (ip, ctx.port, diff --git a/requirements.txt b/requirements.txt index e4eabef6..599502bd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,5 @@ websockets>=8.1 PyYAML>=5.3.1 fuzzywuzzy>=0.18.0 bsdiff4>=1.1.9 -upnpy>=1.1.5 prompt_toolkit>=3.0.5 appdirs>=1.4.4 \ No newline at end of file