ejabberd v21.01 Release Notes

  • Miscellaneous changes:

    • log_rotate_size option: Fix handling of ‘infinity’ value
    • mod_time: Fix invalid timezone
    • Auth JWT: New check_decoded_jwt hook runs the default JWT verifier
    • MUC: Allow non-occupant non-subscribed service admin send private MUC message
    • MUC: New max_password and max_captcha_whitelist options
    • OAuth: New oauth_cache_rest_failure_life_time option
    • PEP: Skip reading pep nodes that we know won’t be requested due to caps
    • SQL: Add sql script to migrate mysql from old schema to new
    • SQL: Don’t use REPLACE for upsert when there are “-” fields.
    • 👍 Shared Rosters LDAP: Add multi-domain support (and flexibility)
    • Sqlite3: Fix dependency version
    • 0️⃣ Stun: Block loopback addresses by default
    • 📚 Several documentation fixes and clarifications

    Commands:

    • 👍 decide_room: Use better fallback value for room activity time when skipping room
    • delete_old_message: Fix when using sqlite spool table
    • module_install: Make ext_mod compile module with debug_info flags
    • room_unused_*: Don’t fetch subscribers list
    • send_message: Don’t include empty in messages
    • set_room_affiliation: Validate affiliations

    ⚙ Running:

    • 🐳 Docker: New Dockerfile and devcontainer.json
    • 🆕 New ejabberdctl foreground-quiet
    • Systemd: Allow for listening on privileged ports
    • Systemd: Integrate nicely with systemd

    🌐 Translations:

    • 🚚 Moved gettext PO files to a new ejabberd-po repository
    • 👌 Improved several translations: Catalan, Chinese, German, Greek, Indonesian, Norwegian, Portuguese (Brazil), Spanish.