diff --git a/fieldpoc/ywsd.py b/fieldpoc/ywsd.py index bcca4af..ab69843 100644 --- a/fieldpoc/ywsd.py +++ b/fieldpoc/ywsd.py @@ -11,6 +11,21 @@ import yate.asyncio logger = logging.getLogger("fieldpoc.ywsd") +### BEGIN Monkeypatches + +# disable asyncio signal handlers +def add_signal_handler(*args, **kwargs): + raise NotImplementedError("Disable signal handling so we can run ywsd in a thread") +asyncio.unix_events._UnixSelectorEventLoop.add_signal_handler = add_signal_handler + +# paython-yate stuff I have no idea why anymore +async def setup_for_tcp(self, host, port): + self.reader, self.writer = await asyncio.open_connection(host, port) + self.send_connect() +yate.asyncio.YateAsync.setup_for_tcp = setup_for_tcp + +### END Monkeypatches + class Ywsd: def __init__(self, fp): self.fp = fp @@ -55,17 +70,7 @@ class Ywsd: def run(self): - # Mokey patch python-yate so I don't have to fork it yet - async def setup_for_tcp(self, host, port): - self.reader, self.writer = await asyncio.open_connection(host, port) - self.send_connect() - yate.asyncio.YateAsync.setup_for_tcp = setup_for_tcp - - # Mokey patch ywsd so I don't have to fork it yet asyncio.set_event_loop(self.event_loop) - def add_signal_handler(*args, **kwargs): - raise NotImplementedError("Disable signal handling so we can run ywsd in a thread") - asyncio.get_event_loop().add_signal_handler = add_signal_handler logger.info("starting ywsd") self.app = ywsd.engine.YateRoutingEngine(settings=self.settings(), web_only=False, **self.settings().YATE_CONNECTION) diff --git a/flake.nix b/flake.nix index da94c3a..13b63d7 100644 --- a/flake.nix +++ b/flake.nix @@ -31,13 +31,13 @@ ywsd = pkgs.python3Packages.buildPythonApplication rec { pname = "ywsd"; - version = "0.11.0"; + version = "0.12.2"; src = pkgs.fetchFromGitHub { owner = "eventphone"; repo = pname; - rev = "905a5bdee7a779eef83bc96d9c9a5b7a2212d5f0"; - sha256 = "sha256-UNpr1OCmb7U6TisgVcnZVSbhdgQ3AREX/XNXru+UsF4="; + rev = "v${version}"; + sha256 = "sha256-VkL7MhK6Z0Y1Hnnoq0Ukyclk9gfc4u8qav6yNj+LCJg="; }; propagatedBuildInputs = [ @@ -53,14 +53,15 @@ python-yate = pkgs.python3Packages.buildPythonPackage rec { pname = "python-yate"; - version = "0.3.1"; + version = "0.4.1"; src = pkgs.python3Packages.fetchPypi { inherit pname version; - sha256 = "5e806802dc47a35c855b60cd459a2c98fb0109c7fc099f3e9f83a1a38abf9f90"; + sha256 = "sha256-rx0hcmP4SmvCkKXawyiMTKCVpTKTAgZVpbdQFdxV+hs="; }; propagatedBuildInputs = [ + pkgs.python3Packages.aiohttp pkgs.python3Packages.async-timeout ];