diff --git a/.github/workflows/test-stable.yml b/.github/workflows/test-stable.yml index f4f7778..9ac8406 100644 --- a/.github/workflows/test-stable.yml +++ b/.github/workflows/test-stable.yml @@ -347,7 +347,7 @@ jobs: uses: actions/checkout@v2 with: path: unrealircd - ref: cedd23ae9cdd5985ce16e9869cbdb808479c3fc4 + ref: da3c1c654481a33035b9c703957e1c25d0158259 repository: unrealircd/unrealircd - name: Build UnrealIRCd 6 run: | diff --git a/irctest/controllers/unrealircd.py b/irctest/controllers/unrealircd.py index f906d3d..b361796 100644 --- a/irctest/controllers/unrealircd.py +++ b/irctest/controllers/unrealircd.py @@ -100,7 +100,7 @@ set {{ }} modes-on-join "+H 100:1d"; // Enables CHATHISTORY - {set_extras} + {set_v6only} }} @@ -123,6 +123,24 @@ oper "operuser" {{ }} """ +SET_V6ONLY = """ +// Remove RPL_WHOISSPECIAL used to advertise security groups +whois-details { + security-groups { everyone none; self none; oper none; } +} + +plaintext-policy { + server warn; // https://www.unrealircd.org/docs/FAQ#server-requires-tls + oper warn; // https://www.unrealircd.org/docs/FAQ#oper-requires-tls +} + +anti-flood { + everyone { + connect-flood 255:10; + } +} +""" + def _filelock(path: Path) -> Callable[[], ContextManager]: """Alternative to :cls:`multiprocessing.Lock` that works with pytest-xdist""" @@ -206,20 +224,10 @@ class UnrealircdController(BaseServerController, DirectoryBasedController): loadmodule "cloak_md5"; """ ) - set_extras = textwrap.indent( - textwrap.dedent( - """ - // Remove RPL_WHOISSPECIAL used to advertise security groups - whois-details { - security-groups { everyone none; self none; oper none; } - } - """ - ), - " ", - ) + set_v6only = SET_V6ONLY else: extras = "" - set_extras = "" + set_v6only = "" with self.open_file("empty.txt") as fd: fd.write("\n") @@ -253,8 +261,8 @@ class UnrealircdController(BaseServerController, DirectoryBasedController): key_path=self.key_path, pem_path=self.pem_path, empty_file=self.directory / "empty.txt", + set_v6only=set_v6only, extras=extras, - set_extras=set_extras, ) ) diff --git a/irctest/server_tests/messages.py b/irctest/server_tests/messages.py index c815e94..8282ee2 100644 --- a/irctest/server_tests/messages.py +++ b/irctest/server_tests/messages.py @@ -100,8 +100,13 @@ class NoticeTestCase(cases.BaseServerTestCase): class TagsTestCase(cases.BaseServerTestCase): @cases.mark_capabilities("message-tags") - @cases.xfailIfSoftware( - ["UnrealIRCd"], "https://bugs.unrealircd.org/view.php?id=5947" + @cases.xfailIf( + lambda self: bool( + self.controller.software_name == "UnrealIRCd" + and self.controller.software_version == 5 + ), + "UnrealIRCd <6.0.7 dropped messages with excessively large tags: " + "https://bugs.unrealircd.org/view.php?id=5947", ) def testLineTooLong(self): self.connectClient("bar", capabilities=["message-tags"], skip_if_cap_nak=True) diff --git a/workflows.yml b/workflows.yml index 4f63757..9b66fc3 100644 --- a/workflows.yml +++ b/workflows.yml @@ -268,8 +268,8 @@ software: name: UnrealIRCd 6 repository: unrealircd/unrealircd refs: - stable: cedd23ae9cdd5985ce16e9869cbdb808479c3fc4 # 6.0.3 - release: cedd23ae9cdd5985ce16e9869cbdb808479c3fc4 # 6.0.3 + stable: da3c1c654481a33035b9c703957e1c25d0158259 # 6.0.7 + release: da3c1c654481a33035b9c703957e1c25d0158259 # 6.0.7 devel: unreal60_dev devel_release: null path: unrealircd