Commit graph

108 commits

Author SHA1 Message Date
nia
11b660c59a chat: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
2021-10-26 10:05:10 +00:00
nia
78f647ed40 chat: Remove SHA1 hashes for distfiles 2021-10-07 13:23:19 +00:00
wiz
2daa522af9 ejabberd: set DIST_SUBDIR when changing the checksums for a distfile 2021-04-15 08:28:11 +00:00
triaxx
df5adbc768 ejabberd: Rebuild checksums
The release archives have been rebuild and reuploaded due to a cert issue:
https://github.com/processone/ejabberd/issues/3570
2021-04-15 07:35:10 +00:00
triaxx
2012060c45 ejabberd: Update to 21.04
upstream changes:
-----------------
The new ejabberd 21.04 release includes many bugfixes and a few improvements.
This release includes minor improvements to fully support Erlang/OTP 24 and
Rebar3. At the same time, it maintains support back to the old Erlang/OTP 19.3
and Rebar2.
2021-04-13 08:02:24 +00:00
jperkin
7689c70e25 ejabberd: Install bash completion correctly. 2021-03-10 16:44:21 +00:00
triaxx
bfdcd5d6fc ejabberd: Update to 21.01
upstream changes:
-----------------
Miscellaneous:

    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
    OAth: 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
    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.
2021-02-08 07:51:42 +00:00
triaxx
778fae0b24 ejabberd: Fix invalid log and spool directories
The localstatedir was not configured on VARBASE which produced an
inconsistency in ejabberdctl.
2021-01-27 19:47:04 +00:00
triaxx
8906079b52 ejabberd: Fix spool directory for ejabberdctl
pkgsrc changes:
---------------
  * The spool directory is set to ${VARBASE}/spool/ejabberd by pkgsrc but
    ejabberdctl used ${VARBASE}/lib/ejabberd
  * Bump revision
2021-01-16 21:19:32 +00:00
triaxx
6549cc43a0 ejabberd: Update to 20.12
pkgsrc changes:
---------------
  * This update is mainly justified by the fact that OTS 23 breaks a lot
    of dependencies which are very old.

upstream changes:
-----------------
Version 20.12

    Add support for SCRAM-SHA-{256,512}-{PLUS} authentication
    Don't use same value in cache for user don't exist and wrong password
    outgoing_s2s_ipv*_address: New options to set ipv4/ipv6 outbound s2s out interface
    s2s_send_packet: this hook now filters outgoing s2s stanzas
    start_room: new hook runs when a room process is started
    check_decoded_jwt: new hook to check decoded JWT after success authentication

    Admin

    Docker: Fix DB initialization
    New sql_odbc_driver option: choose the mssql ODBC driver
    Rebar3: Fully supported. Enable with ./configure --with-rebar=/path/to/rebar3
    systemd: start ejabberd in foreground

    Modules:

    MAM: Make sure that jid used as base in mam xml_compress is bare
    MAM: Support for MAM Flipped Pages
    MUC: Always show MucSub subscribers nicks
    MUC: Don't forget not-persistent rooms in load_permanent_rooms
    MUC Admin: Better error reporting
    MUC Admin: Fix commands with hibernated rooms
    MUC Admin: Many improvements in rooms_unused_list/destroy
    MUC Admin: create_room_with_opts Store options only if room starts
    Pubsub: Remove 'dag' node plugin documentation
    Push: Fix API call return type on error
    Push: Support cache config changes on reload
    Register: Allow for account-removal-only setup again
    Roster: Make roster subscriptions work better with invalid roster state in db
    Vcard: Fix vCard search by User when using Mnesia
    WebAdmin: Allow vhost admins to view WebAdmin menus
    WebAdmin: Don't do double utf-8 conversion on translated strings
    WebAdmin: Mark dangerous buttons with CSS
    WebSocket: Make websocket send put back pressure on c2s process

Version 20.07

    Changes in this version

    Add support for using unix sockets in listeners.
    Make this version compatible with erlang R23
    Make room permissions checks more strict for subscribers
    Fix problem with muc rooms crashing when using muc logger with some locales
    Limit stat calls that logger module issues
    Don't throw errors when using user_regexp acl rule and having non-matching host
    Fix problem with leaving old data when updating shared rosters
    Fix edge case that caused failure of resuming old sessions with stream management.
    Fix crash when room that was started with loging enabled was later changed to logging disabled
    Increase default shaper limits (this should help with delays for clients that are using jingle)
    Fix couple compatibility problems which prevented working on erlang R19
    Fix sending presence unavailable when session terminates for clients that only send directed presences (helps with sometimes not leaving muc rooms on disconnect).
    Prevent supervisor errors for sockets that were closed before they were passed to handler modules
    Make stun module work better with ipv6 addresses

Version 20.03

    Changes in this version

    Add support of ssl connection when connection to mysql database (configured with sql_ssl: true option)
    Experimental support for cockroachdb when configured with postgres connector
    Add cache and optimize queries issued by mod_shared_roster, this should greatly improve performance of this module when used with sql backend
    Fix problem with accessing webadmin
    Make webadmin work even when url is missing trailing slash
    When compiling external modules with ext_mod, use flags that were detected during compilation of ejabberd
    Make config changed to ldap options be updated when issued reload_config command
    Fix room_empty_destory command
    Fix reporting errors in send_stanza command when xml passed to it couldn't be passed correctly

Version 20.02

    Changes in this version

    Fix problems when trying to use string format with unicode values directly in xmpp nodes
    Add missing oauth_client table declaration in lite.new.sql
    Improve compatibility with CocroachDB
    Fix importing of piefxis files that did use scram passwords
    Fix importing of piefxis files that had multiple includes in them
    Update jiffy dependency
    Allow storage of emojis when using mssql database (Thanks to Christoph Scholz)
    Make ejabberd_auth_http be able to use auth_opts
    Make custom_headers options in http modules correctly override built-in values
    Fix return value of reload_config and dump_config commands

Version 20.01

    New features

    Implement OAUTH authentication in mqtt
    Make logging infrastructure use new logger introduced in Erlang (requires OTP22)
    New configuration parser/validator
    Initial work on being able to use CockroachDB as database backend
    Add gc command
    Add option to disable using prepared statements on Postgresql
    Implement routine for converting password to SCRAM format for all backends not only SQL
    Add infrastructure for having module documentation directly in individual module source code
    Generate man page automaticaly
    Implement copy feature in mod_carboncopy

    Fixes

    Make webadmin work with configurable paths
    Fix handling of result in xmlrpc module
    Make webadmin work even when accessed through not declared domain
    Better error reporting in xmlrpc
    Limit ammount of results returned by disco queries to pubsub nodes
    Improve validation of configured JWT keys
    Fix race condition in Redis/SQL startup
    Fix loading order of third party modules
    Fix reloading of ACL rules
    Make account removal requests properly route response
    Improve handling of malformed inputs in send_message command
    Omit push notification if storing message in offline storage failed
    Fix crash in stream management when timeout was not set

Version 19.09

    Admin

    The minimum required Erlang/OTP version is now 19.3
    Fix API call using OAuth (#2982)
    Rename MUC command arguments from Host to Service (#2976)

    Webadmin

    Don't treat 'Host' header as a virtual XMPP host (#2989)
    Fix some links to Guide in WebAdmin and add new ones (#3003)
    Use select fields to input host in WebAdmin Backup (#3000)
    Check account auth provided in WebAdmin is a local host (#3000)

    ACME

    Improve ACME implementation
    Fix IDA support in ACME requests
    Fix unicode formatting in ACME module
    Log an error message on IDNA failure
    Support IDN hostnames in ACME requests
    Don't attempt to create ACME directory on ejabberd startup
    Don't allow requesting certificates for localhost or IP-like domains
    Don't auto request certificate for localhost and IP-like domains
    Add listener for ACME challenge in example config

    Authentication

    JWT-only authentication for some users (#3012)

    MUC

    Apply default role after revoking admin affiliation (#3023)
    Custom exit message is not broadcast (#3004)
    Revert "Affiliations other than admin and owner cannot invite to members_only rooms" (#2987)
    When join new room with password, set pass and password_protected (#2668)
    Improve rooms_* commands to accept 'global' as MUC service argument (#2976)
    Rename MUC command arguments from Host to Service (#2976)

    SQL

    Fix transactions for Microsoft SQL Server (#2978)
    Spawn SQL connections on demand only

    Misc

    Add support for XEP-0328: JID Prep
    Added gsfonts for captcha
    Log Mnesia table type on creation
    Replicate Mnesia 'bosh' table when nodes are joined
    Fix certificate selection for s2s (#3015)
    Provide meaningful error when adding non-local users to shared roster (#3000)
    Websocket: don't treat 'Host' header as a virtual XMPP host (#2989)
    Fix sm ack related c2s error (#2984)
    Don't hide the reason why c2s connection has failed
    Unicode support
    Correctly handle unicode in log messages
    Fix unicode processing in ejabberd.yml

Version 19.08

    Administration

    Improve ejabberd halting procedure
    Process unexpected erlang messages uniformly: logging a warning
    mod_configure: Remove modules management

    Configuration

    Use new configuration validator
    ejabberd_http: Use correct virtual host when consulting trusted_proxies
    Fix Elixir modules detection in the configuration file
    Make option 'validate_stream' global
    Allow multiple definitions of host_config and append_host_config
    Introduce option 'captcha_url'
    mod_stream_mgmt: Allow flexible timeout format
    mod_mqtt: Allow flexible timeout format in session_expiry option

    Misc

    Fix SQL connections leakage
    New authentication method using JWT tokens
    extauth: Add 'certauth' command
    Improve SQL pool logic
    Add and improve type specs
    Improve extraction of translated strings
    Improve error handling/reporting when loading language translations
    Improve hooks validator and fix bugs related to hooks registration
    Gracefully close inbound s2s connections
    mod_mqtt: Fix usage of TLS
    mod_offline: Make count_offline_messages cache work when using mam for storage
    mod_privacy: Don't attempt to query 'undefined' active list
    mod_privacy: Fix race condition

    MUC

    Add code for hibernating inactive muc_room processes
    Improve handling of unexpected iq in mod_muc_room
    Attach mod_muc_room processes to a supervisor
    Restore room when receiving message or generic iq for not started room
    Distribute routing of MUC messages accross all CPU cores

    PubSub

    Fix pending nodes retrieval for SQL backend
    Check access_model when publishing PEP
    Remove deprecated pubsub plugins
    Expose access_model and publish_model in pubsub#metadata

Version 19.05

    Admin

    The minimum required Erlang/OTP version is now 19.1
    Provide a suggestion when unknown command, module, option or request handler is detected
    Deprecate some listening options: captcha, register, web_admin, http_bind and xmlrpc
    Add commands to get Mnesia info: mnesia_info and mnesia_table_info
    Fix Register command to respect mod_register's Access option
    Fixes in Prosody import: privacy and rooms
    Remove TLS options from the example config
    Improve request_handlers validator
    Fix syntax in example Elixir config file

    Auth

    Correctly support cache tags in ejabberd_auth
    Don't process failed EXTERNAL authentication by mod_fail2ban
    Don't call to mod_register when it's not loaded
    Make anonymous auth don't {de}register user when there are other resources

    Developer

    Rename listening callback from start/2 to start/3
    New hook called when room gets destroyed: room_destroyed
    New hooks for tracking mucsub subscriptions changes: muc_subscribed, muc_unsubscribed
    Make static hooks analyzer working again

    MUC

    Service admins are allowed to recreate room even if archiv is nonempty
    New option user_mucsub_from_muc_archive
    Avoid late arrival of get_disco_item response
    Handle get_subscribed_rooms call from mod_muc_room pid
    Fix room state cleanup from db on change of persistent option change
    Make get_subscribed_rooms work even for non-persistant rooms
    Allow non-moderator subscribers to get list of room subscribers

    Offline

    New option bounce_groupchat: make it not bounce mucsub/groupchat messages
    New option use_mam_for_storage: fetch data from mam instead of spool table
    When applying limit of max msgs in spool check only spool size
    Do not store mucsub wrapped messages with no-store hint in offline storage
    Always store ActivityMarker messages
    Don't issue count/message fetch queries for offline from mam when not needed
    Properly handle infinity as max number of message in mam offline storage
    Sort messages by stanza_id when using mam storage in mod_offline
    Return correct value from count_offline_messages with mam storage option
    Make mod_offline put msg ignored by mam in spool when mam storage is on

    SQL:

    Add SQL schemas for MQTT tables
    Report better errors on SQL terms decode failure
    Fix PostgreSQL compatibility in mod_offline_sql:remove_old_messages
    Fix handling of list arguments on pgsql
    Preliminary support for SQL in process_rosteritems command

    Tests

    Add tests for user mucsub mam from muc mam
    Add tests for offline with mam storage
    Add tests for offline use_mam_for_storage
    Initial Docker environment to run ejabberd test suite
    Test offline:use_mam_for_storage, mam:user_mucsub_from_muc_archive used together

    Websocket

    Add WebSockets support to mod_mqtt
    Return "Bad request" error when origin in websocket connection doesn't match
    Fix RFC6454 violation on websocket connection when validating Origin header
    Origin header validation on websocket connection

    Other modules

    mod_adhoc: Use xml:lang from stanza when it's missing in element
    mod_announce: Add 'sessionid' attribute when required
    mod_bosh: Don't put duplicate polling attribute in bosh payload
    mod_http_api: Improve argument error messages and log messages
    mod_http_upload: Feed whole image to eimp:identify/1
    mod_http_upload: Log nicer warning on unknown host
    mod_http_upload: Case-insensitive host comparison
    mod_mqtt: Support other socket modules
    mod_push: Check for payload in encrypted messages

Version 19.02

    Admin

    Fix in configure.ac the Erlang/OTP version: from 17.5 to 19.0
    reload_config command: Fix crash when sql_pool_size option is used
    reload_config command: Fix crash when SQL is not configured
    rooms_empty_destroy command: Several fixes to behave more conservative
    Fix serverhost->host parameter name for muc_(un)register_nick API

    Configuration

    Allow specifying tag for listener for api_permission purposes
    Change default ciphers to intermediate
    Define default ciphers/protocol_option in example config
    Don't crash on malformed 'modules' section
    mod_mam: New option clear_archive_on_room_destroy to prevent archive removal on room destroy
    mod_mam: New option access_preferences to restrict who can modify the MAM preferences
    mod_muc: New option access_mam to restrict who can modify that room option
    mod_offline: New option store_groupchat to allow storing group chat messages

    Core

    Add MQTT protocol support
    Fix (un)setting of priority
    Use OTP application startup infrastructure for starting dependencies
    Improve starting order of several dependencies

    MAM

    mod_mam_mnesia/sql: Improve check for empty archive
    disallow room creation if archive not empty and clear_archive_on_room_destroy is false
    allow check if archive is empty for or user or room
    Additional checks for database failures

    MUC

    Make sure that room_destroyed is called even when some code throws in terminate
    Update muc room state after adding extra access field to it
    MUC/Sub: Send mucsub subscriber notification events with from set to room jid

    Shared Roster

    Don't perform roster push for non-local contacts
    Handle versioning result when shared roster group has remote account
    Fix SQL queries

    Miscelanea

    CAPTCHA: Add no-store hint to CAPTCHA challenge stanzas
    HTTP: Reject http_api request with malformed Authentication header
    mod_carboncopy: Don't lose carbons on presence change or session resumption
    mod_mix: Fix submission-id and channel resource
    mod_ping: Fix ping IQ reply/timeout processing (17.x regression)
    mod_private: Hardcode item ID for PEP bookmarks
    mod_push: Improve notification error handling
    PIEFXIS: Fix user export when password is scrammed
    Prosody: Improve import of roster items, rooms and attributes
    Translations: fixed "make translations"
    WebAdmin: Fix support to restart module with new options

Version 18.12

    MAM data store compression
    Proxy protocol support (http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt)
    MUC Self-Ping optimization (XEP-0410)
    Bookmarks conversion (XEP-0411)
2021-01-16 20:24:33 +00:00
wiz
188111f641 *: reset MAINTAINER for fhajny on his request 2020-05-27 19:37:36 +00:00
rillig
68c5d92ae2 chat/ejabberd: remove rebar.config from SUBST_FILES
That file does not contain any @ character.
2020-04-23 20:17:59 +00:00
wiz
1e9caac440 *: update email for fhajny 2018-12-15 21:12:18 +00:00
fhajny
4cefc4c8d8 chat/ejabberd: Update to 18.06.
Admin
- Stop ejabberd initialization on invalid/unknown options
- Add new options for OOM watchdog: oom_watermark and oom_queue
- Add ability to modify version string
- Add option ext_api_headers to define REST API custom headers
- Fix Erlang limits in ejabberdctl.cfg.example to reflect current
  situation
- Make trusted_proxied ejabberd_http option accept ip masks
- Teach acl ip matching about ipv4 mapped ipv6 addresses
- Removed watchdog_admins option from config, as has no effect anymore
- Improve logging of external authentication failures
- ejabberd_auth: Don't use cache if the option is disabled
- Make connected_users_info and user_sessions_info DB-agnostic

Core
- Support SASL PLAIN by xmpp_stream_out
- Add Resource Binding support to xmpp_stream_out
- Improve robustness of external authentication backends
- Don't use 'unsupported-version' inside SM element
- Generate SASL failures on unencrypted connections only for s2s
- Fix reset_stream in websocket using pre-rfc protocol
- Don't crash in bosh when we receive request with RID < prev_rid
- Get rid of all calls to jlib.erl module
- Support IPv6 connections for PostgreSQL, MySQL and LDAP
- Fix authentication for usernames containing uppercase characters
- Optimize HTTP requests memory usage
- PKIX: Just warn instead of ignore a certificate containing no domain
  names
- PKIX: Don't replace valid certificates with invalid ones

Modules
- Log modules startup
- mod_disco: Advertise disco#info and disco#items features
- mod_irc: is moved away from ejabberd repo to ejabberd-contrib
- mod_mam: Don't replace existing stanza ID
- HTTP upload: Generate HTTP Upload form using xdata codec
- HTTP upload: Improve error formatting
- HTTP upload: Return detailed error if HTTP upload is too large

MUC
- Always display room's xdata in disco#info
- Display muc#roomconfig_changesubject in room's disco#info
- Render roomname, allowinvites and allowpm in room disco#info
- Support for roomconfig_lang/roominfo_lang
- mod_muc_sql: Fix export to SQL

Push
- Omit summary for outgoing messages
- Further improve handling of carbons
- Also include sender/body for carbons
- Include a static body text by default
- keepalive: Increase default timeout to 3 days
- SQL: Check 'max_user_sessions' limit
2018-07-20 09:58:26 +00:00
fhajny
c5f23eb0fa chat/ejabberd: Update to 18.04.
- Don't produce a crash dump during intentional exit
- ejabberdctl: fix parameter parsing
- New hook 'component_send_packet' for sending packet from component
- gen_mod: Carefully validate options list
- gen_mod: Support global module processes
- gen_mod: Remove frontend process support
- gen_mod: Don't crash on invalid module's sub-options
- config: move section about direct-tls for c2s just under regular c2s
  config
- fast_tls: Clear cache on configuration reload
- http: Add support for PATCH http method
- mod_client_state: Add 'csi_activity' hook
- mod_http_upload: Accept characters of any script
- mod_http_upload: Add MIME type for M4A files
- mod_mam: Add commands for cleaning up archives for a given user
- mod_muc: Let a MUC room to route presences from its bare JID
- mod_muc: Introduce new mod_muc option: access_register
- mod_muc_room: Add stubs for affiliation-specific backend callbacks
- mod_muc_log: Fix Code format when logging a MUC room kick/ban
- mod_multicast: Improved
- mod_push: New options include_sender and include_body
- mod_push: Don't notify on stream errors
- mod_push_keepalive: Reset timeout on messages only
- mod_roster: Use 'lserver' for configuration lookup
- mod_vcard_ldap: Fix returning value from mod_vcard_ldap's search()
  callback
- mod_pubsub: Fix notification payload generated by pubsub
- mod_pubsub: Improve pubsub#itemreply implementation
- mod_pubsub: PubSub purge_node must use a transaction
- Utils: Use httpc directly instead of using p1_http wrapper
- Rest: Add flexibility on rest url config
- SystemMonitors: Get rid of useless memory/disk usage warnings
- WebSocket: Pass access option from websocket to c2s
2018-05-17 13:40:38 +00:00
fhajny
505a9dca83 chat/ejabberd: Update to 18.03.
Admin
- Avoid logging IP addresses in mod_register when it's not desired
- Command 'reload-config' allows to reload certificates
- Get rid of 'fs' package dependency
- Improve log message when module startup has failed
- mod_muc_admin: New command get_room_affiliation
- prosody2ejabberd: Report meaningful error when luerl is not
  available

Configure
- Accept atoms in api_permission command lists and commands with
  numbers in them
- Validate additional listen opts: inet, inet6, backlog
- Remove 'iqdisc' option
- New option –enable-group=xxx
- New option 'negotiation_timeout'
- New option 'new_sql_schema'
- New option 'validate_stream'
- ejabberd_service: New option 'global_routes' for
- mod_avatar: New 'rate_limit' option
- mod_block_strangers: New 'access' option
- mod_block_strangers: New 'captcha' option
- mod_pubsub: New option 'force_node_config'

Miscelanea
- Simplify ejabberd_sup code
- New gen_mod mod_options/1 callback to provide known options and
  defaults
- Replace ?MYLANG with connection's language wherever possible
- sql/*: Add username to peer indexes
- cyrsasl: Simplify code for splitting auth string in cyrsasl
- ejabberd_auth: Cache 'isuser' queries to external auth program
- ejabberd_web_admin: Hardcode required ACL rules
- mod_admin_extra: Command check_password_hash supports all hash
  methods
- mod_admin_extra: Fix srg_get_info command with @all@ and @online@
- mod_avatar: Fulfill all requirements of XEP-0398 v0.2.0
- mod_avatar: Improve validation of 'convert' option
- mod_block_strangers: Bounce groupchat to bare JID
- mod_block_strangers: Fix a typo in call to create_captcha()
- mod_caps: Only store CAPS if contact is subscribed
- mod_carboncopy: Copy outgoing MUC PMs
- mod_mam: Really run use_cache/1 and cache_nodes/1 callbacks
- mod_pubsub: Remove items of unregistered user
- mod_push_keepalive: Preserve timeout on resumption
- mod_shared_roster: Try to fix ejabberd_c2s:process_info: got
  unexpected info
- mod_shared_roster_ldap: Fix processing of ldap_memberattr_format_re
  option
- mod_stream_mgmt: Abort connection on count error
- mod_stream_mgmt: Clean up on timed out resumption
2018-03-28 21:51:09 +00:00
fhajny
b42f3a63e0 Update chat/ejabberd to 18.01.
- Fix TLS driver memory management
- Fix privacy_set command
- Report 'fs' support as unavailable on SunOS
- Let mod_block_strangers bounce an error when a message is rejected
2018-01-16 12:28:56 +00:00
fhajny
eeea54c843 Remove comment no longer relevant 2018-01-03 22:53:51 +00:00
fhajny
e08ae3349b Update chat/ejabberd to 17.12.
pkgsrc
- Change installation home for Erlang libs to prevent build conflicts
  with previous versions that may be present on the system, as
  encountered by @gdt.

Core
- Rewrite ejabberd system monitor for efficiency
- Fix incoming XMPP processing order
- Use xmpp:try_subtag/2 wherever possible
- Better process subtag decoding errors
- Only allow compression after SASL as per XEP-0170
- Don't crash on unexpected XML events
- Fix session mnesia table cleanup
- Don't let privacy list prevent local roster update

Encryption
- Rely on Server Name Indication for incoming Direct-TLS connections
- Speedup certificate chains creation and validation
- Log warning on empty wildcard paths
- Don't call pkix_is_self_signed/1 too frequently
- Eat less memory during building certificates graph
- Avoid infinite loop between self-signed certs
- Fix function clause on filelib:wildcard/1
- Use ejabberd_pkix API in mod_sip
- Move 'certfile' based options in a single place

Groupchat
- Don't crash on malformed IQ
- Include x tag in presence errors related to nick change
- Include 110 status on shutdown
- Improve muc#roominfo and muc#roomconfig forms
- mod_mam: Never store MUC messages in user archives

PubSub
- Fix num_subscribers on node metadata
- Fix send last items on initial presence
- Send last PEP items to owner on initial presence
- Support pubsub#publish-options PRECONDITIONs
- Add pubsub#multi-items to features list (Support XEP-0060 v1.14)
- Add missing Nidx building records from sql result
- Don't force RSM in get_items when max_items is not provided

Admin
- Introduce option 'ca_file'
- Set executable permission on mac_listener when installing
- Use /bin/sh as the explicit shell when using su in ejabberdctl.
- Windows does not have /tmp, fallback to $HOME/conf for ODBC
  configuration files

Logging
- Change loglevel of TLS failures
- Log a warning when a disk is almost full
- Disable default alarm handler
- Handle also process_memory_high_watermark alarm
- Kill and restart lager when it's overloaded
- Avoid excessive logging of SQL failures

Commands
- New muc_online_room_by_regex command
- Fix race between join_cluster and ejabberd_mnesia
- Fix commands rooms_unused_list and _destroy
- send_direct_invitations accepts only user jids
- ejabberd_sm: Fix get_session_sid/3

SQL
- Add missing server_host column in pg.new.sql
- Add new schema for MySQL and Sqlite
- Fix SQL serialization

Installer
- MacOS installer is signed. You can now easily install ejabberd on
  your Mac.

Build
- Compile sql_pt early
- Binary installer uses OTP 20.2
2018-01-03 22:51:30 +00:00
gdt
e2642bda6e ejabberd: Add comment explaining a build failure
When 17.09 is installed, the build of 17.11 fails.  But, with no
ejabberd installd package, it builds fine.  Include link to issue
filed upstream.
2017-12-29 16:16:47 +00:00
fhajny
7be9ddff31 Update chat/ejabberd to 17.11.
New features
- ACME Support
- Introduce 'certfiles' global option
- Use new API for IQ routing

Admin
- Omit "ProtectSystem" option from systemd unit
- Log warnings for c2s/s2s certfile option
- Log a message when a user gets registered
- ejabberdctl: Fix 'read' syntax for non-bash shells
- Fix renew_certificates ejabberdctl command
- Unregister commands when stopping node only if it's last one
- Halt ejabberd if the top supervisor fails to start

Build
- Avoid badarg error when running get-deps before ./configure has
  created src/ejabberd.app
- Fix sed invocation that was incompatible with FreeBSD's sed
- Makefile.in: Fix "make clean && make"
- Improve --enable-system-deps
- Install binaries with 755 permissions
- Install eimp binary with +x attribute
- Remove find-outdated-deps script, we have better replacement for it

Databases
- Allow export command regardless of the configured db_type
- Add SQL_INSERT macro and update SQL queries to use server_host field
- Update SQL archive index to match mysql.sql
- mod_muc: Use correct table field name in sql query

MAM
- Always strip stanza IDs
- Announce support for stanza IDs
- Don't store from 'sm_receive_packet' hook
- Fix mod_mam reloading
- Ignore non-message stanzas earlier
- Improve handling of forked messages
- Make sure a stanza ID is always added
- Make sure archived message isn't bounced
- Prepare version 0.6.1 of XEP-0313 (MAM) support

MUC
- Properly store subject element
- Resend presences and history if presence possesses x MUC element
- Send presence-unavailable when expulsing a participant
- Add mucsub event for subscribers list changes
- Optimize muc subscriptions handling
- Show real jid in mucsub subscription change events

PubSub
- Add basic PubSub meta-data support
- Rewrite pubsub export to sql
- Cleanup tree requests, rename pubsub_node.type to pubsub_node.plugin
- Fix select_type race on plugin_init
- Implement parentnodes seek for hometree
- Delete cached item on node removal
- Fix delete item from unregistered user
- Cleanup pubsub subscriptions quering, fix pep case
- PEP services must send notifications to the account owner

Push
- Avoid notification duplicates
- Add support for SQL storage
- Add export from Mnesia database to SQL file
- Don't store xdata() in Mnesia table
- Simplify backend interface
2017-12-14 21:12:21 +00:00
fhajny
f9166c6910 Update chat/ejabberd to 17.09.
Admin
- Harden ejabberdctl
- Fix ejabberdctl quoting when using iex
- Call earlier deps configure scripts during compilation
- Fix iexdebug and iexlive commands
- Quote $PEER in ping command to avoid hostnames containing "-" being
  interpreted as arithmetic
- Docker: Sync containers from rroemhild and add instructions in
  README
- Use eimp instead of ImageMagick calls for thumbnails creation
- Add forgotten caching options to the validator
- Fix 'make install' to work with new output from rebar list-deps
- Rewrite muc_register_nick and muc_unregister_nick to be DB
  independent
- WebAdmin: Fix deletion of multiple offline messages

Encryption
- Add support for XEP-0368 in outgoing s2s: SRV records for XMPP over
  TLS
- Deprecate s2s_use_starttls: required_trusted
- Don't attempt to access(2) a certificate file
- Let 'domain_certfile' take higher precedence instead of s2s_certfile
  or c2s_certfile

Databases
- mysql.sql: Use multi-column index on username/ID
- Use forked repo of Riak Erlang client to support OTP20

Modules
- mod_avatar: New module with support for legacy and modern clients
- mod_block_strangers: Introduce option 'allow_transports'
- mod_block_strangers: Block messages from strangers before
  mod_mam/mod_offline processing
- mod_http_upload: Don't ignore 'custom_headers'
- mod_muc: Improve presence-error and unavailable of multi-session
  occupants
- mod_multicast: Fix start and reading of configured limits
- mod_mam: Simplify check for anon MUC JID filtering
- mod_mam: Refuse filtering anon MUC queries by JID
- mod_privacy: Explicitly match against
- mod_register: Introduce 'redirect_url' option
- mod_stream_mgmt: Delete 'c2s_init' hook
- mod_vcard_xupdate: Also replace vcard-x-update in direct presences

PubSub
- Fix get_items/get_item calls
- Add correct order when requesting all items
- Implement '6.5.7 Requesting the Most Recent Items'
- Fix RSM support on SQL
- Add RSM support on mnesia
- Fix node_options: default options only apply on first plugin
- Broadcast updated node configuration
- Enforce controls on publish and delete items

Miscelanea
- Preserve correct order of deserialized XML elements
- Suppress push notifications for online clients
- Extract strings and prepare translation files works again
2017-10-17 14:55:36 +00:00
fhajny
40396eff79 Remove the CONFLICT on jabberd, it doesn't make any sense. 2017-09-06 12:26:32 +00:00
fhajny
cbe6c9a6f4 Update chat/ejabberd to 17.08.
Core
- Erlang/OTP 17.5 or higher is required, and 20 is now supported
- Make ejabberd_cluster modular
- Replace gen_fsm with p1_fsm to avoid warnings in OTP20+
- Fix clustering table reg_users_counter
- ext_mod: Update spec from custom and allow modules dependencies
- extauth.py: Fix to support : in passwords
- Set high water mark in lager for all backends
- Fix old route record in mnesia’s route table haven’t been remove
  when restarting in some cases
- ejabberd_cluster*.erl: Add copyright and fix description
- Add support of rfc6120 section 4.9.3.16 on node shutdown

Configuration
- ejabberd_c2s: Fix priority of ‘certfile’ option
- Introduce ‘hosts’ modules option
- Fix ERLANG_OPTS, INET_DIST_INTERFACE and FIREWALL_WINDOW option
- Remove unused ‘managers’ option, related to the deferred XEP-0321

Commands
- Fix errors when running ejabberdctl as root
- Fix set_presence command to work in recent ejabberd
- Rename stop_all_connections to stop_s2s_connections for consistency
- Change policy of user_resources command, from user to admin
- Remove old command calling interface
- Describe more command arguments and results

Modules
- mod_http_api: Use hide_sensitive_log_data option when registering
  users
- mod_http_fileserver: Request basic auth dialog from browser
- mod_muc: Fix nick bug with MUC on riak
- mod_muc: new hooks
- mod_push: Support XEP-0357: Push Notifications
- mod_push_keepalive: New module

PubSub/PEP
- Keep disco#info on PEP compatible with XEP-0060
- Preliminary export PubSub data from Mnesia tables to SQL file
- Fix PubSub send last published items
- Fix PEP node removal
- Fix PEP node identity
- Fix disco#items on PEP service
- Fix getting cached last item
- Add import of PEP from prosody
2017-08-20 12:58:04 +00:00
wiz
8733ee0040 Follow some http -> https redirects. 2017-08-01 14:58:51 +00:00
fhajny
c72efc13ab Update chat/ejabberd to 17.07.
Version 17.07
=============

Core
- Close accepted socket if sockname/peername has failed.


Version 17.06
=============

New features
- The new cache system is also a new component that allows fine tuning
  of ejabberd performance for either small systems or large scale
  servers.
- Certificate Manager is a feature that has been requested by many
  organisations, allowing administrators to manage their certificate
  more easily
- Riak support for several modules

API
- Deprecate misc:encode_base64/1 and misc:decode_base64/1
- Rename is_user_exists function to user_exists
- Allow api access on both ipv4 and 6 loopback addresses
- Fix invalid argument in get_messages_susbset

Admin
- Refactor ejabberdctl
- Improve ejabberdctl parameters parsing
- Quote all paths to allow spaces in directory names
- update-deps-releases.pl: Show operations to perform before asking to
  apply them
- Fix Salt import from prosody SCRAMmed password

Configuration
- Validate module options on start_module/2
- Validate new options before module reloading
- Validate second-level options
- Introduce iqdisc global option
- stream_management listen option deprecated, use mod_stream_mgmt
- Check presence of some files during option validation
- Speedup configuration options lookup
- Validate all certfiles on startup
- Only validate certfiles if public_key:short_name_hash/1 is available
- Introduce Certficate Manager

Commands
- Add clear_cache admin command
- Parse correctly presence_broadcast option in change_room_option
  command
- Describe command arguments and results in mod_muc_admin
- Improve export2sql explanation; remove obsolete and duplicated
  command
- Fix and document push_roster_all command
- Fix mod_muc_admin command set_room_affiliation
- Fix invalid {args,result}_examples in mod_muc_admin
- Fix srg_user_add/del for non-Mnesia database backends
- Make ext_mod api return rescode

Compilation
- Erlang 17.5 or higher is required
- Add --enable-system-deps configure option
- Add --enable-stun and --enable-sip configure options

Core
- Speedup Mnesia tables initialization
- Improve Mnesia tables creation and transformation
- Improve ejabberd_c2s:close()
- ejabberd_c2s: Don’t close session on stream resume
- Speedup loading of translation files
- Fix ejabberd_router:is_my_route/1
- Don’t let a receiver crash if a controller is unavailable
- Fix OTP-17.5 support
- websocket: Catch exception that may happen when sending data over
  websocket

Databases
- New sql_connect_timeout option
- New sql_query_timeout option
- Get rid of sql_queries.erl
- Use round-robin algorithm when selecting worker from DB pool
- Add Riak as BOSH RAM backend
- Add Riak as mod_proxy65 RAM backend
- Add Riak as mod_carboncopy RAM backend
- Add Riak as router RAM backend
- Add Riak as session manager RAM backend
- Fix cleaning of Riak route table
- Add pubsub import from prosody/metronome
- Fix username in mam export
- Fix Salt import from prosody SCRAMmed password
- In offline export to SQL, first write all DELETE, later all INSERT

Cache
- Implement cache for mod_announce
- Implement cache for mod_private
- Implement cache for mod_privacy/mod_blocking
- Implement cache for mod_last
- Implement cache for mod_vcard and mod_vcard_xupdate
- Implement cache for roster
- Add cache options to the validator
- Use cache for authentication backends
- Use new cache API in mod_shared_roster_ldap
- Use new cache API in ejabberd_oauth
- Use new cache API in mod_mam
- Use new cache API in mod_caps
- Use cache in front of Redis/SQL RAM backends

Modules
- mod_http_upload: Add support for HTTP File Upload 0.3.0
- mod_mam: Added export function
- mod_metrics: Don’t leak with UDP sockets
- mod_metrics: New options ip and port
- mod_muc: Allow a room admin to un/subscribe another JID
- mod_offline: Don’t store messages via a single process
- mod_offline: Make sure only jabberevent tag is present in offline
  event
- mod_register: New option ‘access_remove’ ACL
- mod_stream_mgmt: Preserve stanza count on timeout
- mod_vcard_ldap: Parse ldap_uids like in eldap_utils
- mod_client_state: Reset state on session resume
- mod_metrics: Fix IP address parsing
- mod_pubsub: Avoid useless calls on simples subscriptions
- mod_block_strangers: Add allow_local_users option

Elixir
- Update elixir to v1.4.4
2017-07-07 10:08:39 +00:00
fhajny
40464d1b4c Update chat/ejabberd to 17.04.
Make the Redis support unconditional (no extra dependencies).

Changes in 17.04:

Admin
- Add more examples on config template
- Generate ejabberd lib dir when not available in code server
- Set default prefix to /usr/local
- Start supervisors after ext_mod
- Don't log warning on successful ping reply
- New muc_register_nick command

Core
- Deprecate jlib.erl in favor of misc.erl
- Add support for file-based queues
- ejabberd_sm: Fix routing of headline and groupchat messages
- Fix c2s connection close on demand
- Improve overloaded S2S queue processing

Databases
- Improve Redis related code
- Add Redis pool support
- Improve logging of Redis errors
- Add Redis and SQL as mod_proxy65 RAM backends
- Add Redis and SQL as mod_carboncopy RAM backends
- Add Redis and SQL as mod_bosh RAM backends
- Add Redis and SQL as router RAM backends
- Add SQL as mod_muc RAM backend
- Remove obsolete Pubsub mnesia migration calls

Miscellany
- ejabberd_http: Expand @VERSION@ in custom headers
- ejabberd_http: Add "custom_headers" option
- mod_client_state: Queue stanzas of each full JID
- mod_http_upload: Don't add "Server" header line
- Pubsub: Refactor pubsub's get_last_items
- Pubsub: Fix PEP issues
2017-04-13 19:04:53 +00:00
fhajny
a788d0b39c Update chat/ejabberd to 17.03.
Major improvements
- New modular code allows to develop modules for a wide scope of
  functionalities without patching the core code such as C2S, S2S and
  router
- Now 'From' and 'To' arguments must be omitted in functions and
  structures related to routing
- Ejabberd used to store all in-memory shared data such as ACLs,
  proxy65, sessions, routes, clustering, etc in internal Mnesia
  database and this used to be hardcoded. With new API it's now possible
  to store such data in any database. However, currently only Mnesia
  backend is supported.
- Dynamic configuration reload allows to reload modules, database
  connections, listeners, ACLs and global options without restarting
  ejabberd
- Spam protection allows to block packets from non-subscribers
- S2S dialback is now an optional module

Developer
- tools/hook_deps.sh: checks hook dependencies
- tools/find-outdated-deps.pl: checks which dependences need update
- Mark as deprecated add/get_local/global_option config functions
- Change routing API

Core
- Fix some corner cases while re-reading RFC6120
- Attach IP metadata to every stanza received from stream
- Apply SASLprep before storing/converting passwords
- Send compressed in correct order
- Reset XML stream before sending SASL success
- Speedup features list when a lot of virtual hosts configured
- Fix s2s_dns_timeout issues
- Better handling of IPv6 domains
- Rename mod_sm -> mod_stream_mgmt
- Don't count resent stanzas
- Improve startup procedure, and log startup time
- Add more processes to supervision
- sm_sql: Avoid PID collisions

Admin
- Add 'supervisor' listening option
- Accept "add_commands: admin" in commands section
- Make sure that api_permissions always have "console commands"
  section
- Change name of pam dep from p1_pam to epam
- Improve compilation with rebar3
- Add TLS support for external components
- Specify "ExecReload" command in systemd unit
- Don't attempt to resolve _jabber._tcp SRV record
- Improve error reporting for forbidden servers
- mod_block_strangers: New module to block packets from
  non-subscribers
- mod_register: Report password change in the log
- Remove relict mod_service_log
- Remove unused mod_ip_blacklist
- Remove ejabberd_frontend_socket
- WebAdmin: improve formatting when showing erlang terms
- Import from Prosody: Fix import of SCRAM passwords, offline

API & Commands
- get_last now always returns tuple with UTC XEP-0082 and status
- Protect users from delete_old_users command using a fixed access
  rule
- Separate list of strings with \n for srg_get_info in mod_http_api
- Support non-JID lines in command create_rooms_file
- stop_all_connections now stops all s2s connections via supervisor
  calls
- Support scrammed passwords in ejabberdctl import_prosody

Configuration
- Provide example mod_http_api configuration with couple commands
- Clarify new modules usage in the example config
- Don't crash on malformed IP addresses
- Fix parsing of acl/access rules inside oauth sections of
  api_permissions

Config reload improvements
- Start/stop auth modules when host is added/deleted
- Improve modules start/stop procedures
- Check result of gen_mod:start/2 callback
- Improve reload_config admin command
- Invalidate access permissions on configuration reload
- Start/stop virtual hosts when reloading configuration file
- Reload modules when reloading configuration file
- Restart listeners on configuration reload
- Make sure all hooks are called with proper host

Databases
- Add missing NOT NULL restrictions in schemas
- Move archive tables into lite.sql for better comparison with other
  schemas
- Implement database backend interface for mod_proxy65
- Implement database backend interface for MUC, BOSH and auth_anonyous
- Implement database backend interface for ejabberd_router
- Propagate the TRANSACTION_TIMEOUT to pgsql driver

New XMPP stream behavior
- Reflect cyrsasl API changes in remaining code
- Improve return values in cyrsasl API
- More refactoring on session management
- Add xmpp_stream_out behavior and rewrite s2s/SM code
- Rewrite ejabberd_service to use new XMPP stream API

MAM & offline storage
- Make a message is not bounced if it's archived
- Archive message before delivering it to offline storage
- Include stanza ID with archived offline messages
- Add stanza-id to every archived message

PubSub
- Avoid orphan_item leak on affiliation/subscription removal
- Fix pubsub SQL schemas, add NOT NULL restrictions
- Fix last item cache for multiple hosts

Server to server
- Several improvements of S2S errors logging
- Resolve all addresses from SRV lookup
- Add s2s work-around for gmail.com
2017-03-30 14:50:05 +00:00
fhajny
31163d54a1 Update chat/ejabberd to 17.01
Most relevant changes:

Admin
- Add example api_permissions: definition to config template
- Allow old-stype mod_vcard_ldap in the config
- Fix migration of old pubsub database (migrating from 2.1.x)
- Get nodes from ejabberd_cluster instead of mnesia
- mod_configure: Fix configuration commands

Core
- Fix case clauses when using compression
- Set from/to in every routed packet
- Correctly process errors from new cyrsasl API
- Improve return values in cyrsasl API

Modules
- mod_http_bind: remove and migration code to mod_bosh
- mod_muc: Allow a subscriber to create room, then set
  allow_subscription=true
- mod_muc: Support legacy muc#roomconfig values
- mod_offline: Decode message before checking for expiration

Mnesia
- Let ejabberd_mnesia handles copy_type
- Fix index processing
- Speedup table setup, no i/o if EJABBERD_SCHEMA_PATH not set

SQL
- Add SSL support for SQL connections with PostgreSQL 1.1.2+
- Cope with malformed values in 'rosterusers' SQL table
- Improve tag insertion, avoid duplication
2017-01-21 20:20:33 +00:00
fhajny
2ddd48b24a Update chat/ejabberd to 16.12.
API / integration
- New API permissions framework

Commands
- Add configurable weight for ejabberd commands
- add_rosteritem: Support several groups separated by ;
- create_rooms_file: Fix reading room jids from file
- delete_old_messages: Fix command for SQL backends
- send_message: Don't duplicate the message
- Remove obsolete remove_node command (use leave_cluster)
- Fix reload_config
- Cleanup mod_admin_extra, add few functions
- Expose unregister API command

Core XMPP
- New BOSH module
- Use fxml_gen XML generator
- Use our new stand-alone XMPP library instead of jlib.erl
- Don't let MAM messages go into offline storage
- Add xdata generator for XMPP data form
- Get rid of excessive (io)list_to_binary/1 calls

HTTP
- Add authentication support to mod_http_fileserver
- ejabberd_http: Handle missing POST data gracefully
- Use inets instead of lhttpc in http_p1
- Add http_p1.erl, rest.erl, and oauth2 ReST backend for OAuth2 tokens

MUC
- Create room on configuration request as per XEP-0045, 10.1.3
- Ensure that presence_broadcast room option is stored
- Fix conference disco#items when running multiple virtual hosts
- Fix Result Set Management (RSM) for conference disco#items
- Introduce muc_invite hook
- Make the constant MAX_ROOMS_DISCOITEMS configurable
- mod_carboncopy: Don't copy MUC private messages

MUC/Sub
- Store the flag "Allow Subscription" room option in database
- When getting list of subscribed rooms, also check temporary ones
- Add password support in muc_subscribe
- When unsubscribes, check if room should get closed

Pubsub
- Enforce pubsub node removal
- Relational databases support
- Append ; to privacy_list_data exporting lines
- Improve relational database import

Build
- Make build system compatible with rebar3
- Produce ejabberd.service and fix for systemd usage
- Cleanup ext_mod and fix compilation path
- Fix compilation of external module with new xmpp lib
2017-01-03 18:52:33 +00:00
fhajny
cad46ddf54 Update chat/ejabberd to 16.09.
New XMPP Extension support
- Support for XEP-0355 - Namespace Delegation
- Support for XEP-0356 - Privileged Entity

Elixir support
- Support for Elixir-based configuration files

MUC/Sub
- Add a new request to list MUC room subscribers
- Link MUC subscription to bare JID
- New commands unsubscribe_room and unsubscribe_room for MUC
  subscriptions management through API
- Fix nick-to-jid mapping for MUC subscribers
- Fix subscribed rooms list retrieval
- Fix message routing from subscribers
- Do not update muc_online_users table on MUC/Sub operations

MUC
- Support multiple JIDs in room invitations
- Create room on configuration request as per XEP-0045, 10.1.3

PubSub
- Add SQL support for microblogging node plugin
- Fix publish with subscriber publish model and SQL backend
- node_mb: Call node_pep instead of node_hometree

Stream Management
- New Stream Management option: ack_timeout
- Fix Stream Management feature for the websocket connections
- Cancel timer when waiting for resumption

MAM and Offline
- Don't store messages of type "headline"
- Simplify "assume_mam_usage" option
- Honor hint for any non-"error" message
- Store announcements for offline users

Database
- Session backend: fix clean Redis table
- mod_shared_roster: Support SQL backend

ejabberdctcl admin tool
- ejabberdctl: do not force access rules check on register command
- ejabberdctl: do not force command line to pass a credential
- New commands unsubscribe_room and unsubscribe_room for MUC
  subscriptions management
- New command create_room_with_opts to create room with custom
  config

ejabberd API
- New commands unsubscribe_room and unsubscribe_room for MUC
  subscriptions management
- New command create_room_with_opts to create room with custom
  config
- Add X-Admin and basic auth header to CORS allowed headers in
  http_api
- Properly process OPTIONS header in http_api for all paths
- Expand parsing of JSON input to be able to handle update_roster
  command
- Provide proper args_desc in oauth_issue_token command

Developer features: ejabberd Hooks
- Add hooks c2s_session_pending, c2s_session_resumed,
  store_offline_message, store_mam_message
- Add CSI user's JID argument to csi_filter_stanza and
  csi_flush_queue hooks
- Add functions to get/set some c2s #state elements from external
  modules
- mod_client_state: Let other modules filter stanzas
- rework c2s API to simplify push modules integration
2016-10-02 12:17:40 +00:00
fhajny
a5f91ac2fd Update chat/ejabberd to 16.08.
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
2016-08-12 10:27:27 +00:00
jperkin
36e6903fd8 Remove the stability entity, it has no meaning outside of an official context. 2016-06-08 10:16:50 +00:00
jperkin
13a8dd759b Change the service_bundle name to "export" to reduce diffs between the
original manifest.xml file and the output from "svccfg export".
2016-06-08 10:02:24 +00:00
fhajny
9a7d622e2e Use REAL_ROOT_USER/REAL_ROOT_GROUP instead of ROOT_USER/ROOT_GROUP
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.
2016-05-17 10:32:06 +00:00
fhajny
f08dc6752b Update chat/ejabberd to 16.04.
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
2016-04-29 19:05:22 +00:00
fhajny
93c07240f5 Update chat/ejabberd to 16.03.
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.
2016-04-25 20:24:14 +00:00
fhajny
d9943ce04f Fix Bash interpreter path in one more script. PKGREVISION++ 2016-01-18 10:23:18 +00:00
fhajny
dad7130151 Update chat/ejabberd to 16.01
Security
- Improve Dialback Key Generation and Validation support (XEP-0185)
- More generally, improve random number generator to avoid timing /
  guessing attacks on any random value.

Database
- Use BLOB instead of TEXT on mysql in stanza storage
- Use UTF8MB4 character set in MySQL tables
- Make Riak working on Erlang R18

MAM
- Use stanza-id tags for deduplication
- Advertise MAM in disco info for account/room JID
- Improve MUC support
- Don't store resent messages
- Do not forget to include xmlns in mam prefs response (#859)
- Honor Message Processing Hints (XEP-0334)

MUC
- Add support for muc#roomconfig_presencebroadcast option
- Only filter rooms in Service Disco when more than 100 (EJAB-343)
- List in Service Disco non-empty rooms and provide Node for empty (EJAB-343)
- When user joins logged room, he must be warned (EJAB-726)

Pubsub
- Fix pubsub virtual nodetree plugin
- Use correct notification_type for last items (#827)
- PubSub plugin for online users only
- Disable use of multi-subscribe and subscription-option on standard
  plugins
- Limit number of subscriptions per node and allow custom default node
  configuration
- Don't force max_items_node to MAXITEMS if not defined
- Don't read pubsub options when plugin does not use them

Elixir
- Upgrade Elixir to v1.1.0

Admin
- Add plugin for passing extra erl_opts flags to deps, and use it
  for hipe
- Add --enable-latest-deps to configure
- Remove "--enable-nif" flag
- New send_stanza command
- ejabberdctl: new --no-timout flag
- ejabberdctl: Don't let "reopen_log" rotate files (EJAB-1243)
- ejabberdctl: Improve escaping of arguments passed to ejabberdctl
- OpenSSL minimum required version: raised from 0.9.8 to 1.0.0

Config
- New option accept_interval in ejabberd_listener
- Webadmin console visual refresh (EJAB-1142)
- If mod_register access_from is 'none', then don't advertise IBR (#857)
- Fix handling of some options in old style configs
- Fix parsing option trusted_proxies
- Fix ipv6 configuration processing (#803)
- ejabberd_service: simplify configuration: no need for 'hosts', just
  provide 'password'

Cleanup and optimisations
- Faster string_to_jid/1 implementation
- Move JID related functions from jlib.erl to jid.erl (#847)
- Remove usage of erlang's now()
- Update dependency name from p1_cache_tab to cache_tab
- Use crypto:rand_uniform instead of random:uniform
- Fix randoms.erl on R17 that don't have random:seed(integer())
- Faster and more memory efficient XML parsing.
- Faster stringprep library.

Other changes
- ejabberd_http: Cope with large POST/PUT requests
- ejabberd_http: Log debug message on receive errors
- mod_offline: Discard chat states notifications
- mod_offline: Honor store hint
- mod_http_upload: various fixes
- XEP-0198: Fix stanza counting corner case issue
- Adding WEBIRC, custom realname & ident, ISO-8859-15
- Update hebrew translation
2016-01-16 19:28:01 +00:00
fhajny
303b5c082d Update chat/ejabberd to 15.11.
- Integrate join/leave cluster as ejabberd command.
- Allow longer command execution time.
2015-11-23 15:30:26 +00:00
fhajny
92785d6c3f Update ejabberd to 15.10.
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
2015-11-05 12:23:50 +00:00
agc
b35b0abbb4 Add SHA512 digests for distfiles for chat category
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.
2015-11-03 01:20:17 +00:00
ryoon
b141232e29 Recursive revbump from textproc/icu 2015-10-10 01:57:50 +00:00
fhajny
2e19cd5030 Update chat/ejabberd to 15.09.
### 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
2015-10-01 14:48:14 +00:00
fhajny
1caf14e9f8 Update chat/ejabberd to 15.07.
Message Archive Management (XEP-0313)
- Add "complete" attribute to MAM final response
- Fix mod_mam compatibility with RSM
- Changed mam iq get to set as specified by XEP-0313 v0.3

Modules management
- Ensure config snippet is loaded at module installation
- Allow contribution to include .yml or .yaml config file
- Allow include of simple dependencies

Multi User Chat
- New API hook: muc_filter_packet
- Send notifications on MUC configuration changes
- Omit warning message regarding non-anonymous room
- During halt only shutdown MUC rooms on local node

Pubsub
- Allow migration of old pubsub items with old xmlelement structure in body
- Trigger PEP notifications on CAPS updates
- Check for node subscription of bare JID
- Flat is now the default plugin

Stream Management (XEP-0198)
- Increase timeout during resumption
- Increase default "max_ack_queue" value

ejabberd Client connection
- API change: user_send_packet is now a run_fold hook and pass the c2s State
  as a parameter. It was already the case in ejabberd 15.06, but it was not
  mentioned in the changelog, by mistake. So, now, you know :)

Admin
- Do not rely on behaviour info when doing config validation, so that it
  can work with ejabberd binary installers
- When passwords are scrammed, report check_password_hash cannot work
- Fix problem with merging values from multiple config files
- If local guide.html file not found, redirect to the online guide
- Support RTL page direction in WebAdmin for Hebrew
- configure.ac: add AC_CONFIG_MACRO_DIR and static AC_INIT

WebAdmin
- Don't crash web admin when displaying info about websocket using users

Installers
2015-09-01 11:36:59 +00:00
fhajny
b888531d20 Fix build for Erlang 17 and 18 by adding patches from FreeBSD ports.
Bump PKGREVISION.
2015-07-17 14:25:42 +00:00
fhajny
10f880ea79 Update chat/ejabberd to 15.06.
Message archiving
- Add support for message archiving in Mnesia or relational databases.

Protocol
- Document protocol support and version inside each module and use that
  info in documentation
- Remove deprecated XEP-0090 Entity Time and XEP-0091 Delayed Delivery
- Don't add body element to MUC subject messages
- Do not bounce normal messages sent to unavailable resource

Admin command-line tool
- Fixed several ejabberd commands
- Allow password with ';' passed in ejabberdctl
- Improve ejabberdctl external module install code, allows better
  error checking
- New ping ejabberdctl command to check if the node is up and running
- New commands for Multi-User chat management: get_room_options and
  get_user_rooms

Configuration
- Add config validation at startup
- Fix include of non yaml config files
- New option hide_sensitive_log_data to hide client IP address in log
- New option net_ticktime, to fine tune Erlang cluster networking
- New option max_users_presence in mod_muc, to avoid broadcasting
  presence packet from users after a chat room has reached a given size

Elixir
- Add correct package version for mix

Security
- New options to configure your own custom Diffie-Helman parameters:
  dhfile and s2s_dhfile

PubSub
- Enforce definition of pubsub node max_items
- Fix pubsub/odbc crash on remote user unsubscribe
- Fix use of publish_only affiliation with odbc backend

Multicast
- Pick first local multicast service, otherwise remote

Databases
- Fix anonymous user login, it wasn't stored in anonymous mnesia table
- Fixed some string/binary issues in ejabberd_odbc
- PostgreSQL storage: added missing sm (session manager) table

Packaging
- Microsoft Windows 64 bits installer
- Provide RPM and DEB binary packages for linux 64 bits.

Clean up
- Remove obsolete doc and win32 files
2015-06-29 21:44:10 +00:00
fhajny
e6680267a3 Stop pretending the helper scripts are not Bash scripts. Fix PLIST handling
for the non-default sqlite option. Help libiconv linking on some platforms.
Bump PKGREVISION.
2015-05-04 14:40:38 +00:00
fhajny
761678c9be Update chat/ejabberd to 15.04. Add sqlite option.
Upstream changes:
- R16B03-1 is now the minimal required Erlang/OTP version
- SQLite support
- Default db_type can be specified with global default_db option
- Included mod_muc_admin, mod_admin_extra and mod_multicast modules
- Removed ejabberd_http_poll
- Pubsub improvements
- Better RFC compliance
- Several other bugfixes
2015-04-29 10:03:58 +00:00
ryoon
22bee7a3c3 Recursive revbump from databases/unixodbc. 2015-04-26 11:52:18 +00:00