irctest/irctest/controllers/hybrid.py

83 lines
1.7 KiB
Python

from typing import Set, Type
from .base_hybrid import BaseHybridController
TEMPLATE_CONFIG = """
serverinfo {{
name = "My.Little.Server";
sid = "42X";
description = "test server";
# Hybrid defaults to 9
max_nick_length = 20;
{ssl_config}
}};
general {{
throttle_count = 100; # We need to connect lots of clients quickly
sasl_service = "SaslServ";
# Allow PART/QUIT reasons quickly
anti_spam_exit_message_time = 0;
# Allow all commands quickly
pace_wait_simple = 0;
pace_wait = 0;
}};
listen {{
defer_accept = yes;
host = "{hostname}";
port = {port};
port = {services_port};
}};
class {{
name = "server";
ping_time = 5 minutes;
connectfreq = 5 minutes;
}};
connect {{
name = "services.example.org";
host = "localhost"; # Used to validate incoming connection
port = 0; # We don't need servers to connect to services
send_password = "password";
accept_password = "password";
class = "server";
}};
service {{
name = "services.example.org";
}};
auth {{
user = "*";
flags = exceed_limit;
{password_field}
}};
operator {{
name = "operuser";
user = "*@*";
password = "operpassword";
encrypted = no;
umodes = locops, servnotice, wallop;
flags = admin, connect, connect:remote, die, globops, kill, kill:remote,
kline, module, rehash, restart, set, unkline, unxline, xline;
}};
"""
class HybridController(BaseHybridController):
software_name = "Hybrid"
binary_name = "ircd"
services_protocol = "hybrid"
supported_sasl_mechanisms: Set[str] = set()
template_config = TEMPLATE_CONFIG
def get_irctest_controller_class() -> Type[HybridController]:
return HybridController