Changelog:
[[v1.7]]
== Version 1.7 (2017-01-15)
New features::
* core: add option weechat.look.align_multiline_words (issue #411, issue #802)
* core: add optional command prefix in completion templates "commands", "plugins_commands" and "weechat_commands"
* core: add optional arguments in completion template, sent to the callback
* core: add option "time" in command /debug
* api: add info "uptime" (WeeChat uptime)
* api: add info "pid" (WeeChat PID) (issue #850)
* fifo: add file fifo.conf and option fifo.file.path to customize FIFO pipe path/filename (issue #850)
* irc: add server option "usermode" (issue #377, issue #820)
* irc: add tag "self_msg" on self messages (issue #840)
Improvements::
* core, xfer: display more information on fork errors (issue #573)
* core: add a slash before commands completed in arguments of /command, /debug time, /key bind, /key bindctxt, /mute, /repeat, /wait
* core: add a warning in header of configuration files to not edit by hand (issue #851)
* alias: add a slash before commands completed in arguments of /alias
* exec: add option "-oc" in command /exec to execute commands in process output, don't execute commands by default with "-o" (issue #877)
* irc: evaluate content of server option "ssl_fingerprint" (issue #858)
* irc: change default value of option irc.network.lag_reconnect from 0 to 300 (issue #818)
* trigger: do not hide email in command "/msg nickserv register password email" (issue #849)
Bug fixes::
* core: fix deadlock when quitting after a signal SIGHUP/SIGQUIT/SIGTERM is received (issue #32)
* core: fix display of empty lines in search mode (issue #829)
* api: fix crash in function string_expand_home() when the HOME environment variable is not set (issue #827)
* exec: fix memory leak in display of process output
* irc: fix option "-temp" in command /server (issue #880)
* irc: fix close of server channels which are waiting for the JOIN when the server buffer is closed (issue #873)
* irc: fix buffer switching on manual join for forwarded channels (issue #876)
* irc: add missing tags on CTCP message sent
* lua: fix integers returned in Lua >= 5.3 (issue #834)
* relay: make HTTP headers case-insensitive for WebSocket connections (issue #888)
* relay: set status to "authentication failed" and close immediately connection in case of authentication failure in weechat and irc protocols (issue #825)
* script: reload a script after upgrade only if it was loaded, set autoload only if the script was auto-loaded (issue #855)
Build::
* core, irc, xfer: fix compilation on Mac OS X (add link with resolv) (issue #276)
* core: add build of xz package with make dist (cmake)
* tests: fix compilation of tests on FreeBSD 11.0
Most relevant changes:
Admin
- Add example api_permissions: definition to config template
- Allow old-stype mod_vcard_ldap in the config
- Fix migration of old pubsub database (migrating from 2.1.x)
- Get nodes from ejabberd_cluster instead of mnesia
- mod_configure: Fix configuration commands
Core
- Fix case clauses when using compression
- Set from/to in every routed packet
- Correctly process errors from new cyrsasl API
- Improve return values in cyrsasl API
Modules
- mod_http_bind: remove and migration code to mod_bosh
- mod_muc: Allow a subscriber to create room, then set
allow_subscription=true
- mod_muc: Support legacy muc#roomconfig values
- mod_offline: Decode message before checking for expiration
Mnesia
- Let ejabberd_mnesia handles copy_type
- Fix index processing
- Speedup table setup, no i/o if EJABBERD_SCHEMA_PATH not set
SQL
- Add SSL support for SQL connections with PostgreSQL 1.1.2+
- Cope with malformed values in 'rosterusers' SQL table
- Improve tag insertion, avoid duplication
MASTER_SITES= site1 \
site2
style continuation lines to be simple repeated
MASTER_SITES+= site1
MASTER_SITES+= site2
lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint
accordingly.
* Do not attempt to reload SM modules on SIGHUP
* Cleanup config files example
* Fixed memory leak in pgsql storage driver
* Fixed two double-frees caused by dangling pointers
* Fixed c2s logger initialization point
On NetBSD, sm receives a SIGHUP shortly after being started from rc.d,
which causes a crash. With 2.5.0, sm starts correctly on boot.
Drop MESSAGE; reading NEWS on updating is standard practice and not
special about jabberd.
Drop dependency of router, sm, s2s on c2s. This did not make sense --
none of them care if c2s runs.
c2s, s2s, and sm all connect to router. So make them depend on
router, even though in theory they should retry.
Make c2s depend on sm, because if someone tries to log in before sm is
running, they will get a failure, and some clients do not retry
correctly. Getting ECONNREFUSED connecting to c2s is more likely to
be handled correctly.
No PKGREVISION; riding the impending update.
(Tested on netbsd-6 i386 in a domU.)
v1.0.0 2017-01-03 The Irssi team <staff@irssi.org>
* Removed --disable-ipv6 (#408).
* /connect Network now aborts with an error if no servers have been
added to that network (#443).
* /dcc commands now use quotes around spaces consistently.
* bell_beeps was removed (#524, #565).
* Switch to GRegex instead of regex.h (#412).
+ irssiproxy can now forward all tags through a single
port. By Lukas Mai (mauke, #425).
+ irssiproxy can also listen on unix sockets. By Lukas Mai (#427).
+ send channel -botcmds immediately when no mask is specified (#175, #399).
+ the kill buffer now remembers consecutive kills.
New bindings were added: yank_next_cutbuffer and append_next_kill
By Todd A. Pratt (#353, #414, #455)
+ connections will avoid looking up IPv6 addresses if the machine does
not have an IPv6 address assigned (exact behaviour is implementation
defined, #410).
+ Fix potential crash if scripts insert undef values into the completion
list (#413).
+ Paste warning is now also shown on pasting overlong
lines. By Manish Goregaokar (#426).
+ autolog_ignore_targets and activity_hide_targets learn a new syntax
tag/* and * to ignore whole networks or everything.
By Jari Matilainen (vague666, #437)
+ /hilight got a -matchcase flag to hilight case
sensitively. By Thibault B (isundil, #421, #476).
+ Always build irssi with TLS support.
+ Rename SSL to TLS in the code and add -tls_* versions of the -ssl_*
options to /CONNECT and /SERVER, but make sure the -ssl_* options continue
to work.
+ Use TLS for Freenode, EFnet, EsperNet, OFTC, Rizon, and IRC6 in the default
configuration.
+ Display TLS connection information upon connect. You can disable this by
setting tls_verbose_connect to FALSE.
+ Add -tls_pinned_cert and -tls_pinned_pubkey for x509 and public key pinning.
The values needed for -tls_pinned_cert and -tls_pinned_pubkey is shown
when connecting to a TLS enabled IRC server, but you can also find the
values like this: Start by downloading the certificate from a given IRC
server:
$ openssl s_client -connect chat.freenode.net:6697 < /dev/null 2>/dev/null | \
openssl x509 > freenode.cert
Find the value for -tls_pinned_cert:
$ openssl x509 -in freenode.cert -fingerprint -sha256 -noout
Find the value for -tls_pinned_pubkey:
$ openssl x509 -in freenode.cert -pubkey -noout | \
openssl pkey -pubin -outform der | \
openssl dgst -sha256 -c | \
tr a-z A-Z
+ Remove support for DANE validation of TLS certificates.
There wasn't enough support in the IRC community to push for this on the
majority of bigger IRC networks. If you believe this should be
reintroduced into irssi, then please come up with an implementation that
does not rely on the libval library. It is causing a lot of troubles for
our downstream maintainers.
+ /names and $[...] now uses utf8 string operations. By Xavier
G. (#40, #411, #471, #480).
+ New setting completion_nicks_match_case (#488).
+ /channel /server /network now support modify subcommand. By
Jari Matilainen (#338, #498).
+ Irssi::signal_remove now works with coderefs. By Tom Feist (shabble, #512).
+ /script reset got an -autorun switch (#540, #538).
+ cap_toggle can now be called from Perl, and fields
cap_active and cap_supported can be inspected (#542).
+ Make it possible to disable empty line completion. By Lauri
Tirkkonen (lotheac, #574).
+ New option sasl_disconnect_on_failure to disconnect when
SASL log-in failed (#514).
- IP addresses are no longer stored when resolve_reverse_lookup is
used.
- Removed broken support for curses (#521).
- Removed broken dummy mode (#526).
- Fix terminal state after suspend (#450, #452).
- Improve Perl library path detection (#479, #132).
- Reconnect now works on unix connections (#493).
- Fix completion warnings (#125, #496, FS#124).
- Fix a crash in the --more-- item (#501).
- Fix a display issue in /unignore (#517, bdo#577202).
- Fix a crash in some netsplits (#529, #500).
- Fix crashes with some invalid config (#550, #551, #563, #564, #587, #581, #570).
- Add support for SASL Fragmentation. By Kenny Root (kruton, #506).
- Improve netsplit dumping (#420, #465).
- Improve responsibility under DCC I/O strain (#578, #159).
- Fix query nick change on open (#580, #586).
- Correct a few help texts.
irssi 0.8.21 is a maintenance release without any new features.
Changes:
- Correct a NULL pointer dereference in the nickcmp function found by
Joseph Bisch (GL#1)
- Correct an out of bounds read in certain incomplete control codes
found by Joseph Bisch (GL#2)
- Correct an out of bounds read in certain incomplete character
sequences found by Hanno Böck and independently by J. Bisch (GL#3)
- Correct an error when receiving invalid nick message (GL#4, #466)
Due to the documenation change below, man pages are no longer supplied in pkgsrc.
New features
core: add optional argument "lowest", "highest" or level mask in command /input hotlist_clear
core: add option "cycle" in command /buffer
api: add "extra" argument to evaluate extra variables in function string_eval_expression() (issue #534)
relay: add option relay.network.allow_empty_password (issue #735)
trigger: add support for one-time triggers (issue #399, issue #509)
Improvements
core, irc, xfer: display more information in memory allocation errors (issue #573)
api: remove functions printf_date() and printf_tags()
irc: rename server options "default_msg_{kick|part|quit}" to "msg_{kick|part|quit}", evaluate them
relay: allow escape of comma in command "init" (weechat protocol) (issue #730)
Bug fixes
core, irc, xfer: refresh domain name and name server addresses before connection to servers (fix connection to servers after suspend mode) (issue #771)
api: fix return of function string_match() when there are multiple masks in the string (issue #812)
api: fix crash in function network_connect_to() if address is NULL
api: fix connection to servers with hook_connect() on Windows 10 with Windows subsystem for Linux (issue #770)
api: fix crash in function string_split_command() when the separator is not a semicolon (issue #731)
irc: fix socket leak in connection to server (issue #358, issue #801)
irc: fix display of service notice mask (message 008) (issue #429)
irc: fix NULL pointer dereference in 734 command callback (issue #738)
relay: return an empty hdata when the requested hdata or pointer is not found (issue #767)
xfer: fix crash on DCC send if option xfer.file.auto_accept_nicks is set (issue #781)
Documentation
switch to asciidoctor to build docs and man page
Build
python: add detection of Python 3.5
API / integration
- New API permissions framework
Commands
- Add configurable weight for ejabberd commands
- add_rosteritem: Support several groups separated by ;
- create_rooms_file: Fix reading room jids from file
- delete_old_messages: Fix command for SQL backends
- send_message: Don't duplicate the message
- Remove obsolete remove_node command (use leave_cluster)
- Fix reload_config
- Cleanup mod_admin_extra, add few functions
- Expose unregister API command
Core XMPP
- New BOSH module
- Use fxml_gen XML generator
- Use our new stand-alone XMPP library instead of jlib.erl
- Don't let MAM messages go into offline storage
- Add xdata generator for XMPP data form
- Get rid of excessive (io)list_to_binary/1 calls
HTTP
- Add authentication support to mod_http_fileserver
- ejabberd_http: Handle missing POST data gracefully
- Use inets instead of lhttpc in http_p1
- Add http_p1.erl, rest.erl, and oauth2 ReST backend for OAuth2 tokens
MUC
- Create room on configuration request as per XEP-0045, 10.1.3
- Ensure that presence_broadcast room option is stored
- Fix conference disco#items when running multiple virtual hosts
- Fix Result Set Management (RSM) for conference disco#items
- Introduce muc_invite hook
- Make the constant MAX_ROOMS_DISCOITEMS configurable
- mod_carboncopy: Don't copy MUC private messages
MUC/Sub
- Store the flag "Allow Subscription" room option in database
- When getting list of subscribed rooms, also check temporary ones
- Add password support in muc_subscribe
- When unsubscribes, check if room should get closed
Pubsub
- Enforce pubsub node removal
- Relational databases support
- Append ; to privacy_list_data exporting lines
- Improve relational database import
Build
- Make build system compatible with rebar3
- Produce ejabberd.service and fix for systemd usage
- Cleanup ext_mod and fix compilation path
- Fix compilation of external module with new xmpp lib
process fails if no openssl.cnf exists. Patch can likely be extended to
remove dependency on the openssl binary completely, but that's beyond
the scope of this fix.
Many of these definitely do not depend on readline.
So there must be a different underlying problem, and that
should be tracked down instead of papering over it.
Solves:
/usr/libexec/binutils225/elf/ld.gold: error: cannot find -lreadline
The missing specification is obvious on DragonFly because there's
no publically accessible version of readline in base.
New XMPP Extension support
- Support for XEP-0355 - Namespace Delegation
- Support for XEP-0356 - Privileged Entity
Elixir support
- Support for Elixir-based configuration files
MUC/Sub
- Add a new request to list MUC room subscribers
- Link MUC subscription to bare JID
- New commands unsubscribe_room and unsubscribe_room for MUC
subscriptions management through API
- Fix nick-to-jid mapping for MUC subscribers
- Fix subscribed rooms list retrieval
- Fix message routing from subscribers
- Do not update muc_online_users table on MUC/Sub operations
MUC
- Support multiple JIDs in room invitations
- Create room on configuration request as per XEP-0045, 10.1.3
PubSub
- Add SQL support for microblogging node plugin
- Fix publish with subscriber publish model and SQL backend
- node_mb: Call node_pep instead of node_hometree
Stream Management
- New Stream Management option: ack_timeout
- Fix Stream Management feature for the websocket connections
- Cancel timer when waiting for resumption
MAM and Offline
- Don't store messages of type "headline"
- Simplify "assume_mam_usage" option
- Honor hint for any non-"error" message
- Store announcements for offline users
Database
- Session backend: fix clean Redis table
- mod_shared_roster: Support SQL backend
ejabberdctcl admin tool
- ejabberdctl: do not force access rules check on register command
- ejabberdctl: do not force command line to pass a credential
- New commands unsubscribe_room and unsubscribe_room for MUC
subscriptions management
- New command create_room_with_opts to create room with custom
config
ejabberd API
- New commands unsubscribe_room and unsubscribe_room for MUC
subscriptions management
- New command create_room_with_opts to create room with custom
config
- Add X-Admin and basic auth header to CORS allowed headers in
http_api
- Properly process OPTIONS header in http_api for all paths
- Expand parsing of JSON input to be able to handle update_roster
command
- Provide proper args_desc in oauth_issue_token command
Developer features: ejabberd Hooks
- Add hooks c2s_session_pending, c2s_session_resumed,
store_offline_message, store_mam_message
- Add CSI user's JID argument to csi_filter_stanza and
csi_flush_queue hooks
- Add functions to get/set some c2s #state elements from external
modules
- mod_client_state: Let other modules filter stanzas
- rework c2s API to simplify push modules integration
previously it would create a world readable file containing chat
logs when /upgrade was used.
while a security fix, you have to jump through many hoops to be
affected by it - we don't enable perl scripts by default, we
don't run that perl script by default, and you'd have to know that
/upgrade exists in the first place, and run on a system where world
readability of files is a concern.
still, grab upstream update, bump PKGREVISION.
catch up with irssi-icb, irssi-xmpp distinfo (they grab irssi versioned
file).
comment out part of irssi-xmpp makefile which is breaking the build.
irssi 0.8.20 changes:
- Correct the name of an emitted sasl signal (#484)
- Correct the prototype for the 'message private' signal (#515)
- Corrections in away and hilight help text (#477, #518)
- /squery and /servlist commands have been restored.
- Where Irssi would previously only report "System error" on connect,
it will now try harder to retrieve the system error message.
- Fixed issue with +channels not working properly (#533)
- Fixed crash in optchan when item has no server (#485)
- Fixed random remote crash in the nicklist handling (#529)
- Fixed remote crash due to incorrect bounds checking on
formats, reported by Gabriel Campana and Adrien Guinet from
Quarkslab.
There have been many changes since the previous official release, 1.4.3, which
was published 7 years ago, so we'll only mention a few of them:
- This Loudmouth release is compatible with current Glib/GTK libraries
- The internal asyncns copy has been removed
- The security has been improved in several ways:
- Certificates: added checking of SAN(s) when CN does not match and fixed CN
wildcard handling
- SSL 2 and 3 have been deactivated; TLS 1.1 and 1.2 have been activated
- Use the default cipher suite of GnuTLS
- New API: Implementation of lm_ssl_set_ca and lm_ssl_set_cipher_list
This enables the application to choose additional CA certificates to trust
as well as the cipher suites which are used by OpenSSL or GnuTLS
- Many resolver and parser issues have been fixed
I can't find a subsequent changelog for 1.5.1 to 1.5.3 but assume "bugs fixed".
Change log:
v1.0.17 -- 23 Aug 2016
----------------------
Note: This release is not binary compatible with previous releases.
It is source compatible.
- MingW compile fixes (thanks to Florian Niebel)
- properly use winsock2 (thanks to Kau)
- a few fixes for uclibc++ compatibility (thanks to Erik Horemans)
- Message: removed bogus hard-coded namespace to fix component use
v1.0.16 -- 16 Jul 2016
----------------------
- PubSubManager: properly include publish options (thanks to Iban Ulov)
- PubSubManager: properly parse subscriptions in ctor (thanks to Joe Best)
- Resource: fixed high memory usage when receiving presence stanzas
(#259) (thanks to Manuel)
v1.0.15 -- 25 Apr 2016
----------------------
- Error: fix copy ctor (thanks to Olivier Tchilinguirian)
- ClientBase: properly fix handling of MUC invitation declines
(wrong in 1.0.14) (thanks to Martin Hillmeier and Matias Snellingen)
(#248)
- MUCRoom: handle SendRoomConfig (thanks to Matias Snellingen) (#253)
- soversion bump, missed that for 1.0.14 (thanks to Vincent Cheng)
- TLSGNUTLSClient: fixed off-by-one error in certificate verification
- IPv6 fixes
v1.0.14 -- 11 Aug 2015
----------------------
Note: This release is not binary compatible with previous releases.
It is source compatible.
- IOData: make it possible to pass more than one element as in/out/error data
- Client: fix resetting of presence status text
- TLSSChannel: fix memory leak (thanks to Alexander Weisner)
- Error: added setAppError() to set application-specific error message
- PubSub::Item: added setPayload(), setID()
- Adhoc: return clone of plugin
- PubSub::Manager: fix finding of subscription type (thanks to BillHoo)
- ChatStateFilter: fix enable logic (thanks to Ivan Shmakov)
- MessageEvent: added parsing of <id/> (thanks to Ivan Shmakov)
- MessageEvent: added id() (thanks to Ivan Shmakov)
- ClientBase: handle MUC invitation declines properly (thanks to
Matias Snellingen)
- DNS: IPv6 fix (thanks to garimacoe) (#249)
- DelayedDelivery: propagate internal state properly (#251)
- PubSub::Manager: fix GetSubscriberList and GetAffiliateList
2.12.1 (2016-05-01)
add lua plugin
change desktop file to open urls in existing instance on Unix
misc chanopt fixes
misc identd fixes
misc challengeauth fixes
re-add support for old versions of libnotify
update network list
2.12.0 (2016-03-12)
add support for IRCv3.2
add support for twitch.tv/membership cap
add support for SNI (Server Name Indication)
add ability to do DnD reordering in some settings dialogs
add option to disable middle-click closing tabs
rewrite sysinfo plugin
rewrite identd plugin
rewrite update plugin
rewrite checksum plugin
remove DH-{AES,BLOWFISH} mechanisms (insecure)
remove IRC encoding, replaced with UTF-8
remove System Default encoding, replaced with UTF-8
remove configure option to disable ipv6
remove msproxy and socks5 library support (unused)
change tab-complete to favor other user nicks over own
change url detection to support unicode
change decoding to not attempt ISO-8859-1 fixing corruption
change pluginpref to escape values
minor changes to icons
fix numerous crashes (but not #600)
fix poor performance with nick indent enabled
fix UTF-8 text in winamp plugin
fix fishlim plugin handling networks with server-time
fix logging hostname of users in new queries
fix Key Press event sending non-UTF-8 text to plugins
fix get_info( win_ptr ) from python
fix running portable-mode from another directory
fix duplicate timestamps on selection
fix cfgdir argument
fix mode-button text being cut off
fix scrollback timestamps with server-time
fix url handler accepting quoted paths with spaces
fix using correct encoding when jumping networks
improve DCC handling large files
improve python detection in configure
improve scrollback file handling (corruption, line endings)
improve building in cygwin
improve build options on unix to be more secure
update translations
update network list
2.10.2 (2014-11-25)
verify hostnames of certificates
use more secure openssl options (No SSLv2/3)
detect utf8 urls in chat
fix using multiple client certs at the same time
fix checking for Perl on some distros
fix friends list not properly updating
fix building with format-security
fix opening utf8 urls on Windows and OSX
update deps on Windows
update translations
Changes:
v0.8.19 2016-03-23 The Irssi team <staff@irssi.org>
- Fixed regression when joining and parting channels on IRCnet (#435)
- Fixed SASL EXTERNAL (#432)
- Fixed regression when not using SASL (#438)
- Fixed incorrect SSL disconnects when using SSL from modules/scripts
(#439)
- Fixed regression where proxy_string could not be configured or
certain file transfers could not be accepted (#445)
- Fixed storing layout of !channels (#183)
- Fixed restoration of bracketed paste mode on quit (#449)
- Make the usage of meta-O for cursor keys configurable with
/set term_appkey_mode off
v0.8.18 2016-02-13 The Irssi team <staff@irssi.org>
* Modules will now require to define a
void MODULENAME ## _abicheck(int *version)
method to ensure that they are compiled against the correct Irssi
version.
* The signature of "message private" has been changed to
5: server, message, nick, address, target
in order to support "self messages". Module authors should
implement this change if they are using this signal.
* Removing networks will now remove all attached servers and channels
(#45).
* The proxy module now has an /irssiproxy command.
* sb_search has been moved to scripts.irssi.org
* WIN32 has been completely removed (it had not been working and is
lacking a maintainer.)
* Garbage Collection support has been removed. This will hardly have any
effect for anyone given that it has been unsupported for several years.
+ CAP SASL PLAIN login is now supported natively.
+ Paste bracket markers can be requested from terminal with
/set paste_use_bracketed_mode on
+ "Self messages" generated by some bouncers can now be received in the
proper window.
+ Try to split long lines on spaces to avoid words being splitted. Adds
a new option: 'split_line_on_space' which defaults to on.
+ Add setting hilight_nick_matches_everywhere (#56).
+ The config parser is more robust and prints out better diagnostics on
incorrect config files.
+ Ctrl+^ (FS#721) and Ctrl+J can now be bound.
+ Command history can be cleared with /window history -clear
+ /hilight -mask -line is now supported (FS#275).
+ CHANTYPES are now supported.
+ Improved reload speed of ignores.
+ Add -date feature to /lastlog
+ irssiproxy can be more easily enabled and disabled.
+ Expando for hostname (FS#829).
+ UNIX sockets can now also be specified in the config file.
+ Disable SSLv3 due to the POODLE vulnerability.
+ SSL ciphers can now be specified per server.
+ Added SNI support for SSL.
- /ignore now respects -pattern on merge (#78).
- irssiproxy (BNC) module now uses correct line endings.
- Fix missing lines on large pastes (FS#905).
- Correctly preserve STATUSMSG prefixes (#291).
- Fix infinite recursion in key bindings (FS#817).
- Fix incomplete awaylog caused by buffering.
- Fix calculation of UTF-8 string length display in some cases.
- Fix some Perl warnings related to @ISA.
- EXEC windowitems now get proper references on the Perl side.
- Incremental help file improvements.
- ANSI attributes are now properly reset.
- Fixed regression where text would blink when terminal lacks color
support.
- Permit the usage of Freenode extban syntax in /ban (#150)
- Fixed regression in scriptassist on unload of scripts.
- Fixed regression in -actcolor %n
ejabberd 16.08
MUC
- New MUC/Sub support
- Add 'allow_subscription' room configuration option for MUC/Sub
OAuth and ReST API
- Add OAUTH SQL backend
- New special scope: ejabberd:admin and ejabberd:user, to more
easily grant group of privileges
- Add DB backend support for ejabberd_oauth
- Added ejabberdctl commands to manage OAuth tokens:
oauth_issue_token, oauth_list_tokens, oauth_list_scopes,
oauth_revoke_token
- Simplified OAuth form: username and password merged into JID
field
- User configurable validity duration for tokens on OAuth token
generation form
- Add support for sending back missing scope error to API ReST
command calls
- Oauth: several minor fixes
- Support oauth password grant type, to generate token
programmatically
Elixir support
- Update supported Elixir version to 1.2 and 1.3.
- Support installation of Elixir contributions with external
module command line tool.
PubSub
- Fix use of like parameter in sql pubsub's requests
- Fix node configuration change with sql backends
- Fix send_last_items duplication with multi-plugin setup
MAM
- Always limit result set page size
- Use hooks instead of direct calls
API
- Add support for checking access rules conformance for commands
- Add support for rich error reporting for API
- Add support for sending back missing scope error to API ReST
command calls
- Fix handling of complex values as arguments in http_api
- Improve error handling
Other improvements
- External Component Connection Hooks
- Fix compilation issues on R19
- Support for OpenSSL 1.1
- Make access rules in ejabberd_web_admin configurable
- Make modules loading in a dependent order (#1191)
- Make s2s stats commands more robust
- Preserve PID for offline sessions
- Several quoting fixes for PostgreSQL
- Switch supervised workers from temporary to transient
ejabberd 16.06
Config
- New ACL infrastructure
- Add shorter version of some common access rules definitions
- Allow @ inside acl rules user, user_glob or user_regexp to pass
both user and server in single string
- Add acl rule access_rules_validator and shaper_rules_validator
for use in mod_opt_type and opt_type callback functions.
- Allow using shapers defined by name like in s2s_shaper: fast
- Allow mod_opt_type and opt_type to transform values passed to
it, and support better error reporting
- Do not call transform_terms multiple times in configuration
processing when merging them
- Don't halt program when include_config_file is missing/can't be
read
- Allow again multiple fqdn values in configuration
Commands
- Allow passing username and ip to ejabberd_commands, and use it
in mod_http_api
- Fix path to epmd in ejabberdctl
- push_roster: must convert read strings to binaries
- set_presence: Fix command API
- Fix for modules_update_specs command
- Add ejabberdctl commands to manage oauth tokens.
Core
- Bounce messages sent to server JID
- Fix C2S session leak in rare cases
- Fix handling of queued stanzas on session timeout
- Give more time to stop and kill epmd
- When stopping ejabberd, stop modules after broadcasting c2s
shutdown
- XEP-0198: Use different error message for bounces
- XEP-0198: Add 'h' attribute to element
- XEP-0198: Also count stanzas when socket is closed
Databases
- Fix pgsql compatibility on delete_old_messages command
- Handle Redis connection in a separate module
- Report in SQL when scram is enabled but the stored password
isn't
- Update SQL escaping
- Use MEDIUMTEXT type for muc_room.opts in MySQL schema
MAM
- Send unique stanza id and archived tag also in the message
carbons
- Fix "assume_mam_usage: if_enabled"
- Fix typo in mod_mam:select()
- Updated support of XEP-0313 from version 0.4 to 0.5.1
- Mnesia: Avoid cleanup on bag when disc_only, switch in memory
- Mnesia: Don't exceed table size limit
- Mnesia: Use transactions when writing
Client State Indication
- Fix handling of chat states
- Simplify check for carbon-copied chat states
- Simplify handling of PEP stanzas
- Pass chat states of other resources
- Unwrap carbon copies when checking for chat states
- Add queue_pep option
- Queue chat state notifications
- Move CSI queue handling code from ejabberd_c2s
- When stopping, delete only the configured hooks
Other modules
- ext_mod: Set HTTP/1.0 so Github accepts the request
- gen_mod: Compile early to remove undefined behaviour warning
- mod_http_upload: Let client retry HTTP upload on file size
mismatch
- mod_last: Produce mod_last entry on account creation
- mod_muc_room: Notify on affiliation changes
- mod_register: Check password with jid:resourceprep when
registering account
- mod_roster: respect roster item changes introduced with
roster_process_item hooks upon pushing
- PubSub: Fix PubSub RSM on get_items
- PubSub: Add support for PubSub publishing options
- PEP: Fix sender in case of explicit pep subscriptions
- ejabberd_xmlrpc: Report error when conversion of argument type
fails