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
Paweł Chmielowski
dfe4884d16
Allow passing affiliations and subscribers to create_room_with_opts command
2023-02-20 13:03:46 +01:00
Paweł Chmielowski
f10f6d176f
Store state in db in mod_muc:create_room()
2023-02-20 12:56:41 +01:00
Paweł Chmielowski
4e7aa41e3f
Make subscribers members by default
2023-02-20 12:55:31 +01:00
Paweł Chmielowski
d91812730b
Stop ejabberd_system_monitor before stopping node
...
Sometimes monitor module is performing checks when node is stopping and
this causes crash in monitoring process.
2023-02-08 19:53:19 +01:00