Initial Release
Pre-release
Pre-release
Somewhat of an initial release! This version still has lots of bugs and lots of functionality to rewrite, but there's a lot of useful changes from upstream.
Change notes:
Security
- PROXY command is now restricted appropriately.
- Nicknames, usernames and channel names that break the protocol are no longer allowed.
- Default channel modes set to restrict new channels more appropriately by default.
Added
- YAML config file format.
- buntdb key-value store for persistent data.
- Native SSL/TLS support (thanks to @Edmand).
- Ability to generate testing certificates from the command line.
- Support for looking up usernames with ident on client connection.
RPL_ISUPPORT
numeric as advertised by most other IRCds today.- Ability to parse complex mode change syntax commonly used these days (i.e.
+h-ov dan dan dan
). - User mode for clients connected via TLS (
+Z
). - Ability to register and login to accounts (with passphrase or certfp).
- Support for IRCv3 capabilities
account-tag
,away-notify
,extended-join
,sasl
,server-time
, anduserhost-in-names
.
Changed
- Channel creator (
O
) privilege changed to founder/admin/halfops (qah
) privileges. - Private (
+p
) channel mode changed to secret (+s
), to match what's used by servers today. - Default channel modes changed to (
+nt
), matching most other IRCds. - CLI commands and arguments made more consistent with typical software.
- Usernames set by the
USER
command now start with"~"
(to work with new ident support). - Renamed
ONICK
command toSANICK
to be more consistent with other IRCds. - Made maximum nickname and channel name lengths configurable.
- Made maximum
WHOWAS
entries configurable.
Removed
- Removed gitconfig configuration format [replaced with YAML].
- Removed sqlite database [replaced with buntdb key-value store].
- Removed
THEATER
command (it broke and I'm not that interested in putting the work in to get it working again with the aim of this project. PRs accepted).
Fixed
- Fixed clients no longer being able to send commands after a single command errored out.
- CAP: Registration is now properly suspended during CAP negotiation.
- CAP: Remove CAP CLEAR (recommended in IRCv3 3.2), and allow capability negotiation after registration.
- MODE: Fixed
<modestring>
evaluation (we were parsing all ungrabbed parameters as a modestring, when it is actually only the first param). - MODE: New-style mode change syntax (with both adding and removing modes in a single MODE command) is now parsed properly.
- MOTD: Now store MOTD in-memory rather than on-disk, and don't limit it to 80 characters per line (not required with today's servers or clients).
- NICK: Restrict nicknames that break the protocol.
- USER: Restrict usernames that break the protocol.
- PROXY: Restrict to specified hostnames only.
- WHOIS: Include the required
<nick>
param onRPL_ENDOFWHOIS
. - WHOIS: Hide hidden channels in WHOIS responses.