Badlop
de85c1718e
Bypass account creation error when password is empty, caused by extauth
2018-05-08 18:19:07 +02:00
Evgeniy Khramtsov
8766854870
Get rid of ?FUNCTION_NAME macro (it's OTP19+ feature)
2018-05-08 12:06:58 +03:00
Evgeniy Khramtsov
61ae0ff02c
Improve logging of external authentication failures
2018-05-08 09:36:34 +03:00
Evgeniy Khramtsov
5522403e8e
Don't stop on out-of-date requests
2018-05-07 22:43:01 +03:00
Evgeniy Khramtsov
b23d5754e8
Improve robustness of external authentication backends
...
Now all external ports are attached to supervising processes
and requests are balanced in round-robin manner until the pool
is exhausted.
The commit also deprecates `extauth_instances` option and introduces
`extauth_pool_size` option instead, with the default value of a number
of logical processors (i.e. CPU cores).
Fixes #2403
2018-05-07 19:27:18 +03:00
Paweł Chmielowski
b1a03cc346
Make trusted_proxied ejabberd_http option accept ip masks
2018-05-04 09:53:07 +02:00
Paweł Chmielowski
ca94cbfd31
Teach acl ip matching about ipv4 mapped ipv6 addresses
2018-05-04 09:52:06 +02:00
Holger Weiss
410db89167
ejabberd_auth: Don't use cache if it's disabled
...
Don't let the check whether a user exists use the cache if caching was
disabled in the configuration.
2018-05-03 00:31:33 +02:00
Holger Weiss
638f2d2e67
mod_blocking: Use #block_item{} record
2018-05-02 22:17:32 +02:00
Evgeniy Khramtsov
4ea481d1dd
Add validator for 'accept_interval' listening option
2018-04-30 11:52:00 +03:00
Holger Weiss
538e0d4844
misc: Catch all Base64 decoding errors
2018-04-24 18:29:10 +02:00
Holger Weiss
f3795e9d03
mod_http_upload: Add MIME type for M4A files
2018-04-24 18:16:16 +02:00
Christophe Romain
3df919244c
PubSub purge_node must use a transaction ( #2231 )
2018-04-24 15:58:56 +02:00
Evgeniy Khramtsov
6774418a7f
Introduce new mod_muc option: access_register
...
The option is an ACL rule defining who is able to register
nicknames within the conference service. The default is `all`
(for backward compatibility).
2018-04-24 12:29:59 +03:00
Evgeniy Khramtsov
ad6fcc7865
Get rid of useless memory/disk usage warnings
2018-04-24 12:12:48 +03:00
Evgeniy Khramtsov
ca28faa51a
Fix get_affiliation/2
2018-04-24 12:07:10 +03:00
Paweł Chmielowski
5b730cdbf2
Use httpc directly instead of using p1_http wrapper
2018-04-23 17:40:44 +02:00
Paweł Chmielowski
9ed0357760
Use correct headers in rest calls
2018-04-23 12:29:56 +02:00
Evgeniy Khramtsov
06ce884aa8
Add stubs for affiliation-specific backend callbacks
2018-04-23 11:35:43 +03:00
Paweł Chmielowski
3fc0eb4f5b
Use correct db backend for remove_mam_for_user_with_peer
2018-04-20 14:06:23 +02:00
Paweł Chmielowski
3bfa683586
Fix mnesia call in mam archive management function
2018-04-20 13:36:54 +02:00
Paweł Chmielowski
5be49cc0fa
Add commands for cleaning up mam archive
2018-04-20 13:27:46 +02:00
Christophe Romain
42c029d5f7
Fix type of rest:url/2
2018-04-19 13:21:33 +02:00
Christophe Romain
a567abcfdf
Fix deprecated call injected by 265c7b62
2018-04-18 14:16:56 +02:00
Christophe Romain
265c7b62c7
Add flexibility on rest url config
2018-04-18 13:16:08 +02:00
Holger Weiss
332567693c
mod_push_keepalive: Reset timeout on messages only
...
Some mobile apps might only be notified on actual chat messages with
a body, so don't let mod_push_keepalive reset the stream management
timeout on other types of traffic.
2018-04-17 00:27:07 +02:00
Holger Weiss
de7dc4affa
mod_push: Optionally include message sender/body
...
Add 'include_sender' and 'include_body' options. If one or both of them
are set to 'true', a urn:xmpp:push:summary form with the enabled
field(s) is included in push notifications that are generated for
messages with a body.
The 'include_body' option can instead be set to a static text. In this
case, the specified text will be included in place of the actual message
body. This can be useful to signal the push service whether the
notification was triggered by a message with body (as opposed to other
types of traffic) without leaking actual message contents.
2018-04-16 23:18:03 +02:00
Holger Weiss
48c5ab59f1
mod_http_upload*: Remove empty lines after specs
...
Remove blank lines following function specifications in mod_http_upload
and mod_http_upload_quota for consistency with other modules.
2018-04-16 18:22:54 +02:00
Holger Weiss
b2855d63a7
mod_http_upload*: Add function specifications
2018-04-16 18:17:28 +02:00
Holger Weiss
0282cf64a0
mod_push: Add function specification
2018-04-16 18:14:07 +02:00
Holger Weiss
e5cb9dad40
mod_push: Add/adjust debug messages
2018-04-16 18:12:46 +02:00
Evgeniy Khramtsov
acc162f4f4
Carefully validate options list
2018-04-16 15:48:06 +03:00
Evgeniy Khramtsov
b8505f3e78
Don't crash on invalid module's sub-options
...
Fixes #2387
2018-04-16 11:06:57 +03:00
Holger Weiss
8a71e2e4f7
mod_push: Don't notify on stream errors
...
If a pending stream management session is closed with a stream error,
this is usually due to the client opening a new stream that conflicts
with the old one. Don't generate a push notification in this situation.
2018-04-16 01:08:56 +02:00
Evgeniy Khramtsov
a5284229cb
Merge branch 'muc-self-presence'
2018-04-14 18:32:12 +03:00
Evgeniy Khramtsov
d0f36537fb
Clear fast_tls cache on configuration reload
2018-04-13 11:10:20 +03:00
Holger Weiss
3cf4fbc7b0
mod_roster: Use 'lserver' for configuration lookup
2018-04-13 00:12:07 +02:00
Paweł Chmielowski
fe4b1a492c
Fix notification payload generated by pubsub
2018-04-12 18:02:32 +02:00
Paweł Chmielowski
c3b4b4ce4f
Pass access option from websocket to c2s
...
This fixes issue #2223
2018-04-12 17:42:59 +02:00
Christophe Romain
d28064518b
Improve pubsub#itemreply implementation ( #2325 )
2018-04-12 15:38:12 +02:00
Christophe Romain
99444f2d0e
Fix illegal match on previous commit
2018-04-10 15:02:03 +02:00
Christophe Romain
4c0f87b2ff
Improve fix for #2288 , don't mask errors on get_item
2018-04-10 14:47:18 +02:00
Holger Weiss
54363f8476
gen_mod: Support global module processes
2018-04-04 18:25:19 +02:00
Holger Weiss
094f586811
gen_mod: Remove frontend process support
...
ejabberd doesn't support frontend processes anymore.
2018-04-04 18:22:59 +02:00
Paweł Chmielowski
45a3c7e0ce
Improve mod_multicast
2018-04-04 12:06:35 +02:00
Holger Weiss
e2652ce02f
mod_http_upload: Accept characters of any script
...
Accept all alphanumeric characters of any script in user and file names
rather than replacing non-ASCII characters with underscores. However,
non-alphanumeric characters are still replaced, except for "." and "-".
Closes #2346 .
2018-04-03 21:00:15 +02:00
Holger Weiss
df651d893e
Remove old hex conversion functions
...
Depend on list_to_integer/2 and integer_to_list/2 being available.
2018-04-03 00:21:33 +02:00
Holger Weiss
a2e1f5c882
Move ejabberd_http:url_encode/1 to 'misc' module
2018-04-03 00:12:43 +02:00
Badlop
7f5796fe31
Fix Code format when logging a MUC room kick/ban
2018-04-02 13:51:19 +02:00
Holger Weiss
5f1191b9f5
mod_client_state: Add 'csi_activity' hook
...
Closes #2358 .
2018-04-01 17:13:04 +02:00
Pouriya Jahanbakhsh
e17a16a300
fix: run 'component_send_packet' hook in global mode
2018-03-30 23:19:33 +04:30
Pouriya Jahanbakhsh
7b3d26992b
feat: add hook for sending packet from component
...
New hook 'component_send_packet' added.
Callback function must accept one argument {Pkt, ComponentState} and should yield 'drop' or {NewPkt, NewComponentState}.
2018-03-30 21:31:30 +04:30
Evgeniy Khramtsov
9373ad20ca
Don't produce a crash dump during intentional exit
...
Also halt faster without relying on timeouts for buffers flushing
2018-03-29 12:14:31 +03:00
Evgeniy Khramtsov
b283cfa6f2
Remove unused variable
2018-03-29 10:34:09 +03:00
Paweł Chmielowski
dfbdffad44
Fix process_discoitems_result in mod_multicast
2018-03-28 11:23:28 +02:00
Evgeniy Khramtsov
ea9c3fd8f7
Fix returning value from mod_vcard_ldap's search() callback
...
Fixes #2335
2018-03-25 10:53:46 +03:00
Evgeniy Khramtsov
f39dbe6e49
Get rid of 'fs' package dependency
...
Certificates auto-reloading will be fixed later.
For now to reload certificates call `reload-config` ejabberd command.
2018-03-23 16:40:26 +03:00
Evgeniy Khramtsov
50de427570
Set empty least as a default for force_node_config
2018-03-23 16:09:18 +03:00
Evgeniy Khramtsov
55604b2d97
Move force_node_config defaults into ejabberd.yml.example
2018-03-23 16:08:12 +03:00
Evgeniy Khramtsov
f5bab5d6c4
Fetch 'registration_watchers' option from the correct module
...
Fixes #2337
2018-03-23 09:42:55 +03:00
Christophe Romain
0bda169a5a
Remove items of unregistered user ( #2129 )
2018-03-22 11:59:24 +01:00
Paweł Chmielowski
96c183c04b
Accept atoms in api_permission command lists and commands with numbers in them
2018-03-21 12:53:46 +01:00
Badlop
b4b3ff50d6
If mod_last is disabled, return error instead of crashing ( #2330 )
2018-03-20 22:18:43 +01:00
Evgeniy Khramtsov
8962397cf3
Report meaningful error when luerl is not available
2018-03-19 20:09:35 +03:00
Evgeniy Khramtsov
b1ecd8ac01
Set -protocol() directive for mod_avatar
2018-03-19 19:23:15 +03:00
Evgeniy Khramtsov
4f1d7c4b66
Avoid logging IP addresses in mod_register when it's not desired
...
Fixes #2326
2018-03-19 18:23:52 +03:00
Evgeniy Khramtsov
bb20e5f3fa
Apply some dirty hacks for mod_shared_roster
...
Probably this fixes #1846
2018-03-19 12:32:43 +03:00
Evgeniy Khramtsov
e1e7986918
Hardcode ACL rules used by ejabberd_web_admin
2018-03-19 12:29:07 +03:00
Christophe Romain
7ba6fae67c
Improve result of XEP-0060 §6.5.9.12 ( #2288 )
...
Moving get_item result control to keep item-not-found on transaction
error when node does not exists
2018-03-17 10:59:34 +01:00
Christophe Romain
7beb19b01e
Fix result of XEP-0060 §6.5.9.12 ( #2288 )
2018-03-16 17:48:42 +01:00
Christophe Romain
a84dd0f627
Add transient notification condition ( #2267 )
2018-03-16 17:26:51 +01:00
Christophe Romain
d8f9219b4f
Refactor publish_item conditions ( #2267 )
2018-03-16 17:17:53 +01:00
Evgeniy Khramtsov
ddc29d42de
Fulfill all requirements of XEP-0398 v0.2.0
...
These include:
- Avoid rewriting vcard❌ update tags with empty <photo/> element
- Advertise "urn:xmpp:pep-vcard-conversion:0" feature
2018-03-16 12:10:57 +03:00
Alexey Shchepin
e15595df64
Add 'new_sql_schema' config option, --enable-new-sql-schema now sets its default value to true ( #2239 )
2018-03-15 17:55:05 +03:00
Evgeniy Khramtsov
99b41146b1
Get rid of catch-all in mod_pubsub
2018-03-13 22:10:58 +03:00
Evgeniy Khramtsov
6b079c0ab3
Preserve modules order
...
When modules for some virtual host are about to be started,
they are topologically sorted to preserve dependencies order.
We now keep this order for stop/reload functions to work properly.
2018-03-13 18:18:53 +03:00
badlop
c5aea779b4
Merge pull request #2314 from oxpa/mod_admin_extra_hashes
...
allow using hashes from "crypto" applications in mod_admin_extra
2018-03-12 15:20:53 +01:00
Badlop
be33c93344
Return errors in admin#add-user command response stanza ( #2321 )
2018-03-12 13:33:44 +01:00
Evgeniy Khramtsov
2785f1dfd2
Introduce force_node_config for mod_pubsub
...
The option can be used to override configuration options of a
particular PubSub node. Example:
mod_pubsub:
...
force_node_config:
"eu.siacs.conversations.axolotl.*":
access_model: whitelist
"*":
persist_items: true
Fixes #2276
2018-03-11 16:54:35 +03:00
Evgeniy Khramtsov
c3eeb8624b
Strip duplicates from module's options
2018-03-07 17:46:16 +03:00
Holger Weiss
bc808ffcde
mod_stream_mgmt: Clean up on timed out resumption
...
During resumption, make sure the old process and the corresponding
session entry are disposed also in the case where the call that queries
the old process times out.
2018-03-06 21:03:31 +01:00
Evgeniy Khramtsov
d9bf5a6865
Don't forget to remove mgmt_force_enqueue flag
2018-03-06 16:18:03 +03:00
Holger Weiss
67fe5d38a7
mod_push_keepalive: Preserve timeout on resumption
...
Don't forget to carry over the original XEP-0198 resumption timeout
value while resuming.
2018-03-05 01:10:12 +01:00
Evgeniy Khramtsov
63dba3fd64
Merge branch 'master' into muc-self-presence
2018-03-03 21:09:27 +03:00
Evgeniy Khramtsov
da1a5036fe
Revert "Support for default values in default_room_opts"
...
This reverts commit 5054a9933f
.
The commit is plain wrong: similar options are not required to
be in pair.
2018-03-03 21:08:05 +03:00
Evgeniy Khramtsov
0d3637d18f
Simplify ejabberd_sup code
2018-03-03 18:05:12 +03:00
oxpa
f2a3118ecc
allow using hashes from "crypto" applications in mod_admin_extra
2018-03-02 04:10:30 -09:00
Badlop
dbf1cabdcd
Fix: mod_offline:store_offline_msg/1 expects a message, not list ( #2312 )
2018-03-02 11:44:10 +01:00
Badlop
ad0fd1eac1
Simplify result of get_room_affiliation command ( #2301 )
2018-03-01 19:45:16 +01:00
badlop
3003307e60
Merge pull request #2301 from tsaqova/ejabberd_commands_get_room_affiliation
...
add ejabberd_command to get affiliation of a user in MUC room
2018-03-01 19:37:55 +01:00
Evgeniy Khramtsov
76f827ac83
Increase log level for DIGEST-MD5 FQDN
...
SASL DIGEST-MD5 anyway deprecated anyway, so not point in
logging this. This is now logged in `debug` mode.
2018-02-28 21:43:43 +03:00
Stu Tomlinson
da81590fef
Validate additional listen opts
...
The options "inet", "inet6" and "backlog" are valid listen options, but are
currently logged as errors (even though they do work):
2018-02-28 16:08:44.141 [error] <0.338.0>@ejabberd_listener:validate_module_option:630 unknown listen option 'backlog' for 'ejabberd_c2s' will be likely ignored, available options are: access, shaper, certfile, ciphers, dhfile, cafile, client_cafile, protocol_options, tls, tls_compression, starttls, starttls_required, tls_verify, zlib, max_fsm_queue
This adds the necessary validators so they are correctly recognized.
2018-02-28 16:14:35 +00:00
Yusro Tsaqova
8a41cfc0f5
add ejabberd_command to get affiliation of a user in MUC room
2018-02-28 20:22:27 +07:00
Badlop
5054a9933f
Support for default values in default_room_opts
2018-02-26 17:22:37 +01:00
Paweł Chmielowski
b2095ebcfe
Simplify code for splitting auth string in cyrsasl
...
This may fix problem from issue #2296
2018-02-26 09:36:56 +01:00
Holger Weiss
c2235860ab
xmpp_stream_in: Run auth result callbacks earlier
...
Call Mod:handle_auth_success/4 and Mod:handle_auth_failure/4 before
sending the SASL response rather than afterwards. This way, callbacks
can send a custom response and disconnect.
2018-02-26 00:06:35 +01:00
Holger Weiss
22e43ebd8a
mod_stream_mgmt: Cope with exit during resumption
...
Don't crash if the old process exits while it is queried for the session
state.
2018-02-24 21:50:54 +01:00
Marc Schink
c1e5ae5308
Move make_rand_string() to 'randoms' module
2018-02-23 18:32:34 +01:00
Holger Weiss
ea87bdfbe5
mod_carboncopy: Apply cosmetic change
...
The xmpp:has_subtag/2 function returns a boolen() value, so it can be
used with the 'not' operator.
2018-02-22 00:46:47 +01:00
Holger Weiss
7a1ed065fe
mod_carboncopy: Copy outgoing MUC PMs
...
Incoming MUC PMs aren't carbon-copied, as the MUC service usually forks
them. However, don't suppress copying of outgoing PMs, where no such
forking takes place.
2018-02-22 00:40:09 +01:00
Evgeniy Khramtsov
ec0f0f7c72
Move some log messages to debug level
2018-02-21 17:12:50 +03:00
Evgeniy Khramtsov
0acc69e303
Use nicks in disco#items or disco#info report
2018-02-21 10:25:15 +03:00
Evgeniy Khramtsov
4bf4193d55
Add 'negotiation_timeout' to the known options list
2018-02-20 19:47:50 +03:00
Evgeniy Khramtsov
d625e24029
Introduce 'negotiation_timeout'
...
The option can be used to specify a period (in seconds) for a stream
negotiation to complete. If the timer fires, the stream is considered
as failed and the underlying connection gets closed. This is a global
option (you cannot set it per domain) and the default is 30 seconds.
2018-02-20 11:38:00 +03:00
Holger Weiss
a875195940
mod_admin_extra: Fix srg_get_info with '@all@'
...
Don't let the srg_get_info command crash if the roster group has '@all@'
or the '@online@' users as members.
2018-02-20 00:44:47 +01:00
Evgeniy Khramtsov
06c480106f
Don't emit validator's warning if the module is not found
2018-02-19 22:07:09 +03:00
Evgeniy Khramtsov
e070e6bccb
Replace ?MYLANG with connection's language wherever possible
2018-02-19 21:47:20 +03:00
Evgeniy Khramtsov
de49e7631f
Push blocking related IQs from bare JID
...
Fixes #2287
2018-02-18 18:00:20 +03:00
Evgeniy Khramtsov
25abf8b634
Don't inject node name inside "id" attribute
...
Fixes #2284
2018-02-18 11:54:40 +03:00
Evgeniy Khramtsov
ff06bdf144
Don't ask other nodes to invalidate cache when the key is not updated
2018-02-18 09:02:23 +03:00
Evgeniy Khramtsov
d5afc767e6
Fix 'badmatch' crash
...
The crash was introduced in 4b012a99d2
2018-02-17 20:06:50 +03:00
Evgeniy Khramtsov
5704a980c5
Introduce 'access' option for mod_block_stranger
...
The option is supposed to be used when `allow_local_users`
and `allow_transports` are not enough. It's an ACL where `deny`
means the message will be rejected (or a CAPTCHA would be
generated for a presence), and `allow` means the sender is
whitelisted and the stanza will pass through.
The default value is `none`, which means nothing is whitelisted.
2018-02-17 18:53:35 +03:00
Evgeniy Khramtsov
cffdb06b66
Cache 'isuser' queries to external auth program
2018-02-16 20:50:22 +03:00
Christophe Romain
7e1df0752a
Export helper function
2018-02-16 09:53:38 +01:00
Christophe Romain
f0ccdebf7f
Export helper functions
2018-02-16 09:52:29 +01:00
Evgeniy Khramtsov
32e5a3255d
Export aux functions from mod_muc_room
2018-02-16 08:28:33 +03:00
Evgeniy Khramtsov
c102a45fac
Rename some keys and functions for clarity
2018-02-15 15:50:20 +03:00
Evgeniy Khramtsov
52ded14b7f
Update incoming stanzas counter on invalid XML
2018-02-15 15:42:55 +03:00
Evgeniy Khramtsov
e5ba7c3f3c
Better solution for a previous fix
2018-02-15 10:48:59 +03:00
Evgeniy Khramtsov
51aa9d98a7
Don't forget to add invalid XML responses to sending queue
2018-02-15 10:18:06 +03:00
Evgeniy Khramtsov
a65500b6aa
Fix external components unregistration
2018-02-14 13:09:27 +03:00
Evgeniy Khramtsov
032f796292
Introduce option 'global_routes' for ejabberd_service
...
The option emulates legacy behaviour which registers all routes
defined in `hosts` on a component connected. This behaviour
is considered harmful in the case when it's desired to multiplex
different components on the same port, so, to disable it,
set `global_routes` to `false`. The default value is `true`,
e.g. legacy behaviour is emulated: the only reason for this is
to maintain backward compatibility with existing deployments.
2018-02-14 11:53:52 +03:00
Evgeniy Khramtsov
516f4d03a1
Fix indentation
2018-02-14 11:42:43 +03:00
Paweł Chmielowski
60a8623929
Change formatting of commands markdown documentation
2018-02-13 16:27:39 +01:00
Christophe Romain
9dbdeba6c1
Add case on create_room, avoid useless call
2018-02-13 11:08:13 +01:00
Evgeniy Khramtsov
4632f5520f
Really run use_cache/1 and cache_nodes/1 callbacks for mod_mam
2018-02-13 11:38:41 +03:00
Evgeniy Khramtsov
ffe02c46e4
Let a MUC room to route presences from its bare JID
...
The goal for this is to provide entity capabilities (XEP-0115) and
vCard-based avatar hash (XEP-0153)
2018-02-12 17:37:36 +03:00
Tobias Koch
9188a7b838
Dialyzer checks always failed because the return value of the function 'get_subscribed_rooms' in 'mod_muc_sql' is different to the defined value in 'mod_muc'. Fix was to update the return value in 'mod_muc.erl'.
2018-02-12 15:12:46 +01:00
Evgeniy Khramtsov
66fc1bf3b6
Remove 'iqdisc' option
...
Since we got rid of all bottle-neck processes and we have
a connection pool for every database, the option is no longer
needed and in fact is detrimental: in practice what you get
is just a bunch of overloaded processes in the IQ handlers pool
no matter how much you increase the `iqdisc` value.
Given that there are close to zero operators understanding
the meaning of the option and, hence, not using it all,
it's not simply deprecated but completely removed.
The commit also deprecates the following functions:
- gen_iq_handler:add_iq_handler/6
- gen_iq_handler:handle/5
- gen_iq_handler:iqdisc/1
2018-02-11 12:54:15 +03:00
Evgeniy Khramtsov
97f913b8d9
Merge branch 'master' of github.com:processone/ejabberd
2018-02-10 11:36:48 +03:00
Evgeniy Khramtsov
6c1a1bd000
Rely on use_cache/1 callback in mod_caps
2018-02-10 11:36:39 +03:00
Holger Weiss
9fb2253aa9
mod_stream_mgmt: Abort connection on count error
...
If the client acknowledged more stanzas than the server sent, close the
connection with a stream error rather than hiding client bugs by silently
adjusting the server's count.
2018-02-10 00:06:19 +01:00
Evgeniy Khramtsov
672c2f75d3
Introduce option 'validate_stream'
...
If set to `true`, all incoming XML packets are fully validated
against known schemas. If an error occurs, the packet will be bounced
with the corresponding error reason. The default value is `false`.
The option might be useful to protect client software from sofisticated
bugs related to XML validation as well as for client developers
who want to catch validation errors at early stage of development.
Note that the option might have slight performance impact, so use it
with care on loaded machines.
2018-02-09 18:12:50 +03:00
Evgeniy Khramtsov
5c85106a41
Fix type spec
2018-02-07 22:20:12 +03:00
Badlop
c2911222e4
Commands markdown also lack arguments when policy=user
2018-02-07 16:39:18 +01:00
Evgeniy Khramtsov
232b66b0f4
Introduce 'rate_limit' option of mod_avatar
...
The option controls how many avatars a user can upload per minute.
The option takes positive integer values. The default is 10.
Note that the option only takes effect when an avatar is about
to convert to a different format, i.e. it implies that `convert`
option is configured.
2018-02-05 23:12:36 +03:00
Evgeniy Khramtsov
c65dcfeda7
Export is_online/1 function
2018-02-05 15:13:13 +03:00
Evgeniy Khramtsov
c990abf222
Improve log message when module startup has failed
2018-02-02 13:16:14 +03:00
Paweł Chmielowski
f6ebbe4c78
Fix compilation ordering in mix by s/-behavior/-behaviour/
2018-01-31 14:57:43 +01:00
Paweł Chmielowski
fc3c605945
Use correct default when getting list of modules from config
2018-01-30 19:44:27 +01:00
Paweł Chmielowski
3b646cc2ec
Run tests only on backends enabled by configure
2018-01-30 15:30:37 +01:00
Paweł Chmielowski
bb58307190
Match all possible values in mod_privilege checks, or we get crashes
2018-01-30 13:10:22 +01:00
Paweł Chmielowski
53870c854e
Fix exception in mod_privilege:process_presence_in
...
This should fix problem reported in issue #2248
2018-01-30 12:52:38 +01:00
Paweł Chmielowski
ddf6076328
Fix elixir tests
2018-01-29 18:28:02 +01:00
Paweł Chmielowski
d2974cf48a
Fix processing of ldap_memberattr_format_re option
...
This makes sure that "" value is handled as before options processing
overhaul.
This fixed ldap shared roster testcase
2018-01-29 17:25:31 +01:00
Paweł Chmielowski
dc601610b6
Don't return undefined from ejabberd_config:get_myhosts()
2018-01-29 11:05:59 +01:00
Paweł Chmielowski
c47366ba97
Restore original return value to ejabberd_config:add_option
2018-01-29 09:46:11 +01:00
Holger Weiss
f31782a252
mod_caps: Only store CAPS if contact is subscribed
...
If a user is subscribed to a contact but not vice versa, don't store the
contact's CAPS. This makes sure no PEP items are leaked to the contact.
2018-01-29 01:07:38 +01:00
Holger Weiss
d0af61f488
mod_caps: Fix indentation
2018-01-29 00:02:15 +01:00
Evgeniy Khramtsov
795efb2ee1
Improve logging of idle s2s connections
2018-01-28 11:10:22 +03:00
Evgeniy Khramtsov
6e5439db5c
Find and fix typos using 'codespell'
2018-01-27 19:35:38 +03:00
Evgeniy Khramtsov
5d582080be
Fix a typo in call to create_captcha()
...
Thanks to Paul Schaub for spotting this
2018-01-26 22:56:49 +03:00
Evgeniy Khramtsov
4b012a99d2
Introduce option 'captcha' for mod_block_strangers
...
When the option is set to `true`, the module will generate
CAPTCHA challenges for incoming subscription requests. The option
also implies that option `drop` is set to `true`. Note that
the module won't generate CAPTCHA challenges for messages: they
will still be rejected if `drop` is set to `true`.
Fixes #2246
2018-01-26 15:02:06 +03:00
Evgeniy Khramtsov
2269d290d8
Switch to newer fast_xml and xmpp and update record fields in the code
2018-01-25 20:02:47 +03:00
Paweł Chmielowski
56d4224e08
Handle ignore from xmpp_socket callback start
...
This should help with issue #2244
2018-01-24 17:32:24 +01:00
Holger Weiss
666da60cba
Reduce log level for unexpected XML input
...
Log a warning rather than an error when, for example, a client sends a
stanza before opening the stream.
2018-01-24 12:04:52 +01:00
Holger Weiss
e8f1de8785
mod_block_strangers: Bounce groupchat to bare JID
...
If a blocked message is of type 'groupchat', address the error message
to the bare JID (rather than sending it as MUC PM).
2018-01-24 11:49:31 +01:00
Evgeniy Khramtsov
1f6c0022dd
Fix a typo in mod_caps
2018-01-23 23:20:10 +03:00
Evgeniy Khramtsov
a917f4d451
Merge branch 'mod-default-options'
2018-01-23 11:00:00 +03:00
Evgeniy Khramtsov
ba2b650464
Introduce new gen_mod callback: mod_options/1
...
The callback is supposed to provide known options and their default
values, as long as the documentation. Passing default values into
get_mod functions is now deprecated: all defaults should be provided
by the Mod:mod_options/1 callback.
2018-01-23 10:54:52 +03:00
Holger Weiss
818ff5a263
Update 'pubsub_node' column name for DB export
...
The 'type' column has been renamed in commit
44700d91ba
.
2018-01-19 13:10:14 +01:00
Evgeniy Khramtsov
c0ef054f6f
Do not try to start ezlib application too frequently
...
This may overload Erlang applicaton controller
2018-01-16 18:06:31 +03:00
Evgeniy Khramtsov
d35a8805b0
Return debug message back
2018-01-16 17:57:21 +03:00
Evgeniy Khramtsov
7b0fa7e6e2
Improve validation of 'convert' option
2018-01-16 01:06:20 +03:00
Evgeniy Khramtsov
d3aab2ea18
Get rid of a call to misc:have_eimp()
2018-01-15 13:14:51 +03:00
Evgeniy Khramtsov
b970c88941
Merge branch 'master' of github.com:processone/ejabberd
2018-01-15 13:00:19 +03:00
Evgeniy Khramtsov
0f86559d83
Always build eimp dependency
...
Even if no suitable C graphics libraries are detected
at compile time, the package is still usable because it
provides `eimp:get_type/1` which is used by mod_avatar.
2018-01-15 12:54:57 +03:00
Paweł Chmielowski
3df78d3a8f
Copy sh_to_ask function from xmerl_regexp.erl
...
This way we don't need to include xmerl application in our docker container
2018-01-15 10:31:26 +01:00
Evgeniy Khramtsov
f66a004821
Improve logging of failed s2s EXTERNAL authentication
2018-01-13 13:01:40 +03:00
Paweł Chmielowski
df8888ab38
Send privileges if at least one of them is set, don't require all to be set
2018-01-09 15:50:42 +01:00
Evgeniy Khramtsov
9d94361466
Process 'name' option for all route-registering modules
...
The option allows to set arbitrary text for disco#info identity name.
Previously, option 'name' was supported by mod_proxy65 and mod_http_upload
only. Now, all the following modules support this option as well:
- mod_disco
- mod_irc
- mod_muc
- mod_multicast
- mod_pubsub
- mod_vcard
Example:
```
modules:
...
mod_disco:
name: "Cool XMPP Server"
...
```
2018-01-08 11:29:17 +03:00
Evgeniy Khramtsov
cdc7c1d1ed
Update copyright dates
2018-01-05 23:18:58 +03:00
Evgeniy Khramtsov
fb07c9929a
Return true
or false
from send() callback
...
Fixes #2209
2018-01-05 12:15:28 +03:00
Evgeny Khramtsov
946754536c
Merge pull request #2202 from weiss/bounce-to-stranger
...
mod_block_strangers: Bounce an error message
2018-01-05 11:43:18 +03:00
Paweł Chmielowski
4c799528c7
Fix ejabberd command privacy_set
...
This fixes issue #2205
2018-01-04 14:57:36 +01:00
Marc Schink
264add87fa
mod_proxy65: Expand @HOST@ keyword in 'hostname' option
2018-01-03 22:31:06 +01:00
Holger Weiss
835360733b
mod_block_strangers: Bounce an error message
...
Return a stanza error when a message is rejected, in order to make
legitimate users aware of the issue.
Closes #2197 .
2018-01-03 15:41:30 +01:00
Evgeniy Khramtsov
240977a0da
Repair hosts check during certfiles validation
2017-12-28 21:36:57 +03:00
Evgeniy Khramtsov
529d6d8a93
Return default certificate on domain mismatch
2017-12-28 17:24:23 +03:00
Christophe Romain
439fe0b504
Fix check_opt_range when no boundary is configured
2017-12-28 13:51:26 +01:00
Christophe Romain
08e54dd621
Don't force rsm when max_items is not defined ( #2189 )
2017-12-28 11:48:54 +01:00
Christophe Romain
8918227fc3
Revert "Include os_mon application"
...
This reverts commit 56241feb58
.
That was a mistake, breaking application start
2017-12-28 10:32:21 +01:00
Paweł Chmielowski
5ba13df519
Revert "Start os_mon application"
...
This reverts commit 82b3bbf360
.
2017-12-27 17:21:17 +01:00
Evgeniy Khramtsov
dd4d45fd28
Fix a regression in xmpp_socket
2017-12-27 18:49:25 +03:00
Paweł Chmielowski
82b3bbf360
Start os_mon application
2017-12-27 16:23:04 +01:00
Paweł Chmielowski
e6d1ff85f1
Use bare jid when processing roster subscriptions
2017-12-27 16:14:47 +01:00
Christophe Romain
56241feb58
Include os_mon application
2017-12-27 12:28:13 +01:00
Holger Weiss
60b6a508e0
Forget old access/shaper rules and ACLs on reload
2017-12-26 19:37:11 +01:00
Evgeniy Khramtsov
2d43c07c62
Get rid of ejabberd receiver
...
ejabberd receivers were meant to serve connections from frontends
to backends. However, this approach was not popular and frontend
related code was removed in previous releases. Now, ejabberd receiver's
code was also removed, making the code shorter and cleaner. Also, in
stress tests ejabberd now handles load more robustly, without
c2s processes overload (even with disabled shapers).
ejabberd_socket.erl is renamed to xmpp_socket.erl: it's supposed to
be finally moved into stand-alone xmpp library.
2017-12-26 18:55:57 +03:00
Evgeniy Khramtsov
4e49919d16
Revert "Don't set twice"
...
This reverts commit 6dca89f616
.
2017-12-25 08:41:51 +03:00
Evgeniy Khramtsov
9ba471e210
Fix a typo in comment :)
2017-12-24 12:53:50 +03:00
Evgeniy Khramtsov
6dca89f616
Don't set twice
2017-12-24 12:34:47 +03:00
Evgeniy Khramtsov
1698956f34
Rely on Server Name Indication for incoming Direct-TLS connections
...
This commit also deprecates `certfile` option for ejabberd_http
listener.
2017-12-24 12:27:51 +03:00
Holger Weiss
b54e1e49ba
Don't let privacy list prevent local roster update
2017-12-23 22:45:01 +01:00
Holger Weiss
5e4c547856
mod_muc_admin: Fix last timestamp retrieval
2017-12-22 14:32:47 +01:00
Badlop
50b19b47e0
Fix commands rooms_unused_list and _destroy
2017-12-21 17:00:43 +01:00
Christophe Romain
a3083b5d71
Fix race between join_cluster and ejabberd_mnesia ( #2079 )
2017-12-21 14:07:29 +01:00
Christophe Romain
af9183cd54
Add pubsub#multi-items to features list ( #2162 )
2017-12-20 11:54:12 +01:00
Christophe Romain
242c3c1da5
Fix mix_sql features and options
2017-12-20 11:53:18 +01:00
badlop
212d44f419
Merge pull request #2164 from angelo-chan/master
...
add muc_online_rooms_by_regex to mod_muc_admin to filter list online r…
2017-12-19 23:10:20 +01:00
Holger Weiss
63a60f1cd8
ejabberd_sm: Fix get_session_sid/3
...
Let get_session_sid/3 cope with multiple session table entries for a
given resource.
2017-12-19 18:59:25 +01:00
Evgeniy Khramtsov
08ce16f7ca
Change loglevel of TLS failures
2017-12-19 15:33:30 +03:00
Christophe Romain
051e1be832
send_direct_invitations accepts only user jids
2017-12-19 10:24:07 +01:00
Evgeniy Khramtsov
9bccac03f5
Set disk_almost_full_threshold to 99%
2017-12-19 09:55:19 +03:00
Evgeniy Khramtsov
c9333f247a
Don't crash on malformed IQ
...
Fixes #2175
2017-12-19 09:15:35 +03:00
Evgeniy Khramtsov
c658f871a5
Log a warning when a disk is almost full
2017-12-18 12:30:10 +03:00
Evgeniy Khramtsov
a0607f6740
Disable default alarm handler
2017-12-18 12:15:49 +03:00
Evgeniy Khramtsov
47c2118fa7
Handle also process_memory_high_watermark alarm
2017-12-18 10:41:11 +03:00
Evgeniy Khramtsov
59f4efe3dd
Kill and restart lager when it's overloaded
2017-12-17 21:03:40 +03:00
Evgeniy Khramtsov
bd1ff0e897
Fix processing order
2017-12-17 20:19:44 +03:00
Evgeniy Khramtsov
5b42fc1d0d
Avoid excessive logging of SQL failures
2017-12-17 19:46:55 +03:00
Evgeniy Khramtsov
515f8b22c0
Rewrite ejabberd system monitor
...
Previous version was inefficient: it had a lot of false positives
along with a lot of false negatives, making its usage pointless.
The new verion is based on memsup(3erl) application: the OOM watchdog is
only started when total OS memory consumption is more than 80%.
A watchdog periodically inspects all running processes and collects
statistics about overloaded ones (those queueing a lot of messages).
If the OOM killer is enabled (`oom_killer: true`), all overloaded
processes would be killed. By default, OOM killer is enabled.
When memory consumption is back to normal, the OOM watchdog is stopped.
2017-12-17 18:52:37 +03:00
Holger Weiss
5968bc9318
Send last PEP items to owner on initial presence
...
Closes #2112 .
2017-12-13 18:59:06 +01:00
Evgeniy Khramtsov
08e642b988
Only allow compression after SASL
...
See XEP-0170 for details
Thanks to Vitaly Takmazov for spotting this
2017-12-13 16:52:44 +03:00
Christophe Romain
42932fd19e
PubSub: Add missing Nidx building records from sql result
2017-12-13 11:35:36 +01:00
Angelo Chan
b204f9349f
add muc_online_room_by_regex to mod_muc_admin to filter list online rooms
2017-12-13 11:07:12 +08:00
Holger Weiss
03246f5ff4
mod_pubsub: Send last items on initial presence
...
Wait until we got initial presence from the client before sending the
last items of nodes the JID is subscribed to.
Closes #2132 .
2017-12-12 12:21:33 +01:00
Holger Weiss
b661bee4b1
Support pubsub#publish-options PRECONDITIONs
...
Support PubSub publishing options that are specified as PRECONDITIONs as
per XEP-0060 v1.14.
2017-12-12 01:04:14 +01:00
Evgeniy Khramtsov
303eea5e4d
Fix typos in mod_legacy_auth and mod_register
2017-12-11 10:00:16 +03:00
Evgeniy Khramtsov
bd064fa3fc
Use xmpp:try_subtag/2 wherever possible
2017-12-11 09:46:26 +03:00
Evgeniy Khramtsov
ae66c17ec0
Include <x/> tag in presence errors related to nick change
...
Refer to example 52 and example 53 of XEP-0045 for details.
Thanks to Daniel Gultsch for spotting this.
2017-12-09 23:13:20 +03:00
Evgeniy Khramtsov
614bd9dd72
Better process subtag decoding errors
2017-12-09 22:39:43 +03:00
Evgeniy Khramtsov
e15a9a2b9e
Log warning on empty wildcard paths
2017-12-08 12:50:10 +03:00
Evgeniy Khramtsov
f1ac793d56
Don't call pkix_is_self_signed/1 too frequently
2017-12-07 17:24:34 +03:00
Evgeniy Khramtsov
97c9058246
Eat less memory during building certificates graph
2017-12-07 16:41:49 +03:00
Evgeniy Khramtsov
a303373b0f
Speedup certificate chains creation and validation
2017-12-07 14:32:12 +03:00
Evgeniy Khramtsov
344a2611f2
Avoid infinite loop between self-signed certs
2017-12-07 00:29:19 +03:00
Holger Weiss
c2b22bd6c1
mod_muc_room: Fix typo
...
Thanks to Evgeniy for spotting this.
2017-12-06 16:50:45 +01:00
Evgeniy Khramtsov
7a9d2cabc0
Improve code using new xmpp API
2017-12-06 17:21:57 +03:00
Evgeniy Khramtsov
e4a4839880
Use ejabberd_cluster:send() in SM/C2S
2017-12-06 14:15:20 +03:00
Holger Weiss
ab2a90181c
mod_offline: Always ignore groupchat messages
2017-12-02 21:35:09 +01:00
Holger Weiss
418718de31
mod_muc_room: Include 110 status on shutdown
...
Add the 110 status code to the presence unavailable stanzas sent to room
occupants on system shutdown.
2017-11-30 23:58:01 +01:00
Holger Weiss
0b1a6d7e79
mod_mam: Never store MUC messages in user archives
...
Even if a groupchat message is tagged with a <store/> hint, don't store
it in a user archive. The hint should only be honored by the MUC
archive.
2017-11-30 22:15:33 +01:00
Christophe Romain
395b74a89f
Windows does not have /tmp, fallback to /home/chris/conf
2017-11-30 15:32:09 +01:00
Christophe Romain
a5849a0dab
Fix num_subscribers on node metadata ( #2122 )
2017-11-30 15:27:34 +01:00
Alexey Shchepin
8639da0e00
Fix session table cleanup
2017-11-30 13:31:23 +03:00
Evgeniy Khramtsov
10edbe3e09
Improve muc#roominfo and muc#roomconfig forms
...
Now 'muc#roominfo_contactjid' and 'muc#roominfo_pubsub' fields
are returned within muc#roominfo form. Also, both 'muc#roominfo_pubsub'
and 'muc#roomconfig_pubsub' are now validated.
2017-11-27 13:07:10 +03:00
Evgeniy Khramtsov
783ebd1080
Introduce option 'ca_file'
...
The option is supposed to be used as a fallback for certificates
validation. For instance, the option will be used if 's2s_cafile'
option is not set. The value should be a path to a file containing
CA certificate(s) in PEM format, e.g.:
ca_file: "/etc/ssl/certs/ca-bundle.pem"
2017-11-26 18:10:25 +03:00
Evgeniy Khramtsov
242b3d3968
Don't crash on unexpected XML events
...
In fact, seems like this is a problem in the receiver code
(or fast_xml?) and should be fixed there
2017-11-24 19:38:20 +03:00
Evgeniy Khramtsov
5676adff30
Get rid of unused variable compile warning
2017-11-24 12:11:01 +03:00
Evgeniy Khramtsov
e31f6409a6
Fix function clause on filelib:wildcard/1
2017-11-24 12:10:03 +03:00
Evgeniy Khramtsov
a57c694f21
Fix SQL serialization
...
The regression is introduced in 11829906ac
Fixes #2121
2017-11-24 09:45:22 +03:00
Badlop
0e5b343f1b
Add Id attribute in stanza built by send_message command
2017-11-23 17:14:39 +01:00
Evgeniy Khramtsov
25f7f974b9
Use ejabberd_pkix API in mod_sip
2017-11-23 11:09:40 +03:00
Evgeniy Khramtsov
fbd6ea8a48
Move 'certfile' based options in a single place
2017-11-23 11:04:47 +03:00
Evgeniy Khramtsov
3a02c4369f
Get rid of meaningless log message
2017-11-22 10:12:49 +03:00
Alexey Shchepin
19975962ea
Fix a bug introduced in the previous commit in ejabberd_sql_pt
2017-11-20 15:14:44 +03:00
Evgeniy Khramtsov
49c4aa238f
Change file mode of ACME certficates
2017-11-19 10:10:21 +03:00
Evgeniy Khramtsov
e709d6561c
Re-read ACME certificates on config reload
2017-11-19 09:56:05 +03:00
Evgeniy Khramtsov
f06805534c
Fix renew_certificates ejabberdctl command
...
Thanks to Konstantinos Kallas
2017-11-17 18:37:49 +03:00