- Add
irc_bot_pollable_add
to insert a custom interface into the main irccd loop. - A new option
IRCCD_WITH_HTTP
has been added to accommodate the new curl dependency forIrccd.Http
API. - The plugin
history
manages two different timestamps for message and visibility. This helps showing the last message date of someone who is present on a channel but idle.
- Brand new asynchronous
Irccd.Http
API.
- links: rewritten in Javascript using the brand new
Irccd.Http
API.
- Improve tests running on a slow machines.
- Fix a warning on a invalid comparison.
- Fix build on NetBSD 9.3.
- Fix crash because of undefined variable.
- Fix disconnection with multiple servers.
- Fix Javascript
Irccd.Server
constructor function. - Substitute the irccd version in Javascript plugins.
- Fix
irccdctl plugin-reload
command without argument.
This is a major release. See MIGRATING.md file for more information.
The key highlight for this release is the rewrite from C++ to C. The only runtime dependency required is OpenSSL (if built with SSL support).
- Irccd keeps track of nicknames in channels by capturing join/part/kick and mode changes. It is now more convenient from the plugins to quickly inspect if someone is present on a channel.
- It is now possible to change uid/gid of the transport socket file. The file is also created with permissions 664.
- A new
paths
command has been added to show default paths.
- Commands
plugin-reload
andplugin-unload
can be invoked without arguments. - New
plugin-template
andplugin-path
command which are synonyms ofplugin-config
but for templates and paths respectively.
- tictactoe: now has a timeout in case of inactivity.
- Split irccd-api manual page into individual irccd-api- for a better readability.
- New
irccd.conf
andirccdctl.conf
syntax.
- Network protocol uses plain text again.
- Transport uses clear UNIX sockets only without passwords.
- Brand new Irccd.Rule API to inspect and manage rules.
- Brand new Irccd.Hook API to inspect and manage hooks.
- Synchronize
ping-timeout
option in[server]
to 1800 seconds by default. - Enable
auto-reconnect
option in[server]
by default as specified in the manual page.
- Added a new hook system. Hooks consist of an alternative approach to plugins to extend irccd in any language.
- Fix errors in irccdctl.conf example file.
- Add example of password in irccdctl.conf and irccd.conf.
- Added IRCCD_WITH_JS CMake variable in irccd package.
- Fixed trailing CTCP escape code.
- Fixed invalid parameters in topic event.
- Fixed invalid documentation of Irccd.System.usleep function.
- Fixed invalid system configuration directory.
- Fixed an invalid template escape sequence.
- Updated the default configuration files.
- Fix RPATH handling for private libraries like Duktape.
This is a major release. See MIGRATING.md file for more information.
- New sections
[paths]
and[paths.plugin]
have been added to control standard paths for both irccd and plugins. - Irccd no longer supports uid, gid, pid and daemon features.
- Sections
[identity]
and[server]
have been merged. - Local transports support SSL.
- The origin in rule is now first class value.
- New option
ipv4
in[transport]
. - New option
ipv4
in[server]
. - Section
[format]
is renamed to[templates]
. - New commands are available as irccd arguments
info
andversion
.
- New option
ipv4
in[connect]
. - New option
-o
inrule-add
. - New option
-o
and-O
inrule-edit
.
- A brand new
irccd-test
program has been added to tests plugins on the command line.
- CMake no longer create a fake installation directory while building.
- All targets are placed into the
bin
directory while building.
- Network commands return an error code instead of a string.
- The Irccd.Timer API now runs on top of Boost.Asio and no longer have custom buggy code.
- New Irccd.Server.isSelf function.
- The code is now based on Boost for many internal parts of the core.
- The libircclient has been replaced by a simple homemade library.
- The documentation is in pure manual pages now.
- All command line options are now in short form only.
- Introduce brand new joke plugin.
- Introduce brand new tictactoe plugin.
- Introduce brand new links plugin.
- Add new Irccd.Util.cut function.
- Add new irccdctl commands to edit rules.
- Plugin plugin: add options max-list-lines, max-list-columns.
- Import Duktape 2.1.0.
- Fix identity.ctcp-version option.
- Rules are now case insensitive.
- Plugin hangman, history and logger are now case insensitive.
- Plugin hangman: fix successive word selection.
- Fix SSL initialization error in libircclient.
- Fix various SSL warnings.
- Fix build on Linux with musl.
- Fix case sensitivity in hangman and roulette.
- Fix invalid documented option transport.family.
- Fix error when logs.type is set to console.
- Fix invalid IPV6_V6ONLY option in transports.
- Add SSL support in transports.
- Add authentication support in transports.
- Fix a warning about daemon on macOS.
- New Irccd.File.lines function.
- Various improvements in Irccd.File API.
- Add new format section for plugins.
- Add unit tests for plugins.
- Added brand new plugin-config command.
- Added aliases.
- Added unit tests for irccdctl commands.
- Replaced jansson with Niels Lohmann's JSON library.
- Updated Duktape to 1.5.1.
- Patterns can now use shell escape sequences,
- Added .editorconfig file.
- Split documentation into topics.
- The code is now split into several individual libraries.
- Get rid of QtIFW and uses NSIS, WIX on Windows,
- Installer have components.
- Copy DLL files automatically into fakeroot and install.
- Added better support for cross-compiling using MinGW.
- Fix various errors in logger plugin.
- Fix quakenet support in auth plugin.
- Fix CMake error preventing installation of irccd and irccdctl.
- Plugin plugin: fix invalid usage.
This is a major release. See MIGRATING.md file for more information.
The key highlight for this release is the switch from Lua to Javascript. Lua has
lots of drawbacks including poor versioning support which leads to too many
#ifdef
s in the code base to maintain compatibility over all versions. The
Javascript engine is powered by Duktape and offers proper semantic
versioning.
The Mercurial repository has been reset for this release, revisions for earlier versions are no longer available.
- Long options removed.
- All notions of channel notice and channel mode have been deleted.
- Everywhere applicable,
host
is renamed tohostname
instead.
- Section
[identity]
and[server]
have been merged. - Section
[format]
and plugin variants have been renamed to[templates]
. - New options
uid
,gid
andpidfile
in[general]
section. - New
[logs]
section with more features. - New rule system to filter events through their plugins.
- Commands start with a prefix to separate categories (e.g.
plugin-
.server-
, etc). - New command
watch
to get realtime events.
- New hangman plugin.
- New plugin plugin.
- Deleted antiflood plugin.
- Deleted date plugin.
- Deleted badwords plugin.
- New
Irccd.ElapsedTimer
API. - New
Irccd.Timer
API. - New
Irccd.Unicode
API. - Deleted Socket API.
- Deleted Thread API.
- Option start with
IRCCD_
for better grouping in GUIs. - Use of
GNUInstallDirs
instead of our own macros.
- Use of JSON message instead of ASCII protocol.
- Fix Mac OS X build.
- Fix null constructed strings.
- Fix general.foreground option not working.
- Windows: Lua and OpenSSL are built as DLL and copied to installation.
- Fix Visual C++ redistributable installation.
- Fix default internet socket address.
- Remove listener disconnection errors,
- Updated Windows C++ 2013 redistributable.
- Fix the example in roulette documentation.
- Fix command parsing for onCommand event.
- Fix fs.mkdir that didn't return an error.
- Add missing optional mode parameter in fs.mkdir documentation.
- Also add
irccd.VERSION_PATCH
.
- Added support for UDP sockets.
- Added a plugin for authentication.
- Windows irccd's home is now the irccd.exe parent directory.
- Added new socket API for Lua.
- Added new thread API for Lua.
- Added support for server reconnection.
- Added support for text formatting with colors and attributes.
- Added support for onMe (CTCP Action) event.
- Added new way to load plugin by paths.
- Server:whois and server:names generate a new events instead of callback.
- Support of connecting and disconnecting at runtime.
- Plugin has more information, getHome() and getName() are deprecated.
- Split irccd.util into irccd.fs and irccd.system.
- Added support for LuaJIT.
- Errata, onMe event is not implemented.
- Fixed build without Lua.
- Improved documentation a lot.
- Improved NSIS installer.
- Fixed basename() issue.
- Initial release.