Changes ::
Noteworthy changes in version 8.2.47 (2025-04-04)
- The
general::max_away_lengthconfiguration directive has been added, allowing
servers to specify the maximum length of aAWAYmessage that the server will
accept from a client. - The
general::disable_dnsconfiguration directive has been added, allowing
servers to disable DNS lookups - K-lines, D-lines, X-lines, and RESVs are no longer stored in binary database format.
These entries are now stored in JSON format using libjansson. - The
general::ident_timeoutconfiguration directive has been added, allowing
servers to specify how long to wait for Ident replies
Noteworthy changes in version 8.2.46 (2025-01-22)
- The user mode subsystem now supports dynamic registration and unregistration of user
modes. This allows modules to register and unregister their own user modes, making the
system more flexible and modular. - The
INFOcommand output now includes namespaces, organizing configuration entries
according to their respective configuration blocks for better clarity and structure - The
INFOcommand output now shows entries from the admin {} config block - The
WALLOPScommand has been removed - The
serverinfo::motd_fileconfiguration directive has been added, allowing the
Message of the Day (MOTD) file path to be customized instead of hardcoded - The
channel::max_kick_lengthconfiguration directive has been added, allowing
servers to specify the maximum length of aKICKmessage that the server will
accept from a client.
Noteworthy changes in version 8.2.45 (2024-07-02)
- The module API has been rewritten for improved flexibility. A
modules.conffile is now
required for configuring and loading modules. For further information, refer to the
doc/reference.modules.conf. - The
INFOsubsystem 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 theINFOoutput. - Added support for a flattened
MAPoutput whenserverhide::flatten_linksis 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
XLINEandUNXLINEwere not working properly on servers within
a cluster - Command-line options now support both short (
-c) and long (--configfile) formats.
The available options are:-cor--configfilefor the configuration file-kor--klinefilefor the kline database file-dor--dlinefilefor the dline database file-xor--xlinefilefor the xline database file-ror--resvfilefor the resv database file-lor--logfilefor the log file-por--pidfilefor the PID file-for--foregroundto run in the foreground-vor--versionto print the version and exit-hor--helpto display help information
- The new IRC operator flag,
message:mass, has been implemented. This flag controls
access to sending mass messages using theNOTICE $$*.maskcommand. - Upon connecting, a user will now receive a notice with their client certificate
fingerprint, if provided. - The
INFOcommand now includes theserverinfo::name,serverinfo::sid, and
serverinfo::descriptionconfiguration options in its output. - The
STATSsubsystem 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
INFOcommand now includes the new cloaking configuration options in its output. The
following cloaking-related configuration directives will be shown:general::cloak_enabledgeneral::cloak_cidr_len_ipv4general::cloak_cidr_len_ipv6general::cloak_num_bitsgeneral::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.INVITEcannot be used on channels with that mode set. WHOISon 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_EPOCHenvironment
variable. See https://reproducible-builds.org/docs/source-date-epoch/ for more
information. - Implemented channel mode
Q.KICKcannot 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 nickon invisible clients (user modei) wouldn’t work
Noteworthy changes in version 8.2.41 (2022-07-15)
- Fixed issue where
WHOdidn’t work on channel names with two or more consequent
asterisk characters - IRCv3 WHOX has been implemented. See
doc/who.txtfor more information about
the newWHOoptions and features. - Clients that are connected via TLS are now flagged with the letter
Sin the
who reply
Noteworthy changes in version 8.2.40 (2022-07-02)
channel::disable_fake_channelsnow also blocks strikethrough text (0x1E (30))KNOCKcan now be used on private channels. Channel modeKmay be used instead
to control whether or notKNOCKis allowed on a channel.- Support for
/dev/pollhas been dropped INFOnow also reports configured values ofchannel::default_join_flood_count
andchannel::default_join_flood_time- The founder
qand adminachannel prefix modes have been implemented.
These are optional and can be enabled with the newchannel::enable_owner
andchannel::enable_adminconfiguration directives. - Channel half-ops may now kick other half-ops
- Extban
$Kof type acting has been implemented. This extban prevents
matching users from using theKNOCKcommand. - Server-side channel mode locking
MLOCKhas been implemented - Fixed server name leak in
WHOWASwithserverhide::hide_servicesenabled
Noteworthy changes in version 8.2.39 (2021-08-14)
hidechansandhideidlemay 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 Pdisplaying 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
MODEmessages - 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_identconfiguration directive has been renamed to
general::specials_in_identand now covers the-and_characters in
addition to. - Fixed issue with clients connected from IPv6 localhost that, depending on the
system’sgetaddrinfoimplementation, 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-notifycapability - In case a client sends multiple
PASSmessages, ircd only accepts the password
sent in the firstPASSmessage instead of the last one - Missing help file for
MONITORhas been added - Fixed slightly off memory count for motds in
STATS z
Noteworthy changes in version 8.2.36 (2020-12-04)
- The old
WATCHimplementation has been replaced with IRCv3.2MONITOR. For this,
thegeneral::max_watchconfiguration directive has been renamed to
general::max_monitor. - User mode
Bhas been implemented. Clients with that mode set are marked as a
bot in bothWHOISandWHO. This mode can only be set by IRC operators (as
long as thebotdirective 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_descconfiguration directive has been
renamed togeneral::network_description - Server notices that previously have been sent to user modes
fanduare now
sent to user modej(reject notices) instead. Due to this change,unauthand
fullhave 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,botshas been removed from
general::oper_only_umodes,general::oper_umodes, andoperator::umodes.
floodhas 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
clientoption tolistener::flags - Added
deferoption tolistener::flags - IRC operators may now use CIDR notation in
WHO
Noteworthy changes in version 8.2.32 (2020-08-16)
RESVcouldn’t be issued in case no reason has been supplied. This has been fixed.- Fixed possible
RPL_WHOISCHANNELSline truncation of remote replies - Extban
$tof type matching has been implemented. This extban allows matching
based on TLS protocol version and/or cipher suite. - Implemented channel mode
K.KNOCKcannot 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_noticefromauth::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
cwhere high ascii characters can be erroneously
detected as control characters
Noteworthy changes in version 8.2.30 (2020-03-01)
QUOTE HELP extbandidn’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
$nof 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
Nhas 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_extbansconfiguration option. Seedoc/reference.conf
for more information.
Noteworthy changes in version 8.2.28 (2020-01-26)
- Fixed issue with topics set by
TBURSTnot 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-gnutlsswitches, and their disabling counterparts
--disable-openssland--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_fileor if that file is missing - The connection timeout for connect {} blocks can now be configured via
theconnect::timeoutconfiguration 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_suitesconfiguration 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_noticesconfiguration directive has been
replaced with user modeX. *LINE expiration notices are sent to IRC
operators with that mode set - Fixed issue with
/rehash confcreating 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_localandclass::max_global
configuration directives have been replaced with justclass::number_per_ip_local
andclass::number_per_ip_global. Theclass::max_localbasically 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_tsconfiguration 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::vhostandserverinfo:vhost6configuration directives have
been deprecated. If you need to bind a specific address you can specify one
in the connect {} block. - The
connect::vhostconfiguration directive has been renamed toconnect::bind
Noteworthy changes in version 8.2.24 (2018-04-05)
- Added
STATS sto show configured pseudo {} blocks - Implemented channel mode
Nwhich prevents users from changing their
nick while in a channel with that mode set - Services clients are now shown with
is a Network ServiceinWHOIS
Noteworthy changes in version 8.2.23 (2018-03-26)
- IRC operators are now able to see a user’s resolved hostname in
WHOWAS,
andWHOISeven if the user has a fakehost/vhost RPL_WELCOMEnow does use the rfc2812 style nick!user@host format- Removed rudimentary libgeoip support
- Added
--enable-efenceswitch to allow easy linking with the
electric fence memory debugger library JOIN 0is no longer supported- Fixed bug where ircd would not remove
RPL_WHOISOPERATORbased svstags
when deoppering - Fixed
unknown closesstatistic inSTATS tshowing 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
uwhich hides bmask (+b/+e/+I) lists and mode changes
to non-chanops everywhere - Fixed an issue with
TRACEwhere remote servers would reply withRPL_TRACEUSER
numerics containing UIDs STATS znow 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_floodtimeconfiguration option has been added
along with theSET FLOODTIMEcommand. These allow to fine-tune the
message throttling better. - Fixed an issue with
INVITEnot showing the list of channels the
sender is invited to
Noteworthy changes in version 8.2.20 (2016-11-05)
INFOnow shows GnuTLS/OpenSSL library/header versions- Added
channel::max_invitesconfiguration option. Seedoc/reference.conf
for more information. INVITEexpirations have been implemented. Expire time can be adjusted with
thechannel::invite_expire_timeconfiguration directive.WHOISnotices 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
WHOwith server hiding enabled WHOnow allows IRC operators to search by IP address- Admins no longer can see IP addresses in
STATS Pwith
serverhide::hide_server_ipsenabled - User mode
nnow 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
LISToptions - Fixed invalid memory stats of channel invites in
STATS z
Noteworthy changes in version 8.2.17 (2016-04-21)
- Fixed core on
REHASH CONFwithgeneral::whowas_history_length
set to 0 - Fixed possible core on
INVITEwithchannel::max_channelsset to 0
Noteworthy changes in version 8.2.16 (2016-03-20)
- Added
general::whowas_history_lengthconfiguration option which
allows to define the maximum length of theWHOWASnickname history - Services are now allowed to override
general::min_nonwildcard,
andgeneral::min_nonwildcard_simplesettings - 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 znow shows allocated listeners- Fixed bug where
can_floodauth {} 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_fileconfiguration 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-opensslswitch. - 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:remoteIRC operator privilege flag - Added
rehashtype 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
asciinow. It is recommended to update all
servers on the network to prevent possible channel desynchronizations
and nick name collision kills - Added channel mode
Twhich forbidsNOTICEto be sent to a channel - Fixed minor
SVSTAGmemory leak - Fixed broken
PARTmessage 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|pby using a formatted time string general::ts_warn_delta, andgeneral::ts_max_deltacan be set to 0 now
Noteworthy changes in version 8.2.11 (2015-11-19)
- Implemented IRCv3.2
invite-notifyextension - Implemented IRCv3.2
chghostextension - Added
channel::invite_delay_channelconfiguration option
Noteworthy changes in version 8.2.10 (2015-11-06)
- The
serverhide::links_delayconfiguration directive has been renamed
toserverhide::flatten_links_delay - Added
serverhide::flatten_links_fileconfiguration option - Fixed bug where changing
serverhide::flatten_links_delayon runtime
would not have any effect - mkpasswd (tools): fixed broken bcrypt support on *BSD in conjunction with
the-sand-lswitches. Dropped MD5, DES and Extended DES support. - Removed
CHALLENGEin 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.txtare now stored in/var/libinstead
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_exemptto auth {} block flags serverinfo::sidis 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-stronginstead 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::connectfreqnow works properly with values lower than 300 seconds- Implemented IRCv3.1
account-notifyextension - The
general::oper_pass_resvconfiguration directive has been deprecated
in favor of the newjoin:resv, andnick:resvIRC operator flags.
Seedoc/reference.conffor more information. - Added
resv, andunresvIRC operator flags. Previously, all
IRC operators were allowed toRESVandUNRESV, regardless of configured
privileges. - Added
closeto 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_nonwildcardnon-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/GUNGLINEcommands have been removed.KLINEin 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_cidr6configuration options to the general {} block - Fixed bug where a
REHASHwould clear all X-Lines and RESVs that have
been set with theXLINE/RESV commands - Fixed broken temporary remote XLINEs
- The
general::havent_read_confconfiguration directive has been removed
Noteworthy changes in version 8.2.7 (2015-04-05)
- Fixed a potential buffer overflow with the
BMASKinter-server command - Fixed undefined behavior in the
HELPcommand 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)
INFOnow shows configured values ofmax_watchandstats_m_oper_onlyWHOWASnow shows IP addresses to IRC operators- Fixed bug that would allow remote clients to bypass the hard
limit of maxWHOWASentries 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.confwith configured pseudo {} blocks
Noteworthy changes in version 8.2.4 (2015-02-17)
- Added
SVSTAGcommand which services may use to add tags to users which can
be seen inWHOIS - Added
oper::whoisconfiguration option which allows to override the default
RPL_WHOISOPERATORnumeric string shown inWHOIS - IRC operators may now use +O on a channel even if they are only a half-op
- Fixed bug where
TOPICmessages 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
REHASHwould always reset theMAX,JFLOODTIME, and
JFLOODCOUNTvalues that have been changed from within IRC via theSET
command - Added channel mode
Cwhich prevents users from sending CTCPs to a channel - Fixes to the
NOTICE/PRIVMSGanti-flood logic - Allow to disable the
NOTICE/PRIVMSGanti-flood mechanism by setting the
general::default_floodcountconfiguration option to 0 - Updated some help files
- IRC operators may now see certificate fingerprints, user modes and hidden
channels viaWHOISas well. This used to be admin only.
Noteworthy changes in version 8.2.2 (2015-01-20)
- Implemented IRCv3.1
extended-joinextension - Channel half-ops can now use
INVITEas well - Fixed broken
make install -jX m_opme.chas been added tomodules/extra. Can be used on opless channels only.- Added
opmeto IRC operator flags - Updated several help files
- The
general::hide_spoof_ipsconfiguration option has been deprecated - The
general::true_no_oper_floodconfiguration option has been deprecated.
IRC operators still can have higherfloodlimits withno_oper_flood = yes;
hoewever, they are no longer allowed to bypass RecvQ limits. - Added
general::stats_m_oper_onlyconfiguration 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 IPdid not work as expected - Servers are now allowed to add/remove K-/D-/X-lines and RESVs
- User mode
Gnow 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
WHOWASnow 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
pollI/O event notification support - A topic mask can now be specified within the
LISToptions - All users may now see channel modes in the
LISTreply - Fixed bug where
NOTICE +#somechandid 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.conffor more information. - Removed
general::services_nameconfiguration option. This is now no
longer needed.
Noteworthy changes in version 8.2.0rc2 (2014-08-03)
- Improved
AWAYthrottling to allow for better fine-tuning. See the
newly addedaway_countandaway_timeconfiguration directives
in the general {} block. - Support for the
selectI/O event notification has been dropped
Noteworthy changes in version 8.2.0rc1 (2014-07-20)
- Miscellaneous code cleanups and stabilization fixes
./configurenow 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
INVITEcommand. See channel {} block inreference.conf. - Changed flood control logic for the
KNOCKcommand. See channel {} block inreference.conf. INVITEwithout any parameters now shows a list of channels a client is invited to- The
OPERWALLcommand has been removed. UseGLOBOPSinstead. - Added
max_channelsto class {} blocks - Added
throttle_countconfiguration option to the general {} block - Added
ssl_message_digest_algorithmconfiguration option to serverinfo {} block.
Seedoc/reference.conffor more information. - Added support for Elliptic Curve Diffie-Hellman (ECDH). Also an elliptic curve can be
specified via theserverinfo::ssl_dh_elliptic_curveconfiguration option. - Removed
ssl_server_methodandssl_client_methodconfiguration 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_nlineconfiguration directive togeneral::warn_no_connect_block - Fixed bug with
WHOISnot showing a list of channel names as expected - Added user mode
qwhich hides idle and signon time inWHOIS - Added user mode
pwhich 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. SVSJOINandSVSPARTcommands have been added- Major code cleanups and refactoring. Improved overall performance
INFOnow 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
XLINEnot 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
EOBlogic 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
SPLITNUMnow works as expected - Fixed
UNDLINEnot to require the IP address to be prepended with *@
Noteworthy changes in version 8.1.18 (2014-06-09)
- Fixed
CAPissue for certain clients - Fixed bug where
STATS pwould 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
KICKother channel halfops - Fixed compile warnings; code cleanups
- Fixed bug where the configuration parser wouldn’t truncate the network name
ifgeneral::network_namecontains spaces
Noteworthy changes in version 8.1.17 (2014-05-01)
- Fixed possible
WATCHcore - Fixed bug where the configuration parser wouldn’t take time units
into consideration for thejoin_flood_timeandthrottle_time
configuration options - Minor
LISToptimization
Noteworthy changes in version 8.1.16 (2014-04-20)
- Fixed undefined behaviour with
cryptreturningNULL
since glibc2.17 in certain cases - Admins may now see all channel members via
WHO #channel
regardless of channel modes - Fixed corrupted
STATS Uoutput
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
USERScommand has been removed - Fixed issue with
SVSNICKwhere 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
unxlineIRC operator flag - Implemented IRCv3.2
userhost-in-namesextension - 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 theWHOISreply
Noteworthy changes in version 8.1.13 (2014-01-07)
- Fixed
EOBnot 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
WHOISno longer sends a notice to IRC operators with user modey(spy)
Noteworthy changes in version 8.1.12 (2013-12-22)
RPL_WHOISMODESnow 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
WEBIRCwhere 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
kqueuewhere it occasionally dropped updates - Changed
WHOISto show certificate fingerprint to administrators only - The
WHOreply now shows if a nickname has been registered
with NickServ. (rstatus flag) - Fixed some flaws with server hiding
- Fixed bug where
STATS Pwould leak ip addresses to remotely connected
administrators, even ifserverhide::hide_server_ipswas set toyes - Added
SVSKILLcommand
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. WHOISnow 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 theWHOISreply. - 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-protectortoCFLAGSif available. Basically checks for
buffer overflows/stack-smashing attacks. - When using anope 1.9/2.0 services,
WHOISnow shows the account name
of a registered/identified client (numeric 330) - Administrators can now see +s channels in the
LISTreply
Noteworthy changes in version 8.1.7 (2013-08-18)
- Fixed issue with channel mode
nhaving 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::aftypeisn’t set
Noteworthy changes in version 8.1.4 (2013-07-05)
- Added
xlineandresvlogging types. Seedoc/reference.conf
for more information - Fixed bug where remote
STATSrequests were not rate limited - Fixed core with empty
auth::spoofentries - 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-libgeoipswitch
Noteworthy changes in version 8.1.2 (2013-06-20)
- Added
general::cycle_on_host_changeconfiguration option - Added
general::stats_u_oper_onlyconfiguration 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_requiredconfiguration option. See
doc/reference.conffor 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_commandconfiguration directive from general {} block
to serverhide {} block - Minor code cleanups/performance improvements
- Fixed bug where IRC operators could see
LOCOPSmessages even if they don’t
have theluser mode set - Fixed bug where non-SSL clients could join +S channels on non-SSL servers
- Implemented motd {} configuration blocks. See
doc/reference.conffor more
information STATS Tshows 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_killoper flags, and addedconnect,
squit, andkillflags for better fine-tuning instead. Whether or
not a specific action is allowed on a remote server can be controlled
by appending the:remoteflag. For example:killallows only local
clients to be killed, whereaskill:remoteallows to issue aKILLfor
remote clients - Added
locopsandwallopsto IRC operator flags - Improve/cleanup
HELPsystem
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 onow 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_banconfiguration 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.conffor more details. - Added
resv::exemptconfiguration 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_channelsconfiguration option - Preliminary libGeoIP support. Currently only used for exempt entries
in resv {} blocks. - Improved WEBIRC authentication; added
webirctoauth::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_servicesconfiguration option - Added
nononreg(user modeR) tooper::umodesandgeneral::oper_only_modes - Implemented IRCv3.1
away-notifyextension
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 theSVSMODEcommand - Fixed weird idletimes shown in
TRACE
Noteworthy changes in version 8.0.8 (2013-04-28)
STATS snow 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
WHOISwould 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_lengthconfiguration 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.pidhas been accidentally saved in/varinstead of/var/run- Linux RT signal support for notification of socket events has been dropped
- Fixed
STATS Y|ysometimes sending weird sendq/recvq values INFOnow also shows configured values ofdisable_fake_channels,
andstats_e_disabledm_webirc.cis now officially supported, and has been moved from contrib/
to modules/WHOIS,STATS p, andTRACEmay now show fake idle times depending
on how the newclass::min_idleandclass::max_idleconfiguration
directives have been configured. This feature basically works in the
same way as it does in csircd.- The configuration parser now does support
yearandmonthunits
Noteworthy changes in version 8.0.4 (2013-01-02)
- Fixed possible core on
USERHOST/ISONwith optimization enabled - Fixed bug where
can_floodsometimes didn’t work as expected
Noteworthy changes in version 8.0.3 (2012-12-24)
- Fixed core on
UNDLINE XLINE,KLINE,RESV,DLINE,SQUIT, andKILLnow 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-assertconfigure switch - Fixed bug where timed events stopped from working if the system’s
clock is running backwards STATS q|Qnow shows how many times a resv {} block has been matched- Fixed contributed
WEBIRCmodule - 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
CHALLENGEbased IRC operator logins - Fixed class limits not properly applying to operator {} blocks
- Fixed possible
TBURSTdesynchronization with services - Fixed
TBURSTfrom 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_actuallyconfiguration directive.
This is now enabled by default - Minor
SQUIThandling fixes - Fixed bancache not being updated on
CHGHOST/CHGIDENT
Noteworthy changes in version 8.0.0rc1 (2012-09-28)
- Removed
general::client_floodconfiguration option and added the
newrecvqconfiguration 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
PRIVMSGtoopers@some.serveris no longer supported- Fixed bug that could lead to topic desynchronization
- Removed
serverhide::disable_hiddenconfiguration option - Dropped ircd-hybrid-6
GLINEcompatibility mode - Removed
use_invex,use_exceptanduse_knockconfiguration options.
These features are now enabled by default.
Noteworthy changes in version 8.0.0beta2 (2012-07-21)
channel::disable_fake_channelsnow also disables ascii 29 (mIRC italic)
when set toyes- Added
channel::max_chans_per_operconfiguration directive. The old way was to
let IRC operators join three times the amount ofmax_chans_per_user. - Replaced
MODLOAD,MODUNLOAD,MODRELOAD,MODLISTandMODRESTART
commands with the newMODULEcommand which can be fed with theLOAD,
UNLOAD,RELOADandLISTparameters.
MODRESTARThas been entirely removed. UseMODULE RELOAD *to reload
all modules. - Added back server notice when a client tries to obtain a reserved nick name
- Removed
OMOTDmodule - Added
setto IRC operator privilege flags. Gives access to theSETcommand. - 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, andSVSMODEcommand handlers - Added service stamps to
NICK/UIDmessages - Added SVS to server capabilities (
CAPAB). SVS capable servers can
deal with extendedNICK/UIDmessages 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_namedirective to general {} block - Added
GLOBOPSmainly for services compatibility, but can be used by IRC operators, too
- Added
- Removed
RKLINEandRXLINEcommands. Regular expression based bans should
only be added viaircd.conf. - Added
globops,restart,dline,undlineandmoduleIRC operator privilege flags.
Readdoc/reference.conffor further explanation of what these flags control. - Removed Idle-time klines
- Cleaned up modules API. Old modules won’t work anymore
- Removed
general::burst_awayconfiguration directive.AWAYbursts are now
controlled viaconnect::flagsexplicitly. - 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
Hwhich is basically a replacement for thehidden_adminand
hidden_operoperator 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_protocolconfiguration directive and
addedssl_client_methodandssl_server_methodinstead.
Both of these options can now be changed at runtime. - IRC operator login IDs are no longer limited to
NICKLEN*2 - Removed
channel::burst_topicwhoconfiguration option. This feature is now
enabled by default. STATS Y|ynow reports CIDR limits as well- Added
m_webirc.ctocontrib/