]> jfr.im git - solanum.git/blobdiff - NEWS.md
Merge pull request #260 from FauxFaux/yesno-1
[solanum.git] / NEWS.md
diff --git a/NEWS.md b/NEWS.md
index 669d98936e35c403f7b483f15a488992d5add001..d8db07a2b8fc7ee21644484cab02316ba88c1d54 100644 (file)
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,8 +1,106 @@
 # News
 
-This is charybdis 3.5.0, Copyright (c) 2005-2016 Charybdis team.
+This is charybdis 4.1-dev, Copyright (c) 2005-2018 Charybdis team.
 See LICENSE for licensing details (GPL v2).
 
+## charybdis-4.1
+
+### misc
+- SCTP is now supported for server connections (and optionally, user connections)
+
+## charybdis-4.0.1
+
+### server protocol
+- SJOIN messages were being constructed in a 1024 byte buffer and truncated to 512 bytes
+  when sending. This caused channels with more than 50 users to fail to propagate all of
+  them during a net join.
+
+## charybdis-4.0
+
+### build
+- Build system has been converted to libtool + automake for sanity reasons.
+- The compile date is now set at configure time rather than build time, allowing for
+  reproducible builds. (#148, #149)
+- Support for GNUTLS 3.4 has been added.
+
+### user
+- Import the ability to exceed MAXCHANNELS from ircd-seven.
+- Implement IRCv3.2 enhanced capability negotiation (`CAP LS 302`).
+- Implement support for receiving and sending IRCv3 message tags.
+- Implement IRCv3.2 capabilities: (#141)
+  - account-tag
+  - echo-message
+  - invite-notify
+  - sasl
+  - server-time
+- SASL: certificate fingerprints are now always sent to the SASL agent, allowing for
+  the certificate to be used as a second authentication factor.
+
+### oper
+- Merge several features from ircd-seven:
+  - Implement support for remote DIE/RESTART.
+  - Implement support for remote MODLOAD et al commands.
+  - Add the GRANT command which allows for temporarily opering a client.
+  - Implement the hidden oper-only channel modes framework.
+  - Implement a channel mode that disallows kicking IRC operators (+M).
+- Enhance the oper override system, allowing more flexibility and detail
+  in network-wide notices.
+- DNS, ident, and blacklist lookups have been moved to a dedicated daemon known
+  as authd. Some cosmetic changes to blacklist statistics and rejection notices
+  have resulted.
+- An experimental OPM scanner has been added to authd. Plaintext SOCKS4,
+  SOCKS5, and HTTP CONNECT proxies can be checked for.
+- The LOCOPS command has been moved from core to an extension.
+- All core modules in charybdis have descriptions, which are shown in MODLIST.
+- Suffixes should not be used when doing /MODLOAD, /MODUNLOAD, /MODRELOAD, etc.
+
+### misc
+- Support for WebSocket has been added, use the listen::wsock option to switch
+  a listener into websocket mode.
+
+### conf
+- Add the ability to strip color codes from topics unconditionally.
+- The obsolete hub option from server info has been removed.
+
+### docs
+- The documentation has been cleaned up; obsolete files have been purged, and
+  files have been renamed and shuffled around to be more consistent.
+
+### code
+- `common.h` is gone. Everything useful in it was moved to `ircd_defs.h`.
+- `config.h` is gone; the few remaining knobs in it were not for configuration
+  by mere mortals, and mostly existed as a 2.8 relic. Most of the knobs live in
+  `defaults.h`, but one is well-advised to stay away unless they know exactly
+  what they are doing.
+- A new module API has been introduced, known as AV2. It includes things such as
+  module datecodes (to ensure modules don't fall out of sync with the code),
+  module descriptions, and other fun things.
+- Alias and module commands are now in m_alias and m_modules, respectively, and
+  can be reloaded if need be. For sanity reasons, m_modules is a core module,
+  and cannot be unloaded.
+- irc_dictionary and irc_radixtree related functions are now in librb, and
+  prefixed accordingly. Typedefs have been added for consistency with existing
+  data structures. For example, now you would write `rb_dictionary *foo` and
+  `RB_DICTIONARY_FOREACH`.
+- C99 bools are now included and used in the code. Don't use ints as simple true
+  or false flags anymore. In accordance with this change, the `YES`/`NO` and
+  `TRUE`/`FALSE` macros have been removed.
+- Return types from command handlers have been axed, as they have been useless
+  for years.
+- libratbox has been renamed to librb, as we have diverged from upstream long
+  ago.
+- Almost all 2.8-style hashtable structures have been moved to dictionaries or
+  radix trees, resulting in significant memory savings.
+- The block allocator has been disabled and is no longer used.
+- The ratbox client capabilities have been ported to use the ircd capabilities
+  framework, allowing for modules to provide capabilities.
+- Support for restarting ssld has been added.  ssld processes which are still
+  servicing clients will remain in use, but not service new connections, and
+  are garbage collected when they are no longer servicing connections.
+- Support for ratbox-style 'iodebug' hooks has been removed.
+- New channel types may be added by modules, see `extensions/chantype_dummy.c`
+  for a very simple example.
+
 ## charybdis-3.5.0
 
 ### server protocol
@@ -41,6 +139,10 @@ See LICENSE for licensing details (GPL v2).
   - $& combines 1 or more child extbans as an AND expression
   - $| combines 1 or more child extbans as an OR expression
   - $m provides normal hostmask matching as an extban for the above
+- Do not allow STARTTLS if a connection is already using TLS.
+- Display an operator's privilege set in WHOIS.
+- The $o extban now matches against privilege set names as well as individual
+  privileges.  Privilege set names are preferred over individual privileges.
 
 ### oper
 - Fix a crash with /testline.
@@ -53,7 +155,8 @@ See LICENSE for licensing details (GPL v2).
 - Add DNSBL snotes on snomask +r.
 
 ### config
-
+- Add hide_uncommon_channels extension to hide uncommon channel memberships in WHOIS,
+  like in ircd-seven.
 - Add chm_nonotice extension, cmode +T to reject notices.
 - Add restrict-unauthenticated extension, prevents unauthenticated users from
   doing anything as channel operator.