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
Not enough to make this build with current boost, but at least it
gets further, now fails with:
In file included from work/.buildlink/include/boost/optional/optional.hpp:35:0,
from work/.buildlink/include/boost/optional.hpp:15,
from Swiften/Parser/AttributeMap.cpp:10:
work/.buildlink/include/boost/type_traits/type_with_alignment.hpp:42:17: error: 'int128_type' in namespace 'boost' does not name a type
boost::int128_type i128;
^
Note: there is a change in the numbering scheme, the third digit will
only be used for patches/bug fixes in the future.
Note: websockets support isn't available in pkgsrc (yet. the required
library still needs packaged.)
hanges:
* Check for C99 support in compiler
* Count RIO bytes and check against max stanza size
* Gracefully drop unhandled HTTP connections
* wss:// (WebSocket over SSL) support in c2s
* Allow BareJID S10N packets
* Fallback to connecting S2S using local.ip when none of the origin.ip
works
* Removed explicit SQLite transactions
* SQLite postconnect SQL support
* SQLite DB setup script improvements
* Many Coverity Scan and cppcheck detected issues fixed
* Properly lowercase SASL mechanisms in c2s
* Support out-of-source build
for all pkgsrc dir/file ownership rules. Fixes unprivileged
user/group names from leaking into binary packages, manifest as
non-fatal chown/chgrp failure messages at pkg_add time.
Bump respective packages' PKGREVISION.
Main new features:
- add support of functions in API function "hook_process"
- move of nick coloring options from irc plugin to core
- move irc bar item "away" to core
- add pointer in callbacks used in scripting API
- add option irc.network.sasl_fail_unavailable
- add Portuguese translations
Bugs fixed:
- core: fix nick coloring when stop chars and a forced color are used: first
remove chars then look for forced color
- core: check that pointers received in arguments are not NULL in buffers and
windows functions
- core: fix truncation of buffer names in hotlist (issue #668)
- core: fix update of window title under Tmux (issue #685)
- core: fix detection of Python shared libraries (issue #676)
- api: fix number of arguments returned by function string_split() when
keep_eol is 2 and the string ends with separators
- irc: fix first message displayed in raw buffer when the message is modified
by a modifier (issue #719)
- irc: add missing completion "*" for target in command /msg
- irc: fix /msg command with multiple targets including "*"
- lua: fix crash when a lua function doesn’t return a value and a string was
expected (issue #718)
- relay: do not execute any command received in a PRIVMSG message from an irc
relay client (issue #699)
- relay: fix the max number of clients connected on a port, allow value 0 for
"no limit" (issue #669)
- relay: fix decoding of multiple frames in a single websocket message, send
PONG on PING received in a websocket frame (issue #675)
- relay: fix command "input" received from clients with only spaces in content
of message (weechat protocol) (issue #663)
- script: force refresh of scripts buffer after download of scripts list
- xfer: fix DCC file received when the terminal is resized
API Commands
- Add API versionning
- Changed error handling, based on exception
- ejabberd Command bugfixes
- Accept commands: add_commands syntax (along commands: –
add_commands)
- Fix mod_muc_admin:get_room_options and set_room_affiliation
- mod_http_api: support 'open' ejabberd commands
Databases
- Split modules DB specific code into separate modules
- Rename "odbc" to "sql" everywhere
- Rename "internal" auth to "mnesia"
- Improve detection of databases supported by modules
- Switch to varchar(64) in mysql user.server/salt as text can't
have default values
- 'serverkey' and 'salt' should have empty string as default
XMPP
- Drop headline messages sent to offline resources
- Don't omit bounces for messages of type "result"
- Match namespace when checking for chat states
- Fix check for standalone chat state notifications
- Disable TLS compression for s2s by default
- Make sure that ejabberd_sm sid are unique
- Send stream trailer at the very end of the processing
- Generate shorted jid for anonymous connections
- Fix anonymous SASL auth
ejabberdctl
- Add option to migration script to delete data from a table after
they have been successfully moved to SQL database: ejabberdctl
delete_mnesia example.org
- Remove useless variable and quote EPMD and SPOOL_DIR
- Fix node ping command
- Use UUID for ctl node name
- Remove --auth in ejabberd_ctl.erl as it's useless, still
useful for mod_rest
- Force ERL_PATH for Elixir console
Pubsub
- Fix use of pubsub node plugin when configured with
default_node_config
- Set default value for pubsub#itemreply option
- Add subscribe/unsubscribe hooks
Internal
- Add mod_mam header file
- Replace ?ERR_* macros with ?ERRT_*
- change mod_ping Timers using maps instead of dict
Dependencies
- Update p1_utils to 1.0.4: Adds p1_time_compat:unique_timestamp()
- Update fast_tls to 1.0.3: Prevent buffer overflows and
allocation failures
- Update stringprep to 1.0.3: Fix compilation on Windows and error
message
- Update stun to 1.0.3: Use fast_tls 1.0.3
- Update esip to 1.0.4: Use fast_tls 1.0.3
16.03
=====
Protocols
- mod_mix: Experimental support for MIX (XEP-0369)
- mod_http_upload: Add support for XEP-0363 v0.2
Core
- Use SASL PLAIN authzid as client identity if auth module permits
it
- Make auto generated resources shorter
- Start ezlib only if required, as it's optional
- Make it possible to get virtual host of a registered route
LDAP improvements
- Fix issue getting shared roster
- Do not call to deprected/undefined functions from
mod_shared_roster_ldap
- Proper naming for LDAP test function for shared roster
SQL databases support
- New parse transform for SQL queries, use prepare/execute calls
with Postgres
- Support for run-time SQL queries selection depending on DBMS
version
- In SQL files create Users table with SCRAM support by default
- Do not auto append IP suffix to usernames
- Fix some LIMIT related problems with MSSQL
- Update Microsoft SQL Server schema
Riak
- Add support for Riak authentication
- Fix is_connected/0 function
- Keep alive Riak connections by default
API and Commands
- Add support for ReST admin commands that are only restricted by
source IP. This is key for easy integration with other backend
using ReST API.
- Fix add_commands and remove_commands options
- Pass noauth when auth isn't provided
- Improve ban_account command to work with other DBs than Mnesia
- Escape quoting node name for ejabberdctl ping
- Bare JID in 'from' of Roster Push (RFC 6121 section 2.1.6) in
mod_admin_extra
- Fix result type of "connected_users_info" command
- New command delete_mnesia deletes all tables that can be
exported. This is useful after you have migrated to another
backend, like SQL.
PubSub
- Unregister route at the very end
- Define PubSub node configuration per route/host explicitly
- Fix config fetch and pubsub disco after host/serverhost cleanup
Admin and build chain
- Update OTP release to use R17.5 and drop release 17.1
- Compile ejabberd_config early to stop undefined behaviour
warnings
- Fix start via systemd
- Fixed type specifications for 'rebar doc'
- Specify lacking nodename in ejabberdctl
Dependencies
- Update p1_pgsql to 1.1.0: This add support for prepared
statements.
- Uptate fast_yaml to 1.0.3: This improves the error reporting on
syntax errors in Yaml configuration file.
- Use the v0.2 release of luerl instead of a commit.
Test framework
- Add Coveralls support
- Add ability to run the ejabberd test suite in a modular way. You
can now run the test suite, even if you only have a a single
backend locally.
Other
- mod_mam: Don't store watchdog notifications in MAM archives
- mod_multicast: Fix Addresses element which lacked others local
destinations
- mod_offline: Mark get_queue_length obsolete, and use
count_offline_messages
- Update Gallician translation
16.02
=====
New XMPP Extensions support
- New Flexible Offline Message Retrieval (XEP-0013) support
Admin
- New migration script from Prosody to ejabberd
- Fix --disable-debug compilation flag
- don't escape ERL_OPTIONS
- Two new global timeouts configurable: c2s_hibernate,
receiver_hibernate
- Make it possible to define sm_db_type per virtual host
- configuration checker: Describe option type in code for
domain_balancing option
- Log failed SQL requests
- Include mod_muc.hrl and fix records
- mod_http_upload: Expand docroot before using it, also expand
@HOST@
Commands
- New import_prosody command
- Start documenting arguments in mod_admin_extra commands
- We added a way to get all ejabberd_commands, not only those that
was registered
- Allow to pass \n in argument to ejabberdctl
- Add error handling to send_stanza command
- Fix format_result so get_room_options command works again after
commit reference aa5caa3
Dependencies
- lager is the default (and only) logging module and we removed
p1_logger
- Handle spaces in vsn attribute of app file when installing deps
- Renamed dependencies and modules for consistency but also to
reflect huge performance gains:
. p1_iconv -> iconv
. p1_stringprep -> stringprep
. p1_stun -> stun
. p1_tls -> fast_tls
. p1_yaml -> fast_yaml
. p1_zlib -> ezlib
Message Archive Management
- Advertise MUC MAM v0.4.1 in room JID's disco#info
- Add "delete_old_mam_messages" admin command
- Add 'from' attribute to tag
- Add "request_activates_archiving" option
- Respond to form requests
- Support XEP-0313 v0.2 MUC archive queries
- Check whether MUC message is desired
- Reject -based paging
- Limit result set page size
- Sort messages returned by Mnesia
- Strip existing JID tags from MUC messages
- Expose MUC occupant JID in more cases
- Don't let outcasts access MUC archive
- Send new preferences when they are set
- Stream management (XEP-0198): Let MAM take care of pending
messages
GroupChat
- Send presence with code 170 in initial presence from MUC
- Add most status codes only to initial MUC presence
- mod_muc_room: Don't expose JIDs in anonymous rooms
- mod_muc_room: Let members see admin/owner JIDs
PubSub
- Fix presence-based delivery
- Make caps warning less confusing
- Fix host/serverhost usage
- Add support of pubsub#itemreply=publisher
Other
- Accept stream compression request after SASL
- Make C2S session establishment optional to better conform to
XMPP specifications and still be friendly with older clients.
- MUC: new regexp_room_id option to limit possible room names.
- ODBC: Set utf8mb4 charset on MySQL connection to support emoji
storage as default.
- LDAP: Improve LDAP shared roster support.
- mod_register_web: Allow setting host when deleting account or
changing password.
- Rename timestamp_to_iso functions in jlib.
- Stream management (XEP-0198): Fix session timeout corner case.
- Several improvements in Elixir support.
- Updated many translations.
- Improve web admin stylesheet to fix rendering issues in some
browsers.
farstream 0.2.8 (March 10, 2016)
==================================
- Add "require-encryption" parameter to ignore unencrypted packets
- Enable building static GStreamer and transmitter plugins
- Make OPUS plugin work and select it as default codec
- Bug fixes