25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-12-22 17:28:25 +01:00
Commit Graph

6663 Commits

Author SHA1 Message Date
Paweł Chmielowski
735516ed37 Don't start sql connection pools for unknown hosts
It's possible to trigger that by passing wrong domain to some ctl commands,
and if you don't have default credentials for sql connections, you get
repeating errors when this pools tries to reconnect from error.
2024-04-04 11:05:34 +02:00
Badlop
50c74ab821 Fix code:lib_dir call to work with Erlang/OTP 27.0-rc2 2024-04-01 14:26:55 +02:00
Paweł Chmielowski
9ab60935a4 Add update_primary_key command to sql schema updater 2024-03-21 10:58:06 +01:00
Paweł Chmielowski
c5437235f3 Make mod_vcard_xupdate send hash after avatar get set for first time
We need to remove info about empty photo in session stored presence after
avatar get set, otherwise as we don't modify presences like that in
mod_vcard_xupdate, we will send presence with updated hash.

This fixes issue #4182
2024-03-20 10:57:12 +01:00
Paweł Chmielowski
537aac24f7 Improve detection of types in odbc
This should fix issue with dialyzer on erlang 26.2.3+
2024-03-18 14:54:32 +01:00
Badlop
1639471250 Fix crash running export2sql when MAM enabled but MUC disabled
Problem introduced in cfc393a
2024-03-07 18:38:32 +01:00
Badlop
2c1b0bb77b Use shorthands provided by docs.ejabberd.im Makefile, fix markdown syntax 2024-03-07 18:38:32 +01:00
Badlop
5bb94f1d9e Result of running "make options" 2024-03-06 15:25:38 +01:00
Badlop
2378ea9c07 Dialyzer: Replace re:mp dirty workaround from 0bbc255 with other less dirty 2024-03-06 15:25:38 +01:00
Badlop
356ee22cc5 Change method from 1bf80e8 to determine if Elixir supports default_formatter function
Dialyzer when using Elixir complains about undefined function module_info.
2024-03-06 15:25:38 +01:00
Badlop
281515cd9f mod_muc_log: Hide join/leave lines, add method to show them 2024-03-06 15:25:32 +01:00
Badlop
c0055b7a7f mod_muc_log: Support allowpm introduced in 2bd61ab 2024-03-06 15:23:16 +01:00
Melvin Keskin
a29955ff96
mod_mam: Document that XEP-0441 is implemented as well 2024-03-03 21:05:57 +01:00
Badlop
91cca3cff3 mod_conversejs: Simplify support for @HOST@ in default_domain option (#4167) 2024-02-28 13:06:49 +01:00
Badlop
716f5de517 mod_matrix_gw: Fix support for @HOST@ in matrix_domain option (#4167) 2024-02-28 13:06:47 +01:00
Paweł Chmielowski
aac0e782d0 Don't use ejabberd_config:get_myhosts() 2024-02-28 12:24:50 +01:00
Paweł Chmielowski
c69884fa3f Config reload should update loger settings part 2 2024-02-28 12:03:42 +01:00
Paweł Chmielowski
06675e4fb2 Improve validation of arguments in mod_muc_admin commands
This adds validation to couple command where they were missing and catch
passing unknown hostnames.
2024-02-28 12:01:14 +01:00
Paweł Chmielowski
ad67710f7e Make config reload update new logger settings 2024-02-28 11:46:30 +01:00
Badlop
79eca7c098 Update version number from the unreleased 24.01 to 24.02 2024-02-26 16:16:09 +01:00
Badlop
daca3b558b Use another example, because "archive" is replaced when generating EDoc 2024-02-26 16:16:06 +01:00
Badlop
2075480b14 Improve some documentation: URLs are parsed later when preparing Docs 2024-02-26 16:16:05 +01:00
Badlop
417294339d Matrix: Minor documentation improvements 2024-02-26 16:15:51 +01:00
Holger Weiss
6aaefc663b Fix XEP-0425: Message Moderation with SQL storage
Use the correct server name and room JID when removing moderated
messages from SQL.
2024-02-24 22:06:36 +01:00
Jérôme Sautret
a6b10ac4c0 Merge branch 'master' of github.com:processone/ejabberd 2024-02-23 12:09:51 +01:00
Jérôme Sautret
2b7b92edee Add mod_matrix_gw doc 2024-02-23 12:09:10 +01:00
Paweł Chmielowski
f4de0cef26 Add alternative types that should fix dialyzer on r26 2024-02-22 17:25:56 +01:00
Paweł Chmielowski
1b5a9c1a1f Fix dialyzer warnings in ejabberd_sql in R27 2024-02-22 16:12:04 +01:00
Badlop
5fb76b4918 Use http_uri only when matrix requires it, ammend commit 59ff77e 2024-02-21 16:46:37 +01:00
Badlop
9275bf40b2 Rebar3/Mix: If dev profile/environment, enable tools automatically 2024-02-21 16:46:37 +01:00
Badlop
4431fbbe5a Include only observer; runtime_tools is automatically added 2024-02-21 16:46:37 +01:00
Badlop
59ff77e171 Matrix: Fix commit 816900a for OTP below 25.0
uri_string:quote was added in OTP 25.0
2024-02-19 15:33:09 +01:00
Paweł Chmielowski
045170a67e Fix dialyzer warning on R26 in mod_matrix* 2024-02-19 12:08:56 +01:00
Alexey Shchepin
c9deea1f6f Bugfix in mod_matrix_gw_room:get_sender_power_level 2024-02-19 14:05:25 +03:00
Alexey Shchepin
c10f2a22b6 Fix dialyzer errors 2024-02-16 06:00:57 +03:00
Alexey Shchepin
45f24c63cb Update mod_matrix_gw copyright dates 2024-02-15 09:38:14 +03:00
Badlop
18cb0bca19 Fix compilation with Erlang/OTP 27: don't use the reserved word 'maybe' 2024-02-15 01:57:44 +01:00
Badlop
b8181974ec Replace 'if' preprocessor directive with 'ifndef', add OTP_BELOW_24
The 'if' preprocessor directive was added in Erlang/OTP 21.0,
but ejabberd currently supports Erlang 20.0 and higher...
Let's use 'ifndef' instead.

https://www.erlang.org/doc/reference_manual/macros.html#flow-control-in-macros
https://www.erlang.org/doc/apps/compiler/notes#compiler-7.2
https://www.erlang.org/patches/otp-21.0#compiler-7.2
2024-02-15 01:57:41 +01:00
Badlop
816900a6cf Use uri_string module instead of the deprecated http_uri
http_uri is marked for deprecation since OTP 23
Use uri_string which is available since OTP 21
No need to provide alternative, because it's used only by mod_matrix,
and this runs only with Erlang/OTP 24 or higher.

https://www.erlang.org/patches/otp-23.0#inets-7.2
https://www.erlang.org/docs/23/man/http_uri
2024-02-15 01:57:39 +01:00
Alexey Shchepin
f44e23b8cc Add mod_matrix_gw 2024-02-14 06:59:23 +03:00
Badlop
9f934abd48 ejabberdctl: Fix crash running defined commands in container and installers 2024-02-09 14:12:06 +01:00
Badlop
70bf316f9d Explain that reopen_log and rotate_log only affect some modules (#4156) 2024-02-06 17:52:31 +01:00
Badlop
2979fb4a9b ext_mod: Support in WebAdmin when a module spec lacks some information 2024-02-06 17:52:29 +01:00
Badlop
c6878f9c9d ejabberdctl: Print argument description, examples and note in help 2024-02-06 17:52:25 +01:00
Badlop
1d65f4471b ejabberdctl: Document exclusive ejabberdctl commands like all the others 2024-02-06 17:52:24 +01:00
Badlop
e9de3748bd ejabberdctl: Reorganize commands related to mnesia info
- ejabberdctl mnesia: already implemented in ejabberd_admin.erl
- ejabberdctl mnesia info: renamed to mnesia_info_ctl
- ejabberdctl mnesia Arg: command removed, use mnesia_info_ctl instead
2024-02-06 17:52:22 +01:00
Badlop
ea40afbe03 update_sql_schema: Fix typo, add example MySQL version number 2024-02-06 17:52:19 +01:00
Holger Weiss
01c70868ef Ignore hints when checking for chat states
Ignore XEP-0334 elements when checking whether a stanza is a stand-alone
XEP-0085 chat state notification.  This allows for CSI-filtering chat
states with (e.g.) a no-store hint.

Thanks to Thilo Molitor for reporting the issue.
2024-02-03 13:20:34 +01:00
Alexey Shchepin
66d701e788 Add print_sql_schema ejabberdctl command 2024-01-24 22:52:20 +03:00
Badlop
589521bfd8 Update copyright year to 2024 (#4139) 2024-01-22 17:29:13 +01:00
Badlop
d802b6ab44 Fix version number in ejabberd_xmlrpc.erl 2024-01-22 17:29:12 +01:00
Badlop
f34c2b1714 Document new XEPs supported thanks to its implementation in the xmpp library 2024-01-22 17:29:09 +01:00
Badlop
78750bf753 Annotate version when the commands v1 are available 2024-01-22 17:29:07 +01:00
Badlop
65d585496c Document sql_flags option introduced in 00c7600 2024-01-22 17:29:06 +01:00
Badlop
a2ff5fbfdb Add observer and runtime_tools in releases when --enable-tools
When --enable-tools, include observer and runtime_tools
in the OTP releases, as they are required by "ejabberdctl etop".

With this fix, "ejabberdctl etop" works correctly when:
* rebar3 + make rel
* mix + make dev
* mix + make rel
2024-01-17 10:24:34 +01:00
Badlop
dd5a198222 Rebar3: Include Elixir files when making a release 2024-01-17 10:24:34 +01:00
Badlop
b08001183e ext_mod: Support Elixir modules with several defimpl, like Decimal 2024-01-17 10:24:34 +01:00
Badlop
0121adec03 ext_mod: Compile *.ex files also in source subfolders 2024-01-17 10:24:34 +01:00
Badlop
1bf80e861d Elixir: Fix: FORMATTER ERROR: bad return value (4087)
This is required since Elixir 1.15 when starting ejabberd with:
  ./configure --with-rebar=mix
  make relive
  make relive && ejabberdctl iexlive
  make install && ejabberdctl iexlive

Reference:
  https://elixir-lang.org/blog/2023/06/19/elixir-v1-15-0-released/
  https://hexdocs.pm/logger/Logger.Formatter.html#module-formatting
2024-01-17 10:24:34 +01:00
Badlop
5bb2beb179 Elixir: Fix: Couldn't find file Elixir.Hex.API
Fix for error when starting ejabberd with Elixir 1.15:
  [critical] Couldn't find file Elixir.Hex.API needed for Erlang application 'hex'.
2024-01-17 10:24:34 +01:00
Paweł Chmielowski
29ec5bff60 Add option to disable XEP-0474: SASL SCRAM Downgrade Protection support
Looks like clients using strophejs aren't able to authenticate when we
add data required by that spec to scram packets, so at least give a way
to disable this until clients will be fixed.
2024-01-16 12:03:35 +01:00
Holger Weiss
6c691a73bd Support XEP-0198 pings
If stream management is enabled, let mod_ping trigger XEP-0198
<r/>equests rather than sending XEP-0199 pings.  This avoids the
overhead of the ping IQ stanzas, which, if stream management is enabled,
are accompanied by XEP-0198 elements anyway.

Thanks to MoyaApp (<https://moya.app>) for sponsoring this work.
2024-01-15 21:38:54 +01:00
Badlop
74cb2e054f Rephrase sentences to avoid using "allow to + verb" 2024-01-11 13:42:06 +01:00
Badlop
5b6329a12e Fix a few spelling errors 2024-01-11 13:41:40 +01:00
Badlop
973ba58744 mod_avatar implements XEP-0398 0.2.0 since ddc29d4 2024-01-08 18:21:15 +01:00
Badlop
fc13fdceca Docs: Separate tags with commas in markdown docs 2024-01-04 22:01:21 +01:00
Badlop
d585b1fcb6 Docs: When definer is unknown, don't show Module section 2024-01-04 22:01:21 +01:00
Badlop
57bd0ef4f5 Docs: Optional support to get commands from runtime instead of BEAM files, based in bdeb4a7 2024-01-04 22:01:21 +01:00
Badlop
d140f99b68 ejabberd_xmlrpc: Fix support for restuple error response 2024-01-04 22:01:21 +01:00
Badlop
90766685ae ejabberd_ctl: When API version>0, update syntax of list results 2024-01-04 21:53:14 +01:00
Badlop
d65638efe1 ejabberd_ctl: Pass API version to format_result 2024-01-04 21:53:14 +01:00
Badlop
b34572e7ce ejabberd_ctl: Show proper command help when version is explicitly set 2024-01-04 21:53:14 +01:00
Badlop
c4c0cd1b77 ejabberd_ctl: Add support for list and tuple arguments
Tuple elements are separated with :
List elements are separated with ,

For example:
  ejabberdctl add_rosteritem user1 localhost testuser7 localhost NickUser77l gr1,gr2,gr3 both
  ejabberdctl create_room_with_opts room1 conference.localhost localhost public:false,persistent:true
  ejabberdctl subscribe_room_many user1@localhost:User1,admin@localhost:Admin room1@conference.localhost urn:xmpp:mucsub:nodes:messages,urn:xmpp:mucsub:nodes:affiliations

Affected commands:
- add_rosteritem
- create_room_with_opts
- oauth_issue_token
- send_direct_invitation
- set_vcard2_multi
- srg_create
- subscribe_room
- subscribe_room_many
2024-01-04 21:53:14 +01:00
Badlop
9f42f17088 mod_http_api: Fix to allow the client override the API version
When configured like:
listen:
  -
    request_handlers:
      /api: mod_http_api
      /apizero/v0: mod_http_api

What API version will be used depending on the URL:
- api/commandname use the latest available version
- api/commandname/v0 use version 0
- apizero/v0/commandname use version 0
- apizero/v0/commandname/v2 use version 2
2024-01-04 21:53:14 +01:00
Badlop
d570870be5 mod_http_api: When using API version>0, avoid result names for integers and strings 2024-01-04 21:53:14 +01:00
Badlop
8671bf70ab mod_http_api: When no specific API version is requested, use the latest 2024-01-04 21:53:14 +01:00
Badlop
e26729b483 Commands: Use list arguments in many commands that used separators
Commands that has some argument change:
- add_rosteritem
- oauth_issue_token
- send_direct_invitation
- srg_create
- subscribe_room
- subscribe_room_many
2024-01-04 21:53:14 +01:00
Badlop
d4113d9569 Commands: set_presence: switch priority argument from string to integer 2024-01-04 21:53:14 +01:00
Badlop
c5a5dd859e Commands: Improve syntax of many commands documentation 2024-01-04 21:53:14 +01:00
Badlop
0961fa1830 Commands: When result is rescode, result_desc is automatically added 2024-01-04 21:53:14 +01:00
Badlop
f18b8d464d Commands: Add a new muc_sub tag to all the relevant commands 2024-01-04 21:53:14 +01:00
Badlop
98d7519274 ejabberd_commands: Add the command version as a tag "vX" 2024-01-04 21:53:14 +01:00
Alexey Shchepin
8d2d3a6540 Support XEP-0424 in mod_mam_mnesia 2023-12-27 09:42:22 +03:00
Alexey Shchepin
a4bb695fc3 Support for XEP-0424 "Message Retraction" 2023-12-27 08:59:20 +03:00
Badlop
a57bdfffb7 Document recent change from 7d4330b57 2023-12-22 13:19:53 +01:00
Paweł Chmielowski
a5c973f86b Mention in docs for sql_prepared_statements that it works with MySQL 2023-12-12 11:29:12 +01:00
Holger Weiss
6b2b89da78 mod_push: Fix disabling of notifications
Remove the correct field from the c2s state when the client explicitly
disables push notifications.  This fixes a regression introduced by
commit c148ab4430.
2023-12-08 18:52:53 +01:00
Paweł Chmielowski
7d4330b57a Increase default value of negotiation_timeout from 30s to 2m
This timeout also covers in-band registration, and if user don't fill
registration form in that time leads to disconnect and aborting
registration. This will allow for more time to finish that.
2023-12-04 13:24:32 +01:00
Badlop
225d14cbbe Minor improvements in auth_password_format documentation 2023-12-01 00:07:21 +01:00
Paweł Chmielowski
48f0d9c15e Update xmpp to make us present both sasl1 and sasl2 with from in initial stanza 2023-11-22 18:34:18 +01:00
Paweł Chmielowski
9c7e91a1e9 Update xmpp and make opening bind2 session close other sessions with same tag 2023-11-21 13:55:40 +01:00
Paweł Chmielowski
91e74204b2 Teach mod_carboncopy how to interact with bind2 inline requests 2023-11-20 18:55:07 +01:00
Paweł Chmielowski
fdee4efe98 Fix presenting features and returning results of inline bind2 elements 2023-11-20 18:54:23 +01:00
Paweł Chmielowski
c61e56d8a6 Fix for one more dialyzer warning 2023-11-16 20:49:28 +01:00
Paweł Chmielowski
ad15659fb2 Fix warnings 2023-11-16 18:45:33 +01:00
Paweł Chmielowski
efffc3142a Add implementation for SASL2 and Bind2 2023-11-16 16:52:55 +01:00
Alexey Shchepin
b0a9b58958 Use the first unique index as a primary key in ejabberd_sql_schema 2023-11-16 16:00:35 +03:00
Paweł Chmielowski
3bf4cf5c3f Fix reversed logic in node fixup function 2023-10-26 15:44:45 +02:00
Paweł Chmielowski
52e7c166fc Normalize pubsub max_items node options on read
Older version used infinity value, for what never version use max, let's
always return max in that case.
2023-10-26 14:31:40 +02:00
Paweł Chmielowski
08a78a1654 Change logic for eldap tls_verify=soft and false
Looks like originally both soft and hard worked the same way, so lets make
them do that, and we also need to add {verify, verify_none} for false case
otherwise it fails on R26.
2023-10-26 11:17:17 +02:00
Paweł Chmielowski
c2d04bc478 Don't set fail_if_no_peer_cert for eldap ssl client connections
Looks like R26 generates error when this option is used for client
connection, let's just use verify_peer/verify_none for
ldap_tls_verify hard/soft options.

This should fix issue #4110.
2023-10-25 20:31:50 +02:00
Paweł Chmielowski
f48275bc11 Only care about pep bookmarks options when creating node from scratch 2023-10-19 19:26:25 +02:00
Alexey Shchepin
ec20691188 Disable update_sql_schema by default 2023-10-16 19:31:32 +03:00
Alexey Shchepin
c1af36ac20 Automatically create and update SQL schema 2023-10-16 18:21:08 +03:00
Alexey Shchepin
f6e8eb52f0 Fix ejabberd_sql:sql_query* types 2023-10-16 18:21:08 +03:00
Badlop
6340d61397 Dcoument ejabberd version number in the new options 2023-10-16 10:58:59 +02:00
Badlop
80d1e36542 mod_private: Document that it supports XEP-0402 now 2023-10-16 10:56:15 +02:00
Paweł Chmielowski
f75909db4c Allow pubsub node owner to overwrite items published by other persons
Owner is already permitted to delete those items, so it could do that by
deleting old item, and publishing it again, so i don't see reason to not
allow that overwrite.
2023-10-12 13:16:32 +02:00
Paweł Chmielowski
12d47455ba Add auth_external_user_exists_check option
This makes `user_check` hook work better with authentication methods
that don't have a way to determine if user exists (like is the case for
jwt and cert based authentication), and as result will improve mod_offline
and mod_mam handling of offline messages to those users. This reuses
information stored by `mod_last` for this purpose.

Should fix issue #3377.
2023-10-11 14:17:18 +02:00
Badlop
10245b40ee Add support to register nick in a room (#3455)
Registering a nick in the MUC service or in a room is mutually exclusive:
- A nick that is registered in the service cannot be registered in any
  room, not even the original owner can register it.
- Similarly, a nick registered in any room cannot be registered in the
  service.
2023-10-10 13:08:56 +02:00
Badlop
9534ca2da1 ext_mod: Support when git repository name is not identical to the module name
For example, ejabberd-contrib has an extra module, mod_prometheus,
that is hosted in a git repository named ejabberd-prometheus-exporter
2023-10-04 20:57:02 +02:00
Badlop
f9d11265d0 ext_mod: Don't crash when github page response is 403 2023-10-04 20:55:01 +02:00
Badlop
d85c125bef ext_mod: Use the same URL that ejabberd-contrib spec files 2023-10-04 20:54:49 +02:00
Paweł Chmielowski
62d3d7a32d Relay pubsub iq queries to muc members without using bare jid
We do something similar for vcard queries, this allows target server
to respond to those queries by target server, which is what we want to
do in both of those cases.
2023-10-04 17:20:20 +02:00
Paweł Chmielowski
86465c418d Try to fill xep-0402 bookmarks from private storage on first access 2023-10-02 14:39:30 +02:00
Paweł Chmielowski
a63d3bf0d6 Fix crash in mod_private bookmarks converter
This should fix issue reported in #4092
2023-10-02 08:32:24 +02:00
Paweł Chmielowski
9ba645503b Fix dialyzer warning 2023-09-27 23:02:32 +02:00
Paweł Chmielowski
765770aaa5 Add support for xep-0402 - PEP Native Bookmarks 2023-09-27 18:36:30 +02:00
Paweł Chmielowski
c3e0b746d7 Add pubsub_delete_item hook 2023-09-27 18:30:17 +02:00
Paweł Chmielowski
accb0bc35a Report support of config-node-max in pep 2023-09-27 18:29:56 +02:00
Holger Weiss
ac47b7b8cb ejabberd_web_admin: Make text translatable
This also fixes a type issue.
2023-09-26 23:21:45 +02:00
Badlop
ab431b378a WebAdmin: Show a warning when visiting webadmin with non-privileged account (4089) 2023-09-26 18:51:56 +02:00
Badlop
a534196315 Fix unused variable, forgotten in the recent commit 739a231 2023-09-26 18:51:51 +02:00
Badlop
245c9ae446 ejabberd_ctl: Support policy=user in the help and return proper arguments 2023-09-21 13:47:07 +02:00
Badlop
8d39431d68 ejabberd_ctl: Improve printing lists in results
When formatting the results of a command:
- If the top of the result is a list, split elements with newline as usual
- If it's a list in one of the resulting lines, split elements with ;
2023-09-21 13:47:05 +02:00
Badlop
739a231259 Improve get_roster command to return groups in a list instead of newlines 2023-09-21 13:47:00 +02:00
Paweł Chmielowski
426fd14b11 Make sure that policy=user commands have host instead of server arg in docs
We renamed them in ejabberd_command, but forgot to update doc geenerator.
2023-09-20 14:06:23 +02:00
Holger Weiss
6c573cc9fd mod_push: Set 'last-message-sender' to bare JID
If the mod_push option 'include_sender' is set to 'true', use the bare
JID rather than the full JID for the 'last-message-sender' field.
2023-09-09 17:33:16 +02:00
Holger Weiss
2782430887 mod_push: Add 'notify_on' option
If the new 'notify_on' option is set to 'messages', notifications are
only triggered by actual chat messages with a body (or encrypted
payload).  The default behavior remains to generate a notification on
any kind of stanzas.

Thanks to EISST International Ltd for sponsoring this work.
2023-09-08 19:49:17 +02:00
Badlop
706424f0d2 Fix crash when loading room from DB older than ffa07c6, 23.04
Before commit ffa07c6, the subject_author was just the author nick,
since that commit, subject_author contains {author nick, JID}.
2023-09-04 11:32:28 +02:00
Badlop
a01de8d944 Fix small bug introduced in 5d549dc
When providing a client-id as explained in
  https://www.process-one.net/blog/understanding-ejabberd-oauth-support-roadmap/
ejabberd crashed with an error
  exception error: no function clause matching
  ejabberd_oauth:get_client_identity(
as reported in
  https://stackoverflow.com/questions/76922951/ejabberd-oauth-api-http-1-1-502-bad-gateway
2023-08-28 18:26:03 +02:00
Paweł Chmielowski
c0e7774937 Don't always store messages passed through muc_filter_message
Recently we added new places where we call muc_filter_message to add
occupandid info to messages, but this also made them be stored in archive
as mod_mam uses that hook for getting sent messages - in case of those
messages we shouldn't be doing this.

This should fix issue #4083
2023-08-25 14:20:51 +02:00
Paweł Chmielowski
00c76003cb Add ability to force alternative upsert implementation in mysql 2023-08-18 11:46:37 +02:00
Badlop
b29f87a978 Result of running: make doap options 2023-08-16 13:14:02 +02:00
Holger Weiss
2dc843cddd mod_privilege: Don't fail to edit roster (#3942) 2023-08-16 13:08:21 +02:00
Badlop
a84fbd6a74 Improve syntax of many command descriptions for the Docs site 2023-08-16 12:27:23 +02:00
Badlop
f8af3a0005 create_room_with_opts: fix typo and move examples to args_example (#4080) 2023-08-16 12:27:23 +02:00
Badlop
83e51c815d Pass also MUC room retract messages over the muc_filter_message (#3397) 2023-08-16 12:27:23 +02:00
Badlop
ff24700156 Fix support to retract a MUC room message
Now this works as expected
https://xmpp.org/extensions/xep-0425.html#example-4
2023-08-16 12:27:22 +02:00
Badlop
7683691f5a mod_muc_occupantid: New mnesia table to store rooms salts (#3397) 2023-08-16 12:27:22 +02:00
Badlop
3479f88dab Pass MUC room private messages over the muc_filter_message too (#3397) 2023-08-16 12:27:22 +02:00
Badlop
86fc2f157e Always add the occupant id, even in non-anonymous rooms (#3397) 2023-08-16 12:27:22 +02:00
Badlop
ffa07c649b Store the subject author JID, and run muc_filter_message when sending subject (#3397)
When changing the room subject, store the original author JID,
so later it can be provided in the hook and mod_room_occupantid
can use it to calculate and provide the occupant id

This is noticeable when a new occupant joins an existing room,
and receives the room subject.
2023-08-16 12:27:22 +02:00
Badlop
2bd61abd71 Convert allow_private_message MUC room option to allowpm (#3736) 2023-08-16 12:25:46 +02:00
Badlop
66df953da1 Fix usage of plugins option, which produced default_node_config ignore (#4070) 2023-08-16 12:25:42 +02:00
Badlop
550a586d2a New listener option unix_socket, useful when setting unix socket files (#4059)
listen:
  -
    port: "unix://tmp/asd/socket"
    unix_socket:
      mode: '0775'
      owner: 117
      group: 135
2023-08-16 12:25:36 +02:00
Badlop
16473ab691 When sending message on behalf of user, trigger user_send_packet (#3990)
This way, MAM and CarbonCopy get triggered.
This is useful for transports like Slidge.
2023-08-16 12:25:29 +02:00
Paweł Chmielowski
c5afd0322e Properly parse mysql version even if it doesn't have type tag 2023-08-14 17:12:16 +02:00
Alexey Shchepin
eeacace02a Update some modules to the new gen_mod API 2023-08-09 17:08:45 +03:00
Holger Weiss
caf3807bcc ejabberd_systemd: Add a few debug messages 2023-08-09 01:58:48 +02:00
Holger Weiss
6c7e85d3d8 ejabberd_systemd: Avoid using gen_server timeout
Don't (ab)use the gen_server timeout mechanism for pinging the systemd
watchdog.  Under certain conditions (e.g., the process receiving sys
messages), the gen_server timeout might not be triggered as expected.

Fixes #4054, fixes #4058,
2023-08-09 01:54:12 +02:00
Holger Weiss
f0db7623d1 mod_push_keepalive: Don't let hook crash
Check whether mod_push_keepalive is loaded for a given host before
querying the module configuration for that host.  This avoids a hook
crash in the case where the module is enabled for some but not all
hosts.
2023-08-09 00:11:43 +02:00
Holger Weiss
26ed6539ba mod_push_keepalive: Delay 'wake_on_start'
Delay the 'wake_on_start' notifications until ejabberd is fully
initialized.  This makes sure no s2s connections are initiated before
certificates are loaded.

Many thanks to Friedrich Altheide for reporting the issue.
2023-08-08 20:17:10 +02:00
Alexey Shchepin
a9347cd248 Fix unused variable warnings in mod_stats 2023-08-04 20:54:02 +03:00
Alexey Shchepin
60002fc145 Update some modules to the new gen_mod API 2023-08-04 18:53:50 +03:00
Paweł Chmielowski
20a8654be2 Reset scram fields when setting plain password in ejabberd_auth_sql
Setting scram password, then disabling scram and setting plain password
again, will make us think we are still using scramed password and crash
when trying to process it as such. This makes sure that when set plain
password we don't leave parts from old scram password.
2023-08-03 13:07:13 +02:00
Badlop
25411333da Add support for XEP-0421 Occupant Id in anonymous MUC rooms (#3397) 2023-08-02 17:54:54 +02:00
Alexey Shchepin
4bd77797fc Add shorter forms for gen_mod hook/iq_handler API 2023-08-01 18:14:08 +03:00
Alexey Shchepin
03ffbe00c1 Update mod_disco to the new gen_mod API 2023-07-31 16:52:00 +03:00
Alexey Shchepin
5a9099f49c Extend gen_mod API to simplify hooks and IQ handlers registration 2023-07-31 16:52:00 +03:00
Paweł Chmielowski
3710dc1e3b Use prepared statement with mysql 2023-07-25 18:11:24 +02:00
Badlop
db03c7428c Web Admin roster page: move the AddJID textbox to top (#4067) 2023-07-24 20:27:01 +02:00
Badlop
78f81de252 Improve support to stop external modules written in Elixir 2023-07-13 13:41:18 +02:00
Paweł Chmielowski
fafb48e88f
Merge pull request #4025 from jpds/increase-default-backlog
ejabberd_listener.erl: Increase default listen queue backlog value
2023-07-11 12:19:33 +02:00
Paweł Chmielowski
54314e5bb9 Better error handling in mod_muc_rtbl
Should fix issue #4050
2023-07-04 18:18:49 +02:00
Badlop
dcc8149f58 New command to halt ejabberd abruptly with an error status code
Used for processone/ejabberd-contrib#97
2023-06-20 17:54:10 +02:00
Badlop
d2c54fd5fe Fix calling ejabberdctl command with wrong number of arguments with Erlang 26
In Erlang up to 25.3, the lists:zip arguments were [A1, A2]
Since Erlang 26.0, the arguments are: [A1, A2, fail]

93748a8d84
2023-06-13 12:25:27 +02:00
Badlop
f40a7b1c77 OAuth: Handle badpass error message 2023-06-13 12:25:22 +02:00
Badlop
c333cc0776 New option install_contrib_modules
This option is read during ejabberd start or config reload.
It installs the listed modules which aren't yet installed,
as long as allow_contrib_modules is not disabled.
Edit ejabberd.yml and configure the desired ejabberd-contrib modules,
add them in the install_contrib_modules option,
finally start ejabberd (or reload config).
2023-06-09 10:27:13 +02:00
Badlop
0bbc255814 Dialyzer dirty workarounds because re:mp() is not an exported type
Since Erlang/OTP 26, Dialyzer by default reports unknown types.
ejabberd's type specs refer to the re:mp() type,
but that isn't exported in the OTP source code,
and cannot be used in any other modules.
This commit provides very dirty workarounds, and any cleaner
alternative is very welcomed.
2023-06-09 00:02:15 +02:00
Badlop
436074c67a When installing module already configured, keep config as example
When installing a module using ext_mod, if it has already configuration
in the modules section, copy its specific config file as an example
(copy file and rename it).
This may happen when using the new install_contrib_modules option.
2023-06-09 00:02:02 +02:00
Paweł Chmielowski
bb8e892323 Add alternate version of mysql upsert
This one works by issuing select and then insert or update or skip depending
on what select returns. We use this on mysql 5.7.26 and 8.0.20 where
previous implementation using 'replace' or 'on conflict update' can cause
excessive deadlocks.
2023-06-07 16:38:07 +02:00
Paweł Chmielowski
3eecf4ae8a Remove existing role information for users that are kicked from room
This should fix issue reported in #4035
2023-05-24 12:15:20 +02:00
Paweł Chmielowski
4a53d4cb56 Expand rule "mucsub subscribers are members in members only rooms" to more places 2023-05-24 11:26:48 +02:00
Paweł Chmielowski
1818a29c29 Don't crash in mod_shared_roster_ldap:get_member_jid on empty output
This based on crash from issue #3614
2023-05-22 12:48:29 +02:00
Paweł Chmielowski
dd2efc360b Fix return values from calculate_diff inside mod_privacy_sql 2023-05-02 15:59:40 +02:00
Paweł Chmielowski
8e64992f47 Use more efficient way to calculate changes in set_privacy_list 2023-05-02 11:43:29 +02:00
Jonathan Davies
040c72f1c8 ejabberd_listener.erl: Increase default listen queue backlog value to 128, which
is the default value on both Linux and FreeBSD.
2023-04-25 20:11:04 +01:00
Badlop
c6b295b5a0 Fix typo in the previous commit 2023-04-25 09:48:02 +02:00
Badlop
2a4a6bec18 Add trailing backslash to URLs shown in mod_muc_log disco#info 2023-04-24 13:43:09 +02:00
Badlop
0d3f8c7b9f Make mod_register_web redirect to page that end with / (#3177)
Code copied from ejabberd_web_admin.erl, commit 5ec21438
2023-04-24 13:43:07 +02:00
Paweł Chmielowski
5b8ebed81b Optimize mod_privacy_sql:set_list
Previously we always did delete everything and set all entries back, now
we check if we need to delete anything and if not insert only missing data.
2023-04-20 10:55:30 +02:00
Badlop
d717ffd1a0 Update version notes of options and commands 2023-04-18 10:37:14 +02:00
Badlop
5b695766ae Mention what ejabberd version first supports rtbl 2023-04-18 10:37:04 +02:00
Paweł Chmielowski
f5b6909cca Unregister hooks on stop in mod_muc_rbtl 2023-04-17 18:03:21 +02:00
Paweł Chmielowski
98d348893b Make mod_muc_rtbl notify only local node rooms 2023-04-17 17:07:59 +02:00
Paweł Chmielowski
c942c31e38 Add mod_muc_rtbl
This implements Real-time blocklists for XMPP (xmppbl.org).

Closes #4017
2023-04-17 16:59:42 +02:00
Paweł Chmielowski
70cbdd1117 Allow to update state from muc_process_iq hook 2023-04-17 16:57:54 +02:00
Paweł Chmielowski
1114a35e0a Recognize message retractions in mod_muc 2023-04-14 12:32:35 +02:00
Paweł Chmielowski
d12e5a44b8 Add by attribute to generated muc moderation messages 2023-04-14 12:31:34 +02:00
Badlop
99e51a2123 Mention in mod_mam.erl its support for XEP-0425: Message Moderation
Then run "make doap" to regenerate ejabberd.doap
2023-03-30 17:02:54 +02:00
Paweł Chmielowski
f6385fae50 Fix dialyzer warning 2023-03-30 14:53:51 +02:00
Paweł Chmielowski
6da1bb5b22 Add support for "xep-0424 Message Moderation"
This fixes issue #3730
2023-03-30 14:38:08 +02:00
Badlop
1d62dc4621 Set roster name from XEP-0172, or the stored one (#1611) 2023-03-28 11:41:27 +02:00
Badlop
e2496562f9 Preliminary support to store extra elements in subscription request (#840) 2023-03-28 11:41:24 +02:00
Badlop
c4a2f8d64f captcha_url option now accepts 'auto' value, and it's the default 2023-03-22 16:23:41 +01:00
Badlop
6c620f6f43 Remove wrong get_room_history command fields specification 2023-03-22 16:23:37 +01:00
Paweł Chmielowski
3c97775573 Pubsub xdata fields max_item/item_expira/children_max use 'max' not 'infinity'
Codec in xmpp crashes when we use infinity (see issue #4011), so lets
convert those values before passing them to xmpp:encode(0
2023-03-21 15:30:44 +01:00
Blake Miller
f953dc3f5e Persist none role for outcasts
`none` roles *should* be persisted for banned users. I totally forgot about this, my bad. I'm shocked nobody else noticed it.
2023-03-20 17:07:10 +01:00
Paweł Chmielowski
9503beca6c Make mod_muc_room:set_opts process persistent flag first
As processing some other options depends on this setting flag in room
state.
2023-02-20 13:42:52 +01:00