You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Changelog

All notable changes to Oragono will be documented in this file.

This project adheres to Semantic Versioning. For the purposes of versioning, we consider the “public API” to refer to the configuration files, CLI interface and database format.

Unreleased

Initial release of Oragono!

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

  • Added YAML config file format.
  • Added buntdb key-value store for persistent data.
  • Added native SSL/TLS support (thanks to @edmand).
  • Added ability to generate testing certificates from the command line.
  • Added support for looking up usernames with ident on client connection.
  • Added RPL_ISUPPORT numeric as advertised by most other IRCds today.
  • Added ability to parse complex mode change syntax commonly used these days (i.e. +h-ov dan dan dan).
  • Added user mode for clients connected via TLS (+Z).
  • Added ability to register and login to accounts (with passphrase or certfp).
  • Added support for IRCv3 capabilities account-tag, away-notify, extended-join, sasl, server-time, and userhost-in-names.

Changed

  • Changed channel creator (O) privilege to founder/admin/halfops (qah) privileges.
  • Changed private (+p) channel mode to secret (+s), to match what’s used by servers today.
  • Changed default channel modes to (+nt), matching most other IRCds.
  • Changed CLI commands and arguments to be more consistent with typical software.
  • Changed usernames set by the USER command to start with "~" (to work with new ident support).
  • Renamed ONICK command to SANICK 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, 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 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.
  • PROXY: Restrict to specified hostnames only.
  • USER: Restrict usernames that break the protocol.
  • WHOIS: Include the required <nick> param on RPL_ENDOFWHOIS.
  • WHOIS: Hide hidden channels in WHOIS responses.