Holger Weiss
8daea451e3
mod_pubsub: Fix typo in 'hosts' documentation
...
Thanks to Melvin Keskin for spotting this.
2020-08-25 08:21:43 +02:00
Badlop
864188ad65
Mark dangerous buttons with CSS ( #3363 )
2020-08-24 16:44:07 +02:00
Badlop
b9926c6796
Update opt files with "make options"
2020-08-21 18:09:03 +02:00
Badlop
92913389a5
Fix vCard search by User when using Mnesia
...
Reported in
https://stackoverflow.com/questions/63499864/how-to-search-registered-user-on-ejabberd-server-from-client-side-using-smack-li
2020-08-20 16:46:06 +02:00
Holger Weiss
65be619907
mod_pubsub: Remove 'dag' node plugin documentation
...
Commit c9d3beb9eb
removed the 'dag'
node/nodetree plugins.
2020-08-18 06:50:33 +02:00
Badlop
842ec1494c
Fix to allow vhost admins to view WebAdmin menus ( #3355 )
2020-08-10 21:17:59 +02:00
Paweł Chmielowski
8a645a2d3d
Don't forget not-persistent rooms in load_permanent_rooms
...
Only non-persistent rooms that we are storing are those that were hibernated
but also have mucsub subscribers in them. I don't think it makes sense to
destroy those rooms on restart/reload if we didn't destroy them in first
place when last member did leave room, let just handle those rooms like
they are persistent, and kill them only when all user unsubscribe from them
or they are destroyed from api.
2020-08-06 11:44:44 +02:00
Badlop
4a54395561
Improve explanations of cafile options
2020-08-03 15:18:50 +02:00
Paweł Chmielowski
1b168e7d5c
Add support for unix socket in listeners
...
To use it you just need to set port value to "unix:/path/to/socket"
2020-07-28 12:19:30 +02:00
Paweł Chmielowski
d5935fd1ad
Don't log http errors when socket get closed after processing one request
2020-07-28 12:19:30 +02:00
Badlop
2ea5f7856c
In fact misc:try_url/1 is not used anymore
2020-07-15 11:41:51 +02:00
Badlop
e5b66aadaf
Fix try_url/1 parsing of uri_parse result format, reported by Dialyzer
2020-07-14 12:21:37 +02:00
Holger Weiss
e30592c050
mod_stun_disco: Fix function specification
2020-07-11 17:51:20 +02:00
Badlop
ff92dab49e
Parse also ServerHost in create_room* commands ( #3326 )
2020-07-10 13:06:05 +02:00
Badlop
f652f8c8d6
Fix crash when creating new MUC log file in non-ASCII lang ( #3324 )
2020-07-10 12:03:12 +02:00
Badlop
80a502782b
Use the same leading sentence than other sections
2020-07-06 16:39:15 +02:00
Holger Weiss
3bf7fbc117
ejabberd_stun: Filter info/debug messages
...
Update 'stun' dependency, and drop the info/debug messages now logged by
the 'stun' application if OTP's new logging API is used.
2020-07-01 21:53:22 +02:00
Badlop
61926a44be
Subscriber should not send message to moderated room ( #3222 )
2020-06-24 13:17:04 +02:00
Holger Weiss
ec5f369d9d
ejabberd_logger: Avoid excessive stat calls
...
By default, the logger_std_h module shipped with OTP 21.0 and newer
reads the log file information prior to each and every write operation.
This is done to play well with external log rotation tools.
In order to minimize the performance penalty in situations where the log
file is flooded, configure logger_std_h to skip reading the file
information as long as no more than one second has passed since it was
last read.
2020-06-23 21:27:12 +02:00
Paweł Chmielowski
768460b518
Correctly handle user_regexp acl rules with not matching host
...
This should fix issue reported in issue 3304
2020-06-22 10:24:10 +02:00
Holger Weiss
515dfc002b
mod_stun_disco: Fix wording of log message
2020-06-19 18:04:26 +02:00
Badlop
16645a3c0a
Document that only ejabberdctl can join and leave a local node ( #3049 )
2020-06-09 13:23:17 +02:00
Badlop
a54c667c80
Remove old Regexp, the new Re is available since Erlang/OTP R12B-4
2020-06-08 15:27:27 +02:00
Badlop
337ba42953
Get back some commented specs that required Erlang R12
2020-06-08 15:27:23 +02:00
Badlop
f2e81ed2a0
When updating group in cache, first delete so insert succeeds ( #3296 )
2020-06-05 19:34:00 +02:00
Badlop
7efc208b9e
Handle ets_cache return value in shared roster get_group_opts ( #3296 )
2020-06-05 19:33:52 +02:00
Holger Weiss
945a5cd09c
misc: Don't crash on URLs without port number
...
Let misc:uri_parse/1 return default HTTP(S) port number if the URL
doesn't specify a port number, analogous to the behavior when
USE_OLD_HTTP_URI is defined.
2020-06-03 12:22:14 +02:00
Holger Weiss
9ea51d3295
misc: Make sure uri_parse/1 returns strings
...
The uri_string:parse/1 function returns the URI elements as strings or
as binaries depending on the input. Make sure misc:uri_parse/1 returns
strings in both cases, analogous to the behavior when USE_OLD_HTTP_URI
is defined.
2020-06-03 12:02:29 +02:00
Holger Weiss
cd336369a5
mod_stream_mgmt: Don't kill new PID on resumption
...
During XEP-0198 resumption, the ejabberd_c2s process that handles the
new connection reopens the ejabberd_sm session of the old one. Since
commit b4770815c0
, the new process adds
the new session table entry before the old process removes the old one.
While adding the new one, ejabberd_sm checks for old sessions to
replace. This check assumes old SIDs compare lower than new ones. This
assumption didn't necessarily hold for the session resumption case,
where the old SID's timestamp was copied over to the new SID and only
the PID was updated. Therefore, the new process was killed if the new
PID happened to be smaller than the old one.
Fix this by having mod_stream_mgmt use its own SM-ID rather than copying
over the old SID's timestamp to the new SID.
Thanks to Thilo Molitor and Friedrich Altheide for reporting the issue,
and to Thomas Leister for his help with debugging it.
2020-06-01 21:33:55 +02:00
Badlop
c0f7008e96
Use old http_uri, crypto and pg2 only with old Erlang/OTP ( #3284 )
2020-06-01 10:35:28 +02:00
Holger Weiss
7a37483307
Rename 'turn_v4_ip' and 'turn_v6_ip' options
...
The 'turn_ipv4_address' and 'turn_ipv6_address' option names are
probably more intuitive.
2020-05-29 18:40:19 +02:00
Holger Weiss
56d00e427d
ejabberd_stun: Add 'turn_blacklist' option
...
The new 'turn_blacklist' listener option allows for specifying one or
more IP addresses and/or subnet addresses/masks. The TURN server will
refuse to relay traffic from/to blacklisted IP addresses. By default,
Teredo and 6to4 addresses are blacklisted, as mandated by RFC 6156
(section 9.1).
2020-05-21 21:46:02 +02:00
Holger Weiss
7bb4da2fee
mod_stun_disco: Make 'services' example shorter
...
Omit the 'tcp' and 'stuns' services from the list of example 'services'
in the documentation. For typical use cases, those are less interesting
than 'udp' and 'turns' services.
2020-05-19 23:23:24 +02:00
Holger Weiss
f19b975e8d
mod_stun_disco: Offer local IPv6 services
...
Also announce local STUN/TURN services listening on IPv6 sockets (unless
the 'offer_local_services' option is set to 'false').
2020-05-19 22:55:12 +02:00
Holger Weiss
83fa637569
ejabberd_stun: Support IPv6 for TURN
...
The stun application now supports RFC 6156: TURN Extension for IPv6, and
therefore needs separate IPv4 and IPv6 relay addresses.
2020-05-19 21:42:41 +02:00
Holger Weiss
858bfb4b80
Let ejabberd_stun listen on IPv6 sockets
...
The stun application now allows IPv6 clients to perform STUN requests
and to allocate TURN relays.
2020-05-19 20:22:58 +02:00
Badlop
42c82c9e72
Fix hardcoded URL to register.css and URLS to sections ( #3281 )
2020-05-19 19:32:06 +02:00
Badlop
70977cbb13
Sort databases alphabetically in options doc (thanks to Neustradamus)( #3246 )
2020-05-19 16:38:08 +02:00
Paweł Chmielowski
6f54b6ae3b
Don't crash in mod_muc_log:get_url when mod_muc_log is not enabled
...
Disco on room can call this function even when logger is not enabled,
but this room option was enabled previously when logger was active.
2020-05-15 13:44:09 +02:00
Badlop
e94b89a57d
Display installed ejabberd version in webadmin footer ( #3272 )
2020-05-15 11:20:53 +02:00
yuriyz-w
44528d3fef
Make SQL query more generic for MSSQL compatibility ( #3271 )
2020-05-15 09:19:55 +02:00
Badlop
f3b8dc9c0b
Update *_vcard commands help, so they are better displayed in Docs
2020-05-14 20:02:47 +02:00
Badlop
9d923e8e6d
Update syntax of some options so they are better displayed in Docs
2020-05-12 21:33:00 +02:00
Badlop
d7d8085d3b
Fix most EDoc errors, even if that's not used nowadays apparently
2020-05-11 19:53:13 +02:00
Badlop
5e70a47f20
If new session Pid exists when sm_remove is called, then keep Ping ( #3260 )
2020-05-11 18:22:35 +02:00
Holger Weiss
e286bb23db
mod_stun_disco: Bump credentials_lifetime default
...
Increase the default lifetime of temporary credentials to 12 hours.
ejabberd's built-in TURN server re-queries the temporary password from
mod_stun_disco whenever a TURN client attempts to refresh an allocation,
and mod_stun_disco will only return the password as long as the
credentials didn't expire. Therefore, the credentials lifetime
effectively limits the maximum lifetime of a TURN allocation when
ejabberd's TURN service is used, so the default value shouldn't be too
short.
2020-05-11 17:32:28 +02:00
Badlop
2c42bd07c8
Fix link in mod_sip to SIP Docs section
2020-05-09 16:10:26 +02:00
Badlop
2001540143
Provide minimal mod_bosh configuration example
2020-05-09 15:04:10 +02:00
Badlop
d88a32992a
Add link in acme option to ACME section in ejabberd Docs
2020-05-09 11:45:39 +02:00
Badlop
c990704418
Remove ancient and rather useless incode ejabberd_commands documentation
2020-05-07 19:38:12 +02:00
Badlop
edf5b3c7f0
Don't use string:take, as it isn't available in Erlang/OTP 19.3 ( #3256 )
2020-05-07 16:09:51 +02:00
Badlop
e5a2d42484
Fix webadmin muc room sorting broken due to trailing slash patch ( #3256 )
2020-05-07 11:22:43 +02:00
Paweł Chmielowski
51e45516a4
Unconditionally send presence unavailable to all pres_a recipient
...
Previously we only send that presence to direct presence recipients if
client also sent general self presence (without to attribute).
This should help with issue #3245
2020-05-07 10:40:18 +02:00
Badlop
41b06cb79e
Show deprecation warning if ejabberd_xmlrpc is configured as listen module ( #2915 )
2020-05-06 14:08:43 +02:00
Badlop
d8509aec12
Remove access_commands useless lines, api_permission replaced it years ago
2020-05-06 14:08:40 +02:00
Holger Weiss
5649e35a64
ejabberd_listener: Let supervisor terminate child
...
If a TCP connection was closed before the socket was handed over to a
supervised child process, let the supervisor terminate the process
rather than killing it directly. This avoids crash log entries
generated by the supervisor.
2020-05-05 17:22:52 +02:00
Holger Weiss
865074603c
Set 'max_fsm_queue' default value (back) to 10000
...
The default value for the 'max_fsm_queue' option was set to 10000 in
commit 79685da90b
, and that value is still
documented to be the default. It was (probably unintentionally) changed
to 5000 in commit 03de853e4f
.
It makes sense to keep it larger than the value of mod_stream_mgmt's
'max_ack_queue' option.
2020-05-05 01:34:12 +02:00
Holger Weiss
6d13120e69
mod_stun_disco: Log discovered services on startup
...
If the 'offer_local_services' option isn't set to 'false', log an [info]
message for each auto-discovered ejabberd_stun listener on startup (and
on configuration reload).
2020-05-05 01:02:50 +02:00
Holger Weiss
b1e967eaf3
mod_stun_disco: Remove unnecessary inclusion
2020-05-03 17:27:41 +02:00
Holger Weiss
151fa2ec50
mod_stun_disco: Apply minor documentation cleanups
2020-05-03 17:20:15 +02:00
Holger Weiss
e4de03f3df
mod_stun_disco: Try to resolve listener address
...
In some IPv6-only networks, hostnames that have no AAAA record are
resolved to an IPv6 address that's mapped to the host's IPv4 address.
This allows the IPv6-only clients to communicate with IPv4-only services
such as ejabberd's built-in STUN/TURN server. If STUN/TURN clients try
to contact the IPv4 address directly rather than using the mapped IPv6
address, the connection will fail.
Therefore, try to resolve the IP address of local ejabberd_stun services
to the hostname and announce that hostname rather than the IP address if
(and only if) the hostname resolves back to the original IP address, and
not to any additional IPv4 or IPv6 address(es).
This can (and should) be reverted once IPv6 support is added to
ejabberd's built-in STUN/TURN server.
2020-04-30 22:40:01 +02:00
Badlop
4a7d42647f
Rewrite sentences in modules options examples, to not break Docs indentation
2020-04-28 21:31:35 +02:00
Jérôme Sautret
24a11fc8e8
Merge pull request #3235 from weiss/xep-0215
...
Support STUN/TURN service discovery
2020-04-28 16:03:21 +02:00
Holger Weiss
6eb2f07274
ejabberd_stun: Tone down 'auth_realm' warning
...
These days, STUN/TURN authentication can be performed with ephemeral
credentials, where the REALM is irrelevant. Therefore, just log an
[info] message rather than a [warning] in the case where no
authentication REALM is configured but multiple virtual domains exist.
2020-04-28 10:34:43 +02:00
Holger Weiss
69d1d62add
Support XEP-0215: External Service Discovery
...
Add the 'mod_stun_disco' module, which allows XMPP clients to discover
STUN/TURN services and to obtain temporary credentials for using them as
per XEP-0215: External Service Discovery. The temporary credentials
handed out to clients have the format described in:
https://tools.ietf.org/html/draft-uberti-behave-turn-rest-00
Also add the new module to the example configuration file.
Closes #2947 .
2020-04-28 10:34:43 +02:00
Badlop
3db9459591
Don't offer X-OAUTH2 if the only auth method enabled is Anonymous ( #3209 )
2020-04-27 20:03:21 +02:00
Paweł Chmielowski
6320dfd34e
Don't store caps information for direct presences of muc room
...
We really don't need those, and thanks to each individual room having
different hash (as one of hashed data is room description) we end with
lot of data that we really don't need.
2020-04-27 13:17:51 +02:00
Badlop
055fe744d3
Clean some unused functions in ejabberd_ctl, this makes "make hooks" happy
2020-04-24 20:36:24 +02:00
Holger Weiss
88f392721b
gen_mod: Reload modules after reloading listeners
...
Make sure modules won't be reloaded before listeners. This is necessary
to allow the (not yet committed) 'mod_stun_disco' module to parse the
listener configuration after configuration reloads.
2020-04-23 20:05:40 +02:00
Holger Weiss
c55e7b8499
ejabberd_stun: Fix 'turn_ip' fallback
...
The 'turn_ip' option validator doesn't accept an inet:ip4_address()
tuple.
While at it, change the logic to only perform the fallback address
lookup if no 'turn_ip' is configured (analogous to the fallback
mechanism for the case where the 'auth_realm' is undefined).
2020-04-23 18:32:40 +02:00
ChaosKid42
1f7ca91670
use dsn-less config for mssql ( #3131 )
2020-04-23 13:56:41 +02:00
Holger Weiss
09a87f5a0c
ejabberd_stun: Handle hashed passwords gracefully
...
Don't crash when STUN/TURN authentication is performed against a
SCRAM-hashed password.
2020-04-22 00:16:03 +02:00
Holger Weiss
1db70edcf8
ejabberd_stun: Add 'stun_get_password' hook
...
Add a hook that allows modules to offer a password for STUN/TURN
authentication.
2020-04-22 00:09:42 +02:00
Badlop
1a3533e4a2
Fix some English typos
2020-04-21 20:58:01 +02:00
Badlop
3db9de26e9
Rephrase mod_admin_extra doc, a2x screwed the format when building Docs
2020-04-21 20:11:39 +02:00
Badlop
78f0439e78
Make a few more strings translatable in MUC and Shared Roster WebAdmin
2020-04-20 20:24:56 +02:00
Holger Weiss
c836dc66a8
ejabberd_stun: Set a default 'turn_ip'
...
Try to resolve the local hostname, use the result as the default
'turn_ip', and only log a warning if that fails. Using the local
hostname's address by default is analogous to mod_proxy65's behavior.
2020-04-20 08:42:32 +02:00
Badlop
0355e15a42
Fix doc content in mod_admin_extra so it can be extracted by make translations
2020-04-17 17:28:39 +02:00
Badlop
101f7a6d63
Check if mod_muc_log is enabled before setting logging option ( #3215 )
2020-04-17 16:19:58 +02:00
Badlop
4aa85c538c
When rescode is some unexpected, probably error message, print it
2020-04-17 16:19:55 +02:00
Paweł Chmielowski
22980ed8a5
Restart offline pop_messages when there is mismatch between select and delete
...
When another connection is inserting something to spool at this same time
as we do pop_messages, it's possible that insert will happen between we
fetch messages and delete them, so we effectively will delete it without
delivering it to client. This change catch this situation and restart
transaction, so we should always have consistent results.
2020-04-17 15:30:28 +02:00
Badlop
0705695e02
Update documentation of mod_shared_roster ( #3214 )
2020-04-16 13:12:32 +02:00
Paweł Chmielowski
c11922e2a2
Make session iq response have from be set to server jid
...
It looks like old version of Smack don't accept request that are have
from sent to sender jid, but are only working when jid is set to server
address. This is also how it looks in old xmpp rfc examples.
2020-04-16 13:05:42 +02:00
Paweł Chmielowski
37226dd41f
Resending unacked stanzas should send even archived msgs if mod_offline is enabled
...
Messages that are received when no c2s is active will be stored in offline,
even when mam archived them, so i don't think we should be doing something
different in this case.
2020-04-16 13:04:12 +02:00
Badlop
cd0b65f4d5
Fix unused variables from previous commit
2020-04-14 15:00:45 +02:00
Badlop
b7c088d4b0
Update links to the ejabberd Docs page in WebAdmin
2020-04-14 13:59:11 +02:00
Badlop
e197b25e82
Rename opts->name to label, to avoid confusion with the group name ( #3214 )
...
Also updated WebAdmin to show more meaningful explanations
Also fixed a bug that break support for group@host in Displayed
2020-04-14 13:58:53 +02:00
Badlop
8694517c34
Minor fixes in doc
2020-04-09 16:30:21 +02:00
Badlop
2febd1c220
Copy more option explanations from ejabberd Docs site
2020-04-08 18:49:41 +02:00
Badlop
aa0ed37034
Add ejabberd version number to man pages
2020-04-08 18:48:09 +02:00
Badlop
da18245d9a
Indicate which ejabberd version is used to produce the page
2020-04-08 18:47:50 +02:00
Badlop
5cc9a1fe44
Don't make commands subsections, so Docs TOC plage is cleaner
2020-04-08 18:45:29 +02:00
Badlop
de0aead1cd
Fix set_loglevel example argument documentation
2020-04-08 18:44:09 +02:00
Badlop
624ba7e94f
Improve formatting of mod_announce doc
2020-04-08 18:42:45 +02:00
Paweł Chmielowski
9bb3aee0e2
Make resumed sessions try to deliver possibly queued messages to new session
...
Between receiving resume request and being closed by new session, it's
possible (even if not very likely) that new messages would arrive to
process that is resumed. In that case try to reroute messages that were
received after we sent resume reply to new process.
2020-04-07 14:51:49 +02:00
Paweł Chmielowski
16585713f8
Log errors that happen when retrieving http headers in ejabberd_http
...
It seems that ssl errors can be generated here, so lets have abily to show
them instead of swallowing them silently.
2020-04-07 13:50:01 +02:00
Holger Weiss
e01e528235
mod_carboncopy: Bump supported XEP revision
...
Since mod_carboncopy supports "urn:xmpp:carbons:rules:0", it implements
version 0.13.x of XEP-0280.
2020-04-05 22:52:55 +02:00
Badlop
23493ce239
Document mod_shared_roster_ldap options
2020-04-02 12:56:43 +02:00
Badlop
510ab53341
Add ejabberd_auth_http auth_opts brief description
2020-04-02 12:56:40 +02:00
Badlop
220cf73318
Document sql_prepared_statements
2020-04-02 12:56:38 +02:00
Badlop
f6d102f5e2
Quick document with forward link api_permissions
2020-04-02 12:56:36 +02:00
Badlop
05b68764cc
Document some global options
2020-04-02 12:56:33 +02:00
Badlop
4e51e82ccf
Add three missing mod_bosh options
2020-04-02 12:56:31 +02:00
Badlop
116fa8e9ca
add missing mod_mam options
2020-04-02 12:56:28 +02:00
Badlop
ce6fd654a0
Fix mod_pubsub indentation
2020-04-02 12:56:26 +02:00
Badlop
5ee2f48aea
Add mod_pubsub configuration documentation
2020-04-02 12:56:23 +02:00
Paweł Chmielowski
1bd560f3f2
Fix potential message loss in terminating c2s sessions
...
Calling sync version of xmpp_stream_in/out:stop could lead to messages
never being processed by c2s process if they were queued in p1_server.
This could be reproduced by when having messages in offline storage,
starting sessions, enabling stream_mgmt, sending initial presence, and then immediately
</stream:stream>, messages that mod_offline would send process would not
be bounced back by stream_mgmt.
2020-04-01 14:36:01 +02:00
Boris Chernov
87dda1b638
sql_type should be taken for LServer, not LHost ( #3202 )
...
sql_type option should be retrieved for the main domain, not the MUC subdomain
2020-03-30 09:47:36 +02:00
Paweł Chmielowski
5ec214386e
Make webadmin redirect to page that end with /
2020-03-26 14:17:48 +01:00
Paweł Chmielowski
73ba38ae35
Revert "Pass base path instead of level to support URL missing slash ( #3177 )"
...
This reverts commit e9d1201ea8
.
2020-03-26 13:43:24 +01:00
Paweł Chmielowski
1ffa9a0cf5
Do not change to attribute of sent messages from bare to full jid
...
This is not correct per xmpp spec
2020-03-25 16:00:16 +01:00
Badlop
150b7e7219
Fix unsubscribe command result, handle_sync_event result, and dialyzer
...
How to reproduce the problems fixed by this commit:
Create temporary room, other account subscribes, and owner leaves
Unsubscribe that account with the command: ejabberdctl unsubscribe_room ...
2020-03-24 11:44:22 +01:00
Paweł Chmielowski
7caec56e96
Make bounce_message_queue wait for 100ms for incoming messages
...
There is possibilty that between c2s process unregistering itself from sm
and terminating, some other process could try to send something to c2s,
which could result in messages to triggering mam/offline hooks, and causing
them not to be stored in any way.
2020-03-23 15:16:33 +01:00
Paweł Chmielowski
97354426cf
Make mod_muc_room:unsubscirbe handle that unsubscribe may stop room
2020-03-23 13:16:48 +01:00
Paweł Chmielowski
63e3fb92d1
Better handling of xml parse errors in send_stanza
2020-03-23 12:59:30 +01:00
Paweł Chmielowski
92a09fdb71
Also add "escape '\'" to prepared statements in pgsqllike_escape
2020-03-18 14:36:17 +01:00
Paweł Chmielowski
039d786e1f
Add escape '\' to like expression in pgsql to fix problem cockroachdb
...
Cockroachdb doesn't properly handle escaping of _ in like expressions,
having "like ... escape '\'" makes it work, by disabling optimization that
causes this broken behaviour
2020-03-18 14:31:13 +01:00
Paweł Chmielowski
2d707cc0d2
Fix type of computed field in node_flat sql query
2020-03-18 14:05:05 +01:00
Paweł Chmielowski
0a88d03dc9
Use correct type for seconds field in mod_last sql queries
2020-03-18 14:05:05 +01:00
Paweł Chmielowski
f12ee28660
Change conversion of boolean values for cockroachdb
2020-03-18 14:05:05 +01:00
Badlop
260c289d34
Fix Dialyzer warning that jid can't be 'undefined'
2020-03-18 12:02:16 +01:00
Paweł Chmielowski
d8899ca9ac
Add cache to mod_shared_roster
...
This should help with excessive queries that sql backend generates
Should fix issue #3158 .
2020-03-17 14:35:43 +01:00
Paweł Chmielowski
1e456065f6
Fix issue with family field on cockroachdb
2020-03-17 11:35:54 +01:00
Paweł Chmielowski
82074190fb
Replace mod_shared_roster:X call with just X inside that module
2020-03-16 14:57:55 +01:00
Paweł Chmielowski
6fe7c5cac5
Try to limit calls to groups_with_opts in mod_shared_roster
2020-03-16 13:29:05 +01:00
Badlop
e9d1201ea8
Pass base path instead of level to support URL missing slash ( #3177 )
2020-03-11 16:26:33 +01:00
Paweł Chmielowski
9a89b360c0
fix command rooms_empty_destroy ( #3183 )
2020-03-05 11:41:51 +01:00
Paweł Chmielowski
b39a1e2d74
Add reload handler to ejabberd_auth_ldap
...
This will restart ldap process with new options, and should made it
recognize new values.
This fixes issue #3181
2020-03-04 13:19:41 +01:00
Paweł Chmielowski
151b818af4
Use compilation flags used during build to compile modules in ext_mod
...
This fixes issue #3178
2020-03-03 11:25:17 +01:00
Paweł Chmielowski
df47e2a93f
Fix list parameters in sql queries on pgsql
2020-02-27 11:10:30 +01:00
Badlop
47c5aba1e5
Allow mod_register_web to be accessed from now-served vhosts ( #3173 )
2020-02-26 13:57:19 +01:00
Badlop
00abf5d42c
Fix handle of 'http' atom in Headers, problem introduced in 357e7e11
2020-02-26 13:56:38 +01:00
Paweł Chmielowski
9c25d1024a
Support ssl connection on mysql
2020-02-26 10:54:04 +01:00
Paweł Chmielowski
357e7e117d
Make http heades passed in custom_headers override builtin headers
...
Previously we just appended them, so sometimes we just had duplicates
This fixes issue #3056
2020-02-21 12:19:37 +01:00
Mickaël Rémond
3947e64524
Merge pull request #3127 from area-42/allow_emojis_with_mssql
...
allow storage of emojis in archive on mssql
2020-02-20 16:28:24 +01:00
Badlop
e234ced107
Support ejabberd_auth_http's auth_opts ( processone/ejabberd-contrib#284 )
2020-02-19 13:18:39 +01:00
Paweł Chmielowski
a19fdb717b
Do read piefxis file fully before starting processing included file
...
Previous method of processing files, could lead to mixing events generated
by parsers for multiple files, where we could get in inconsistant state.
After this change we gather all events generated by parser for single file,
before we start parsing any included file.
This fixes issue #3166
2020-02-18 15:02:23 +01:00
Holger Weiss
e7c84b81b2
ejabberd_admin: Fix *_config command result format
...
The 'reload_config' and 'dump_config' calls are expected to yield a
'rescode' result, which means they must return 'ok' (rather than a
tuple) on success.
Fixes #3170 .
2020-02-14 18:52:54 +01:00
Paweł Chmielowski
66a84b8d2b
Make piefxis import properly decode scram passwords
...
We encoded scramed password with base64 when exporting, but didn't apply
reverse operation on import, this adds base64 decoding on import.
This fixes issue #3167 .
2020-02-11 12:48:19 +01:00
Badlop
5574b21dd6
Remove tweak introduced in 05c2995c
for #1954 as it isn't needed anymore
2020-02-07 13:32:49 +01:00
Alexey Shchepin
b2f536ec8b
Use SQL ESCAPE statement only with MSSQL and SQLite, improve compatibility with CockroachDB ( #3074 )
2020-02-04 04:53:54 +03:00
Paweł Chmielowski
fdb7e3e3fa
Optimize sql queries in pubsub select_affiliation_subscriptions
2020-01-31 11:43:41 +01:00
Badlop
2d32c66fd7
Update copyright to 2020 ( #3149 )
2020-01-28 15:49:23 +01:00
Holger Weiss
20c0fed457
mod_http_upload: Document correct put_url default
...
Closes #3152 .
2020-01-27 00:04:21 +01:00
Paweł Chmielowski
75094df25e
Do not use ~ts format in string that are put in xmpp payload
...
We are expecting utf8 data here, and using that flag will convert those
to unicode codepoints, which aren't handled properly later.
2020-01-22 12:55:27 +01:00
Holger Weiss
243dc06733
mod_stream_mgmt: Don't crash on disabled ACK timer
...
Don't attempt to start an ACK timer if 'ack_timeout' is set to
'infinity'.
Thanks to Ingo Jrgensmann for reporting the bug.
2020-01-14 01:17:01 +01:00
Holger Weiss
ec035e3c41
mod_carboncopy: Omit check for undefined 'from'
...
These days, the 'from' of an outgoing #message is guaranteed to be set
to the sender's JID by xmpp_stream_in:process_authenticated_packet/2.
2020-01-13 00:45:33 +01:00
Holger Weiss
430b9bef38
mod_carboncopy: Don't process non-message stanzas
...
Avoid examining presence and IQ stanzas, as they're not eligible for
carbon-copying.
This is just an optimization and should not change the behavior.
2020-01-13 00:31:01 +01:00
Holger Weiss
ff193a1a6f
mod_carboncopy: Also copy mediated MUC invitations
2020-01-13 00:13:54 +01:00
Holger Weiss
74c01caf08
mod_carboncopy: Improve is_carbon_copy() check
...
Make sure the hook chain is stopped early whenever a carbon copy is
processed, not just in some cases.
2020-01-12 14:04:31 +01:00
Holger Weiss
a8f6c1db1d
mod_carboncopy: Support new copying rules
...
Support the copying rules added to XEP-0280 with version 0.13.0 under
the "urn:xmpp:carbons:rules:0" namespace.
Closes #3011 .
2020-01-12 13:42:00 +01:00
Holger Weiss
919c9d6fb1
mod_sip: Omit documentation when SIP is disabled
...
Don't generate the actual mod_sip documentation if ejabberd is built
without SIP support.
2020-01-11 20:34:11 +01:00
Holger Weiss
6531fbb0f3
mod_sip: Fix compilation without SIP support
...
Make sure the T() macro is also defined when ejabberd is compiled
without SIP support.
Fixes #3143 .
2020-01-11 20:27:16 +01:00
Evgeny Khramtsov
97da380acd
Generate ejabberd.yml.5 man page from source code directly
...
Several documentation callbacks (doc/0 and mod_doc/0) are implemented
and `ejabberdctl man` command is added to generate a man page. Note
that the command requires a2x to be installed (which is a part of
asciidoc package).
2020-01-08 12:24:51 +03:00
Holger Weiss
0e96d64e60
Omit push notifications if offline storage failed
...
This commit removes the 'store_offline_message' hook which didn't allow
mod_push to suppress notifications when storing an offline message
failed (due to the offline spool size limit being exceeded or due to
database issues).
Fixes #3120 .
2020-01-05 20:08:54 +01:00
Christoph Scholz
00ccb119ea
allow storage of emojis in archive on mssql
2019-12-27 13:06:06 +01:00
Badlop
c396271c00
Fix case clause error regarding admin_generated password ( #3122 )
2019-12-24 11:10:36 +01:00
Paweł Chmielowski
4b3a1ec614
Add ability to hookup config transformer
2019-12-16 12:39:56 +01:00
Badlop
869826c818
Fix mod_muc_log skipping non-Latin messages (thanks to Yandrey)( #3115 )
2019-12-16 11:35:10 +01:00
Alexey Shchepin
24ac62eabd
Improve compatibility with CockroachDB ( #3074 )
2019-12-16 06:52:06 +03:00
Alexey Shchepin
f9120f75b0
Improve compatibility with CockroachDB ( #3074 )
2019-12-11 17:49:02 +03:00
Evgeny Khramtsov
6e68ca2211
Improve send_message command
2019-11-29 11:27:57 +03:00
Paweł Chmielowski
71c44bff8b
Make convert_to_scram work with all backends
2019-11-27 10:35:52 +01:00
Alexey Shchepin
2a35cadf80
Merge branch 'pg_prepared_statements' of https://github.com/sabudaye/ejabberd into sabudaye-pg_prepared_statements
...
Conflicts:
ejabberd.yml.example
src/ejabberd_sql.erl
2019-11-26 19:45:01 +03:00
Evgeny Khramtsov
910f6aa290
Fix previous commit
2019-11-24 16:26:03 +03:00
Evgeny Khramtsov
de91618070
Check also 'access' rule on account removal
...
According to the documentation we should not allow
account removal when it's forbidden by the rule
from 'access' option.
2019-11-24 16:21:01 +03:00
Evgeny Khramtsov
650bdae5d9
Make sure IQ result is correctly routed on account removal
...
Thanks to Philipp Hörist for spotting this
2019-11-24 15:43:38 +03:00
Evgeny Khramtsov
33a16090d3
Fix acl reloading
2019-11-15 18:21:30 +03:00
Evgeny Khramtsov
925998c360
Preserve order of grouped duplicates
2019-11-08 10:20:18 +03:00
Evgeny Khramtsov
3826a9ed58
Also group duplicated list-like options inside host_config/append_host_config
2019-11-07 12:14:08 +03:00
Evgeny Khramtsov
b7b76cc38b
Group all duplicated list-like options into a single option
2019-11-07 11:33:24 +03:00
Evgeny Khramtsov
94b74c0cbe
Fix loading of third-party modules at startup
...
Fixes #3019
2019-11-07 10:47:11 +03:00
Evgeny Khramtsov
c48e972573
Allow multiple modules
section
...
Fixes processone/ejabberd-contrib#282
2019-11-06 13:43:30 +03:00
Evgeny Khramtsov
bb26d7c379
Accept a list in c2s_ciphers/s2s_ciphers options
2019-11-05 17:54:56 +03:00
Evgeny Khramtsov
3a46612d88
Fix unicode string formatting
...
Fixes #3066
2019-11-05 17:51:12 +03:00
Evgeny Khramtsov
3e5ab8082b
Revert "Escape 'family' field in SQL requests"
...
This reverts commit f51ba687e2
.
Fixes #3072
2019-10-30 09:11:13 +03:00
Evgeny Khramtsov
72f6835feb
Fix race condition in Redis/SQL supervisors startup
2019-10-29 13:36:40 +03:00
Evgeny Khramtsov
f51ba687e2
Escape 'family' field in SQL requests
...
This is needed for compatibility with CockroachDB, because
'FAMILY' is a reserved keyword in this database.
2019-10-28 12:19:24 +03:00
Evgeny Khramtsov
a202818037
Merge pull request #3069 from nosnilmot/jwt-custom-jid-field
...
Add option for JWT field name containing JID
2019-10-26 11:03:19 +03:00
Stu Tomlinson
b2651dae0f
Add option for JWT field name containing JID
2019-10-25 16:56:18 +01:00
Evgeny Khramtsov
f981a2ef17
Improve jwt_key validator
2019-10-25 18:30:50 +03:00
Evgeny Khramtsov
02cb3d93fd
Don't lowercase first letter in reason string
2019-10-25 18:18:04 +03:00
Alexey Shchepin
c7470f5107
Handle the case when JWT key file contains JWK set
2019-10-25 16:33:22 +03:00
Evgeny Khramtsov
7eda35b945
Introduce 'gc' ejabberdctl command
...
The command forces garbage collection of all running Erlang processes.
The return is always success.
2019-10-25 16:02:24 +03:00
Evgeny Khramtsov
e8fe68543e
Stop SASL application in ejabberd_logger:flush()
2019-10-25 15:52:05 +03:00
Evgeny Khramtsov
f1a35cc9ac
Avoid calling to logger module on OTP<22
2019-10-25 15:27:47 +03:00
Evgeny Khramtsov
e3962aea6e
Use lager on OTP<22.0
...
This also lowers Erlang/OTP minimum version requirement back to 19.3
2019-10-25 11:44:04 +03:00
Evgeny Khramtsov
c604bdb897
Limit result set of disco#items for mod_pubsub
...
The size of a list of nodes returned for disco#items request
is now controlled by option 'max_nodes_discoitems'. The default
value is 100. The name and the default value of the option is
chosen to be consistent with mod_muc's 'max_rooms_discoitems' option.
2019-10-24 14:59:47 +03:00
Evgeny Khramtsov
d300a87059
Fix logger initialization on OTP<21.3
2019-10-23 16:41:27 +03:00
Evgeny Khramtsov
1e30b85861
Report errors in logger initialization
2019-10-23 16:03:48 +03:00
Evgeny Khramtsov
e388805049
Log path to third-party configuration file
...
This should prevent confusions like the one described at
https://stackoverflow.com/q/58353491/2610053
2019-10-20 18:14:33 +03:00
Evgeny Khramtsov
7a85e51237
Fix error reporting in configuration related admin commands
2019-10-19 19:58:42 +03:00
Evgeny Khramtsov
9ff6cc25dc
Log supervisor reports in debug loglevel
2019-10-18 22:00:37 +03:00
Evgeny Khramtsov
e4a8afb15d
Replace lager with built-in new logging API
...
This change requires Erlang/OTP-21.0 or higher.
The commit also deprecates the following options:
- log_rotate_date
- log_rate_limit
Furthermore, these options have no effect. The logger now fully
relies on log_rotate_size, that cannot be 0 anymore.
The loglevel option now accepts levels in literal formats.
Those are: none, emergency, alert, critical, error, warning, notice, info, debug.
Old integer values (0-5) are still supported and automatically converted
into literal format.
2019-10-18 19:12:32 +03:00
Badlop
b1d458999a
Flatten strings in ejabberd_xmlrpc error results
2019-10-18 13:16:37 +02:00
Paweł Chmielowski
9822535e70
Convert oauth_expire option to accept timeout values
2019-10-15 11:28:47 +02:00
Alexey Shchepin
e7a20d9fc5
Fix dialyzer warning in #oauth_ctx
2019-10-11 17:39:11 +03:00
Evgeny Khramtsov
211cc80fd4
Implement X-OAUTH2 authentication for mod_mqtt
...
This will only work for MQTT 5.0 connections.
A client MUST set "Authentication Method" property of CONNECT
packet to "X-OAUTH2" and MUST set the token in "Authentication Data"
property of the same CONNECT packet.
The server responses as usual with CONNACK.
2019-10-11 16:46:16 +03:00
Paweł Chmielowski
8d571adca8
Verify http host in web admin only if authentication is missing host
...
This should allow access to web admin through ip address or just served
from domain not defined in ejabberd hosts
2019-10-09 10:31:02 +02:00
Badlop
9df26a5740
Update ejabberd_xmlrpc to handle binaries in restuple result ( #3048 )
2019-10-03 16:48:22 +02:00
Alexey Shchepin
5d549dca96
Check redirect_uri for OAUTH implicit grant
2019-10-03 06:18:48 +03:00
Badlop
949e71efb6
Update Guide links in WebAdmin to website, as local file isn't included
2019-10-02 12:42:59 +02:00
Badlop
20205c66c1
Support custom base path in WebAdmin by using relative URLs ( #3043 )
2019-10-02 12:42:54 +02:00
Evgeny Khramtsov
7fc272918a
Fix startup of supervisors for listening modules
2019-10-01 23:28:00 +03:00
Evgeny Khramtsov
c49edaca19
Improve best match
2019-09-28 11:27:20 +03:00
Alexey Shchepin
8f7fa38949
Support OAUTH client authentication
2019-09-27 20:36:58 +03:00
Evgeny Khramtsov
47d0eed3f1
Advertise muc#roominfo_logs in disco#info of the room
...
The commit adds new `url` option for mod_muc_log.
Fixes #3040
2019-09-26 16:53:36 +03:00
Evgeny Khramtsov
2eaad21863
Don't log warning when an option is consulted for uknown vhost
...
Such warnings may be unappropriate in some situation, e.g.
when a virtual host is disabled in runtime but some packets
for this host are still in transit.
Fixes #3037
2019-09-25 13:58:05 +03:00
Evgeny Khramtsov
aefe2fd640
Rename to p1_acme
2019-09-25 13:10:47 +03:00
Evgeny Khramtsov
5770946f03
Correctly handle unicode in log messages
2019-09-23 15:17:20 +03:00
Evgeny Khramtsov
2e1e128833
Fix unicode formatting in ACME module
2019-09-22 20:11:54 +03:00
Evgeny Khramtsov
b7e296857c
Don't call to xmpp_idna
2019-09-22 13:28:14 +03:00
Evgeny Khramtsov
75fe6f44d2
Fix IDNA support in ACME requests
2019-09-22 12:44:31 +03:00
Evgeny Khramtsov
30346a56de
Don't forget to log an error message on IDNA failure
2019-09-22 11:30:20 +03:00
Evgeny Khramtsov
a616cc04cb
Support IDN hostnames in ACME requests
2019-09-22 11:04:38 +03:00
Evgeny Khramtsov
d5e0ccb04a
Don't attempt to create acme directory on ejabberd startup
2019-09-22 01:14:29 +03:00
Evgeny Khramtsov
ea09497038
Slightly improve arg example
2019-09-22 01:03:08 +03:00
Evgeny Khramtsov
f5156390bb
Don't allow requesting certificates for localhost or IP-like domains
2019-09-22 00:53:03 +03:00
Evgeny Khramtsov
12691e738b
Improve warning message
2019-09-22 00:21:12 +03:00
Evgeny Khramtsov
81ae691738
Use round/0 instead of ceil/0
...
Because ceil/0 was introduced in OTP20.0 only
2019-09-20 15:33:08 +03:00
Evgeny Khramtsov
9805b1a73a
Fix typo
2019-09-20 14:04:00 +03:00
Evgeny Khramtsov
68ba109889
Remove unused file
2019-09-20 13:08:03 +03:00
Evgeny Khramtsov
4cdb4c2090
Don't auto request certificate for localhost and IP-like domains
2019-09-20 13:03:25 +03:00
Evgeny Khramtsov
e227940b85
Improve ACME implementation
...
Fixes #2487 , fixes #2590 , fixes #2638
2019-09-20 12:36:31 +03:00
Alexey Shchepin
0fe1e40a9d
JWT-only authentication for some users ( #3012 )
2019-09-18 18:46:24 +03:00
Holger Weiss
f48b4124b1
mod_jidprep: Don't call gen_mod functions directly
2019-09-18 17:39:40 +02:00
Badlop
fd4c5edc23
Apply default role after revoking admin affiliation ( #3023 )
2019-09-17 12:31:14 +02:00
Holger Weiss
b1c10d2a03
Add support for XEP-0328: JID Prep
...
The mod_jidprep module implements XEP-0328: JID Prep, version 0.1.
2019-09-12 09:26:45 +02:00
Evgeny Khramtsov
56b4d3902a
Log Mnesia table type on creation
2019-09-10 21:57:51 +03:00
Evgeny Khramtsov
533a4eec96
Replicate Mnesia 'bosh' table when nodes are joined
2019-09-10 16:02:51 +03:00
Mickael Remond
7b79921734
Use email field type to avoid jid capitalization on iOS
2019-09-09 12:12:54 +02:00
Alexey Shchepin
6d83cbd1a8
Add missing ejabberd_auth_jwt:user_exists/2 function ( #3012 )
2019-09-09 00:57:55 +03:00
Alexey Shchepin
21aa344ed5
Fix BEGIN/COMMIT/ROLLBACK syntax for MSSQL ( #2978 )
2019-09-09 00:16:44 +03:00
Evgeny Khramtsov
a8c6eec28c
Fix certificate selection for s2s
...
The bug was introduced in c2cbb4d879
Fixes #3015
2019-09-06 22:20:07 +03:00
Paweł Chmielowski
6d08ecc41f
Add ejabberd_oauth:verify_resowner_scope callback back
...
This fixes issue #2982
2019-09-06 16:47:22 +02:00
Evgeny Khramtsov
9a8245b8e6
Fix the regression introduced in dd57950
...
Fixes #3010
2019-09-04 10:31:09 +03:00
Badlop
e50ecf9e96
Fix some links to Guide in WebAdmin and add new ones ( #3003 )
2019-08-27 15:41:37 +02:00
Vyache
c0f8e5d7c0
Custom exit message is not broadcast
2019-08-23 09:32:58 +03:00
Badlop
1fd75265d6
Use select fields to input host in WebAdmin Backup ( #3000 )
2019-08-22 18:35:43 +02:00
Badlop
94d50a447d
Fix call to deprecated ejabberd_config:get_myhosts() ( #3000 )
2019-08-22 18:35:41 +02:00
Badlop
12c4dfd955
Provide meaningful error when adding non-local users to shared roster ( #3000 )
2019-08-22 17:13:18 +02:00
Badlop
a51aa2bc44
Check account auth provided in WebAdmin is a local host ( #3000 )
2019-08-22 17:13:13 +02:00
Paweł Chmielowski
07ef1775cd
Add another variant of transformation of offline_msg in mod_offline_mnesia
2019-08-16 18:34:42 +02:00
Evgeny Khramtsov
9ec69b8d62
Don't treat 'Host' header as a virtual XMPP host
...
Fixes #2989
2019-08-13 18:30:28 +03:00
Badlop
0bb14bdc0b
Revert "Affiliations other than admin and owner cannot invite to members_only rooms"
...
This reverts commit b010a1a0a0
.
More details in #2987
2019-08-13 14:55:37 +02:00
Badlop
a157e22c2f
When join new room with password, set pass and password_protected ( #2668 )
2019-08-13 11:37:32 +02:00
Badlop
a1dfb7fbe6
Improve rooms_* commands to accept 'global' as MUC service argument ( #2976 )
2019-08-12 17:03:32 +02:00
Evgeny Khramtsov
8f8f53a595
Fix typo in type spec
2019-08-12 12:28:17 +03:00
Evgeny Khramtsov
d796dcace5
Spawn SQL connections on demand only
2019-08-12 12:21:31 +03:00
Badlop
dd8c468de3
Rename MUC command arguments from Host to Service ( #2976 )
2019-08-08 12:32:59 +02:00
Evgeny Khramtsov
ced62e0df8
Don't use close/2: set stop_reason explicitly
...
Fixes #2984
2019-08-08 11:21:28 +03:00
Evgeny Khramtsov
950c209310
Report connection error before waiting for resumption
...
In other words don't hide the reason why c2s connection has failed
2019-08-06 16:18:04 +03:00
Evgeny Khramtsov
934392fd7e
Implement reload/3 for mod_http_upload
2019-08-06 12:31:33 +03:00
Evgeny Khramtsov
2168489ddf
Don't retain module option on gen_mod supervisor
...
When module's options were updated (e.g. by reloading ejabberd.yml)
and, later, the module's process crashed, gen_mod supervisor
restarts the process with outdated options. This is now fixed.
2019-08-04 21:46:18 +03:00
Evgeny Khramtsov
4dac9f1e6d
Validate BINVAL values of vcard elements as Base64
2019-08-02 14:20:10 +03:00
Evgeny Khramtsov
5a976719fb
Introduce 'vcard' option for the modules supporting vCards
...
The mapping between vCard's XML elements and YAML elements
of 'vcard' option is straightforward. For example, if you
want mod_muc to return the following vCard:
```
<vCard xmlns='vcard-temp'>
<FN>Conferences</FN>
<ADR>
<WORK/>
<STREET>Elm Street</STREET>
</ADR>
</vCard>
```
you need to set the configuration as:
```
modules:
...
mod_muc:
vcard:
fn: Conferences
adr:
-
work: true
street: Elm Street
...
```
2019-08-02 13:59:42 +03:00
Badlop
66d2e6ca27
Explain requirements of the FROM argument of send_message command ( #2959 )
2019-08-01 11:29:42 +02:00
Evgeny Khramtsov
059cf8fed1
Don't call ejabberd_cluster from its submodules
...
Fixes #2971
2019-07-31 19:25:47 +03:00
Evgeny Khramtsov
465e1f5ee1
Fix db_type validation
2019-07-31 18:55:43 +03:00
Paweł Chmielowski
51bf552c3f
For pubsub items with max_item = 1 use order by in sql queries
2019-07-31 13:06:44 +02:00
Evgeny Khramtsov
48bed43902
Don't render CAPTCHA whitelist when CAPTCHA is not configured
...
Fixes #2970
2019-07-31 12:35:06 +03:00
Evgeny Khramtsov
bbee13f970
Improve SQL timeouts handling
...
Also improve some formatting
2019-07-31 10:39:53 +03:00
Evgeny Khramtsov
651d69fb98
Also catch 'shutdown' exit reason
2019-07-30 23:17:10 +03:00
Evgeny Khramtsov
15f50f5331
Improve pattern matching
2019-07-30 20:57:32 +03:00
Evgeny Khramtsov
3e4d7a98af
Implement read-repair for session pids
2019-07-30 20:57:09 +03:00
Evgeny Khramtsov
46cc6c66ec
Remove dead code
2019-07-30 15:31:44 +03:00
Evgeny Khramtsov
b4770815c0
Fix race condition when deleting c2s session record
2019-07-30 15:21:58 +03:00
Evgeny Khramtsov
209f5d32e1
Fix SQL connections leakage
2019-07-30 14:26:11 +03:00
Evgeny Khramtsov
81996b153a
Fix previous commit
2019-07-30 13:40:40 +03:00
Evgeny Khramtsov
59adfcb8e0
Correctly report resume timeout
2019-07-30 12:50:31 +03:00
Evgeny Khramtsov
8a2b2668cf
Expose access_model and publish_model in pubsub#metadata
...
Fixes #2931
2019-07-30 10:45:32 +03:00
Evgeny Khramtsov
949e4c1c59
Generate 'remote-server-not-found' stanza error for non-IDN domains
...
Fixes #2969
2019-07-29 22:45:38 +03:00
Evgeny Khramtsov
d64951c2b2
Improve handling of errors in tree_action/3
2019-07-29 22:24:26 +03:00
Evgeny Khramtsov
2cd930b7d5
Appropriately abort pubsub transaction
2019-07-29 21:44:30 +03:00
Badlop
630cfe26b7
mod_multicast service discovery bugfix (thanks to McPo)( #2968 )
2019-07-29 19:32:26 +02:00
Evgeny Khramtsov
2da168cf05
Improve handling of errors in pubsub code
2019-07-29 17:13:16 +03:00
Frank Diebolt
cd88d342b9
Apply shaping to websocket connections
2019-07-29 14:54:25 +02:00
Evgeny Khramtsov
35576b4608
Improve hooks validator and fix bugs related to hooks registration
2019-07-29 10:46:20 +03:00
Evgeny Khramtsov
0aa004bafc
Improve ejabberd halting procedure
2019-07-26 11:40:19 +03:00
Evgeny Khramtsov
a54694684d
Fix default value of resume_timeout
2019-07-25 13:57:43 +03:00
Evgeny Khramtsov
3b18e7cc00
Don't attempt to restart killed lager
...
This is not very robust and the call may hang forever
2019-07-24 19:47:14 +03:00
Evgeny Khramtsov
ca0e53b3c5
Fix typo in log message
2019-07-24 18:56:44 +03:00
Evgeny Khramtsov
ae135e57d9
Improve SQL pool logic
...
Avoid using ETS table for SQL workers: rely on processes names instead
2019-07-24 14:28:43 +03:00
Holger Weiss
c3c8dffeab
Revert "mod_privacy: Don't try to look up 'undefined' list"
...
This reverts commit 4218aecd1c
. The issue
was fixed in a0d3fb3b23
already.
2019-07-24 11:29:57 +02:00
Holger Weiss
4218aecd1c
mod_privacy: Don't try to look up 'undefined' list
...
Don't crash if the <query/> element of an IQ of type 'set' contains
neither a <default/> nor an <active/> child.
This fixes a regression introduced in commit
8410a203ec
.
2019-07-24 10:45:30 +02:00
Evgeny Khramtsov
9ef52f2b0f
Fix UTF-8 support in translation files
2019-07-24 11:34:40 +03:00
Evgeny Khramtsov
052917961a
Add 'certauth' command to extauth port
2019-07-24 10:13:51 +03:00
Holger Weiss
8ac4a5f792
mod_stream_mgmt: Allow flexible timeout format
...
Adjust mod_stream_mgmt and the related code in mod_push_keepalive to
support the flexible timeout format.
2019-07-23 00:15:40 +02:00
Christophe Romain
c0dc95d529
Fix wrong virtual host in mod_pubsub:send_stanza ( #2930 )
2019-07-22 10:13:27 +02:00
Evgeny Khramtsov
4be98b5aef
Log an error when JWT authentication is configured without jwt_key
2019-07-19 12:01:57 +03:00
Evgeny Khramtsov
55d42b9000
Fix typo
2019-07-18 22:35:16 +03:00
Evgeny Khramtsov
6d6e3e348d
Improve robustness of reading jwt_key option
2019-07-18 22:31:08 +03:00
Evgeny Khramtsov
50ef982eff
Get rid of useless code
2019-07-18 21:53:22 +03:00
Evgeny Khramtsov
ad902c2e16
Don't forget to unregister route when the owning process is dead
2019-07-18 21:48:53 +03:00
Evgeny Khramtsov
3f7d9e3ad6
Remove Riak support
...
Reasons:
- Riak DB development is almost halted after Basho
- riak-erlang-client is abandoned and doesn't work
correctly with OTP22
- Riak is slow in comparison to other databases
- Missing key ordering makes it impossible to implement range
queries efficiently (e.g. MAM queries)
2019-07-18 19:31:12 +03:00
Evgeny Khramtsov
478f69317b
Report failures of changing net_ticktime
2019-07-18 13:02:13 +03:00
Evgeny Khramtsov
6397dc5d4c
Reset net ticktime on config reload
2019-07-18 12:47:29 +03:00
Evgeny Khramtsov
dd301306d3
Allow flexible timeout format in session_expiry option of mod_mqtt
2019-07-17 22:58:14 +03:00
Evgeny Khramtsov
d718b35d46
Use econf:timeout() instead of econf:pos_int() wherever appropriate
2019-07-17 22:15:56 +03:00
Evgeny Khramtsov
c5305c5f9a
Improve RPC calls in mod_configure
2019-07-17 20:51:33 +03:00
Evgeny Khramtsov
38b2e099d5
Fix pending nodes retrieval for SQL backend
...
Thanks to Christophe Romain
2019-07-17 12:34:09 +03:00
Evgeny Khramtsov
554f4fc851
Change time unit of hibernation_timeout option to 'second'
...
This is done for the sake of consistency with other options
2019-07-16 23:42:38 +03:00
Evgeny Khramtsov
15b4b3fa1b
Fix typos using codespell
2019-07-16 22:07:39 +03:00
Evgeny Khramtsov
cc2f674805
Avoid record duplication
2019-07-16 18:34:05 +03:00
Evgeny Khramtsov
a7a53f601e
Add econf:string/2 validator
2019-07-16 18:10:45 +03:00
Evgeny Khramtsov
0e48adb1ed
Fix opt_type.sh script and re-generate options
2019-07-16 18:06:51 +03:00
Evgeny Khramtsov
76d4c178a7
Use econf:timeout/2
2019-07-16 18:02:32 +03:00
Evgeny Khramtsov
f85488583c
Handle CAPTCHA forms using captcha_form codec
2019-07-16 17:51:51 +03:00
Paweł Chmielowski
6b3d0d154e
Add code for hibernating inactive muc_room processes
2019-07-16 15:09:58 +02:00
Evgeny Khramtsov
4d877289fb
Bump xmpp version and fix revealed bugs
2019-07-16 15:59:33 +03:00
Evgeny Khramtsov
f10de6439b
Fix 'get-pending' command form generation
2019-07-16 15:09:51 +03:00
Badlop
5ecbed5eae
Remove very old useless comments in ejabberd_xmlrpc.erl
2019-07-16 12:56:41 +02:00
Badlop
7079634f18
Documentation of mod_http_api moved from source code to Docs page
2019-07-16 12:53:06 +02:00
Evgeny Khramtsov
5eeb95c74f
Remove modules management from mod_configure
2019-07-15 17:08:41 +03:00
Evgeny Khramtsov
e1f3526466
Don't hide errors using catch
2019-07-15 17:03:29 +03:00
Evgeny Khramtsov
a00496a38f
Compile some regexps as unicode
2019-07-15 15:26:47 +03:00
Evgeny Khramtsov
2419e00a26
Bump yconf version
2019-07-15 15:22:51 +03:00
Evgeny Khramtsov
061c754c68
Fix regexp matching
2019-07-15 15:07:56 +03:00
Evgeny Khramtsov
104c4093dc
Only respond with occupants list to disco#items with empty node
...
Fixes #2942
2019-07-15 14:10:45 +03:00
Evgeny Khramtsov
4ec78736b9
Improve handling of unexpected iq in mod_muc_room
...
Don't crash on an iq-set/get containing unexpected tag within
expected namespace
This further improves PR #2900
2019-07-15 13:59:41 +03:00
Evgeny Khramtsov
04dab48794
ejabberd_s2s should start after its supervisors
2019-07-15 12:59:47 +03:00
Evgeny Khramtsov
295015a8cb
Fix startup order of ejabberd_sup children
2019-07-15 12:53:26 +03:00
Evgeny Khramtsov
e1eedd587d
Remove processing of {wait, _} result in gen_mod
...
This is no longer needed
2019-07-15 12:43:55 +03:00
Evgeny Khramtsov
a4e19b7108
Increase shutdown time to 5 seconds
2019-07-15 12:43:32 +03:00
Evgeny Khramtsov
87b8344ede
Attach mod_muc_room processes to a supervisor
2019-07-15 12:43:05 +03:00
Evgeny Khramtsov
1fe1322bc1
Improve some validators
2019-07-15 09:59:07 +03:00
Holger Weiss
cd36bb6eda
mod_http_fileserver: Unregister 'reopen_log_hook'
...
Unregister the global 'reopen_log_hook' on termination if the module isn't
loaded for another host.
2019-07-14 15:16:13 +02:00
Evgeny Khramtsov
15dcff92e8
Use correct virtual host when consulting trusted_proxies
2019-07-13 12:20:06 +03:00
Evgeny Khramtsov
6013b4a3a6
Fix broken ejabberd_cluster:call/5
2019-07-13 10:34:59 +03:00
Evgeny Khramtsov
f0c0e4a6fc
Don't crash when attempt to get an option for unknown virtual host
...
Log a warning instead and retry with a global scope
2019-07-12 13:59:33 +03:00
Evgeny Khramtsov
696c64064b
Add call/5 and multicall/5 to ejabberd_cluster
2019-07-12 13:58:46 +03:00
Evgeny Khramtsov
53dacb3825
Use ejabberd_cluster:call() instead of rpc:call()
2019-07-12 12:30:38 +03:00
Evgeny Khramtsov
6f5d99275b
Process unexpected messages uniformly
2019-07-12 11:55:36 +03:00
Evgeny Khramtsov
19cbbf69b2
Improve previous commit
2019-07-11 00:13:39 +03:00
Evgeny Khramtsov
6fd736d496
Gracefully report invalid encoding of a translation file
2019-07-11 00:04:32 +03:00
Evgeny Khramtsov
b0379db5a1
Fix formatting
2019-07-10 23:46:42 +03:00
Evgeny Khramtsov
d1b5844d64
Merge pull request #2900 from aquarhead/protect-muc-owner
...
Protect against bad muc#owner requests
2019-07-10 23:46:08 +03:00
Evgeny Khramtsov
9dedbe30ba
Make sure configuration file path always represented as binary()
...
Fixes #2936
2019-07-10 23:35:53 +03:00
Evgeny Khramtsov
bfa3125a81
Fix Elixir modules detection in the configuration file
...
Fixes #2937
2019-07-10 23:17:53 +03:00
Evgeny Khramtsov
5700089187
Gracefully close inbound s2s connections
2019-07-10 12:15:58 +03:00
Evgeny Khramtsov
722864666d
Add/improve type specs
2019-07-10 10:31:51 +03:00
Evgeny Khramtsov
691f9e0bf7
Improve error handling/reporting when loading language translations
...
Also speed up loading on multi-core machines
2019-07-10 10:30:11 +03:00
Evgeny Khramtsov
04ccba0347
Fall back to map/2 and foreach/2 on single-core machines
2019-07-10 10:28:37 +03:00
Evgeny Khramtsov
01f531b3d6
Add type specs for mod_adhoc
2019-07-09 17:02:54 +03:00
Evgeny Khramtsov
f19b41fd19
Improve type specs for ejabberd_s2s
...
Also minor code cleanup
2019-07-09 16:42:24 +03:00
Evgeny Khramtsov
43da45cf67
Improve type specs of mod_muc_room
2019-07-09 15:21:17 +03:00
Evgeny Khramtsov
11fa02cd6c
Improve type specs of mod_roster
2019-07-09 14:30:59 +03:00
Evgeny Khramtsov
590849e2c3
Avoid returning 'stopped' from ejabberd_hooks:run_fold()
2019-07-09 14:30:25 +03:00
Evgeny Khramtsov
f7ad25108c
Get rid of unused API functions in ejabberd_hooks
...
Also improve code formatting and type specs
2019-07-09 01:26:48 +03:00
Evgeny Khramtsov
3e88a0b0b4
Don't expose internal FSM API of ejabberd_c2s
2019-07-09 01:01:56 +03:00
Evgeny Khramtsov
9cbc0685db
Don't expose internal FSM API of mod_muc_room
2019-07-09 00:47:54 +03:00
Evgeny Khramtsov
cbe84eb50c
Check virtual host before running the command
2019-07-08 23:14:31 +03:00
Evgeny Khramtsov
0545e0a797
Ignore late arrival of an already cancelled timer
2019-07-08 19:32:37 +03:00
Evgeny Khramtsov
e8eb6bc2b4
Avoid crashing of ejabberd_iq process on invalid callback
2019-07-08 10:45:13 +03:00
Evgeny Khramtsov
d4d352492c
Debug hooks
2019-07-08 09:57:33 +03:00
Evgeny Khramtsov
83e6741117
Use maps instead of dict
2019-07-08 09:55:32 +03:00
Evgeny Khramtsov
92ab59a581
Use ets and maps instead of dict
2019-07-08 09:46:50 +03:00
Evgeny Khramtsov
80beb6d6f6
Improve formatting of exceptions
2019-07-07 22:12:14 +03:00
Evgeny Khramtsov
368858a744
Fix return type in try_set_password()
...
Fixes #2932
2019-07-07 12:16:04 +03:00
Evgeny Khramtsov
fd8e5ffce7
Avoid routing packets through a single process
2019-07-06 12:30:57 +03:00
Evgeny Khramtsov
1663e78cf7
Fix validator of option ejabberd_service->hosts
...
Fixes #2929
2019-07-06 10:38:25 +03:00
Evgeny Khramtsov
61a58f6e67
Do not call the same function twice
2019-07-06 10:21:01 +03:00
Paweł Chmielowski
756adaba55
Restore room when receiving message or generic iq for not started room
2019-07-05 13:46:48 +02:00
Paweł Chmielowski
d7e86d1d32
Limit number of rooms that we return for disco_items from muc
...
We will limit it to max_room_discoitems and return rsm that would allow
fetching more
2019-07-05 11:08:32 +02:00
Evgeny Khramtsov
f82de80c66
Add forgotten file
2019-07-05 10:49:27 +03:00
Evgeny Khramtsov
b3caade0a0
Distribute routing of MUC messages accross all CPU cores
...
Also relay as less stanzas as possible through mod_muc workers
2019-07-05 10:35:31 +03:00
Evgeny Khramtsov
05461d1686
Propagate max_fsm_queue to all modules started as gen_server
2019-07-04 10:26:59 +03:00
Evgeny Khramtsov
d411e68a2e
Make return type of sql_transaction() consistent
2019-07-04 09:27:51 +03:00
Evgeny Khramtsov
4658d478b4
Don't call ejabberd_option from ejabberd_options
2019-07-03 19:23:05 +03:00
Evgeny Khramtsov
b7f6620166
Fix jwt_key option processing
2019-07-03 19:16:54 +03:00
Evgeny Khramtsov
0d0ad9d1d9
Use correct virtual host
2019-07-03 19:08:38 +03:00
Evgeny Khramtsov
8180bc22ee
Fix formatting
2019-07-03 12:58:59 +03:00
Evgeny Khramtsov
6e2502ea7d
Monitor routes
...
Clean route table from the process that died unexpectedly.
This usually may happen when the corresponding process
gets killed by OOM killer during overload.
2019-07-03 10:39:03 +03:00
Evgeny Khramtsov
0fc190e2ef
Fix 'request_handlers' transformation
...
Fixes #2925
2019-07-03 09:54:56 +03:00
Evgeny Khramtsov
9f9e308241
Avoid using ! in ejabberd_router and mod_offline
2019-07-03 09:42:18 +03:00
Alexey Shchepin
ff6884f313
Read jwt_key from file
2019-07-03 05:33:35 +03:00
Evgeny Khramtsov
f68da70f3e
Avoid last handled stanzas cache to grow indefinitely
2019-07-01 20:43:57 +03:00
Paweł Chmielowski
40c360c607
Invalidate proper cache when using mam for offline in pop_messages
2019-07-01 14:30:39 +02:00
Alexey Shchepin
8956b7d60d
Fix a condition in ejabberd_auth_jwt
2019-07-01 14:44:28 +03:00
Paweł Chmielowski
3e8f3573a3
Make count_offline_messages cache work when offline uses mam for storage
...
This also replace existing cache for checking if spool is empty with this
cache.
2019-07-01 13:36:41 +02:00
Evgeny Khramtsov
c5fde9d5af
Get rid of useless dialyzer instructions
2019-07-01 10:36:20 +03:00
Evgeny Khramtsov
3d82a5eee6
Fix ejabberd_auth_jwt return types and regenerate ejabberd_option.erl
2019-07-01 09:05:33 +03:00
Alexey Shchepin
3e5c0a1df8
Authentication using JWT tokens
2019-07-01 05:01:55 +03:00
Evgeny Khramtsov
4aebd2fd8e
Cache number of offline messages
2019-06-30 21:14:37 +03:00
Evgeny Khramtsov
253ec13971
Use new ets_cache API in ejabberd_auth
2019-06-30 17:15:43 +03:00
Evgeny Khramtsov
a2a061c1c8
Avoid using broad p1_queue:queue() type wherever possible
2019-06-28 22:16:29 +03:00
Evgeny Khramtsov
6011135d24
Use yconf validator for custom Mnesia schemas
2019-06-27 15:23:21 +03:00
Evgeny Khramtsov
39cf8d86d6
Avoid using broad map() type wherever possible
2019-06-27 15:22:27 +03:00
Evgeny Khramtsov
6b684c866b
Use correct rr_type()
2019-06-27 11:35:56 +03:00
Evgeny Khramtsov
2abca350e0
Fix type specs
2019-06-27 11:32:54 +03:00
Evgeny Khramtsov
4e5daf4d72
Make sure queue bouncing doesn't yield into infinite recursion
2019-06-26 11:56:25 +03:00
Evgeny Khramtsov
ffe1c722e0
Deprecate 'route_subdomains' option
...
This option was introduced to fulfill requirement of RFC3920 10.3,
but in practice it was very inconvenient and many admins were
forced to change its value to 's2s' (i.e. to behaviour that
violates the RFC). Also, it seems like in RFC6120 this requirement
no longer presents.
Those admins who used this option to block s2s with their subdomains
can use 's2s_access' option for the same purpose.
2019-06-26 10:45:58 +03:00
Evgeny Khramtsov
b479fe5315
Use correct stacktrace in logging macros
...
By calling erlang:get_stacktrace() inside a lager function
we obtain actually a stacktrace of the lager function, not
the one we got during exception. This is not a problem for
newest Erlang versions though.
2019-06-26 00:05:41 +03:00
Evgeny Khramtsov
6697a3e3f1
Use proper loglevel to log resumption failures
2019-06-25 20:42:54 +03:00
Paweł Chmielowski
7b35690bc9
Store muc_subscribers in process dict if get_subscribed_rooms not available
2019-06-25 16:41:47 +02:00
Evgeny Khramtsov
8b300d734b
Don't propagate downstream already handled message
2019-06-25 14:36:17 +03:00
Evgeny Khramtsov
28b1d88772
Call ejabberd_s2s:allow_host/2 with correct virtual host
2019-06-24 21:18:57 +03:00
Evgeny Khramtsov
a3e0cbbdd8
Make logging messages more consistent
2019-06-24 20:32:34 +03:00
Evgeny Khramtsov
370226417a
Check if mod_last is loaded before calling its functions
2019-06-24 18:47:51 +03:00
Evgeny Khramtsov
db9e8220ec
Deprecated access_commands option
2019-06-24 17:20:29 +03:00
Evgeny Khramtsov
1d239ec6fb
Make ejabberd_xmlrpc working as a listening module again
...
Fixes #2915
2019-06-24 17:13:34 +03:00
Evgeny Khramtsov
d0b65a3c95
Don't crash on empty avatar data
2019-06-24 17:00:51 +03:00
Evgeny Khramtsov
c2cbb4d879
Use correct virtual host for s2s options
2019-06-23 19:37:54 +03:00
Evgeny Khramtsov
4b65fcab62
Avoid code duplication in gen_mod
2019-06-23 17:06:53 +03:00
Evgeny Khramtsov
deee194522
Let it crash on unspecified option
2019-06-23 16:54:01 +03:00
Evgeny Khramtsov
83c291c064
Respond with 'Bad Request' to unexpected 'Host' header
...
Where "unexpected" means the host in 'Host' header is not
a registered route. The rationale is to avoid propagation
of uknown "Host" further in the code, which may lead to
nasty errors related to reading configuration values, calling
functions from ejabberd_router.erl, etc.
2019-06-23 13:12:00 +03:00
Evgeny Khramtsov
e477a8c220
Validate and set 'version' option at an earlier stage
2019-06-23 12:23:22 +03:00
Evgeny Khramtsov
00f2a736eb
Improve extraction of translated strings
...
Now every such string MUST be encapsulated into ?T() macro.
The macro itself is defined in include/translate.hrl.
Example:
-module(foo).
-export([bar/1]).
-include("translate.hrl").
bar(Lang) ->
translate:translate(Lang, ?T("baz")).
2019-06-22 17:08:45 +03:00
Evgeny Khramtsov
4f69325e3c
Fix shaper selection in ejabberd_c2s
2019-06-22 10:19:17 +03:00
Evgeny Khramtsov
e9a78d0de7
Make option 'validate_stream' global
2019-06-21 21:06:32 +03:00
Evgeny Khramtsov
a0d3fb3b23
Don't attempt to query 'undefined' active list
...
Also code formatting was improved
2019-06-21 19:37:47 +03:00
Evgeny Khramtsov
72572d990a
Allow multiple definitions of host_config and append_host_config
2019-06-21 15:37:51 +03:00
Evgeny Khramtsov
f3d5916236
Correct mod_mix_pam protocol version
...
Fixes #2913
2019-06-21 14:47:10 +03:00
Evgeny Khramtsov
be35350b9c
Fix usage of TLS in mod_mqtt
...
Fixes #2919
2019-06-21 14:39:46 +03:00
Holger Weiss
026540f7e6
mod_pubsub: Check access_model when publishing PEP
...
Don't just adhere to the node's access_model when delivering the last
PEP item but also when a new item is published.
Many thanks to Philipp Hrist for spotting this.
2019-06-20 18:18:14 +02:00
Badlop
c318b5f8a2
Rename remaining command arguments from Server to Host ( #2908 )
2019-06-19 09:31:12 +02:00
Badlop
fb77e2e8c0
Add support for backwards compatibility in command argument names ( #2908 )
2019-06-19 09:30:53 +02:00
Badlop
ad98d4a515
Fix support for nonexistent or empty access_commands in ejabberd_xmlrpc
2019-06-19 09:19:32 +02:00
Evgeny Khramtsov
5a5f188767
Require opt_type/1 callback
2019-06-17 20:51:04 +03:00
Evgeny Khramtsov
ef3753aa86
Generate more readable exception
2019-06-17 20:49:43 +03:00
Evgeny Khramtsov
0c4818daca
Reflect recent pubsub changes in configuration transformer
2019-06-17 13:42:58 +03:00
Evgeny Khramtsov
21d9bd8325
Bump supported version of XEP-0355
2019-06-17 12:53:15 +03:00
Evgeny Khramtsov
50af436fad
Fix component routes unregistration
...
Fixes #2910
2019-06-17 12:29:04 +03:00
Christophe Romain
c9d3beb9eb
Remove deprecated pubsub plugins
2019-06-17 11:19:28 +02:00
Evgeny Khramtsov
e84391a6a9
Use list_to_existing_atom/1 wherever possible
2019-06-15 15:14:45 +03:00
Evgeny Khramtsov
a205ebad2b
Get rid of "well-known" type
2019-06-15 12:53:16 +03:00
Evgeny Khramtsov
67fbbe7a0b
Remove default_db/1 and add default_db/3
...
Same for default_ram_db/1 and default_ram_db/3
2019-06-15 12:10:35 +03:00
Evgeny Khramtsov
cfaed70fe3
Warn about 'service_url' option during config transformation
2019-06-14 17:38:55 +03:00
Evgeny Khramtsov
9e2e590061
Fix exception formatting on old Erlang
2019-06-14 16:58:39 +03:00
Evgeny Khramtsov
377748b688
Fix validator of mod_avatar
2019-06-14 16:42:22 +03:00
Evgeny Khramtsov
d85cf7780c
Introduce option 'captcha_url'
...
Option 'captcha_host' is now deprecated in favor of 'captcha_url'.
However, it's not replaced automatically at startup, i.e. both options
are supported with 'captcha_url' being the preferred one.
2019-06-14 16:06:04 +03:00
Evgeny Khramtsov
a589843abd
Remove mod_echo module
2019-06-14 14:47:46 +03:00
Evgeny Khramtsov
a02cff0e78
Use new configuration validator
2019-06-14 12:33:26 +03:00
Paweł Chmielowski
d48c067681
Return jid_malformed error when sending presence without nick to conference
2019-06-13 18:42:02 +02:00
badlop
b48b6dbda5
Merge pull request #2651 from Iperity/fix-privacy-race-condition
...
Fix mod_privacy race condition
2019-06-13 09:34:58 +02:00
Mickaël Rémond
267ce0dde0
Debug log to help troubleshoot delegation ACLs
2019-06-11 18:52:44 +02:00
Christophe Romain
88a3e1b510
Revert "Fix pubsub compliance XEP-0060 § 7.1.3.6 ( #2864 )"
...
This reverts commit 2fff4d1ea6
.
This commit broke the XEP compliance. more details here
https://xmpp.org/extensions/xep-0060.html#events
2019-06-11 10:18:36 +02:00
Nathan Bruning
8410a203ec
Refactor mod_privacy patch; move logic user_receive_packet to
...
user_send_packet.
2019-06-10 14:10:37 +02:00
Nathan Bruning
aa489c5a8b
Fix user_send_packet in mod_privacy; was failing on newly created users
2019-06-10 12:49:39 +02:00
Nathan Bruning
570800a540
Fix mod_privacy race condition
...
mod_privacy updates the c2s state in user_receive_packet, which
tracks the *result* of the IQ set for active privacy lists.
When a second stanza is sent directly after a privacy list request,
the second stanza will be processed using the old privacy list,
because the IQ result has not yet been routed.
2019-06-10 12:49:39 +02:00
Evgeny Khramtsov
80b7d50628
Use system_time/1 instead of monotonic_time/1
...
The value of monotonic_time/1 may differ significantly between
nodes in a cluster due to different erlang:time_offset/0 values.
Thanks to Christoph Scholz for spotting this
2019-06-06 21:26:50 +03:00
LOU Xun
8d6455460d
Protect against bad muc#owner requests
2019-06-06 15:40:13 +00:00
Holger Weiss
6c0d6f0774
mod_register_web: Don't crash if user exists
...
Since commit 633b68db11
,
ejabberd_auth:try_register/3 returns {error, exists} rather than
{atomic, exists}.
Thanks to Thomas Leister for reporting the issue.
2019-06-05 18:28:35 +02:00
Badlop
ed1cbc2c31
Fix example argument in private_set, don't include Query element
2019-05-29 19:41:36 +02:00
Holger Weiss
274a507590
mod_stream_mgmt: Drop unused code
...
Revert the changes applied to mod_stream_mgmt in commit
b76f90fe39
, as the new implementation of
mod_offline's 'use_mam_for_storage' feature doesn't need them.
2019-05-29 00:30:59 +02:00
Paweł Chmielowski
571a786b9b
Change implementation of mod_offline use_mam_for_storage
...
Previous version was trying to determine range of messages that should
be fetched from mam by storing time when last user resource disconnected.
But that had couple edge cases that could cause problems, for example in
case of node crash we could not store information about user disconnect
and with that we didn't have data to initiate mam query.
New version don't track user disconnects, but simply ensure that we have
timestamp of first message that is gonna be put in storage, after some
measurements cost of that check with caching on top is not that costly,
and as much more robust i decided to introduce that change.
2019-05-28 14:32:17 +02:00
Evgeny Khramtsov
4eaba13189
Don't check mod_register restrictions in 'register' command
...
The commit reverts behaviour introduced in
1f2b8adc28
2019-05-28 15:14:45 +03:00
Holger Weiss
8b301fc93e
mod_http_upload: Avoid catch-all error handling
2019-05-27 21:56:37 +02:00
Mickaël Rémond
a06bdb1721
Improve captcha blocking alert wording
2019-05-25 11:30:04 +02:00
Paweł Chmielowski
50f93023f5
Fix last commit
2019-05-24 15:18:15 +02:00
Paweł Chmielowski
226c09f031
Make mod_admin_extra add/delete_rosteritem reuse code from mod_roster
2019-05-24 14:02:17 +02:00
Evgeny Khramtsov
3f7a850ae8
Use different cache tables per auth module
...
Fixes #2322
2019-05-23 11:32:55 +03:00
Evgeny Khramtsov
17f9ffb7e7
Merge branch 'master' of github.com:processone/ejabberd
2019-05-19 11:23:29 +03:00
Evgeny Khramtsov
2b523030cf
Report better errors on SQL terms decode failure
2019-05-19 11:22:41 +03:00
Alexey Shchepin
63e9b82a46
Fix PostgreSQL compatibility in mod_offline_sql:remove_old_messages ( #2695 )
2019-05-18 21:16:45 +03:00
Badlop
937f07a4cc
Fix typo in Change User Password adhoc command (thanks to lovetox)( #2884 )
2019-05-17 15:48:03 +02:00
Badlop
2db547b557
Vcard search doesn't support * in mnesia, fix search form ( #633 )
2019-05-17 15:26:44 +02:00
Evgeny Khramtsov
2aa181658a
Fix mod_legacy_auth to reflect recent changes
2019-05-15 20:55:17 +03:00
Evgeny Khramtsov
a4c3ea0dfb
Don't process failed EXTERNAL authentication by mod_fail2ban
...
This will only lead to confusion because it's not considered
possible to brute force client certificates.
2019-05-15 18:13:31 +03:00
Evgeny Khramtsov
3c95764d1a
Modify arguments of c2s_auth_result hook
...
The hook now accepts `true | {false, Reason :: binary()}` arguments
instead of just `true | false`
2019-05-15 17:21:09 +03:00
Badlop
e996579dd1
Preliminary support for SQL in process_rosteritems, and move code ( #2448 )
2019-05-15 10:57:55 +02:00
Paweł Chmielowski
122cb4b959
Don't put duplicate polling attribute in bosh payload
...
This fixes issue #2790
2019-05-14 17:32:19 +02:00
Holger Weiss
1452023c93
mod_http_upload: Case-insensitive host comparison
...
Perform a case-insensitive lookup of the host name specified by the HTTP
client.
Fixes #2827 .
2019-05-12 11:57:17 +02:00
Evgeny Khramtsov
3d8711f708
Avoid late arrival of get_disco_item response
2019-05-11 19:27:56 +03:00
Evgeny Khramtsov
4b6f1195c6
Handle TCP errors in websockets
2019-05-09 22:06:23 +03:00
Christophe Romain
2fff4d1ea6
Fix pubsub compliance XEP-0060 § 7.1.3.6 ( #2864 )
2019-05-07 16:23:36 +02:00
Christophe Romain
a6f7d7ce23
Raise api hook right before performing the call
2019-05-07 11:46:04 +02:00
Paweł Chmielowski
4dc8549738
Make anonymous auth don't {de}register user when there are other resources
...
This should fix issue reported in #2878
2019-05-07 11:02:53 +02:00
Paweł Chmielowski
7d23cd2899
When applying limit of max msgs in spool check only spool size
2019-05-07 09:58:14 +02:00
Paweł Chmielowski
8207ea18bf
Remove compiler warnings
2019-05-06 20:03:10 +02:00
Paweł Chmielowski
83b790c7c9
Do not store mucsub wrapped messages with no-store hint in offline storage
...
We already don't store those messages in mam and we don't store messages
that aren't wrapped with that hint in offline, so it make sense to extend
it also to mucsub messages.
2019-05-06 19:22:18 +02:00
Paweł Chmielowski
3d434cfcef
Handle get_subscribed_rooms call from mod_muc_room pid
...
Previously sometimes we tried to post message to all online rooms, and
if that was called from muc room pid, we were not able to process that
message for that room and send response, and this did lead to timeout.
2019-05-06 19:15:48 +02:00
Paweł Chmielowski
4e7bf9207e
Do not declare mod_muc as dependency of mod_mam to prevent loop in deps
2019-05-06 12:22:19 +02:00
Mickael Remond
7a8de9cfcf
Make some standard admin command to get Mnesia info
2019-05-03 14:59:24 +02:00
Badlop
6b0f7f2a24
Fix bug that appears when importing privacy from Prosody ( #2872 )
2019-05-02 21:10:21 +02:00
Badlop
7a107c02a5
Store imported room in the correct ServerHost ( #2874 )
2019-05-02 20:32:10 +02:00
Paweł Chmielowski
cd2d62bffd
Set from/to in activity marker messages
2019-05-02 13:19:54 +02:00
Christophe Romain
f7bc969729
Fix typo and remove forgotten log from 492da2ba
2019-05-02 12:05:20 +02:00
Christophe Romain
492da2baac
Remove logging from REST lib
2019-05-02 11:40:53 +02:00
Paweł Chmielowski
25f7ce0cb6
Always store ActivityMarker messages
2019-05-02 11:12:47 +02:00
Paweł Chmielowski
0d2720d7ab
Don't issue count/message fetch queries for offline from mam when not needed
2019-05-02 11:12:22 +02:00
Paweł Chmielowski
7eb5a0877b
Sqlite doesn't recognize concat() so use || on it instead
2019-04-30 18:33:12 +02:00
Paweł Chmielowski
eac7a77b6a
Fix room state cleanup from db on change of persistent option change
2019-04-30 17:34:49 +02:00
Paweł Chmielowski
b83d30fd07
Make get_subscribed_rooms work even for non-persistant rooms
...
This will store info about non-persistant rooms in db, but rooms with that
that option enabled will not be restored on server restart.
This will save info about room only on subscribers change.
2019-04-30 13:41:03 +02:00
Paweł Chmielowski
b071c4906f
Fix escaping for sql part of mamsub from muc mam
2019-04-30 13:36:31 +02:00
Evgeny Khramtsov
c7d04a82a2
Deprecate some listening options
...
Those are: captcha, register, web_admin, http_bind and xmlrpc
The option `request_handlers` should be used instead, e.g.:
listen:
...
-
module: ejabberd_http
request_handlers:
"/admin": ejabberd_web_admin
"/bosh": mod_bosh
"/captcha": ejabberd_captcha
"/register": mod_register_web
"/": ejabberd_xmlrpc
2019-04-30 11:14:14 +03:00
Evgeny Khramtsov
268750e3b7
Provide a suggestion when unknown request handler is detected
2019-04-30 10:31:03 +03:00
Evgeny Khramtsov
11e963aa78
Provide a suggestion when unknown command is detected
2019-04-30 10:05:06 +03:00
Evgeny Khramtsov
4af99f7b03
Rename ejabberd_config:similar_option/2 -> misc:best_match/2
2019-04-30 09:36:38 +03:00
Evgeny Khramtsov
c56209a27d
Provide a suggestion when unknown module is detected
2019-04-29 21:15:52 +03:00
Evgeny Khramtsov
39bbc7cad8
Provide a suggestion when unknown option is detected
2019-04-29 20:57:59 +03:00
Evgeny Khramtsov
1db22c9656
Improve code for directory deletion
2019-04-29 18:50:54 +03:00
Paweł Chmielowski
a0f48cf52f
Fix offline from mam on mnesia
2019-04-29 17:25:06 +02:00
Paweł Chmielowski
eff70951c5
Add tests for offline with mam storage
2019-04-29 16:40:47 +02:00
Paweł Chmielowski
c550d36581
Properly handle infinity as max number of message in mam offline storage
2019-04-29 16:37:21 +02:00
Paweł Chmielowski
aaf674160b
Sort messages by stanza_id when using mam storage in mod_offline
2019-04-29 16:32:19 +02:00
Paweł Chmielowski
faf9b20ac0
Return correct value from count_offline_messages with mam storage option
2019-04-29 16:31:37 +02:00
Paweł Chmielowski
17ff62d4af
Make mod_offline put msg ignored by mam in spool when mam storage is on
2019-04-29 16:30:45 +02:00
Paweł Chmielowski
b716b835c4
Add tests for offline use_mam_for_storage
2019-04-29 11:35:18 +02:00
Paweł Chmielowski
b76f90fe39
Add mod_offline option for fetching data from mam instead of from spool table
...
This commit introduces `use_mam_for_storage` option that take boolean
argument. Enabling it will make mod_offline not use spool table for storing
offline message, but instead will use mam archive to retrieve messages
stored when offline.
Enabling this option have couple drawback currently, only messages that
were stored in mam will be available, most of flexible message retrieval
queries don't work (those that allow retrieval/deletion of messages by id).
2019-04-26 19:59:06 +02:00
Paweł Chmielowski
bcfe50f817
Return "Bad request" error when origin in websocket connection doesn't match
...
This also allow websocket_origin option to accept multiple values instead
of just single one.
2019-04-26 15:29:43 +02:00
Paweł Chmielowski
17444ba84e
Allow non-moderator subscribers to get list of room subscribers
2019-04-25 14:52:47 +02:00
Evgeny Khramtsov
a0c8c70c9c
Use binary framing in MQTT WebSockets
2019-04-25 14:30:42 +03:00
Paweł Dorofiejczyk
cc5829bc33
Fix RFC6454 violation on websocket connection when validating Origin header
2019-04-24 16:59:54 +02:00
Paweł Chmielowski
8b501f5fe6
Catch potential exceptions in gen_mod:wait_for_process
...
Seems that at ejabberd shutdown, process may terminate before that function
is called, and in that case erlang:monitor throws exception.
2019-04-24 13:46:16 +02:00
Evgeny Khramtsov
fc043dd8cf
Reformat try_set_password/4 function
2019-04-23 21:25:10 +03:00
Evgeny Khramtsov
cbf3fec2c8
Don't call to mod_register when it's not loaded
...
Fixes #2828
2019-04-23 21:05:21 +03:00
Evgeny Khramtsov
edba1aebb5
Add WebSockets support to mod_mqtt
...
Example configuration:
listen:
...
-
port: 5280
module: ejabberd_http
request_handlers:
"/mqtt": mod_mqtt
modules:
...
mod_mqtt: {}
2019-04-23 19:18:22 +03:00
Paweł Chmielowski
d2ea905926
Fix handling of list arguments on pgsql
2019-04-23 17:46:42 +02:00
Evgeny Khramtsov
feb4c7f5e9
Support other socket modules for MQTT
2019-04-23 16:22:27 +03:00
Evgeny Khramtsov
5faae61bef
Move websocket options
2019-04-23 16:21:06 +03:00
Evgeny Khramtsov
cc892ddc01
Improve request_handlers validator
2019-04-23 16:19:26 +03:00
Evgeny Khramtsov
7c45b52c86
Correctly support cache tags in ejabberd_auth
2019-04-19 15:42:24 +03:00
Evgeny Khramtsov
0789a145fc
Allow returning HTTP headers in REST responses
2019-04-19 15:16:47 +03:00
Evgeny Khramtsov
7f14826564
Use new ets_cache api in ejabberd_auth
2019-04-19 15:08:41 +03:00
Paweł Chmielowski
875b2daff1
Add hook room_destroyed called when room gets destroyed
2019-04-17 18:56:25 +02:00
Paweł Chmielowski
4e2c95fe58
Change implementation of misc:unique_timestamp()
2019-04-16 11:20:55 +02:00
Paweł Chmielowski
83653c0338
Handle cdata in initial data probe of ws module
2019-04-16 10:56:11 +02:00
Paweł Chmielowski
3706e35b86
Make misc:unique_timestamp not overflow microsecond part.
...
This should fix issue #2860
2019-04-16 10:24:28 +02:00
Paweł Chmielowski
c96a925fde
Add hooks for tracking mucsub subscriptions changes
2019-04-15 12:03:30 +02:00
Evgeny Khramtsov
009b9a1fd0
Feed whole image to eimp:identify/1
...
Fixes #2859
2019-04-14 17:05:16 +03:00
Paweł Chmielowski
8761e6e0e0
Handle correctly case where ExtraUsername is empty
2019-04-11 12:00:13 +02:00
Paweł Chmielowski
c5a06e9d06
When making mucsub message from mam archive check for subject
2019-04-09 11:17:14 +02:00
Evgeny Khramtsov
2e007f1607
Use xml:lang from stanza when it's missing in <command/> element
...
Thanks to Philipp Hörist for spotting this
2019-04-06 18:27:28 +03:00
Evgeny Khramtsov
9f3ccd604e
Add 'sessionid' attribute when required
...
Fixes #2852
2019-04-06 16:52:22 +03:00
Evgeny Khramtsov
909a505d65
Update mod_muc_riak
2019-04-03 16:04:58 +03:00
Evgeny Khramtsov
3013f1b9bc
Update mod_mam dependencies
2019-04-03 15:01:20 +03:00
Evgeny Khramtsov
17b9dc6035
Decrease ugliness of the ugly code
2019-04-03 14:50:56 +03:00
Evgeny Khramtsov
e66f594901
Change mucsub API for database backends
2019-04-03 14:20:37 +03:00
Badlop
4e591a73c5
Add ext_mod paths before checking config ( processone/ejabberd-contrib#263 )
2019-04-03 13:10:11 +02:00
Paweł Chmielowski
623a9ec3ba
Return proper error message for duplicate or missing args in http_api call
2019-04-03 12:05:39 +02:00
Paweł Chmielowski
65a6532cd9
Log message when trying to execute http_api command with extra arguments
2019-04-03 11:50:15 +02:00
Paweł Chmielowski
33c10867e3
Formating fix
2019-04-03 11:48:59 +02:00
Paweł Chmielowski
d085fff14b
Make http_api command execution exception catcher log also command and args
2019-04-03 11:33:07 +02:00
Badlop
cbac8a604a
cache_size not applied to mod_roster on reload_config ( #2769 )
2019-04-02 19:52:07 +02:00
Evgeny Khramtsov
d96ab48c6b
Fix previous commit
...
Fixes #2847
2019-04-02 09:58:12 +03:00
Evgeny Khramtsov
ed2abe471a
Rename listening callback from start/2 to start/3
...
This will prevent conflicts in callback names in mod_mqtt
Old callback function is still supported.
2019-04-01 16:53:28 +03:00
Paweł Chmielowski
7eef966a04
Fix issue with creating HostMatch in mod_mam_sql
...
This fixes issue #2844
2019-04-01 10:56:03 +02:00
Evgeny Khramtsov
5c69122bbe
Use xmpp:get_subtags/2
2019-04-01 10:47:29 +03:00
Paweł Chmielowski
9b040f65a3
Don't use deprecated gen_mod:db_type
2019-03-29 18:41:51 +01:00
Paweł Chmielowski
24b9b69783
Fix issue with mam tests
...
Too much copy/paste...
2019-03-29 17:18:30 +01:00
Paweł Chmielowski
0c78e01088
Implement mod_muc_sql:select_with_mucsub
...
This allows us to limit number of issued queries required by
user_mucsub_from_muc_archive option
2019-03-29 16:11:50 +01:00
Paweł Chmielowski
a7310ffea1
Make misc:add_delay_info properly handle multiple delay tags in element
2019-03-29 11:25:35 +01:00
Paweł Chmielowski
8e05fd1d24
Add option user_mucsub_from_muc_archive to mod_muc
...
This option disable storing separate mucsub message for each individual
subscriber but instead when user fetches archive virtual mucsub messages
are generated from muc archives.
2019-03-28 17:42:25 +01:00
Paweł Chmielowski
063869603a
Include id in mucsub notification message
2019-03-28 14:43:28 +01:00
Badlop
ee2b441b0f
Add 'config' tag to the reload_config command
2019-03-27 11:51:43 +01:00
Badlop
1f2b8adc28
Fix Register command to respect mod_register's Access option ( #2837 )
2019-03-22 15:02:51 +01:00
Badlop
6545d55473
Fix crash in mod_muc_admin:web_page_main/2 caused by just_created ( #2830 )
2019-03-18 17:11:00 +01:00
Paweł Dorofiejczyk
6129720838
Origin header validation on websocket connection ( #2821 )
2019-03-15 12:19:14 +01:00
Christophe Romain
4a920dca5a
Add newline to error_logger log format
2019-03-15 11:51:48 +01:00