UnrealIRCd 6.0.2 comes with several nice feature enhancements along with some fixes. It also includes a fix for a crash bug that can be triggered by ordinary users.
deny dcc
blocks in the config or any spamfilters with the d
(DCC) target./etc/resolv.conf
is down or refusing requests.MODE
server-to-server commands were missing a timestamp at the end, even though this is mandatory for modes coming from a server.~a
to ~account
). Previously it did not, which caused letter extbans to appear in the banlist. Later on, when linking servers, this would cause duplicate entries to appear as well, with both the old and new format. The extbans were still effective though, so this is mostly a visual +b
/+e
/+I
list issue.~country:XX
was only checked against the WEBIRC proxy.unrealircdctl rehash
will now show the rehash output, including warnings and errors, and return a proper exit code.unrealircdctl reloadtls
unrealircdctl status
to show if UnrealIRCd is running, the version, channel and user count, ..unrealircdctl genlinkblock
is now documented and is referred to from the Linking servers tutorial.no
to hide the event information (e.g. connect.LOCAL_CLIENT_CONNECT
) in server notices. This can be overridden per-oper in the Oper block via oper::server-notice-show-event
.localhost
and IP 127.0.0.1
to keep things simple.MAP
command now shows percentages of usersWHO
option to search clients by time connected (e.g. WHO <300 t
to search for less than 300 seconds)MODE nick -x
and -t
via new vhost-flood
option in set::anti-flood block.help.ru.conf
.SVSMODE #chan -b nick
will now correctly remove extbans that prevent nick
from joining. This fixes a bug where it would remove too much (for ~time
) or not remove extbans (most other extbans, e.g. ~account
). SVSMODE #chan -b
has also been fixed accordingly (remove all bans preventing joins). Note that all these commands do not remove bans that do not affect joins, such as ~quiet
or ~text
.+b ~text:censor:*badword*
)+f
could place a timed extban with ~t
instead of ~time
CHGIDENT
, CHGNAME
)set::snomask-on-oper
and oper::snomask
.[duration: 60m]
instead of the [expires: ZZZ GMT]
string since that is what people are more interested in and is not affected by time zones. The format in all the 3 notices is also consistent now.Many thanks (by upstream) to k4be for his help during development, other contributors for their feedback and patches, the people who tested the beta's and release candidates, translators and everyone else who made this release happen!
UnrealIRCd 6 comes with a completely redone logging system (with optional JSON support), named extended bans, four new IRCv3 features, geoip support and remote includes support built-in.
Additionally, things are more customizable such as what gets sent to which snomask. All the +vhoaq channel modes are now modular as well, handy for admins who don't want or need halfops or +q
/+a
. For WHOIS
it is now customizable in detail who gets to see what.
A summary of the features is available at What's new in UnrealIRCd 6. For complete information, continue reading the release notes below. The sections below contain all the details.
When upgrading from UnrealIRCd 5 to 6 then you can use your existing configuration and files. There's no need to start from scratch. However, you will need to make a few updates, see Upgrading from 5.x to 6.x.
unrealircd.org/json-log
capability. The data is then sent in a message-tag called unrealircd.org/json-log
. This makes it ideal for client scripts and bots to do automated things.log { }
block is used to map what log messages should be logged to disk, and which ones should be sent to snomasks.snomasks.default.conf
which everyone should include from unrealircd.conf. That is, unless you wish to completely reconfigure which logging goes to which snomasks yourself, which is also an option now.log { }
blocks for disk logging.+b
/+e
/+I
) are still in the core+vhoaq
) are now also modular. They are all loaded by default but you can blacklist one or more if you don't want them. For example to disable halfop: blacklist-module chanmodes/halfop
;PREFIX_AQ
has been removed because people often confused it with disabling +a
/+q
which is something different.+b ~c:#channel
is now +b ~channel:#channel
.+b ~t:5:~q:nick!user@host
to +b ~time:5:~quiet:nick!user@host
.WATCH
to monitor other users ("notify list").MONITOR
, still in draft.WHOIS
and in the "user connecting" line.geoip_maxmind
and geoip_csv
modules.WHOIS
output in a very precise wayloadmodule
:cloak_sha256
: the recommended module for anyone starting a new network. It uses the SHA256 algorithm under the hood.cloak_md5
: for anyone who is upgrading their network from older UnrealIRCd versions. Use this so your cloaked host bans remain the same.cloak_none
: if you don't want any cloaking, not even as an option to your users (rare)https://
fetching is now always available, even if you don't compile with libcurl support.set::normal-user-invite-notification yes;
to make chanops receive information about normal users inviting someone to their channel. The name of this setting may change in a later version.listen::options::websocket::forward 1.2.3.4
option to make unrealircd accept a Forwarded
(RFC 7239) header from a reverse proxy connecting from 1.2.3.4
(plans to accept legacy X-Forwarded-For
and a proxy password too). This feature is currently experimental.[secure: xyz]
connect line.reputation.db
)./REHASH -motd
and -opermotd
are gone, just use /REHASH
See https://www.unrealircd.org/docs/Upgrading_from_5.x, but in short:
You can use the unrealircd.conf from UnrealIRCd 5, but you need to make a few changes:
include "snomasks.default.conf"
;loadmodule "cloak_md5"
;log {
source {
!debug;
all;
}
destination {
file "ircd.log" { maxsize 100M; }
}
}
SJOIN
messages are generated for the same channel then we now only send the current channel modes (e.g. +sntk key
) in the first SJOIN and not in the other ones as they are unneeded for the immediate followup SJOINs, they waste unnecessary bytes and CPU. Such messages may be generated when syncing a channel that has dozens of users and/or bans/exempts/invexes. Ideally this should not need any changes in other software, since we already supported such messages in the past and code for handling it exists way back to 3.2.x, but you better check to be sure!PROTOCTL NEXTBANS
then you will receive extended bans with Named EXTended BANs instead of letters (e.g.: +b ~account:xyz
), otherwise you receive them with letters (e.g.: +b ~a:xyz
).s2s-md/moddataname=value
. Thus, data such as operinfo, tls cipher, geoip, certfp, sasl and webirc is communicated at the same time as when a remote connection is added. This makes it that a "connecting from" server notice can include all this information and also so code can make an immediate decission on what to do with the user in hooks. ModData modules need to set mreq.sync = MODDATA_SYNC_EARLY
; if they want this. Servers of course need to enable MTAGS
in PROTOCTL
to see this.SLOG
command is used to broadcast logging messages. This is done for log::destination
remote, as used in doc/conf/snomasks.default.conf, for example for link errors, oper ups, flood messages, etc. It also includes all JSON data in a message tag when PROTOCTL MTAGS
is used.&
which servers were to act on with reversed logic (add becoming remove and vice versa) and never to send something back to that server. In practice this was almost never used and complicated the code (way) too much.+b ~a:XYZ
) then the server will convert it to the new format with names (e.g.: +b ~account:XYZ
)MONITOR
and the other IRCv3 features (see Enhancements)Please login to add feedback.
This update has been submitted for testing by robert.
This update's test gating status has been changed to 'ignored'.
robert edited this update.
This update has been pushed to testing.
This update has been submitted for stable by bodhi.
This update has been pushed to stable.