This is a major feature release with a bit of bugfixes.
With this release jabberd2 joins HTTP realm with WebSocket client
connections handling built in C2S module! :-)
Changes:
* Rewrite TLS ephemeral key + cipher handling
* Recover Berkeley DB before opening it
* bcrypt support for PostgreSQL
* Option to set authreg module per realm
* AuthReg ANONYMOUS does not offer password check
* Answer to disco#info queries to user JID
* WebSocket C2S SX plugin
Note: websockets are not available, as the required http-parser module
is not (yet) in pkgsrc.
o fix a program hang upon invalid utf-8 sequences
o /set log and /window log no longer double the output
o /lastlog no longer adds trailing ^Os to log files
this also fixes an assert() in /server.
New features
- core: add completion "colors" (issue #481)
- core: start/stop search in buffer at current scroll position by default, add
key Ctrl+q to stop search and reset scroll (issue #76, issue #393)
- core: add option weechat.look.key_grab_delay to set the default delay when
grabbing a key with Alt+k
- core: add option weechat.look.confirm_upgrade (issue #463)
- core: allow Ctrl+c to exit WeeChat when the passphrase is asked on startup
(issue #452)
- core: allow pointer as list name in evaluation of hdata (issue #450)
- core: add signal "signal_sighup"
- api: add support of evaluated sub-strings and current date/time in function
string_eval_expression() and command /eval
- api: add function string_eval_path_home()
- alias: add options "add", "addcompletion" and "del" in command /alias, remove
command /unalias (issue #458)
- irc: add option irc.network.channel_encode (issue #218, issue #482)
- irc: add option irc.color.topic_current (issue #475)
- irc: evaluate content of server option "nicks"
- logger: evaluate content of option logger.file.path (issue #388)
- relay: display value of HTTP header "X-Real-IP" for websocket connections
(issue #440)
- script: rename option script.scripts.dir to script.scripts.path, evaluate
content of option (issue #388)
- xfer: evaluate content of options xfer.file.download_path and
xfer.file.upload_path (issue #388)
Bugs fixed
- core: flush stdout/stderr after sending text directly on them (fix corrupted
data sent to hook_process() callback) (issue #442)
- core: allow execution of command "/input return" on a buffer which is not
displayed in a window
- core: allow jump from current to previous buffer with default keys Alt+j, NN
(issue #466)
- core: fix crash if a file descriptor used in hook_fd() is too high (> 1024 on
Linux/BSD) (issue #465)
- core: fix display of invalid UTF-8 chars in bars
- core: fix bar item "scroll" after /buffer clear (issue #448)
- core: fix display of time in bare display when option
weechat.look.buffer_time_format is set to empty string (issue #441)
- api: add missing function infolist_search_var() in script API (issue #484)
- api: add missing function hook_completion_get_string() in script API (issue #484)
- api: fix type of value returned by functions strcasestr, utf8_prev_char,
utf8_next_char, utf8_add_offset and util_get_time_string
- api: fix type of value returned by function strcasestr
- fifo: fix send error on Cygwin when something is received in the pipe (issue #436)
- irc: fix update of lag item when the server lag changes
- irc: do not allow command /query with a channel name (issue #459)
- irc: decode/encode only text in IRC messages and not the headers (bug #29886,
issue #218, issue #451)
- irc: fix crash with commands /allchan, /allpv and /allserv if the executed
command closes buffers (issue #445)
- irc: do not open auto-joined channels buffers when option "-nojoin" is used
in command /connect (even if the option irc.look.buffer_open_before_autojoin
is on)
- irc: fix errors displayed on WHOX messages received (issue #376)
- lua: add detection of Lua 5.3
- ruby: add detection of Ruby 2.2
- xfer: fix crash if the DCC file socket number is too high (> 1024 on
Linux/BSD) (issue #465)
- xfer: fix parsing of DCC chat messages (handle "\r\n" at the end of messages)
(issue #425, issue #426)
- doc: replace PREFIX with CMAKE_INSTALL_PREFIX in cmake instructions (issue #354)
Only call CodecsUpdated() when config params have changed and the other side should be notified
Run dispose from the main thread always
Add a block-ready property to TfStream
This allows the application to block the calling of the Ready() dbus method
until some pre-condition as been accomplished. If this property is set to
TRUE during the "stream-created" signal, then Ready() will not be called
before it is unset.
Remove set-but-unused variable
Set the rtp header extension preferences before the codec prefs
The RTP header extension preferences are only taken into account when the
codec preferences are changed.
Set Farsight2's default header extensions and codecs
stream-get-codec-config signal does not have details, removing hint
Set the local RTP header extensions
Set remote RTP Header extensions
Set local Feedback Messages
Implement setting remote feedback messages
Ensure there is a stop call before a start call always
Don't free codecs borrowed from the GstMessage
Implement StartNamedTelephoneEvent
Return TRUE when messages are handled, a few were missing
Add StartSoundTelephonyEvent and StartNamedTelephonyEvent
The sound variant has an implementation since its trivial
python: Don't link to libpython
Some distributions (Debian) link libpython statically into the python
interpreter
async_method_callback_optional: also ignore NotImplemented errors (#35791)
async_method_callback_optional: use g_error_matches()
Also use early returns to make things easier to read.
Don't leak the tpcodecs if we do Supported then Update
pkgsrc changes:
- Remove obsolete and broken MESSAGE files.
- Find zlib correctly when enabled.
- Add SMF manifest.
- Update patch files and add comments where necessary.
Upstream changes:
- This release fixes a SASL Denial of Service issue
Patch provided by Marco Wessel in joyent/pkgsrc#306.
The find-prefix infrastructure was required in a pkgviews world where
packages installed from pkgsrc could have different installation
prefixes, and this was a way for a dependency prefix to be determined.
Now that pkgviews has been removed there is no longer any need for the
overhead of this infrastructure. Instead we use BUILDLINK_PREFIX.pkg
for dependencies pulled in via buildlink, or LOCALBASE/PREFIX where the
dependency is coming from pkgsrc.
Provides a reasonable performance win due to the reduction of `pkg_info
-qp` calls, some of which were redundant anyway as they were duplicating
the same information provided by BUILDLINK_PREFIX.pkg.
plugin for it doesn't build there; deploy a PLIST_VAR to account for
this.
No PKGREVISION bump as no package created (even without PKG_DEVELOPER)
is different now.
Switch dependencies to use standalone packages for Erlang modules.
Core
- c2s: Let stop/1 close XEP-0198 sessions
- c2s: Close socket when waiting for resume
- s2s: Don't crash on certificates without extensions
- xml: Optimizations in memory allocator
- OAuth: Fix cyrsasl_oauth:mech_new call
Modules
- mod_http_upload: New HTTP File Upload module (XEP-0363)
- mod_http_upload_quota: New module to support user quotas
- mod_metrics: New simple metrics module for use with grapherl
- mod_mam: Advertise XEP-0313 v0.4 support in room disco
- mod_mam: Avoid MAM dups when routing to multiple resources
Compilation
- Make: Pass {C,CPP,LD}FLAGS used in main ./configure to deps
- Use OTP directory structure for `make install`
- mix.lock should be commited to ensure consistent builds
- Code cosmetic cleanup
Commands
- Let modules_update_specs report failures
- Fix problem with -auth
- Fix unauthenticated calls to commands with policy=user
- Improve access_commands option backward compatibility
Configuration
- ejabberdctl.cfg: New CONTRIB_MODULES_CONF_DIR
- Be able to merge old style configs with {listen,...}
- Fix support for macros
- mod_ping: New option ping_ack_timeout
Problems found with existing distfiles:
distfiles/icb-5.0.9.tar.gz
distfiles/icb.2.1.4.tar.Z
distfiles/zenicb-19981202.tar.gz
No changes made to these /distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Note: This release is not binary compatible with previous releases. It is source compatible.
- added IO Data (XEP-0244)
- serialise access to compressionZlib::cleanup for thread safety (thanks to Stephen Hilliard)
- prevent infinite loop in Tag::setCData() (thanks to Stephen Hilliard)
- TLSOpenSSL: memory leak on every client connection attempt (thanks to Stephen Hilliard)
- TLSOpenSSLClient/Server: disabled SSLv3, Google & co. finally support TLS
- fixed Debian bug #746857, worked around #758899
- fixed memory leak (#240)
- fixed compatibility with recent GnuTLS versions, fixed GnuTLS check (thanks to Andreas Metzler) (#231)
### Major changes
- Added OAuth delegation framework
- Preliminary OAuth and HTTP based ejabberd API
- X-AUTH2 authentication mechanism,
- MAM now can store MUC room
- MSSQL: improved schema, simplified config, and fixed support
*Note: ejabberd now requires erlang 17.1 or higher*
### Core improvements
- New `set_loglevel` admin command to ease changing loglevel.
- Configuration: allow to override main config file options with data
from included files
- Improve S2S certificate checks
- Log TLS errors as debug messages only
- XEP-0198: new option "max_resume_timeout"
- XEP-0198: Improve handling of non-message stanzas
- ext_mod: Check external modules configuration on load
- ext_mod: Don't override custom configuration on module upgrade
- Several Elixir fixes
- Updated most translation languages
### Modules improvements
- Carbon Copy: Don't copy messages of type "normal" without body
- HTTP-Bind: More eye-candy mod_http_bind help page
- HTTP-Bind: Nameprep host name passed to http-bind before using in
- HTTP-Bind: Set disable caching headers in http-bind responses
- HTTP: pass stream management options defined in http listener to
http-bind and websocket
- MAM: Add XEP-0359 to archived messages
- MAM: Add XEP-0313 v0.4 support
- MUC commands: Changed argument names in two commands
- MUC commands: Fix and document create_rooms_file and destroy_rooms_file
- MUC hooks: added muc_filter_presence
- MUC hooks: renamed muc_filter_packet to muc_filter_message
- MUC logging: check for hint
- Multicast: many improvements in the source code
- SIP: Do not crash SIP authentication on SCRAMed passwords
### Packaging
- Remove bashisms in join_cluster leave_cluster and postinstall scripts
- Allow root to run join_cluster and leave_cluster
- Allow building an ejabberd release with mix and elixir release manager
- Allow installing as root
- Fix Debian/Ubuntu package
- Rename idna to ejabberd_idna
- Improve 'make install' to remove useless failure cases