Some fixes for Bahamut

This commit is contained in:
Valentin Lorentz 2021-08-09 01:47:18 +02:00
parent 84d667e95e
commit dfaec16c47
4 changed files with 21 additions and 9 deletions

View File

@ -186,6 +186,7 @@ class BaseServerController(_BaseController):
services_controller_class: Type[BaseServicesController] services_controller_class: Type[BaseServicesController]
extban_mute_char: Optional[str] = None extban_mute_char: Optional[str] = None
"""Character used for the 'mute' extban""" """Character used for the 'mute' extban"""
nickserv = "NickServ"
def run( def run(
self, self,
@ -279,7 +280,7 @@ class BaseServicesController(_BaseController):
timeout = time.time() + 5 timeout = time.time() + 5
while True: while True:
c.sendLine("PRIVMSG NickServ :HELP") c.sendLine(f"PRIVMSG {self.server_controller.nickserv} :HELP")
msgs = self.getNickServResponse(c) msgs = self.getNickServResponse(c)
for msg in msgs: for msg in msgs:
if msg.command == "401": if msg.command == "401":
@ -332,7 +333,11 @@ class BaseServicesController(_BaseController):
while case.getRegistrationMessage(client).command != "001": while case.getRegistrationMessage(client).command != "001":
pass pass
case.getMessages(client) case.getMessages(client)
case.sendLine(client, f"PRIVMSG NickServ :REGISTER {password} foo@example.org") case.sendLine(
client,
f"PRIVMSG {self.server_controller.nickserv} "
f":REGISTER {password} foo@example.org",
)
msgs = self.getNickServResponse(case.clients[client]) msgs = self.getNickServResponse(case.clients[client])
if self.server_controller.software_name == "inspircd": if self.server_controller.software_name == "inspircd":
assert "900" in {msg.command for msg in msgs}, msgs assert "900" in {msg.command for msg in msgs}, msgs

View File

@ -23,7 +23,7 @@ options {{
services_name services.example.org; services_name services.example.org;
// if you need to link more than 1 server, uncomment the following line // if you need to link more than 1 server, uncomment the following line
# servtype hub; servtype hub;
}}; }};
/* where to listen for connections */ /* where to listen for connections */
@ -64,7 +64,7 @@ class {{
/* our services */ /* our services */
connect {{ connect {{
name services.example.org; name services.example.org;
host *@*; host *@127.0.0.1; # unfortunately, masks aren't allowed here
apasswd password; apasswd password;
cpasswd password; cpasswd password;
class services; class services;
@ -72,10 +72,11 @@ connect {{
""" """
class UnrealircdController(BaseServerController, DirectoryBasedController): class BahamutController(BaseServerController, DirectoryBasedController):
software_name = "Bahamut" software_name = "Bahamut"
supported_sasl_mechanisms = {"PLAIN"} supported_sasl_mechanisms: Set[str] = set()
supports_sts = False supports_sts = False
nickserv = "NickServ@services.example.org"
def create_config(self) -> None: def create_config(self) -> None:
super().create_config() super().create_config()
@ -150,5 +151,5 @@ class UnrealircdController(BaseServerController, DirectoryBasedController):
) )
def get_irctest_controller_class() -> Type[UnrealircdController]: def get_irctest_controller_class() -> Type[BahamutController]:
return UnrealircdController return BahamutController

View File

@ -38,6 +38,7 @@ def validate_chathistory_batch(msgs):
return result return result
@cases.mark_specifications("IRCv3")
@cases.mark_services @cases.mark_services
class ChathistoryTestCase(cases.BaseServerTestCase): class ChathistoryTestCase(cases.BaseServerTestCase):
@staticmethod @staticmethod

View File

@ -118,7 +118,12 @@ class ConnectionRegistrationTestCase(cases.BaseServerTestCase):
self.sendLine(1, "NICK foo") self.sendLine(1, "NICK foo")
self.sendLine(2, "NICK foo") self.sendLine(2, "NICK foo")
self.sendLine(1, "USER username * * :Realname") self.sendLine(1, "USER username * * :Realname")
try:
self.sendLine(2, "USER username * * :Realname") self.sendLine(2, "USER username * * :Realname")
except (ConnectionClosed, ConnectionResetError):
# Bahamut closes the connection here
pass
try: try:
m1 = self.getRegistrationMessage(1) m1 = self.getRegistrationMessage(1)