Switch ircd.conf to block-based configuration format
authorRemco Rijnders <remmy@serenity-irc.net>
Sat, 7 Mar 2026 17:17:36 +0000 (12:17 -0500)
committerRemco Rijnders <remmy@serenity-irc.net>
Sat, 7 Mar 2026 17:17:36 +0000 (12:17 -0500)
commite6b6b8d0f3995cd247db39c42882ae5382865fe9
tree635d8752c6431892183986e0b011b87d08b03f9f
parent129d7855e6654b3fc8522b5a0693037ea7d6a9bd
Switch ircd.conf to block-based configuration format

Replace the legacy colon-delimited config format with a block-based
format using curly braces and key-value pairs. This eliminates the
colon separator conflict with IPv6 addresses and supports multi-value
fields (e.g. multiple hosts in a single kline block).

The connect{} block merges the old C/N/H line triplet into a single
block. The allow{} block replaces I-lines with separate ip and host
keys. All other block types map directly to their legacy equivalents.

Includes a one-time converter script (tools/convert-conf.py) to
migrate existing configs, and a rewritten chkconf validator.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
doc/example.conf
include/h.h
src/chkconf.c
src/parse.c
src/s_conf.c
tools/convert-conf.py [new file with mode: 0755]