The main objective of this release is to enhance the new JSON-RPC functionality. In 6.0.5 we made a start and in 6.0.6 it is expanded a lot, plus some important bugs were fixed in it. Thanks everyone who has been testing the functionality!

The new UnrealIRCd Administration Webpanel (which uses JSON-RPC) is very much usable now. It allows admins to view the users/channels/servers lists, view detailed information on users and channels, manage server bans and spamfilters, all from the browser.

Both the JSON-RPC API and the webpanel are work in progress. They will improve and expand with more features over time.

If you are already using UnrealIRCd 6.0.5 and you are NOT interested in JSON-RPC or the webpanel then there is NO reason to upgrade to 6.0.6.

As usual, on *NIX you can easily upgrade with ./unrealircd upgrade

Enhancements:

  • The JSON-RPC API for UnrealIRCd has been expanded a lot. From 12 API methods to 42: stats.get, rpc.info, user.part, user.join, user.quit, user.kill, user.set_oper, user.set_snomask, user.set_mode, user.set_vhost, user.set_realname, user.set_username, user.set_nick, user.get, user.list, server.module_list, server.disconnect, server.connect, server.rehash, server.get, server.list, channel.kick, channel.set_topic, channel.set_mode, channel.get, channel.list, server_ban.add, server_ban.del, server_ban.get, server_ban.list, server_ban_exception.add, server_ban_exception.del, server_ban_exception.get, server_ban_exception.list, name_ban.add, name_ban.del, name_ban.get, name_ban.list, spamfilter.add, spamfilter.del, spamfilter.get, spamfilter.list.
    • Server admins can read the JSON-RPC documentation on how to get started. For developers, see the Technical documentation for all info on the different RPC calls and the protocol.
    • Some functionality requires all servers to be on 6.0.6 or later.
    • Some functionality requires all servers to include rpc.modules.default.conf instead of only the single server that the webpanel interfaces with through JSON-RPC. When all servers have that file included then the API call server.module_list can work for remote servers, and the API call server.rehash for remote servers can return the actual rehash result and a full log of the rehash process. It is not used for any other API call at the moment, but in the future more API calls may need this functionality because it allows us to do things that are otherwise impossible or very hard.
    • Known issue: logging of RPC actions needs to be improved. For some API calls, like adding of server bans and spamfilters, this already works, but in other API calls it is not clearly logged yet "who did what".

Changes:

  • Previously some server protocol commands could only be used by services, commands such as SVSJOIN and SVSPART. We now allow SVS* command to be used by any servers, so the JSON-RPC API can use them. There's a new option set::limit-svscmds so one can revert back to the original situation, if needed.
  • All JSON-RPC calls that don't change anything, such as user.list are now logged in the rpc.debug facility. Any call that changes anything like user.join or spamfilter.add is logged via rpc.info. This because JSON-RPC calls can be quite noisy and logging the read-only calls is generally not so interesting.

Fixes:

  • When using JSON-RPC with UnrealIRCd 6.0.5 it would often crash
  • Fix parsing services version (anope) in EAUTH.

 



Friday, February 3, 2023

« Back

Powered by WHMCompleteSolution