Prosodical Thoughts

News, announcements and thoughts from the Prosody IM team

Prosody 0.11.3 released

by The Prosody Team
Tags: release

We are pleased to announce a new minor release from our stable branch.

This is a bugfix release for the stable 0.11 branch. It is recommended for all users of 0.11.x to upgrade.

Important note for those upgrading: Previous releases did not automatically expire messages from group chat (MUC) archives, so if mod_muc_mam was loaded and enabled for a MUC, archives would grow indefinitely. This is not what most deployments want, therefore automatic expiry is now implemented and enabled with a default 7 day retention. You can configure this with the muc_log_expires_after configuration option, which can be set to "never" to restore the old behaviour and preserve any existing logs older than 7 days.

A summary of changes in this release:

Fixes and improvements

  • MUC: Advertise XEP-0410 support
  • mod_muc_mam: Import cleanup mechanism from mod_mam (fixes #672: mod_muc_mam: Archive expiry)
  • mod_bosh: Handle missing wait attribute (fixes #1288: BOSH: Traceback on missing ‘wait’ attribute)
  • mod_storage_sql: Handle SQLite DELETE with LIMIT being optional (fixes #1359: Sqlite3 archive_store:delete error in prepared statement)
  • mod_c2s: Fixed #1313: attempt to call a field ‘data’ (a nil value))
  • net.server_epoll: Restore wantread flag after pause (fixes #1354: server_epoll: Race in chunked reads)
  • util.encodings: Allow unassigned code points in ICU mode to match libidn behavior (fixes #1348: Different treatment of unassigned code points between libidn and ICU )
  • util.ip: Add missing netmask for 192.16816 range (fixes #1343)
  • util.hashes: Use HMAC function provided by OpenSSL (fixes #1345: util.hashes: HMAC-SHA-512 implementation broken)
  • net.dns: Close resolv.conf handle when done (fixes #1342)
  • mod_websocket: Clone stanza before mutating (fixes #1398: mod_websocket leaks explicit xmlns attr)
  • mod_announce: Check for admin on current virtualhost instead of global (fixes #1365: “host admins” should be able to use mod_announce as well as “global admins”) (thanks yc)
  • mod_blocklist: Trigger resend of presence when unblocking a contact (fixes #1380: Prosody does not send presence when unblocking (XEP-0191))
  • mod_vcard_legacy: Multiple improvements (fixes #1289: mod_vcard_legacy upgrade experience):
    • mod_vcard_legacy: Don’t overwrite existing PEP data
    • mod_vcard_legacy: Handle partial migration
    • mod_vcard_legacy: Allow disabling vcard conversion
    • mod_vcard_legacy: Adapt node defaults to number of avatars
  • mod_muc_mam: Strip the stanza ‘to’ attribute (fixes #1259: [muc_mam] forwarded stanza has a “to” attribute while spec says it MUST NOT)
  • util.pubsub: Validate node configuration on node creation (fixes #1328: Pubsub: Node configuration not validated on node creation)
  • mod_pep/mod_pubsub: Simplify configuration for storage of node data (fixes #1320)
  • MUC: Fix delay@from to be room JID (fixes #1416: MUC: Wrong delay@from on historic messages)
  • mod_mam/mod_muc_mam: Cache last date that archive owner has messages to reduce writes (fixes #1368: Archive cleanup doubles number of storage access)
  • mod_mam: Perform message expiry based on building an index by date (backport of 39ee70fbb009 from trunk)

Minor changes

  • net.server_epoll: Backport timer optimization from trunk (see #1388)
  • mod_storage_memory: Replace query function with one based on storage_internal (fixes #1322: mod_storage_memory does not support ‘key’ querys)
  • net.server_epoll: Rename handshake_timeout to ssl_handshake_timeout (fixes #1319: net.server_epoll uses handshake_timeout instead of ssl_handshake_timeout like server_event)
  • mod_storage_memory: Generate ID using standard util (fixes #1326: mod_storage_memory.lua: attempt to concatenate a nil value)
  • MUC: Add error message to error bounces when not joined to room
  • mod_websocket: Log an error if cross_domain_websocket = true is set in a VirtualHost section
  • mod_presence: Revert empty ‘to’ attribute of presence before presence/initial event (fixes #1296: mod_motd does not send MOTD set in configuration on Prosody versions 10.x or 11.x)
  • mod_pubsub: Support requests for multiple items (fixes #1305: pubsub: MUST allow multiple items to be specified)
  • net.server_epoll: Use send_timeout for write timout like other implementations (fixes #1316: net.server_epoll uses write_timeout where other implementations use send_timeout)
  • util.sql: Ignore if tables and indices already exist on creation (fixes #1064: SQL table creation query fails when tables already exist)
  • net.server_epoll: Skip delayed continuation read on paused connections
  • net.server_epoll: Handle LuaSec wantread/wantwrite conditions before callbacks (fixes #1333: net.server_epoll handling of ‘wantread’ condition unintentionally resumes paused connection)
  • mod_storage_memory: Implement :user iteration API
  • util.serialization: Cache default serialization instance (fixes #1389: util.serialization: Creates new serializer instance on each call)
  • ‘prosodyctl about’ improvements:
    • Report version of LuaDBI installed
    • Report configured network backend
  • util.random: Handle unlikely read errors from /dev/urandom (see #1313)
  • configure: Handle lua being found in /bin (workaround for #1353)

Download

As usual, download instructions for many platforms can be found on our download page

If you have any questions, comments or other issues with this release, let us know!


About

Prosody is a lightweight and flexible XMPP server designed with ease-of-use and extensibility in mind.

⚛️ Atom feed

Recent Posts