Fixes and improvements:
* mod_s2s: Fix traceback when outgoing s2s queue is full
* util.uuid: Fix padding of group 2 of UUIDv7 to use zeroes
Minor changes:
* core.modulemanager: Fix shell commands on components
* mod_s2s: Explicitly prevent sending recursive error replies when queue is full
* modulemanager: Allow component modules to specify additional inherited modules
* prosodyctl check features: Use modulemanager to calculate modules that will actually be loaded
* prosodyctl check features: change recommendation from mod_muc_mam to mod_mam
* prosodyctl check config: Fix traceback when zero modules are enabled
* mod_pubsub: Fail early if loaded outside of a component to prevent misconfiguration
* doap: Add XEP-0486
* mod_pubsub/commands: Fix listing item numbers along with item names
* mod_account_activity: Handle authentication provider returning no user info
* mod_mam: Automatically load mod_muc_mam if loaded on a MUC component
* mod_muc: Inherit mod_mam if globally loaded
* See https://blog.prosody.im/prosody-13.0.4-released/
Fixes and improvements:
* mod_storage_sql: Set configurable wait time for locked SQLite3 database
* net.server_event: Port TLS 1.3 channel binding method to libevent backend
* mod_roster: Add command for cleaning out invalid contact JIDs
* migrator: Allow migrating between different configs of the same driver
* mod_admin_shell: Allow pinging any JID with xmpp:ping()
* mod_invites: Accept –admin flag as shortcut for –role prosody:admin
* mod_mam: Add send_legacy_offline_messages_to_mam_clients config option
* mod_limits: Allow configuration of general ‘s2s’ limit, and have s2sout inherit from s2sin
* mod_storage_internal: Return item-not-found for unknown before/after ids
* MUC: Fixes for room avatar caching
Minor changes:
* core.configmanager: Fix referencing previous config options #1950
* MUC: Ensure allow MUC PM setting has valid value (fixes#1933: PM does not work on new MUCs)
* mod_storage_sql: Assert that serialization of archive:set() payload succeeds
* mod_smacks: Remove extra optional from sm element
* mod_s2s_auth_dane_in: Fix caching SHA2-512 hash
* MUC: Fix muc_room_default_presence_broadcast option not working
* util.sslconfig: Fix error when applying ssl={[port]=…}
* net.server_epoll: Restore idle checks after pause (e.g. rate limits)
* util.jid: Validate domainparts using IDNA or as IP literals (fixes#1903: Invalid JID in Roster)
* util.datamanager: Fix detection of index files created on different architectures
* util.startup: Inform process manager about failure to reload config
* mod_muc: Revert f4e16e6265e6 and invalidate avatar cache only on vcard change
* mod_http_file_share: Improve debug logging around unexpected file sizes
* mod_admin_shell: Ensure JIDs are normalized in xmpp:ping()
* mod_invites: Return error when generating password reset for non-existent account
* util.uuid: Update UUIDv7 to match RFC 9562
bsc#1254309: Fix starting prosody
Update prodody.service with content from https://hg.prosody.im/debian/file/default/prosody.service
-----------------------------------------------------------------
i Jan 23 13:05:40 UTC 2026 - Michael Vetter <mvetter@suse.com>
Update to 13.0.2:
Fixes and improvements:
* mod_storage_internal: Fix queries with only start returning extra items
* mod_invites_register: Stricter validation of registration events
Minor changes:
* MUC: Ensure allow MUC PM setting has valid value (fixes#1933: PM does not work on new MUCs)
* mod_storage_sql: Delay showing SQL library error until attempted load
* mod_storage_sql: Handle failure to deploy new UNIQUE index
* mod_storage_sql: Add shell command to create tables and indices (again)
* mod_s2s: Fix log to use formatting instead of concatenation (fixes#1461: Logging issues uncovered by mod_log_json)
* modulemanager, util.pluginloader: Improve error message when load fails but some candidates were filtered
* prosodyctl check config: add recommendation to switch from admin_telnet to shell
* mod_storage_sql: Retrieve all indices to see if the new one exists
* prosodyctl check config: List modules which Prosody cannot successfully load
* net.http.files: Fix issue with caching
* util.jsonschema: Fix handling of false as schema
* mod_invites: Consider password reset a distinct type wrt invite page
* configmanager: Emit config warning when referencing non-existent value
* mod_admin_shell: Add role:list() and role:show() commands
* MUC: Fix nickname registration form error handling (#1930)
* MUC: Fix Error when join stanza sent without resource (#1934)
* MUC: Factor out identification of join stanza
* mod_invites_register: Don’t restrict username for roster invites (thanks lissine)
* mod_admin_shell: Fix matching logic in s2s:close (Thanks Menel)
* mod_authz_internal: Improve error message when invalid role specified
* mod_http_file_share: Add media-src ‘self’ to Content-Security-Policy header
* mod_admin_shell: Visual tweaks to the output of debug:cert_index()
* mod_http: Log problems parsing IP addresses in X-Forwarded-For (Thanks Boris)
* mod_http: Fix IP address normalization (Thanks Boris)
* util.prosodyctl.check: Improve reporting of DNS lookup problems
-----------------------------------------------------------------
i Jan 23 13:05:01 UTC 2026 - Michael Vetter <mvetter@suse.com>
Update to 13.0.1:
Fixes and improvements:
* mod_admin_shell: Add debug:cert_index() command to aid debugging of automatic certificate selection
* mod_tls: Enable Prosody’s certificate checking for incoming s2s connections (fixes#1916: Impossible to override certificate verification policy in 13.0)
* portmanager: Multiple fixes to use correct certificates for direct TLS ports (fixes#1915)
* net.server_epoll: Use correct connection timeout when initiating Direct TLS
* mod_roster: Fix shell commands when a component is involved (fixes#1908: error in prosodyctl shell roster attempting to subscribe a component)
* mod_http_file_share: Explicitly reject all unsupported ranges
* mod_http_file_share: Fix off by one in Range response
* mod_admin_shell, prosodyctl shell: Report command failure when no password entered (fixes#1907: prosodyctl adduser: unexpected account creation on password mismatch)
Minor changes:
* mod_storage_sql: Drop legacy index without confirmation to ease upgrades
* util.adminstream: Fix traceback on double-close (fixes#1913: Prosody fails to completely stop while shell watch:log is active)
* certmanager: Improve logging for all cases where certs are skipped
* mod_tls: Collect full certificate chain validation information
* mod_s2s: Fix error detection with newer versions of OpenSSL
* portmanager: Add debug log message to state which certificate we end up using
* prosodyctl check certs: Use correct hostname in warning message about HTTPS
* prosodyctl check: Be more robust against invalid disco_items, and show warning
* spec/tls: Add TLS/certificate integration tests
* mod_http_file_share: Improve error reporting by using util.error more
* core.storagemanager: Fix tests by removing an assert that upset luarocks
* core.usermanager: Fix COMPAT layer for legacy is_admin() function
* certmanager: Remove obsolete and verbose index log (replaced by shell command)
* doap: Add XEP-0333, XEP-0334, XEP-0156 and mod_http_altconnect
Modules:
* A number of popular modules have transitioned from community modules into Prosody with this release:
+ mod_cloud_notify
+ mod_http_altconnect
* And the following modules are completely new:
+ mod_account_activity
+ mod_flags
+ mod_s2s_auth_dane_in
+ mod_server_info
Administration:
* New ‘prosodyctl check features’ recommends configuration improvements
* mod_announce: Add shell commands to send messages to all users, online users, or limited by roles
* New mod_account_activity plugin records last login/logout time of a user account
* New ‘watch log’ command to follow live debug logs at runtime
* Similarly, ‘watch stanzas’ can be used to capture XML logs in real-time
Networking:
* Honour ‘weight’ parameter during SRV record selection
* Support for RFC 8305 “Happy Eyeballs” to improve IPv4/IPv6 connectivity
* Support for TCP Fast Open in server_epoll (pending LuaSocket support)
* Support for deferred accept in server_epoll (pending LuaSocket support)
MUC:
* Component admins are no longer room owners by default. This can be reverted to the
old behaviour with component_admins_as_room_owners = true, but this has known
incompatibilities with some clients. Instead, use the shell or ad-hoc commands to
gain ownership of rooms when necessary.
* Permissions updates:
+ Room creation restricted to local users (of the parent host) by default
restrict_room_creation = true restricts to admins, false disables all restrictions
+ Persistent rooms can only be created by local users (parent host) by default
muc_room_allow_persistent = false restricts to admins
+ Public rooms can only be created by local users (parent host) by default
muc_room_allow_public = false restricts to admins
* Commands to show occupants and affiliations in the Shell
* Save ‘reason’ text supplied with affiliation change
* Owners can set MUC avatars (functionality previously in community module mod_vcard_muc)
Security and authentication:
* New role and permissions framework and API
* Ability to disable and enable user accounts
* A “grace period” is now supported for deletion requests via in-band registration
* Advertise supported SASL Channel-Binding types (XEP-0440)
* Implement RFC 9266 ‘tls-exporter’ channel binding with TLS 1.3
* Implement ‘tls-server-end-point’ channel binding
* Full DANE support for s2s
* No longer check certificate Common Names per RFC 9525
Storage:
* Performance improvements in internal archive stores
* Ability to use SQLite3 storage with LuaSQLite3 instead of LuaDBI
* SQLCipher support
Module API for developers:
* New ‘keyval+’ combined keyval/map store type
* Config interface API can require that string values be picked from a provided set
* Acceptable interval can be specified for number options
* Method for parsing time periods / intervals from config
* Method for retrieving integer settings from config
* It is now easy for modules to expose a Prosody shell command, by adding a shell-command item
* Modules can now implement a module.ready method which will be called after server initialization
* module:depends() now accepts a second parameter ‘soft’ to enable soft dependencies
Configuration file:
* The configuration file now supports referring and appending to options previously set
* Direct usage of the Lua API in the config file is deprecated, but can now be accessed via Lua.* instead
* Convenience functions for reading values from files, with variant meant for credentials
or secrets (e.g. from systemd-creds)
Changed in this release:
* Support sub-second precision timestamps
* mod_blocklist: New option ‘migrate_legacy_blocking’ to disable migration from mod_privacy
* Moved all modules into the Lua namespace prosody.
* Forwarded header from RFC 7239 supported, disabled by default
* mod_http_file_share now uses roles framework, affecting access from e.g. components
* Intervals of mod_cron managed periodic jobs made configurable
* When mod_smacks is enabled, s2s connections not responding to ack requests are closed.
* Arguments to prosodyctl shell that start with ‘:’ are now turned into method calls
* Support for Type=notify and notify-reload systemd service type added
* Support for the roster group access_model in mod_pep
* Support for systemd socket activation in server_epoll
* mod_invites_adhoc gained a command for creating password resets
* [mod_cloud_notify] imported from community modules for push notification support
* [mod_http_altconnect] imported from community modules, simplifying web clients
Removed in this release:
* Lua 5.1 support
* XEP-0090 support removed from mod_time
* util.rfc6724
See also:
* https://blog.prosody.im/prosody-13.0.0-released/
* https://prosody.im/doc/release/13.0.0
- Update to 0.12.5:
Fixes and improvements:
* mod_blocklist: Drop blocked messages without error, option to restore compliant behavior
Minor changes:
* core.certmanager: Validate that ‘tls_profile’ is one of the valid values
* net.http: Throw error if missing TLS context for HTTPS request
* net.http.parser: Reject overlarge header section earlier
* net.http.files: Validate argument to setup function
* MUC: optimizations for broadcast of visitor presence (thanks Jitsi team)
* net.server_event: Add ‘wrapserver’ API
* scansion: Enable blocklist compat during tests to fix CI
* prosodyctl check: Warn about invalid domain names in the config file
* util.prosodyctl.check: Correct modern replacement for ‘disallow_s2s’
* util.prosodyctl.cert: Ensure old cert is moved out of the way
* util.prosodyctl.check: Improve error handling of UDP socket setup (for #1803)
* mod_smacks: Destroy timed out session in async context (fixes#1884:
ASYNC-01 in mod_smacks hibernation timeout)
* mod_invites: Fix traceback when token_info isn’t set
* mod_admin_shell: Allow matching on host or bare JID in c2s:show
* mod_admin_adhoc: Fix log messages for reloading modules.
* core.moduleapi: Default labels to empty list to fix error if omitted
* mod_muc_mam: Improve wording of enable setting
* mod_bookmarks: Suppress error publishing empty legacy bookmarks w/ no PEP node
* mod_bookmarks: Clarify log messages on failure to sync to modern PEP bookmarks
* mod_invites_adhoc: Fix result form type (thanks betarays)
* mod_disco: Advertise disco#info and #items on bare JIDs to fix
#1664: mod_disco on account doesn’t return disco#info feature
* util.xtemplate: Fix error on applying each() to zero stanzas
OBS-URL: https://build.opensuse.org/request/show/1234586
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/prosody?expand=0&rev=39
Fixes and improvements:
* mod_blocklist: Drop blocked messages without error, option to restore compliant behavior
Minor changes:
* core.certmanager: Validate that ‘tls_profile’ is one of the valid values
* net.http: Throw error if missing TLS context for HTTPS request
* net.http.parser: Reject overlarge header section earlier
* net.http.files: Validate argument to setup function
* MUC: optimizations for broadcast of visitor presence (thanks Jitsi team)
* net.server_event: Add ‘wrapserver’ API
* scansion: Enable blocklist compat during tests to fix CI
* prosodyctl check: Warn about invalid domain names in the config file
* util.prosodyctl.check: Correct modern replacement for ‘disallow_s2s’
* util.prosodyctl.cert: Ensure old cert is moved out of the way
* util.prosodyctl.check: Improve error handling of UDP socket setup (for #1803)
* mod_smacks: Destroy timed out session in async context (fixes#1884:
ASYNC-01 in mod_smacks hibernation timeout)
* mod_invites: Fix traceback when token_info isn’t set
* mod_admin_shell: Allow matching on host or bare JID in c2s:show
* mod_admin_adhoc: Fix log messages for reloading modules.
* core.moduleapi: Default labels to empty list to fix error if omitted
* mod_muc_mam: Improve wording of enable setting
* mod_bookmarks: Suppress error publishing empty legacy bookmarks w/ no PEP node
* mod_bookmarks: Clarify log messages on failure to sync to modern PEP bookmarks
* mod_invites_adhoc: Fix result form type (thanks betarays)
* mod_disco: Advertise disco#info and #items on bare JIDs to fix
#1664: mod_disco on account doesn’t return disco#info feature
* util.xtemplate: Fix error on applying each() to zero stanzas
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/prosody?expand=0&rev=98
- Update to 0.12.4:
* core.certmanager: Update Mozilla TLS config to version 5.7
* util.error: Fix error on conversion of invalid error stanza #1805
* util.array: Fix new() library function
* util.array: Expose new() on module table
* prosodyctl: Fix output of error messages containing ‘%’
* util.prosodyctl.check: Correct suggested replacement for ‘disallow_s2s’
* util.prosodyctl.check: Allow same config syntax variants as in Prosody for some options #896
* util.prosodyctl.check: Fix error where hostname can’t be turned into A label
* util.prosodyctl.check: Hint about the ‘external_addresses’ config option
* util.prosodyctl.check: Suggest ‘http_cors_override’ instead of older CORS settings
* util.prosodyctl.check: Validate format of module list options
* mod_websocket: Add a ‘pre-session-close’ event #1800
* mod_smacks: Fix stray watchdog closing sessions
* mod_csi_simple: Disable revert-to-inactive timer when going to active mode
* mod_csi_simple: Clear delayed active mode timer on disable
* mod_admin_shell: Fix display of remote cert status when expired etc
* mod_smacks: Replace existing watchdog when starting hibernation
* mod_http: Fix error if ‘access_control_allow_origins’ is set
* mod_pubsub: Send correct ‘jid’ attribute in disco#items
* mod_http: Unhook CORS handlers only if active to fix an error #1801
* mod_s2s: Add event where resolver for s2sout can be tweaked
OBS-URL: https://build.opensuse.org/request/show/1109423
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/prosody?expand=0&rev=36
* core.certmanager: Update Mozilla TLS config to version 5.7
* util.error: Fix error on conversion of invalid error stanza #1805
* util.array: Fix new() library function
* util.array: Expose new() on module table
* prosodyctl: Fix output of error messages containing ‘%’
* util.prosodyctl.check: Correct suggested replacement for ‘disallow_s2s’
* util.prosodyctl.check: Allow same config syntax variants as in Prosody for some options #896
* util.prosodyctl.check: Fix error where hostname can’t be turned into A label
* util.prosodyctl.check: Hint about the ‘external_addresses’ config option
* util.prosodyctl.check: Suggest ‘http_cors_override’ instead of older CORS settings
* util.prosodyctl.check: Validate format of module list options
* mod_websocket: Add a ‘pre-session-close’ event #1800
* mod_smacks: Fix stray watchdog closing sessions
* mod_csi_simple: Disable revert-to-inactive timer when going to active mode
* mod_csi_simple: Clear delayed active mode timer on disable
* mod_admin_shell: Fix display of remote cert status when expired etc
* mod_smacks: Replace existing watchdog when starting hibernation
* mod_http: Fix error if ‘access_control_allow_origins’ is set
* mod_pubsub: Send correct ‘jid’ attribute in disco#items
* mod_http: Unhook CORS handlers only if active to fix an error #1801
* mod_s2s: Add event where resolver for s2sout can be tweaked
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/prosody?expand=0&rev=90
- Update to 0.12.3:
Fixes and improvements:
* mod_storage_sql: Don’t avoid initialization under prosodyctl
(fix#1787: mod_storage_sql changes (d580e6a57cbb) breaks prosodyctl)
* mod_storage_sql: Fix for breaking change in certain MySQL versions (#1639)
* prosodyctl check dns: Check for Direct TLS SRV records even if not configured (#1793)
Minor changes:
* mod_websocket: Fire pre-session-close event (fixes#1800: mod_websocket:
cleanly-closed sessions are hibernated by mod_smacks)
* sessionmanager: Mark session as destroyed to prevent reentry (fixes#1781)
* mod_admin_socket: Return error on unhandled input to prevent apparent freeze
* configure: Fix quoting of $LUA_SUFFIX (thanks shellcheck/Zash)
* net.http.parser: Improve handling of responses without content-length
* net.http.parser: Fix off-by-one error in chunk parser
* net.http.server: Add new API to get HTTP request from a connection
* net.http.server: Fix double close of file handle in chunked mode with opportunistic writes (#1789)
* util.prosodyctl.shell: Close state on exit to fix saving shell history
* mod_invites: Prefer landing page over xmpp URI in shell command
* mod_muc_mam: Add mam#extended form fields #1796
* mod_muc_mam: Copy “include total” behavior from mod_mam
* util.startup: Close state on exit to ensure GC finalizers are called
OBS-URL: https://build.opensuse.org/request/show/1067095
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/prosody?expand=0&rev=35
Fixes and improvements:
* mod_storage_sql: Don’t avoid initialization under prosodyctl
(fix#1787: mod_storage_sql changes (d580e6a57cbb) breaks prosodyctl)
* mod_storage_sql: Fix for breaking change in certain MySQL versions (#1639)
* prosodyctl check dns: Check for Direct TLS SRV records even if not configured (#1793)
Minor changes:
* mod_websocket: Fire pre-session-close event (fixes#1800: mod_websocket:
cleanly-closed sessions are hibernated by mod_smacks)
* sessionmanager: Mark session as destroyed to prevent reentry (fixes#1781)
* mod_admin_socket: Return error on unhandled input to prevent apparent freeze
* configure: Fix quoting of $LUA_SUFFIX (thanks shellcheck/Zash)
* net.http.parser: Improve handling of responses without content-length
* net.http.parser: Fix off-by-one error in chunk parser
* net.http.server: Add new API to get HTTP request from a connection
* net.http.server: Fix double close of file handle in chunked mode with opportunistic writes (#1789)
* util.prosodyctl.shell: Close state on exit to fix saving shell history
* mod_invites: Prefer landing page over xmpp URI in shell command
* mod_muc_mam: Add mam#extended form fields #1796
* mod_muc_mam: Copy “include total” behavior from mod_mam
* util.startup: Close state on exit to ensure GC finalizers are called
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/prosody?expand=0&rev=88
- Update to 0.12.2:
Fixes and improvements:
* util.stanza: Allow U+7F when constructing stazas
* net.unbound: Preserve built-in defaults and Prosodys settings for
luaunbound (fixes#1763: luaunbound not reading resolv.conf)
* mod_smacks: Disable not implemented resumption behavior on s2s
* mod_http: Allow disabling CORS in the http_cors_override option and by default
Minor changes:
* util.json: Accept empty arrays with whitespace (fixes#1782: util.json
fails to parse empty array with whitespace)
* util.stanza: Adjust number of return values to handle change in
dependency of test suite (fix test with luassert >=1.9)
* util.startup: Ensure import() is available in prosodyctl
* mod_storage_sql: Fix initialization when called from prosodyctl
* mod_storage_sql: Fix the summary API with Postgres (#1766)
* mod_admin_shell: Fixes for showing data related to disconnected sessions (fixes#1777)
* core.s2smanager: Don’t remove unrelated session on close of bidi session
* mod_smacks: Don’t send redundant requests for acknowledgement (#1761)
* mod_admin_shell: Rename commands user:roles() to user:setroles()
and user:showroles() to user:roles()
* mod_smacks: Bounce unhandled stanzas from local origin (fix#1759)
* mod_bookmarks: Reduce log level of message about not having any bookmarks
* mod_s2s: Fix firing buffer drain events
* mod_http_files: Log warning about legacy modules using mod_http_files
* util.startup: Wait for last shutdown steps
* util.datamapper: Improve handling of schemas with non-obvious “type”
* util.jsonschema: Fix validation to not assume presence of “type” field
* util.jsonschema: Use same integer/float logic on Lua 5.2 and 5.3
OBS-URL: https://build.opensuse.org/request/show/1042817
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/prosody?expand=0&rev=32
Fixes and improvements:
* util.stanza: Allow U+7F when constructing stazas
* net.unbound: Preserve built-in defaults and Prosodys settings for
luaunbound (fixes#1763: luaunbound not reading resolv.conf)
* mod_smacks: Disable not implemented resumption behavior on s2s
* mod_http: Allow disabling CORS in the http_cors_override option and by default
Minor changes:
* util.json: Accept empty arrays with whitespace (fixes#1782: util.json
fails to parse empty array with whitespace)
* util.stanza: Adjust number of return values to handle change in
dependency of test suite (fix test with luassert >=1.9)
* util.startup: Ensure import() is available in prosodyctl
* mod_storage_sql: Fix initialization when called from prosodyctl
* mod_storage_sql: Fix the summary API with Postgres (#1766)
* mod_admin_shell: Fixes for showing data related to disconnected sessions (fixes#1777)
* core.s2smanager: Don’t remove unrelated session on close of bidi session
* mod_smacks: Don’t send redundant requests for acknowledgement (#1761)
* mod_admin_shell: Rename commands user:roles() to user:setroles()
and user:showroles() to user:roles()
* mod_smacks: Bounce unhandled stanzas from local origin (fix#1759)
* mod_bookmarks: Reduce log level of message about not having any bookmarks
* mod_s2s: Fix firing buffer drain events
* mod_http_files: Log warning about legacy modules using mod_http_files
* util.startup: Wait for last shutdown steps
* util.datamapper: Improve handling of schemas with non-obvious “type”
* util.jsonschema: Fix validation to not assume presence of “type” field
* util.jsonschema: Use same integer/float logic on Lua 5.2 and 5.3
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/prosody?expand=0&rev=82
- Update to 0.12.1:
Fixes and improvements:
* mod_http (and dependent modules): Make CORS opt-in by default (#1731)
* mod_http: Reintroduce support for disabling or limiting CORS (#1730)
* net.unbound: Disable use of hosts file by default (fixes#1737)
* MUC: Allow kicking users with the same affiliation as the kicker (fixes#1724 and improves Jitsi Meet compatibility)
* mod_tombstones: Add caching to improve performance on busy servers (fixes#1728: mod_tombstone: inefficient I/O with internal storage)
Minor changes:
* prosodyctl check config: Report paths of loaded configuration files (#1729)
* prosodyctl about: Report version of lua-readline
* prosodyctl: check config: Skip bare JID components in orphan check
* prosodyctl: check turn: Fail with error if our own address is supplied for the ping test
* prosodyctl: check turn: warn about external port mismatches behind NAT
* mod_turn_external: Update status and friendlier handling of missing secret option (#1727)
* prosodyctl: Pass server when listing (outdated) plugins (fix#1738: prosodyctl list --outdated does not handle multiple versions of a module)
* util.prosodyctl: check turn: ensure a result is always returned from a check (thanks eTaurus)
* util.prosodyctl: check turn: Report lack of TURN services as a problem #1749
* util.random: Ensure that native random number generator works before using it, falling back to /dev/urandom (#1734)
* mod_storage_xep0227: Fix mapping of nodes without explicit configuration
* mod_admin_shell: Fix error in ‘module:info()’ when statistics is not enabled (#1754)
* mod_admin_socket: Compat for luasocket prior to unix datagram support
* mod_admin_socket: Improve error reporting when socket can’t be created (#1719)
* mod_cron: Record last time a task runs to ensure correct intervals (#1751)
* core.moduleapi, core.modulemanager: Fix internal flag affecting logging in in some global modules, like mod_http (#1736, #1748)
* core.certmanager: Expand debug messages about cert lookups in index
* configmanager: Clearer errors when providing unexpected values after VirtualHost (#1735)
* mod_storage_xep0227: Support basic listing of PEP nodes in absence of pubsub#admin data
* mod_storage_xep0227: Handle missing {pubsub#owner}pubsub element (fixes#1740: mod_storage_xep0227 tracebacks reading non-existent PEP store)
* mod_storage_xep0227: Fix conversion of SCRAM into internal format (#1741)
* mod_external_services: Move error message to correct place (fix#1725: mod_external_services: Misplaced textual error message)
OBS-URL: https://build.opensuse.org/request/show/981547
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/prosody?expand=0&rev=31
Fixes and improvements:
* mod_http (and dependent modules): Make CORS opt-in by default (#1731)
* mod_http: Reintroduce support for disabling or limiting CORS (#1730)
* net.unbound: Disable use of hosts file by default (fixes#1737)
* MUC: Allow kicking users with the same affiliation as the kicker (fixes#1724 and improves Jitsi Meet compatibility)
* mod_tombstones: Add caching to improve performance on busy servers (fixes#1728: mod_tombstone: inefficient I/O with internal storage)
Minor changes:
* prosodyctl check config: Report paths of loaded configuration files (#1729)
* prosodyctl about: Report version of lua-readline
* prosodyctl: check config: Skip bare JID components in orphan check
* prosodyctl: check turn: Fail with error if our own address is supplied for the ping test
* prosodyctl: check turn: warn about external port mismatches behind NAT
* mod_turn_external: Update status and friendlier handling of missing secret option (#1727)
* prosodyctl: Pass server when listing (outdated) plugins (fix#1738: prosodyctl list --outdated does not handle multiple versions of a module)
* util.prosodyctl: check turn: ensure a result is always returned from a check (thanks eTaurus)
* util.prosodyctl: check turn: Report lack of TURN services as a problem #1749
* util.random: Ensure that native random number generator works before using it, falling back to /dev/urandom (#1734)
* mod_storage_xep0227: Fix mapping of nodes without explicit configuration
* mod_admin_shell: Fix error in ‘module:info()’ when statistics is not enabled (#1754)
* mod_admin_socket: Compat for luasocket prior to unix datagram support
* mod_admin_socket: Improve error reporting when socket can’t be created (#1719)
* mod_cron: Record last time a task runs to ensure correct intervals (#1751)
* core.moduleapi, core.modulemanager: Fix internal flag affecting logging in in some global modules, like mod_http (#1736, #1748)
* core.certmanager: Expand debug messages about cert lookups in index
* configmanager: Clearer errors when providing unexpected values after VirtualHost (#1735)
* mod_storage_xep0227: Support basic listing of PEP nodes in absence of pubsub#admin data
* mod_storage_xep0227: Handle missing {pubsub#owner}pubsub element (fixes#1740: mod_storage_xep0227 tracebacks reading non-existent PEP store)
* mod_storage_xep0227: Fix conversion of SCRAM into internal format (#1741)
* mod_external_services: Move error message to correct place (fix#1725: mod_external_services: Misplaced textual error message)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/prosody?expand=0&rev=80
- Update to 0.12.0:
Modules:
* mod_mimicking: Prevent address spoofing
* mod_s2s_bidi: Bi-directional server-to-server connections (XEP-0288)
* mod_external_services: Generic XEP-0215 support
* mod_turn_external: Easy setup of XEP-0215 for STUN/TURN for audio/video calls
* mod_http_file_share: File sharing via HTTP (XEP-0363)
* mod_http_openmetrics: Expose metrics to Prometheus and compatible monitoring systems
* mod_smacks: Stream management and resumption (XEP-0198)
* mod_auth_ldap: LDAP authentication
* mod_cron: One module to rule all the periodic tasks
* mod_admin_shell: New home of the Console admin interface
* mod_admin_socket: Enable secure connections to the Console
* mod_tombstones: Prevent re-registration of deleted accounts
* mod_invites: Create and manage invites
* mod_invites_register: Allow registering accounts using invites
* mod_invites_adhoc: Create invites via ad-hoc command
* mod_bookmarks: Synchronise open rooms between clients
Security and authentication:
* Unencrypted HTTP port (5280) restricted to loopback by default
* require_encryption options default to ‘true’ if unspecified
* Authentication module defaults to ‘internal_hashed’ if unspecified
* SNI support (including automatic certificate selection)
* ALPN support in mod_net_multiplex
* DANE support in low-level network layer
* Direct TLS support (c2s and s2s)
* SCRAM-SHA-256
* Direct TLS (including https) certificates are now updated on reload
* Pluggable authorization providers (mod_authz_*)
* Easy use of Mozilla TLS recommendations presets
OBS-URL: https://build.opensuse.org/request/show/962612
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/prosody?expand=0&rev=30
Modules:
* mod_mimicking: Prevent address spoofing
* mod_s2s_bidi: Bi-directional server-to-server connections (XEP-0288)
* mod_external_services: Generic XEP-0215 support
* mod_turn_external: Easy setup of XEP-0215 for STUN/TURN for audio/video calls
* mod_http_file_share: File sharing via HTTP (XEP-0363)
* mod_http_openmetrics: Expose metrics to Prometheus and compatible monitoring systems
* mod_smacks: Stream management and resumption (XEP-0198)
* mod_auth_ldap: LDAP authentication
* mod_cron: One module to rule all the periodic tasks
* mod_admin_shell: New home of the Console admin interface
* mod_admin_socket: Enable secure connections to the Console
* mod_tombstones: Prevent re-registration of deleted accounts
* mod_invites: Create and manage invites
* mod_invites_register: Allow registering accounts using invites
* mod_invites_adhoc: Create invites via ad-hoc command
* mod_bookmarks: Synchronise open rooms between clients
Security and authentication:
* Unencrypted HTTP port (5280) restricted to loopback by default
* require_encryption options default to ‘true’ if unspecified
* Authentication module defaults to ‘internal_hashed’ if unspecified
* SNI support (including automatic certificate selection)
* ALPN support in mod_net_multiplex
* DANE support in low-level network layer
* Direct TLS support (c2s and s2s)
* SCRAM-SHA-256
* Direct TLS (including https) certificates are now updated on reload
* Pluggable authorization providers (mod_authz_*)
* Easy use of Mozilla TLS recommendations presets
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/prosody?expand=0&rev=78
- Update to 0.11.11:
Fixes and improvements:
* net.server_epoll: Prioritize network events over timers to improve
performance under heavy load
* mod_pep: Add some memory usage limits
* mod_pep: Prevent creation of services for non-existent users
* mod_pep: Free resources on user deletion (needed a restart previously)
Minor changes:
* mod_pep: Free resources on reload
* mod_c2s: Indicate stream secure state in error text when no stream features to offer
* MUC: Fix logic for access to affiliation lists
* net.server_epoll: Improvements to shutdown procedure #1670
* net.server_epoll: Fix potential issue with rescheduling of timers
* prosodyctl: Fix to ensure LuaFileSystem is loaded when needed
* util.startup: Fix handling of unknown command line flags (e.g. -h)
* Fix version number reported as ‘unknown’ on *BSD
OBS-URL: https://build.opensuse.org/request/show/943791
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/prosody?expand=0&rev=26
Fixes and improvements:
* net.server_epoll: Prioritize network events over timers to improve
performance under heavy load
* mod_pep: Add some memory usage limits
* mod_pep: Prevent creation of services for non-existent users
* mod_pep: Free resources on user deletion (needed a restart previously)
Minor changes:
* mod_pep: Free resources on reload
* mod_c2s: Indicate stream secure state in error text when no stream features to offer
* MUC: Fix logic for access to affiliation lists
* net.server_epoll: Improvements to shutdown procedure #1670
* net.server_epoll: Fix potential issue with rescheduling of timers
* prosodyctl: Fix to ensure LuaFileSystem is loaded when needed
* util.startup: Fix handling of unknown command line flags (e.g. -h)
* Fix version number reported as ‘unknown’ on *BSD
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/prosody?expand=0&rev=74
- Update to 0.11.9:
Security:
* mod_limits, prosody.cfg.lua: Enable rate limits by default
* certmanager: Disable renegotiation by default
* mod_proxy65: Restrict access to local c2s connections by default
* util.startup: Set more aggressive defaults for GC
* mod_c2s, mod_s2s, mod_component, mod_bosh, mod_websockets: Set default stanza size limits
* mod_authinternal{plain,hashed}: Use constant-time string comparison for secrets
* mod_dialback: Remove dialback-without-dialback feature
* mod_dialback: Use constant-time comparison with hmac
Minor changes
* util.hashes: Add constant-time string comparison (binding to CRYPTO_memcmp)
* mod_c2s: Don’t throw errors in async code when connections are gone
* mod_c2s: Fix traceback in session close when conn is nil
* core.certmanager: Improve detection of LuaSec/OpenSSL capabilities
* mod_saslauth: Use a defined SASL error
* MUC: Add support for advertising muc#roomconfig_allowinvites in room disco#info
* mod_saslauth: Don’t throw errors in async code when connections are gone
* mod_pep: Advertise base pubsub feature (fixes#1632: mod_pep missing pubsub feature in disco)
* prosodyctl check config: Add ‘gc’ to list of global options
* prosodyctl about: Report libexpat version if known
* util.xmppstream: Add API to dynamically configure the stanza size limit for a stream
* util.set: Add is_set() to test if an object is a set
* mod_http: Skip IP resolution in non-proxied case
* mod_c2s: Log about missing conn on async state changes
* util.xmppstream: Reduce internal default xmppstream limit to 1MB
- Relevant: https://prosody.im/security/advisory_20210512
* boo#1186027: Prosody XMPP server advisory 2021-05-12
* CVE-2021-32919
* CVE-2021-32917
OBS-URL: https://build.opensuse.org/request/show/893045
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/prosody?expand=0&rev=23
- Update to 0.11.9:
Security:
* mod_limits, prosody.cfg.lua: Enable rate limits by default
* certmanager: Disable renegotiation by default
* mod_proxy65: Restrict access to local c2s connections by default
* util.startup: Set more aggressive defaults for GC
* mod_c2s, mod_s2s, mod_component, mod_bosh, mod_websockets: Set default stanza size limits
* mod_authinternal{plain,hashed}: Use constant-time string comparison for secrets
* mod_dialback: Remove dialback-without-dialback feature
* mod_dialback: Use constant-time comparison with hmac
Minor changes
* util.hashes: Add constant-time string comparison (binding to CRYPTO_memcmp)
* mod_c2s: Don’t throw errors in async code when connections are gone
* mod_c2s: Fix traceback in session close when conn is nil
* core.certmanager: Improve detection of LuaSec/OpenSSL capabilities
* mod_saslauth: Use a defined SASL error
* MUC: Add support for advertising muc#roomconfig_allowinvites in room disco#info
* mod_saslauth: Don’t throw errors in async code when connections are gone
* mod_pep: Advertise base pubsub feature (fixes#1632: mod_pep missing pubsub feature in disco)
* prosodyctl check config: Add ‘gc’ to list of global options
* prosodyctl about: Report libexpat version if known
* util.xmppstream: Add API to dynamically configure the stanza size limit for a stream
* util.set: Add is_set() to test if an object is a set
* mod_http: Skip IP resolution in non-proxied case
* mod_c2s: Log about missing conn on async state changes
* util.xmppstream: Reduce internal default xmppstream limit to 1MB
OBS-URL: https://build.opensuse.org/request/show/892942
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/prosody?expand=0&rev=68
- Update to 0.11.8:
Security:
* mod_saslauth: Disable ‘tls-unique’ channel binding with TLS 1.3 (#1542)
Fixes and improvements:
* net.websocket.frames: Improve websocket masking performance by using the new util.strbitop
* util.strbitop: Library for efficient bitwise operations on strings
Minor changes:
* MUC: Correctly advertise whether the subject can be changed (#1155)
* MUC: Preserve disco ‘node’ attribute (or lack thereof) in responses (#1595)
* MUC: Fix logic bug causing unnecessary presence to be sent (#1615)
* mod_bosh: Fix error if client tries to connect to component (#425)
* mod_bosh: Pick out the ‘wait’ before checking it instead of earlier
* mod_pep: Advertise base PubSub feature (#1632)
* mod_pubsub: Fix notification stanza type setting (#1605)
* mod_s2s: Prevent keepalives before client has established a stream
* net.adns: Fix bug that sent empty DNS packets (#1619)
* net.http.server: Don’t send Content-Length on 1xx/204 responses (#1596)
* net.websocket.frames: Fix length calculation bug (#1598)
* util.dbuffer: Make length API in line with Lua strings
* util.dbuffer: Optimize substring operations
* util.debug: Fix locals being reported under wrong stack frame in some cases
* util.dependencies: Fix check for Lua bitwise operations library (#1594)
* util.interpolation: Fix combination of filters and fallback values #1623
* util.promise: Preserve tracebacks
* util.stanza: Reject ASCII control characters (#1606)
* timers: Ensure timers can’t block other processing (#1620)
OBS-URL: https://build.opensuse.org/request/show/872807
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/prosody?expand=0&rev=22
Security:
* mod_saslauth: Disable ‘tls-unique’ channel binding with TLS 1.3 (#1542)
Fixes and improvements:
* net.websocket.frames: Improve websocket masking performance by using the new util.strbitop
* util.strbitop: Library for efficient bitwise operations on strings
Minor changes:
* MUC: Correctly advertise whether the subject can be changed (#1155)
* MUC: Preserve disco ‘node’ attribute (or lack thereof) in responses (#1595)
* MUC: Fix logic bug causing unnecessary presence to be sent (#1615)
* mod_bosh: Fix error if client tries to connect to component (#425)
* mod_bosh: Pick out the ‘wait’ before checking it instead of earlier
* mod_pep: Advertise base PubSub feature (#1632)
* mod_pubsub: Fix notification stanza type setting (#1605)
* mod_s2s: Prevent keepalives before client has established a stream
* net.adns: Fix bug that sent empty DNS packets (#1619)
* net.http.server: Don’t send Content-Length on 1xx/204 responses (#1596)
* net.websocket.frames: Fix length calculation bug (#1598)
* util.dbuffer: Make length API in line with Lua strings
* util.dbuffer: Optimize substring operations
* util.debug: Fix locals being reported under wrong stack frame in some cases
* util.dependencies: Fix check for Lua bitwise operations library (#1594)
* util.interpolation: Fix combination of filters and fallback values #1623
* util.promise: Preserve tracebacks
* util.stanza: Reject ASCII control characters (#1606)
* timers: Ensure timers can’t block other processing (#1620)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/prosody?expand=0&rev=66
- Update to 0.11.7:
Security:
* mod_websocket: Enforce size limits on received frames (fixes#1593)
Fixes and improvements:
* mod_c2s, mod_s2s: Make stanza size limits configurable
* Add configuration options to control Lua garbage collection parameters
* net.http: Backport SNI support for outgoing HTTP requests (#409)
* mod_websocket: Process all data in the buffer on close frame and connection errors (fixes#1474, #1234)
* util.indexedbheap: Fix heap data structure corruption, causing some timers to fail after a reschedule (fixes#1572)
OBS-URL: https://build.opensuse.org/request/show/839107
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/prosody?expand=0&rev=21
Security:
* mod_websocket: Enforce size limits on received frames (fixes#1593)
Fixes and improvements:
* mod_c2s, mod_s2s: Make stanza size limits configurable
* Add configuration options to control Lua garbage collection parameters
* net.http: Backport SNI support for outgoing HTTP requests (#409)
* mod_websocket: Process all data in the buffer on close frame and connection errors (fixes#1474, #1234)
* util.indexedbheap: Fix heap data structure corruption, causing some timers to fail after a reschedule (fixes#1572)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/prosody?expand=0&rev=64
- Update to 0.11.6:
Fixes and improvements:
* mod_storage_internal: Fix error in time limited queries on items without ‘when’ field, fixes#1557
* mod_carbons: Fix handling of incoming MUC PMs #1540
* mod_csi_simple: Consider XEP-0353: Jingle Message Initiation important
* mod_http_files: Avoid using inode in etag, fixes#1498: Fail to download file on FreeBSD
* mod_admin_telnet: Create a DNS resolver per console session (fixes#1492: Telnet console DNS commands reduced usefulness)
* core.certmanager: Move EECDH ciphers before EDH in default cipherstring (fixes#1513)
* mod_s2s: Escape invalid XML in loggin (same way as mod_c2s) (fixes#1574: Invalid XML input on s2s connection is logged unescaped)
* mod_muc: Allow control over the server-admins-are-room-owners feature (see #1174)
* mod_muc_mam: Remove spoofed archive IDs before archiving (fixes#1552: MUC MAM may strip its own archive id)
* mod_muc_mam: Fix stanza id filter event name, fixes#1546: mod_muc_mam does not strip spoofed stanza ids
* mod_muc_mam: Fix missing advertising of XEP-0359, fixes#1547: mod_muc_mam does not advertise stanza-id
Minor changes:
* net.http API: Add request:cancel() method
* net.http API: Fix traceback on invalid URL passed to request()
* MUC: Persist affiliation_data in new MUC format
* mod_websocket: Fire event on session creation (thanks Aaron van Meerten)
* MUC: Always include ‘affiliation’/‘role’ attributes, defaulting to ‘none’ if nil
* mod_tls: Log when certificates are (re)loaded
* mod_vcard4: Report correct error condition (fixes#1521: mod_vcard4 reports wrong error)
* net.http: Re-expose destroy_request() function (fixes unintentional API breakage)
* net.http.server: Strip port from Host header in IPv6 friendly way (fix#1302)
* util.prosodyctl: Tell prosody do daemonize via command line flag (fixes#1514)
* SASL: Apply saslprep where necessary, fixes#1560: Login fails if password contains special chars
* net.http.server: Fix reporting of missing Host header
* util.datamanager API: Fix iterating over “users” (thanks marc0s)
* net.resolvers.basic: Default conn_type to ‘tcp’ consistently if unspecified (thanks marc0s)
* mod_storage_sql: Fix check for deletion limits (fixes#1494)
* mod_admin_telnet: Handle unavailable cipher info (fixes#1510: mod_admin_telnet backtrace)
OBS-URL: https://build.opensuse.org/request/show/833724
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/prosody?expand=0&rev=20
Fixes and improvements:
* mod_storage_internal: Fix error in time limited queries on items without ‘when’ field, fixes#1557
* mod_carbons: Fix handling of incoming MUC PMs #1540
* mod_csi_simple: Consider XEP-0353: Jingle Message Initiation important
* mod_http_files: Avoid using inode in etag, fixes#1498: Fail to download file on FreeBSD
* mod_admin_telnet: Create a DNS resolver per console session (fixes#1492: Telnet console DNS commands reduced usefulness)
* core.certmanager: Move EECDH ciphers before EDH in default cipherstring (fixes#1513)
* mod_s2s: Escape invalid XML in loggin (same way as mod_c2s) (fixes#1574: Invalid XML input on s2s connection is logged unescaped)
* mod_muc: Allow control over the server-admins-are-room-owners feature (see #1174)
* mod_muc_mam: Remove spoofed archive IDs before archiving (fixes#1552: MUC MAM may strip its own archive id)
* mod_muc_mam: Fix stanza id filter event name, fixes#1546: mod_muc_mam does not strip spoofed stanza ids
* mod_muc_mam: Fix missing advertising of XEP-0359, fixes#1547: mod_muc_mam does not advertise stanza-id
Minor changes:
* net.http API: Add request:cancel() method
* net.http API: Fix traceback on invalid URL passed to request()
* MUC: Persist affiliation_data in new MUC format
* mod_websocket: Fire event on session creation (thanks Aaron van Meerten)
* MUC: Always include ‘affiliation’/‘role’ attributes, defaulting to ‘none’ if nil
* mod_tls: Log when certificates are (re)loaded
* mod_vcard4: Report correct error condition (fixes#1521: mod_vcard4 reports wrong error)
* net.http: Re-expose destroy_request() function (fixes unintentional API breakage)
* net.http.server: Strip port from Host header in IPv6 friendly way (fix#1302)
* util.prosodyctl: Tell prosody do daemonize via command line flag (fixes#1514)
* SASL: Apply saslprep where necessary, fixes#1560: Login fails if password contains special chars
* net.http.server: Fix reporting of missing Host header
* util.datamanager API: Fix iterating over “users” (thanks marc0s)
* net.resolvers.basic: Default conn_type to ‘tcp’ consistently if unspecified (thanks marc0s)
* mod_storage_sql: Fix check for deletion limits (fixes#1494)
* mod_admin_telnet: Handle unavailable cipher info (fixes#1510: mod_admin_telnet backtrace)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/prosody?expand=0&rev=62