2016-04-14 01:38:15 +02:00
# Changelog
2016-04-14 07:22:53 +02:00
All notable changes to Oragono will be documented in this file.
2016-04-14 07:31:51 +02:00
This project adheres to [Semantic Versioning ](http://semver.org/ ). For the purposes of versioning, we consider the "public API" to refer to the configuration files, CLI interface and database format.
2016-04-14 01:38:15 +02:00
2017-01-19 06:39:19 +01:00
## Unreleased
New release of Oragono!
### Config Changes
2017-03-06 00:43:52 +01:00
* `registration` and `authentication-enabled` keys moved under `accounts` section.
2017-03-06 04:08:46 +01:00
* `logging` key under `server` removed, replaced with `logging` section.
2017-03-06 00:43:52 +01:00
2017-01-19 06:39:19 +01:00
### Security
### Added
2017-01-23 17:44:35 +01:00
* Added `USERHOST` command (thanks @vegax87 ).
2017-01-19 06:39:19 +01:00
### Changed
### Removed
### Fixed
2017-01-18 23:12:59 +01:00
## [0.6.0] - 2017-01-19
We've added a ton of new features in this release! Automated connection throttling, the ability to `KLINE` , updated casemapping and line-length specifications.
2016-12-11 10:46:39 +01:00
2017-01-18 23:12:59 +01:00
I've also started including a new section in the changelog called **Config Changes** , which should help you find what you need to update across releases.
### Config Changes
* `enabled` key added under the `connection-limits` section.
* `connection-throttling` section added under `server` .
* `linelen` section added under `limits` .
2016-12-11 10:46:39 +01:00
### Added
2017-01-11 13:52:15 +01:00
* Added ARM build (for Raspberry PIs and similar).
2017-01-13 14:34:26 +01:00
* Added automated connection throttling! See the new `connection-throttling` section in the config.
2017-01-12 12:20:06 +01:00
* Added `KLINE` and `UNKLINE` commands. Complementing `DLINE` 's per-IP and per-network bans, this lets you ban masks from the server.
2017-01-18 23:12:59 +01:00
* Added `LUSERS` command (thanks @vegax87 ).
2017-01-14 10:53:27 +01:00
* Added draft IRCv3 capabilities [`draft/message-tags-0.2` ](http://ircv3.net/specs/core/message-tags-3.3.html ) and [`draft/message-ids` ](http://ircv3.net/specs/extensions/message-ids.html ).
2017-01-14 07:35:59 +01:00
* Added proposed IRCv3 capability [`draft/maxline` ](https://github.com/ircv3/ircv3-specifications/pull/281 ).
2016-12-11 10:46:39 +01:00
### Changed
2017-01-13 23:02:24 +01:00
* Changed casemapping from "rfc7700" to "rfc7613", to match new draft spec.
2017-01-13 14:34:26 +01:00
* Connection limits can now be freely enabled or disabled. If updating, check the new `enabled` flag under the `connection-limits` section of the config.
2016-12-11 10:46:39 +01:00
### Fixed
2017-01-11 13:52:15 +01:00
* Fixed an issue where `UNDLINE` didn't save across server launches.
2017-01-12 08:40:01 +01:00
* Removed several race conditions which could result in server panics.
2017-01-18 23:12:59 +01:00
* WHOIS: Multiple channels now appear in a single reply (thanks @vegax87 ).
2016-12-11 10:46:39 +01:00
2016-12-10 13:24:49 +01:00
## [0.5.0] - 2016-12-10
This release includes a ton of fixes, as well as the ability to ban IP addresses from your network with the `DLINE` command!
2016-11-03 11:25:40 +01:00
2016-12-10 13:24:49 +01:00
As well, there are some major fixes with the libraries Oragono depends on, which fix various DoS attacks, crashes and timeouts. In short, this release is more stable and fixes a bunch of issues.
This release also updates the database, so be sure to run the `oragono upgradedb` command.
2016-11-03 11:25:40 +01:00
### Added
2016-11-14 23:04:34 +01:00
* Added ability to ban IP addresses and networks from the server with the `DLINE` and `UNDLINE` commands.
* Added alpha REST API (intended primarily for use with a future web interface to manage accounts, DLINEs, etc).
2016-11-03 11:25:40 +01:00
### Changed
2016-11-06 04:47:13 +01:00
* Database upgraded to make handling accounts simpler.
2016-12-01 09:16:25 +01:00
* Only give chanop (`@`) on channel join, not channel founder (`~`). We'll do channel founder and all on registered chans only.
2016-11-03 11:25:40 +01:00
### Fixed
2017-01-11 13:52:15 +01:00
* Fixed a bunch of bugs around setting nicknames on join.
2016-11-04 12:38:47 +01:00
* Fixed crash when using STATUSMSG-like messaging.
* Fixed crash with gIRC-Go ircmsg library we depend on.
2016-11-29 12:06:01 +01:00
* Fixed not sending `MODE` changes to all clients in a channel.
* Fixed timeout issue with go-ident library we depend on (which caused hangs on connection).
* Prevented a DoS related to lots of clients connecting at once.
* Removed races around setting and changing `NICK` s, to be more safe.
2016-12-01 09:16:25 +01:00
* Send channel `NOTICE` s properly.
2016-11-03 11:25:40 +01:00
2016-11-03 08:25:10 +01:00
## [0.4.0] - 2016-11-03
This release packs a more extensive oper privelege framework, bugfixes for capabilities/modes, support for new RP commands and more `RPL_ISUPPORT` tokens. In general, a bunch of new features and bugfixes to make using Oragono more smooth.
2016-10-23 01:42:57 +02:00
### Added
2016-10-23 15:05:00 +02:00
* Added automatic client connection limiting, similar to other IRCds.
2016-11-03 08:25:10 +01:00
* Added operator classes, allowing for more finely-grained permissions for operators.
2017-01-11 13:52:15 +01:00
* Added roleplaying commands, both inside channels and between clients.
2016-10-23 16:50:18 +02:00
* Length of channel mode lists (ban / ban-except / invite-except) is now restricted to the limit in config.
2016-10-23 17:01:27 +02:00
* Support `MAXLIST` , `MAXTARGETS` , `MODES` , `TARGMAX` in `RPL_ISUPPORT` .
2016-10-23 03:28:31 +02:00
* Added support for IRCv3 capability [`chghost` ](http://ircv3.net/specs/extensions/chghost-3.2.html ).
2016-10-23 01:42:57 +02:00
### Changed
2016-10-23 02:47:11 +02:00
* In the config file, "operator" changed to "opers", and new oper class is required.
2016-10-23 01:42:57 +02:00
### Fixed
2016-11-03 08:25:10 +01:00
* Fixed being able to change modes when not an operator.
2016-10-23 10:59:13 +02:00
* Fixed bug where `HELP` wouldn't correctly display for operators, and added more help topics.
2016-10-26 16:44:36 +02:00
* Fixed bug where you would always have certain capabilities enabled.
2016-11-03 08:25:10 +01:00
* Fixed display of large `MONITOR` lists.
2016-10-23 01:42:57 +02:00
2016-10-22 16:56:13 +02:00
## [0.3.0] - 2016-10-23
We now support dynamically reloading the config file, along with some new IRCv3 capabilities and some fixes.
The `REHASH` changes are fairly extensive here, but should now be stable (this also fixes a denial of service possible with the old code).
2016-10-19 13:37:59 +02:00
### Security
2016-10-22 14:16:55 +02:00
* Prevent a denial of service where the server would stop accepting connections.
2016-10-19 13:37:59 +02:00
### Added
2016-10-19 13:38:31 +02:00
* Added `REHASH` command.
2016-10-22 16:45:51 +02:00
* Added ability to message channel members with a specific privelege (i.e. support for `STATUSMSG` ).
2016-10-22 14:18:41 +02:00
* Added ability to enable and disable SASL.
2016-10-22 14:29:01 +02:00
* Added support for IRCv3 capabilities [`cap-notify` ](http://ircv3.net/specs/extensions/cap-notify-3.2.html ) and [`echo-message` ](http://ircv3.net/specs/extensions/echo-message-3.2.html ).
2016-10-19 13:37:59 +02:00
### Changed
2016-10-22 16:56:13 +02:00
* Server operators no longer have permissions to do everything in channels.
2016-10-19 13:37:59 +02:00
### Fixed
2016-10-22 16:56:13 +02:00
* MODE: Fixed issue where channel privelege changes returned incorrectly.
2016-10-19 13:37:59 +02:00
2016-10-16 13:36:21 +02:00
## [0.2.0] - 2016-10-16
Improved compatibility, more features.
2016-09-18 03:48:41 +02:00
2016-10-16 13:36:21 +02:00
Now comes with a new proper Unicode-capable casemapping and integrated help!
2016-09-18 03:48:41 +02:00
### Added
2016-10-16 05:54:09 +02:00
* Added integrated help (with the `/HELP` command).
* Added support for IRCv3.2 [capability negotiation ](http://ircv3.net/specs/core/capability-negotiation-3.2.html ) including CAP values.
2016-10-16 12:18:33 +02:00
* Added support for IRCv3 capabilities [`account-notify` ](http://ircv3.net/specs/extensions/account-notify-3.1.html ), [`invite-notify` ](http://ircv3.net/specs/extensions/invite-notify-3.2.html ), [`monitor` ](http://ircv3.net/specs/core/monitor-3.2.html ), [`sasl` ](http://ircv3.net/specs/extensions/sasl-3.2.html ), and draft capability [`message-tags` ](http://ircv3.net/specs/core/message-tags-3.3.html ) as `draft/message-tags` .
2016-09-18 03:48:41 +02:00
### Changed
2016-10-11 15:54:13 +02:00
* Casemapping changed from custom unicode mapping to preliminary [rfc7700 ](https://github.com/ircv3/ircv3-specifications/pull/272 ) mapping.
2016-09-18 03:48:41 +02:00
### Removed
2016-10-14 13:04:04 +02:00
* Removed channel persistence with the `+P` mode (not too useful as currently implemented, to be replaced later).
2016-10-15 08:29:34 +02:00
* Removed the `PROXY` command (breaks our TLS user mode, and our integrated support for TLS should be fine).
2016-09-18 03:48:41 +02:00
2016-09-18 01:15:23 +02:00
## [0.1.0] - 2016-09-18
2016-04-14 07:22:53 +02:00
Initial release of Oragono!
2016-04-14 01:38:15 +02:00
2016-06-16 11:40:25 +02:00
### 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.
2016-04-14 01:38:15 +02:00
### Added
2016-09-18 01:02:00 +02:00
* 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 ](https://tools.ietf.org/html/rfc1413 ) on client connection.
* [`RPL_ISUPPORT` ](http://modern.ircdocs.horse/#rplisupport-005 ) 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).
2016-10-16 05:54:09 +02:00
* Added support for IRCv3 capabilities [`account-tag` ](http://ircv3.net/specs/extensions/account-tag-3.2.html ), [`away-notify` ](http://ircv3.net/specs/extensions/away-notify-3.1.html ), [`extended-join` ](http://ircv3.net/specs/extensions/extended-join-3.1.html ), [`sasl` ](http://ircv3.net/specs/extensions/sasl-3.1.html ), [`server-time` ](http://ircv3.net/specs/extensions/server-time-3.2.html ), and [`userhost-in-names` ](http://ircv3.net/specs/extensions/userhost-in-names-3.2.html ).
2016-04-14 01:38:15 +02:00
### Changed
2016-09-18 01:02:00 +02:00
* 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).
2016-08-14 04:24:29 +02:00
* Renamed `ONICK` command to `SANICK` to be more consistent with other IRCds.
2016-08-14 06:07:50 +02:00
* Made maximum nickname and channel name lengths configurable.
* Made maximum `WHOWAS` entries configurable.
2016-04-14 01:38:15 +02:00
2016-04-14 07:22:53 +02:00
### Removed
2016-08-14 04:24:29 +02:00
* Removed gitconfig configuration format [replaced with YAML].
2016-09-17 13:23:04 +02:00
* Removed sqlite database [replaced with buntdb key-value store].
2016-09-12 04:31:25 +02:00
* 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).
2016-04-14 01:38:15 +02:00
2016-04-14 07:22:53 +02:00
### Fixed
2016-08-14 04:24:29 +02:00
* Fixed clients no longer being able to send commands after a single command errored out.
2016-04-14 13:36:07 +02:00
* CAP: Registration is now properly suspended during CAP negotiation.
2016-09-18 01:02:00 +02:00
* CAP: Remove CAP CLEAR (recommended in IRCv3 3.2), and allow capability negotiation after registration.
2016-04-14 13:24:40 +02:00
* MODE: Fixed `<modestring>` evaluation (we were parsing all ungrabbed parameters as a modestring, when it is actually only the first param).
2016-09-18 01:02:00 +02:00
* MODE: New-style mode change syntax (with both adding and removing modes in a single MODE command) is now parsed properly.
2016-04-14 13:36:07 +02:00
* 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).
2016-04-21 02:25:00 +02:00
* NICK: Restrict nicknames that break the protocol.
* USER: Restrict usernames that break the protocol.
2016-09-18 01:02:00 +02:00
* PROXY: Restrict to specified hostnames only.
2016-04-14 13:36:07 +02:00
* WHOIS: Include the required `<nick>` param on `RPL_ENDOFWHOIS` .
2016-04-14 14:36:20 +02:00
* WHOIS: Hide hidden channels in WHOIS responses.