Changes ::
Noteworthy changes in version 8.2.45 (2024-07-02)
- The module API has been rewritten for improved flexibility. A
modules.conf
file is now
required for configuring and loading modules. For further information, refer to the
doc/reference.modules.conf
. - The
INFO
subsystem has been updated to support dynamic registration and unregistration
of info entries. This allows modules to register and unregister their own info entries,
which are shown in theINFO
output. - Added support for a flattened
MAP
output whenserverhide::flatten_links
is enabled.
This allows users to view a simplified network topology where all servers appear as if
they are directly connected to the local server.
Noteworthy changes in version 8.2.44 (2024-06-15)
- Fixed FTCBFS issue caused by ./configure using macros that lacked special handling
for cross-compilation scenarios - Fixed the issue where
XLINE
andUNXLINE
were not working properly on servers within
a cluster - Command-line options now support both short (
-c
) and long (--configfile
) formats.
The available options are:-c
or--configfile
for the configuration file-k
or--klinefile
for the kline database file-d
or--dlinefile
for the dline database file-x
or--xlinefile
for the xline database file-r
or--resvfile
for the resv database file-l
or--logfile
for the log file-p
or--pidfile
for the PID file-f
or--foreground
to run in the foreground-v
or--version
to print the version and exit-h
or--help
to display help information
- The new IRC operator flag,
message:mass
, has been implemented. This flag controls
access to sending mass messages using theNOTICE $$*.mask
command. - Upon connecting, a user will now receive a notice with their client certificate
fingerprint, if provided. - The
INFO
command now includes theserverinfo::name
,serverinfo::sid
, and
serverinfo::description
configuration options in its output. - The
STATS
subsystem has been rewritten to support dynamic registration and unregistration
of stats handlers. This allows modules to register and unregister their own stats handlers. - Implemented hostname cloaking API to improve user privacy and security by obfuscating real
IP addresses. The cloaking process uses CIDR masking, SHA3 hashing, and base32 encoding to
generate secure and unique cloaked hostnames. The following configuration directives
have been introduced:general::cloak_enabled
: Enable or disable hostname cloaking.general::cloak_cidr_len_ipv4
: CIDR length for IPv4 addresses used in hostname cloaking.general::cloak_cidr_len_ipv6
: CIDR length for IPv6 addresses used in hostname cloaking.general::cloak_num_bits
: Number of bits for the MAC computation used in hostname cloaking.general::cloak_secret
: Secret key used in the MAC computation for hostname cloaking.general::cloak_suffix
: Suffix appended to the cloaked hostname.
- Added user mode
+x
(cloak) to activate hostname cloaking for the user, replacing their
real IP address with a cloaked hostname. - The
INFO
command now includes the new cloaking configuration options in its output. The
following cloaking-related configuration directives will be shown:general::cloak_enabled
general::cloak_cidr_len_ipv4
general::cloak_cidr_len_ipv6
general::cloak_num_bits
general::cloak_secret
(displayed as<REDACTED>
for security)general::cloak_suffix
Noteworthy changes in version 8.2.43 (2022-09-26)
- Due to ongoing protocol modernizations and deprecation of old backwards compatibility
code, ircd-hybrid is now no longer link compatible to 8.2.33 and below.
As for the Anope IRC Services, 2.0.8 is the minimum supported version now. - Implemented channel mode
V
.INVITE
cannot be used on channels with that mode set. WHOIS
on clients connected via TLS now also shows some details about the TLS version
and cipher being used- Removed user mode
d
(debugging notices)
Noteworthy changes in version 8.2.42 (2022-08-28)
- Added support for reproducible builds using the
SOURCE_DATE_EPOCH
environment
variable. See https://reproducible-builds.org/docs/source-date-epoch/ for more
information. - Implemented channel mode
Q
.KICK
cannot be used on channels with that mode set. - Implemented user mode
Z
. Users with that mode set may only receive private
messages from other users that are connected via TLS. - Fixed issue where
WHO nick
on invisible clients (user modei
) wouldn’t work
Noteworthy changes in version 8.2.41 (2022-07-15)
- Fixed issue where
WHO
didn’t work on channel names with two or more consequent
asterisk characters - IRCv3 WHOX has been implemented. See
doc/who.txt
for more information about
the newWHO
options and features. - Clients that are connected via TLS are now flagged with the letter
S
in the
who reply
Noteworthy changes in version 8.2.40 (2022-07-02)
channel::disable_fake_channels
now also blocks strikethrough text (0x1E (30))KNOCK
can now be used on private channels. Channel modeK
may be used instead
to control whether or notKNOCK
is allowed on a channel.- Support for
/dev/poll
has been dropped INFO
now also reports configured values ofchannel::default_join_flood_count
andchannel::default_join_flood_time
- The founder
q
and admina
channel prefix modes have been implemented.
These are optional and can be enabled with the newchannel::enable_owner
andchannel::enable_admin
configuration directives. - Channel half-ops may now kick other half-ops
- Extban
$K
of type acting has been implemented. This extban prevents
matching users from using theKNOCK
command. - Server-side channel mode locking
MLOCK
has been implemented - Fixed server name leak in
WHOWAS
withserverhide::hide_services
enabled
Noteworthy changes in version 8.2.39 (2021-08-14)
hidechans
andhideidle
may now be set ingeneral::oper_only_umodes
- OpenSSL 3.0 compatibility improvements
- Fixed crashing issue in the mkpasswd tool with older glibc
- Fixed issue where the ircd wouldn’t listen on both IPv4 and IPv6 ports in
case only a port but no address has been specified in a listen {} block - Fixed a
STATS P
displaying issue with compressed ipv6 loopback/inaddr_any
Noteworthy changes in version 8.2.38 (2021-01-17)
- Backwards compatibility mode for ircd-hybrid 8.2.22 and below has been removed
- Minimum supported version of the Anope IRC services is now 2.0.8
- Fixed displaying issue with channel
MODE
messages - Characters valid for user names (ident) for local clients are now
[A-Za-z0-9._-]
.
Special characters like}|{`^]\[$
, that were allowed previously, are no longer
valid. Also user names may not begin with.
,_
, or-
. - The
general::dots_in_ident
configuration directive has been renamed to
general::specials_in_ident
and now covers the-
and_
characters in
addition to.
- Fixed issue with clients connected from IPv6 localhost that, depending on the
system’sgetaddrinfo
implementation, could lead to a crash of remote servers
Noteworthy changes in version 8.2.37 (2020-12-26)
- Implemented IRCv3
CAP 302
- Implemented IRCv3
cap-notify
capability - In case a client sends multiple
PASS
messages, ircd only accepts the password
sent in the firstPASS
message instead of the last one - Missing help file for
MONITOR
has been added - Fixed slightly off memory count for motds in
STATS z
Noteworthy changes in version 8.2.36 (2020-12-04)
- The old
WATCH
implementation has been replaced with IRCv3.2MONITOR
. For this,
thegeneral::max_watch
configuration directive has been renamed to
general::max_monitor
. - User mode
B
has been implemented. Clients with that mode set are marked as a
bot in bothWHOIS
andWHO
. This mode can only be set by IRC operators (as
long as thebot
directive is set ingeneral::oper_only_umodes
), servers,
and services.
This mode can for example be used to mark HOPM as official network bot.
Noteworthy changes in version 8.2.35 (2020-11-14)
- Fixed issue where servers could propagate truncated ban masks during net-join
Noteworthy changes in version 8.2.34 (2020-11-01)
- Re-implement backwards compatibility mode for old ircd-hybrid 8.2.23 and below.
Final removal is scheduled for early 2021. - For consistency, the
general::network_desc
configuration directive has been
renamed togeneral::network_description
- Server notices that previously have been sent to user modes
f
andu
are now
sent to user modej
(reject notices) instead. Due to this change,unauth
and
full
have been removed fromgeneral::oper_only_umodes
,general::oper_umodes
,
andoperator::umodes
. - User mode
b
(bots) has been replaced withf
(flood). Spam/flood notices are now
sent to this user mode. For this,bots
has been removed from
general::oper_only_umodes
,general::oper_umodes
, andoperator::umodes
.
flood
has been added instead to these configuration directives. - Stricten server/user ID validation. IDs have to be all uppercase everywhere now.
Noteworthy changes in version 8.2.33 (2020-09-07)
- Added
client
option tolistener::flags
- Added
defer
option tolistener::flags
- IRC operators may now use CIDR notation in
WHO
Noteworthy changes in version 8.2.32 (2020-08-16)
RESV
couldn’t be issued in case no reason has been supplied. This has been fixed.- Fixed possible
RPL_WHOISCHANNELS
line truncation of remote replies - Extban
$t
of type matching has been implemented. This extban allows matching
based on TLS protocol version and/or cipher suite. - Implemented channel mode
K
.KNOCK
cannot be used on channels with that mode set. STATS ?
is now oper-only
Noteworthy changes in version 8.2.31 (2020-05-03)
- macOS compatibility fixes
- Removed
spoof_notice
fromauth::flags
. With vhosts now this notice doesn’t make
much sense anymore. - Fixed issue where ban masks might become malformed if set by remote clients/servers
- Fixed issue with channel mode
c
where high ascii characters can be erroneously
detected as control characters
Noteworthy changes in version 8.2.30 (2020-03-01)
QUOTE HELP extban
didn’t work because the extban help file hasn’t been
installed properly duringmake install
- Fixed broken libcrypto detection which caused the ircd not to work with
OpenSSL under certain circumstances - Extban
$n
of type acting has been implemented. This extban prevents
matching users from changing their nick while in the channel. Users
with voice or above are not affected. - Channel mode
N
has been changed so channel members withv
(voice) can
change their nick name as well
Noteworthy changes in version 8.2.29 (2020-02-19)
-
Extbans have been implemented. Currently supported extbans:
Matching:
$a:<account>
Matches users logged into a matching account.$c:<channel>
Matches users that are on the given channel. An additional
prefix of either@
,%
, or+
can be specified to test
for certain channel privileges.$o:<class>
Matches IRC operators that have joined a class
matching the mask.$r:<realname>
Matches users with a matching realname.$s:<server>
Matches users that are connected to a server matching the mask.$u:<modes>
Matches users having the specified user modes set or not set.$z:<certfp>
Matches users having the given TLS certificate fingerprint.
Acting:
$j:<banmask>
Prevents matching users from joining the channel.$m:<banmask>
Blocks messages from matching users. Users with voice
or above are not affected.
For more details, see
help/extban
. -
Added
channel::enable_extbans
configuration option. Seedoc/reference.conf
for more information.
Noteworthy changes in version 8.2.28 (2020-01-26)
- Fixed issue with topics set by
TBURST
not being propagated properly to clients - Allow IRC operators to search for real hosts in
WHO
- Ban/exempt/invex masks are now also tested against realhosts to prevent clients
from bypassing channel bans by activating a fakehost
Noteworthy changes in version 8.2.27 (2020-01-22)
- Experimental support for wolfSSL has been implemented. Minimum supported version is 4.3.0
- The
--enable-openssl
,--enable-gnutls
switches, and their disabling counterparts
--disable-openssl
and--disable-gnutls
, have been replaced with the--with-tls
switch which takes one of the following options:openssl
,wolfssl
,gnutls
,
andnone
.
If nothing has been specified, configure tries to autodetect in the following order:
OpenSSL/LibreSSL -> GnuTLS -> wolfSSL. - Fixed segfault with GnuTLS/libgmp in case there’s no DH parameters file
defined inserverinfo::ssl_dh_param_file
or if that file is missing - The connection timeout for connect {} blocks can now be configured via
theconnect::timeout
configuration directive - Minimum supported OpenSSL version is 1.1.1 now
- Minimum supported GnuTLS version is 3.6.5 now
- Supported TLSv1.3 cipher suites can now be configured explicitely via the
newserverinfo::tls_cipher_suites
configuration directive - In the serverinfo {} block, the following configuration directives have been renamed:
ssl_certificate_file
->tls_certificate_file
ssl_dh_param_file
->tls_dh_param_file
ssl_dh_elliptic_curve
->tls_supported_groups
ssl_cipher_list
->tls_cipher_list
ssl_message_digest_algorithm
->tls_message_digest_algorithm
- In the operator {} block, the following configuration directives have been renamed:
ssl_certificate_fingerprint
->tls_certificate_fingerprint
ssl_connection_required
->tls_connection_required
- In the connect {} block, the following configuration directives have been renamed:
ssl_cipher_list
->tls_cipher_list
ssl_certificate_fingerprint
->tls_certificate_fingerprint
Noteworthy changes in version 8.2.26 (2019-05-31)
- The
general::tkline_expire_notices
configuration directive has been
replaced with user modeX
. *LINE expiration notices are sent to IRC
operators with that mode set - Fixed issue with
/rehash conf
creating duplicated class entries
instead of updating existing ones that are already in use
Noteworthy changes in version 8.2.25 (2019-04-24)
- The
class::number_per_ip
,class::max_local
andclass::max_global
configuration directives have been replaced with justclass::number_per_ip_local
andclass::number_per_ip_global
. Theclass::max_local
basically was
redundant as it had the same functionality asclass::number_per_ip
. - Adding RESVs with wildcards no longer requires administrator privileges
- The
general::ignore_bogus_ts
configuration option has been deprecated - TLSv1.1 and TLSv1.0 are no longer supported and have been disabled in
the OpenSSL and GnuTLS module - Minimum supported OpenSSL version is 1.0.1f now
- Minimum supported GnuTLS version is 3.5.8 now
- The
serverinfo::vhost
andserverinfo:vhost6
configuration directives have
been deprecated. If you need to bind a specific address you can specify one
in the connect {} block. - The
connect::vhost
configuration directive has been renamed toconnect::bind
Noteworthy changes in version 8.2.24 (2018-04-05)
- Added
STATS s
to show configured pseudo {} blocks - Implemented channel mode
N
which prevents users from changing their
nick while in a channel with that mode set - Services clients are now shown with
is a Network Service
inWHOIS
Noteworthy changes in version 8.2.23 (2018-03-26)
- IRC operators are now able to see a user’s resolved hostname in
WHOWAS
,
andWHOIS
even if the user has a fakehost/vhost RPL_WELCOME
now does use the rfc2812 style nick!user@host format- Removed rudimentary libgeoip support
- Added
--enable-efence
switch to allow easy linking with the
electric fence memory debugger library JOIN 0
is no longer supported- Fixed bug where ircd would not remove
RPL_WHOISOPERATOR
based svstags
when deoppering - Fixed
unknown closes
statistic inSTATS t
showing invalid values sometimes
Noteworthy changes in version 8.2.22 (2017-03-26)
- Implemented channel mode
L
. Channels with that mode set can make use of an
extended ban list size specified with the newchannel::max_bans_large
configuraton option. This mode can be set only by IRC operators or servers. - Implemented channel mode
u
which hides bmask (+b/+e/+I) lists and mode changes
to non-chanops everywhere - Fixed an issue with
TRACE
where remote servers would reply withRPL_TRACEUSER
numerics containing UIDs STATS z
now shows simple memory stats of servers linked to the network- Added support for remote
ETRACE
Noteworthy changes in version 8.2.21 (2016-11-27)
- The
general::default_floodtime
configuration option has been added
along with theSET FLOODTIME
command. These allow to fine-tune the
message throttling better. - Fixed an issue with
INVITE
not showing the list of channels the
sender is invited to
Noteworthy changes in version 8.2.20 (2016-11-05)
INFO
now shows GnuTLS/OpenSSL library/header versions- Added
channel::max_invites
configuration option. Seedoc/reference.conf
for more information. INVITE
expirations have been implemented. Expire time can be adjusted with
thechannel::invite_expire_time
configuration directive.WHOIS
notices to IRC operators have been re-added. User modey
(spy) is
required to see them.- The maximum line length for motd files has been increased to 320 bytes to
support multibyte encodings better
Noteworthy changes in version 8.2.19 (2016-08-21)
- Fixed a possible server name leak in
WHO
with server hiding enabled WHO
now allows IRC operators to search by IP address- Admins no longer can see IP addresses in
STATS P
with
serverhide::hide_server_ips
enabled - User mode
n
now shows nick name changes from remote clients, too
Noteworthy changes in version 8.2.18 (2016-06-22)
- Fixed an assert when a client sends invalid
LIST
options - Fixed invalid memory stats of channel invites in
STATS z
Noteworthy changes in version 8.2.17 (2016-04-21)
- Fixed core on
REHASH CONF
withgeneral::whowas_history_length
set to 0 - Fixed possible core on
INVITE
withchannel::max_channels
set to 0
Noteworthy changes in version 8.2.16 (2016-03-20)
- Added
general::whowas_history_length
configuration option which
allows to define the maximum length of theWHOWAS
nickname history - Services are now allowed to override
general::min_nonwildcard
,
andgeneral::min_nonwildcard_simple
settings - Minor updates to help files
Noteworthy changes in version 8.2.15 (2016-02-24)
- Added proper support for Raspbian/ARM. Gracias to Beave/2600.net
for providing a box for testing purposes. - Fixed an assert with empty
user = ""
directives in auth {} blocks STATS z
now shows allocated listeners- Fixed bug where
can_flood
auth {} flags did not work on channels
Noteworthy changes in version 8.2.14 (2016-02-09)
- Fixed server clustering
- Major cleanups to the configuration subsystem
- Improvements to libGeoIP support:
- Works now with IPv6 addresses
- Added
libgeoip_database_options
,libgeoip_ipv4_database_file
,
andlibgeoip_ipv6_database_file
configuration directives to the
serverinfo {} block
- Further improvements to GnuTLS support
Noteworthy changes in version 8.2.13 (2016-02-02)
- Implemented support for GnuTLS. Currently ./configure’s autodetection
intentionally prefers OpenSSL over GnuTLS, so OpenSSL detection needs
to be disabled explicitely by using the--disable-openssl
switch. - Minimum supported GnuTLS version is 3.3.8 now
- Minimum supported OpenSSL version is 1.0.1d now
- Added support for remote
REHASH
:REHASH <server> <option>
- Added
rehash:remote
IRC operator privilege flag - Added
rehash
type to shared {} blocks - Fixed minor memory leak with shared {} and cluster {} blocks
Noteworthy changes in version 8.2.12 (2016-01-05)
- Character case mapping is
ascii
now. It is recommended to update all
servers on the network to prevent possible channel desynchronizations
and nick name collision kills - Added channel mode
T
which forbidsNOTICE
to be sent to a channel - Fixed minor
SVSTAG
memory leak - Fixed broken
PART
message blocking mechanism - ircd now makes use of up to 8 name servers that are specified in
/etc/resolv.conf
- The
-klinefile
,-dlinefile
, etc. switches didn’t work at all - Fixed possible core on ident lookups if ircd is out of file descriptors
- Far client exit notices (user mode
F
) now show IP addresses, too - Made idle time look nicer in
STATS v|p
by using a formatted time string general::ts_warn_delta
, andgeneral::ts_max_delta
can be set to 0 now
Noteworthy changes in version 8.2.11 (2015-11-19)
- Implemented IRCv3.2
invite-notify
extension - Implemented IRCv3.2
chghost
extension - Added
channel::invite_delay_channel
configuration option
Noteworthy changes in version 8.2.10 (2015-11-06)
- The
serverhide::links_delay
configuration directive has been renamed
toserverhide::flatten_links_delay
- Added
serverhide::flatten_links_file
configuration option - Fixed bug where changing
serverhide::flatten_links_delay
on runtime
would not have any effect - mkpasswd (tools): fixed broken bcrypt support on *BSD in conjunction with
the-s
and-l
switches. Dropped MD5, DES and Extended DES support. - Removed
CHALLENGE
in favor of ssl certificate fingerprint enabled
operator {} blocks - RSA keys with less than 2048 bits are no longer supported; same applies
to the DH param file - Added missing IRC operator privilege flags to
STATS o
. For a full list
of flags seedoc/reference.conf
Noteworthy changes in version 8.2.9 (2015-09-13)
- Database files and
links.txt
are now stored in/var/lib
instead
of/etc
, so make sure to move your k/d/x-line database files to
the new path before (re)starting the ircd - The splitmode logic has been removed along with the following
channel {} block configuration directives:
default_split_user_count
,default_split_server_count
,
no_create_on_split
,no_join_on_split
- Added
xline_exempt
to auth {} block flags serverinfo::sid
is now optional. A unique SID is now automatically
generated based on the server’s name and description- Various fixes to the mkpasswd tool
- If supported by the compiler, ircd-hybrid now compiles with
-fstack-protector-strong
instead of-fstack-protector
- Services can now add RESVs (SQLINEs) that have wildcards in it
- Channel name RESVs are now sanity checked for too broad masks
class::connectfreq
now works properly with values lower than 300 seconds- Implemented IRCv3.1
account-notify
extension - The
general::oper_pass_resv
configuration directive has been deprecated
in favor of the newjoin:resv
, andnick:resv
IRC operator flags.
Seedoc/reference.conf
for more information. - Added
resv
, andunresv
IRC operator flags. Previously, all
IRC operators were allowed toRESV
andUNRESV
, regardless of configured
privileges. - Added
close
to IRC operator flags - ircd is using ISO 8601 date and time notation in most places now
Noteworthy changes in version 8.2.8 (2015-05-10)
- ircd now rejects remote k-line requests for user@host mask that don’t
have at leastgeneral::min_nonwildcard
non-wildcard characters in it - Configuration related server notices are now sent to admins only as
they potentially could leak passwords and other sensitive data to IRC
operators that don’t have administrator privileges - The
GLINE
/GUNGLINE
commands have been removed.KLINE
in conjunction
with cluster {} and/or shared {} blocks is now the recommended
way to add global user@host mask based server bans - Added
dline_min_cidr
,dline_min_cidr6
,kline_min_cidr
, and
kline_min_cidr6
configuration options to the general {} block - Fixed bug where a
REHASH
would clear all X-Lines and RESVs that have
been set with theXLINE
/RESV commands
- Fixed broken temporary remote XLINEs
- The
general::havent_read_conf
configuration directive has been removed
Noteworthy changes in version 8.2.7 (2015-04-05)
- Fixed a potential buffer overflow with the
BMASK
inter-server command - Fixed undefined behavior in the
HELP
command module which could
lead to stack corruption - Removed useless help files for inter-server commands
Noteworthy changes in version 8.2.6 (2015-03-29)
INFO
now shows configured values ofmax_watch
andstats_m_oper_only
WHOWAS
now shows IP addresses to IRC operators- Fixed bug that would allow remote clients to bypass the hard
limit of maxWHOWAS
entries to be returned
Noteworthy changes in version 8.2.5 (2015-02-24)
- Fixed core on Mac OSX 10.10 and possibly some other systems when parsing
theircd.conf
with configured pseudo {} blocks
Noteworthy changes in version 8.2.4 (2015-02-17)
- Added
SVSTAG
command which services may use to add tags to users which can
be seen inWHOIS
- Added
oper::whois
configuration option which allows to override the default
RPL_WHOISOPERATOR
numeric string shown inWHOIS
- IRC operators may now use +O on a channel even if they are only a half-op
- Fixed bug where
TOPIC
messages were not n!u@h prefixed in case ofTBURST
issued by services clients
Noteworthy changes in version 8.2.3 (2015-02-11)
- The following configuration directives have been renamed:
max_clients
->default_max_clients
join_flood_count
->default_join_flood_count
join_flood_time
->default_join_flood_time
- Fixed bug where
REHASH
would always reset theMAX
,JFLOODTIME
, and
JFLOODCOUNT
values that have been changed from within IRC via theSET
command - Added channel mode
C
which prevents users from sending CTCPs to a channel - Fixes to the
NOTICE
/PRIVMSG
anti-flood logic - Allow to disable the
NOTICE
/PRIVMSG
anti-flood mechanism by setting the
general::default_floodcount
configuration option to 0 - Updated some help files
- IRC operators may now see certificate fingerprints, user modes and hidden
channels viaWHOIS
as well. This used to be admin only.
Noteworthy changes in version 8.2.2 (2015-01-20)
- Implemented IRCv3.1
extended-join
extension - Channel half-ops can now use
INVITE
as well - Fixed broken
make install -jX
m_opme.c
has been added tomodules/extra
. Can be used on opless channels only.- Added
opme
to IRC operator flags - Updated several help files
- The
general::hide_spoof_ips
configuration option has been deprecated - The
general::true_no_oper_flood
configuration option has been deprecated.
IRC operators still can have higherflood
limits withno_oper_flood = yes;
hoewever, they are no longer allowed to bypass RecvQ limits. - Added
general::stats_m_oper_only
configuration option - Remote client connection notices (user mode
F
) now do show IP addresses, too
Noteworthy changes in version 8.2.1 (2014-10-21)
- Fixed bug where
UNDLINE remote.server IP
did not work as expected - Servers are now allowed to add/remove K-/D-/X-lines and RESVs
- User mode
G
now no longer allows to override user modeg
- Due to potential weakness, TLS session caching and session tickets
have been disabled - Minor improvements to TS6 implementation
WHOWAS
now shows the name of the services account a user was logged in
Noteworthy changes in version 8.2.0 (2014-08-24)
- Successful IRC operator logins are now announced globally via
GLOBOPS
- Cleanups and improvements to the resolver code
- Cleanups and improvements to the
poll
I/O event notification support - A topic mask can now be specified within the
LIST
options - All users may now see channel modes in the
LIST
reply - Fixed bug where
NOTICE +#somechan
did allow bypassing resv {} channels,
or channels that are set +c (no control codes) - pseudo {} blocks also known as service aliases have been implemented.
Seedoc/reference.conf
for more information. - Removed
general::services_name
configuration option. This is now no
longer needed.
Noteworthy changes in version 8.2.0rc2 (2014-08-03)
- Improved
AWAY
throttling to allow for better fine-tuning. See the
newly addedaway_count
andaway_time
configuration directives
in the general {} block. - Support for the
select
I/O event notification has been dropped
Noteworthy changes in version 8.2.0rc1 (2014-07-20)
- Miscellaneous code cleanups and stabilization fixes
./configure
now requires OpenSSL 0.9.8o or above in order
to enable TLS/SSL support
Noteworthy changes in version 8.2.0beta4 (2014-07-06)
- Channel halfops are now an integral part of ircd-hybrid and can’t be disabled anymore
- Added flood control for the
INVITE
command. See channel {} block inreference.conf
. - Changed flood control logic for the
KNOCK
command. See channel {} block inreference.conf
. INVITE
without any parameters now shows a list of channels a client is invited to- The
OPERWALL
command has been removed. UseGLOBOPS
instead. - Added
max_channels
to class {} blocks - Added
throttle_count
configuration option to the general {} block - Added
ssl_message_digest_algorithm
configuration option to serverinfo {} block.
Seedoc/reference.conf
for more information. - Added support for Elliptic Curve Diffie-Hellman (ECDH). Also an elliptic curve can be
specified via theserverinfo::ssl_dh_elliptic_curve
configuration option. - Removed
ssl_server_method
andssl_client_method
configuration options.
ircd now only allows TLSv1, TLSv1.1 and TLSv1.2 protocols depending
on the OpenSSL version. SSLv3 is no longer supported.
Noteworthy changes in version 8.2.0beta3 (2014-05-26)
- Code cleanups/performance improvements
Noteworthy changes in version 8.2.0beta2 (2014-05-15)
- Renamed
general::warn_no_nline
configuration directive togeneral::warn_no_connect_block
- Fixed bug with
WHOIS
not showing a list of channel names as expected - Added user mode
q
which hides idle and signon time inWHOIS
- Added user mode
p
which hides channel list inWHOIS
Noteworthy changes in version 8.2.0beta1 (2014-04-29)
- TS6 is now mandatory. ircd is no longer backwards compatible with TS5
and below. SVSJOIN
andSVSPART
commands have been added- Major code cleanups and refactoring. Improved overall performance
INFO
now also reportsMPATH
(path to main motd (Message of the Day) file)
andSPATH
(Path to server executable)- Updated several help files
Noteworthy changes in version 8.1.20 (2014-07-20)
- Fixed
XLINE
not working as expected - Fixed build with LibreSSL which hasn’t compression support
- Miscellaneous stabilization and cosmetical fixes
- EGD support has been dropped
Noteworthy changes in version 8.1.19 (2014-07-05)
- Fixed
EOB
logic for remote servers - Fixed bug where IRC operators that have the +g/+G/+R umodes set won’t receive
server notices for remote CONNECT/KLINE/DLINE/XLINE/RESV attempts - Sending messages to user@server to local targets is now no longer possible,
as this was an easy way to bypass +R/+G/+g user modes. - Fixed splicode logic so
SPLITNUM
now works as expected - Fixed
UNDLINE
not to require the IP address to be prepended with *@
Noteworthy changes in version 8.1.18 (2014-06-09)
- Fixed
CAP
issue for certain clients - Fixed bug where
STATS p
would show an invalid amount of IRC operators
in case there are any +H opers - IRC operators may now no longer set a channel +O if they are only halfops (%)
- Channel halfops (%) may now no longer (de)halfop other channel members
- Channel halfops (%) may now no longer
KICK
other channel halfops - Fixed compile warnings; code cleanups
- Fixed bug where the configuration parser wouldn’t truncate the network name
ifgeneral::network_name
contains spaces
Noteworthy changes in version 8.1.17 (2014-05-01)
- Fixed possible
WATCH
core - Fixed bug where the configuration parser wouldn’t take time units
into consideration for thejoin_flood_time
andthrottle_time
configuration options - Minor
LIST
optimization
Noteworthy changes in version 8.1.16 (2014-04-20)
- Fixed undefined behaviour with
crypt
returningNULL
since glibc2.17 in certain cases - Admins may now see all channel members via
WHO #channel
regardless of channel modes
- Fixed corrupted
STATS U
output
Noteworthy changes in version 8.1.15 (2014-03-29)
- ircd binary is now again placed into
bin/
instead ofsbin/
- mkpasswd in tools/ now defaults to MD5 instead of DES
- The
USERS
command has been removed - Fixed issue with
SVSNICK
where clients self-collided when changing
just the case of the nick name, i.e. somenick -> SomeNicK
Noteworthy changes in version 8.1.14 (2014-02-25)
- WHOWAS now honors
serverhide::disable_remote_commands
- Improved TS6 inter-server communication
- Added
unxline
IRC operator flag - Implemented IRCv3.2
userhost-in-names
extension - ircd now allows private RSA keys larger than 2048 bits
- Fixed bug where signals stopped from working after restarting
the ircd via SIGINT - Fixed bug where certain irc clients could not reconnect via TLS/SSL
- Fixed long-standing bug where +p channels have been shown
in theWHOIS
reply
Noteworthy changes in version 8.1.13 (2014-01-07)
- Fixed
EOB
not working for remote servers (resulted in fake direction notices) - Fixed remote client connection notices for servers that are
more than one hop away - Fixed bug where the ircd didn’t timeout SSL connections that
haven’t finished the SSL handshake - Fixed several bugs with server hiding
- Updated/fixed help files
WHOIS
no longer sends a notice to IRC operators with user modey
(spy)
Noteworthy changes in version 8.1.12 (2013-12-22)
RPL_WHOISMODES
now uses the 379 numeric- Serial number is now shown on start up
- Fixed possible channel mode desynch with services
- Fixed TS6 support with
LOCOPS
- Minor code cleanups
- Fixed file descriptor leak with empty help files
- Fixed issue with
WEBIRC
where hostnames were not validated
Noteworthy changes in version 8.1.11 (2013-12-06)
- Administrators may now see channel modes in
LIST
- Fixed compile error on BSD systems when building with
kqueue
Noteworthy changes in version 8.1.10 (2013-11-25)
- Fixed bug with
kqueue
where it occasionally dropped updates - Changed
WHOIS
to show certificate fingerprint to administrators only - The
WHO
reply now shows if a nickname has been registered
with NickServ. (r
status flag) - Fixed some flaws with server hiding
- Fixed bug where
STATS P
would leak ip addresses to remotely connected
administrators, even ifserverhide::hide_server_ips
was set toyes
- Added
SVSKILL
command
Noteworthy changes in version 8.1.9 (2013-11-08)
- Added user mode
W
. Users connected via a webirc gateway get this
mode set by servers. WHOIS
now shows if a client is connected via a webirc gateway- Administrators may now see +s channels a user is in with
WHOIS
.
Secret channels are prepended with a tilde in theWHOIS
reply. - Administrators are now able to see all the user modes a user has
set viaWHOIS
Noteworthy changes in version 8.1.8 (2013-10-25)
- Fixed bug that could lead to a desynchronized nick database
throughout the entire network if using services enforced
nick names (SVSNICK
) - Cleaned up/modernized build system
- Add
-fstack-protector
toCFLAGS
if available. Basically checks for
buffer overflows/stack-smashing attacks. - When using anope 1.9/2.0 services,
WHOIS
now shows the account name
of a registered/identified client (numeric 330) - Administrators can now see +s channels in the
LIST
reply
Noteworthy changes in version 8.1.7 (2013-08-18)
- Fixed issue with channel mode
n
having no functionality at all - Fixed SSL certificate fingerprint validation for outgoing server connects
- Updated several documentation files
Noteworthy changes in version 8.1.6 (2013-08-02)
- Fixed possible core with empty motd files
Noteworthy changes in version 8.1.5 (2013-07-16)
- Fixed bug that would prevent servers from linking together
ifconnect::aftype
isn’t set
Noteworthy changes in version 8.1.4 (2013-07-05)
- Added
xline
andresv
logging types. Seedoc/reference.conf
for more information - Fixed bug where remote
STATS
requests were not rate limited - Fixed core with empty
auth::spoof
entries - Increased oper/auth/connect password length limit from 20 to 128
- Minor fixes to nickflood control code
Noteworthy changes in version 8.1.3 (2013-06-23)
- Fixed possible core on
STATS z
- Revised
doc/reference.conf
- Fixed broken
--disable-libgeoip
switch
Noteworthy changes in version 8.1.2 (2013-06-20)
- Added
general::cycle_on_host_change
configuration option - Added
general::stats_u_oper_only
configuration option - Added support for SHA-256 ssl certificate fingerprint based operator {}
and connect {} blocks.
In conjunction with Anope 1.9/2.0 IRC-services, clients are now also able
to automatically identify for their nick with ssl certificate
fingerprints. - Added
operator::ssl_connection_required
configuration option. See
doc/reference.conf
for more information. - Added user mode
S
(client is connected via SSL/TLS). Allows services
to keep track of what users are connected via SSL, and allows to see
ssl-status of remote clients in aWHOIS
. - Fixed a server name leak with server hiding enabled
Noteworthy changes in version 8.1.1 (2013-06-06)
- Moved
disable_remote_command
configuration directive from general {} block
to serverhide {} block - Minor code cleanups/performance improvements
- Fixed bug where IRC operators could see
LOCOPS
messages even if they don’t
have thel
user mode set - Fixed bug where non-SSL clients could join +S channels on non-SSL servers
- Implemented motd {} configuration blocks. See
doc/reference.conf
for more
information STATS T
shows configured MOTD files
Noteworthy changes in version 8.1.0 (2013-05-23)
- Minor code cleanups/performance improvements
Noteworthy changes in version 8.1.0rc1 (2013-05-19)
- Fixed broken spoofs
Noteworthy changes in version 8.1.0beta5 (2013-05-15)
- Removed
remote
, andglobal_kill
oper flags, and addedconnect
,
squit
, andkill
flags for better fine-tuning instead. Whether or
not a specific action is allowed on a remote server can be controlled
by appending the:remote
flag. For example:kill
allows only local
clients to be killed, whereaskill:remote
allows to issue aKILL
for
remote clients - Added
locops
andwallops
to IRC operator flags - Improve/cleanup
HELP
system
Noteworthy changes in version 8.1.0beta4 (2013-05-09)
- Implemented channel mode
M
. Clients that haven’t identified their
name with NickServ may not speak in a channel that has this mode set. - Fixed weird idletimes shown in
TRACE
- Added
nononreg
(user modeR
) togeneral::oper_umodes
- Added user mode
F
(can see remote client connect/exit notices)
Noteworthy changes in version 8.1.0beta3 (2013-05-05)
- PCRE support has been dropped
STATS o
now shows how many times an operator {} block has been used.
Similar toSTATS x|q
.- Implemented channel mode
c
. Known from other ircds, this mode basically
prevents users from sending messages including control codes to a channel
that has this mode set. - Fixed bug where bans were not checked against non-channel members when
sending messages to a channel - Removed
channel::quiet_on_ban
configuration option. This feature is
now enabled by default.
Noteworthy changes in version 8.1.0beta2 (2013-04-28)
- Fixed broken compile with libGeoIP disabled
- Removed oper flag
nick_changes
. IRC operators can now set +n at will. - Fixed shared {} blocks not working as expected
- Fixed spoofs not working as expected
Noteworthy changes in version 8.1.0beta1 (2013-04-25)
- Name/channel entries can’t be stacked any longer within a single resv {}
block. Each entry now requires its own resv {} block.
Readdoc/reference.conf
for more details. - Added
resv::exempt
configuration option. Exempt can be either a
ISO 3166 alpha-2 two letter country code, or a nick!user@host mask.
CIDR is supported. - Removed
channel::restrict_channels
configuration option - Preliminary libGeoIP support. Currently only used for exempt entries
in resv {} blocks. - Improved WEBIRC authentication; added
webirc
toauth::flags
.
Awebirc.
spoof is now no longer required. - Implemented new memory pool allocator which basically is based upon Tor’s
mempool allocator for Tor cells - Implemented new binary database storage for X-, D-, K-, G-Lines and RESVs.
Temporary bans are now stored as well and will persist after a reboot. - Channel based resv {} blocks may now contain wildcards
- NICK/JOIN now shows the actual reason of reserved nick-/channelnames
- contrib/ and its content has been enirely removed from the tree
- Added
serverhide::hide_services
configuration option - Added
nononreg
(user modeR
) tooper::umodes
andgeneral::oper_only_modes
- Implemented IRCv3.1
away-notify
extension
Noteworthy changes in version 8.0.9 (2013-05-16)
- Fixed bug where ircd would sometimes drop a services link because
of a missing argument to theSVSMODE
command - Fixed weird idletimes shown in
TRACE
Noteworthy changes in version 8.0.8 (2013-04-28)
STATS s
now shows configured services {} blocks as well- Fixed compile warnings, minor code cleanups and optimizations
- Increased nickname history length to 32768
- Unidentified/unregistered nicks may not speak in +R channels
Noteworthy changes in version 8.0.7 (2013-04-12)
- Services may now set a channel topic without joining the channel first
- Fixed bug where
WHOIS
would send empty sockhost information on TS5 servers - Remote server connection and split notices now go to new user mode
e
.
These previously used user modex
. - Services may now change the host of a specific user
viaSVSMODE <timestamp> <target> +x <hostname>
Noteworthy changes in version 8.0.6 (2013-01-28)
- Fix bug where idle time sometimes is 0 even if the client didn’t
send any private message - Fixed possible core in
try_parse_v4_netmask
Noteworthy changes in version 8.0.5 (2013-01-24)
- Nick and topic lengths are now configurable via
ircd.conf
.
Amax_nick_length
, as well as amax_topic_length
configuration option
can now be found in the serverinfo {} block. - Fixed build on GNU/Hurd
- Fixed log files not getting reopened after
REHASH
- Improved logging of configuration file issues
ircd.pid
has been accidentally saved in/var
instead of/var/run
- Linux RT signal support for notification of socket events has been dropped
- Fixed
STATS Y|y
sometimes sending weird sendq/recvq values INFO
now also shows configured values ofdisable_fake_channels
,
andstats_e_disabled
m_webirc.c
is now officially supported, and has been moved from contrib/
to modules/WHOIS
,STATS p
, andTRACE
may now show fake idle times depending
on how the newclass::min_idle
andclass::max_idle
configuration
directives have been configured. This feature basically works in the
same way as it does in csircd.- The configuration parser now does support
year
andmonth
units
Noteworthy changes in version 8.0.4 (2013-01-02)
- Fixed possible core on
USERHOST
/ISON
with optimization enabled - Fixed bug where
can_flood
sometimes didn’t work as expected
Noteworthy changes in version 8.0.3 (2012-12-24)
- Fixed core on
UNDLINE
XLINE
,KLINE
,RESV
,DLINE
,SQUIT
, andKILL
now have the
same default reason if no reason has been specified
Noteworthy changes in version 8.0.2 (2012-12-20)
- Minor updates to the build system
- Fixed broken
--enable-assert
configure switch - Fixed bug where timed events stopped from working if the system’s
clock is running backwards STATS q|Q
now shows how many times a resv {} block has been matched- Fixed contributed
WEBIRC
module - IRC operators may now again see server generated nick rejection notices
Noteworthy changes in version 8.0.1 (2012-11-04)
- Fixed broken CIDR support for
CHALLENGE
based IRC operator logins - Fixed class limits not properly applying to operator {} blocks
- Fixed possible
TBURST
desynchronization with services - Fixed
TBURST
from leaking the server name if it’s a hidden server
Noteworthy changes in version 8.0.0 (2012-10-18)
- Fixed an off-by-one with spoofs. Spoofs are now also checked for
invalid characters. - Removed
general::use_whois_actually
configuration directive.
This is now enabled by default - Minor
SQUIT
handling fixes - Fixed bancache not being updated on
CHGHOST
/CHGIDENT
Noteworthy changes in version 8.0.0rc1 (2012-09-28)
- Removed
general::client_flood
configuration option and added the
newrecvq
configuration directive to class {} blocks.
The max size of a receive queue can be seen inSTATS Y
for each class. - Allow the
[
and]
characters in server description
Noteworthy changes in version 8.0.0beta3 (2012-08-24)
- Fixed wrong syntax in several language files
- Removed &localchannels
PRIVMSG
toopers@some.server
is no longer supported- Fixed bug that could lead to topic desynchronization
- Removed
serverhide::disable_hidden
configuration option - Dropped ircd-hybrid-6
GLINE
compatibility mode - Removed
use_invex
,use_except
anduse_knock
configuration options.
These features are now enabled by default.
Noteworthy changes in version 8.0.0beta2 (2012-07-21)
channel::disable_fake_channels
now also disables ascii 29 (mIRC italic)
when set toyes
- Added
channel::max_chans_per_oper
configuration directive. The old way was to
let IRC operators join three times the amount ofmax_chans_per_user
. - Replaced
MODLOAD
,MODUNLOAD
,MODRELOAD
,MODLIST
andMODRESTART
commands with the newMODULE
command which can be fed with theLOAD,
UNLOAD
,RELOAD
andLIST
parameters.
MODRESTART
has been entirely removed. UseMODULE RELOAD *
to reload
all modules. - Added back server notice when a client tries to obtain a reserved nick name
- Removed
OMOTD
module - Added
set
to IRC operator privilege flags. Gives access to theSET
command. - Improved TS6 support
- Channel keys/passwords are now case sensitive
Noteworthy changes in version 8.0.0beta1 (2012-05-28)
- Implemented full services support, including but not limited to the
following changes:- Added
SVSNICK
, andSVSMODE
command handlers - Added service stamps to
NICK
/UID
messages - Added SVS to server capabilities (
CAPAB
). SVS capable servers can
deal with extendedNICK
/UID
messages that contain service IDs/stamps. - Changed rejected client notices to go to new user mode
j
. These
previously used user moder
. - Added user mode
r
(registered nick) and channel moder
(registered channel) - Added user mode
R
(only registered clients may send a private message) - Added channel mode
R
(only registered clients may join that channel) - Various services shortcuts have been added (
NS
,CS
,NICKSERV
,CHANSERV
, etc.) - Added services {} block to
ircd.conf
- Added
services_name
directive to general {} block - Added
GLOBOPS
mainly for services compatibility, but can be used by IRC operators, too
- Added
- Removed
RKLINE
andRXLINE
commands. Regular expression based bans should
only be added viaircd.conf
. - Added
globops
,restart
,dline
,undline
andmodule
IRC operator privilege flags.
Readdoc/reference.conf
for further explanation of what these flags control. - Removed Idle-time klines
- Cleaned up modules API. Old modules won’t work anymore
- Removed
general::burst_away
configuration directive.AWAY
bursts are now
controlled viaconnect::flags
explicitly. - Introduced new logging subsystem including log rotation based on
file sizes. Log timestamp format is ISO8601 now. - Added support for remote D-lines
- Added user mode
H
which is basically a replacement for thehidden_admin
and
hidden_oper
operator flags. With user modeH
, IRC operator status can now
be hidden even on remote servers - Added CIDR support for operator {} blocks
- Removed the servlink program. ircd-hybrid can now make use of
SSL/TLS for inter-server communication.
NOTE: compressed server links are of course still available, but a SSL/TLS
connection is required, as compression is now handled via OpenSSL - Removed
ssl_server_protocol
configuration directive and
addedssl_client_method
andssl_server_method
instead.
Both of these options can now be changed at runtime. - IRC operator login IDs are no longer limited to
NICKLEN*2
- Removed
channel::burst_topicwho
configuration option. This feature is now
enabled by default. STATS Y|y
now reports CIDR limits as well- Added
m_webirc.c
tocontrib/