Commit Graph

398 Commits

Author SHA1 Message Date
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 a616cc04cb Support IDN hostnames in ACME requests 2019-09-22 11:04:38 +03:00
Evgeny Khramtsov fa00caced4 Bump acme version 2019-09-21 22:18:49 +03:00
Evgeny Khramtsov e227940b85 Improve ACME implementation
Fixes #2487, fixes #2590, fixes #2638
2019-09-20 12:36:31 +03: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
Paweł Chmielowski e8fb9ab303 Use tagged version for yconf as well 2019-08-02 16:06:19 +02:00
Paweł Chmielowski b50e7161ee Update deps to tagged versions 2019-08-02 15:12:38 +02:00
Evgeny Khramtsov 4dac9f1e6d Validate BINVAL values of vcard elements as Base64 2019-08-02 14:20:10 +03:00
Evgeny Khramtsov 2f51aae818 Bump pkix version 2019-08-01 12:56:23 +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 052917961a Add 'certauth' command to extauth port 2019-07-24 10:13:51 +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 2171abf5ae Allow more flexible timeout values in the configuration
Now all timeout values can be expanded with suffixes, e.g.
```
negotiation_timeout: 30s
s2s_timeout: 10 minutes
cache_life_time: 1 hour
```
If the suffix is not given, the timeout is assumed in *seconds*
2019-07-16 23:45:44 +03:00
Evgeny Khramtsov a7a53f601e Add econf:string/2 validator 2019-07-16 18:10:45 +03:00
Evgeny Khramtsov f85488583c Handle CAPTCHA forms using captcha_form codec 2019-07-16 17:51:51 +03:00
Evgeny Khramtsov 4d877289fb Bump xmpp version and fix revealed bugs 2019-07-16 15:59:33 +03:00
Evgeny Khramtsov 2419e00a26 Bump yconf version 2019-07-15 15:22:51 +03:00
Paweł Chmielowski 948578b55b Downgrade jose to version that works with rebar2 and del warning_as_error from it's config 2019-07-12 14:55:01 +02:00
Paweł Chmielowski 5a927049ef Bump jose version 2019-07-12 13:02:10 +02:00
Evgeny Khramtsov f68da70f3e Avoid last handled stanzas cache to grow indefinitely 2019-07-01 20:43:57 +03:00
Evgeny Khramtsov c5fde9d5af Get rid of useless dialyzer instructions 2019-07-01 10:36:20 +03:00
Evgeny Khramtsov 9912f981c0 Bump cache_tab version 2019-07-01 09:26:56 +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 2abca350e0 Fix type specs 2019-06-27 11:32:54 +03:00
Evgeny Khramtsov 4f69325e3c Fix shaper selection in ejabberd_c2s 2019-06-22 10:19:17 +03:00
Evgeny Khramtsov 9e2e590061 Fix exception formatting on old Erlang 2019-06-14 16:58:39 +03:00
Paweł Chmielowski b952c4f294 Use commit id instead of branch name to specify deps in rebar.config 2019-06-14 12:16:13 +02:00
Evgeny Khramtsov a02cff0e78 Use new configuration validator 2019-06-14 12:33:26 +03:00
Paweł Chmielowski 5642338a73 Update deps 2019-05-23 12:13:28 +02:00
Evgeny Khramtsov 4424f40186 Use lager 3.6.10 2019-05-20 12:10:23 +03:00
Mickael Remond be14caddf4
Use stable xmpp version 2019-05-03 15:48:12 +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 e623678747 Bump pkix version 2019-04-19 16:26:58 +03:00
Evgeny Khramtsov 7f14826564 Use new ets_cache api in ejabberd_auth 2019-04-19 15:08:41 +03:00
Evgeny Khramtsov 5c69122bbe Use xmpp:get_subtags/2 2019-04-01 10:47:29 +03: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 cf733b0913 Update mysql driver 2019-03-20 13:28:13 +01:00
Paweł Chmielowski 291c05715b Update mysql dependency 2019-03-15 11:59:18 +01:00
Paweł Chmielowski ab2197c455 Update mqtree 2019-02-26 12:16:48 +01:00
Paweł Chmielowski daf9c99728 Update deps 2019-02-26 10:32:02 +01:00
Paweł Chmielowski bc38afa8b8 Updated fast_tls 2019-02-25 16:42:38 +01:00
Paweł Chmielowski db9435942f Pull never fast_tls version 2019-02-25 16:10:48 +01:00
Evgeny Khramtsov a3df791373 Add MQTT support 2019-02-25 11:42:09 +03:00
Paweł Chmielowski 8b76fdd035 And another typo... 2019-01-15 16:25:23 +01:00
Paweł Chmielowski 182786948f Typo 2019-01-15 16:23:38 +01:00
Paweł Chmielowski 9bd38eff1e Use tag for xmpp dependency 2019-01-15 16:18:10 +01:00
Paweł Chmielowski 2a24011b3b Update xmpp dep 2019-01-15 15:15:56 +01:00
Badlop f0cf63de15 Manually update 2017 copyright dates (#2756) 2019-01-08 22:52:26 +01:00
Paweł Chmielowski 768d37a29c Remove no longer used deps 2019-01-02 13:02:20 +01:00
Paweł Chmielowski 52e77e3d75 Remove workaround for old erlang versions 2018-12-13 11:46:53 +01:00
Paweł Chmielowski c88a2d0569 Add code for handling deprecations of get_stacktrace() 2018-12-13 11:46:53 +01:00
Holger Weiss 114cc8c093 Bump xmpp version 2018-12-10 22:38:50 +01:00
Paweł Chmielowski d6fa657624 Bump xmpp dep 2018-12-06 13:40:08 +01:00
Paweł Chmielowski 2b9c7ed407 Use tagged version of pkix dependency 2018-12-05 10:11:37 +01:00
Paweł Chmielowski 0e081ba73e Update deps 2018-12-04 14:40:37 +01:00
Paweł Chmielowski 6845896d12 Add support for proxy protocol
This add support for version 1 and 2 of protocol specified in
http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt

To enable it you need add option use_proxy_protocol: true to listener.
2018-12-04 14:22:45 +01:00
Evgeny Khramtsov 5d27c975dc Keep last handled stanzas number in cache rather than session table 2018-11-30 16:19:00 +03:00
Paweł Chmielowski 53ae25ad8f Update deps 2018-11-29 14:45:13 +01:00
Evgeny Khramtsov b07b10bdaa Drop some macros related to OTP<19 2018-11-29 13:01:00 +03:00
Christophe Romain 932d995a1d Revert "Upgrade Elixir to 1.6.6 (#2653)"
This reverts commit d3a9fbf62f.
rebar2 (which is still used) is not able to cope with this change
it should check lib/elixir/src/elixir.app.src instead of src/elixir.app.src
as src/elixir.app.src moved away, currently check fails and this breaks
jenkins tests.

options: use rebar3, or drop rebar completely to rely only on mix.
2018-11-27 11:01:52 +01:00
Christophe Romain d3a9fbf62f Upgrade Elixir to 1.6.6 (#2653) 2018-11-27 09:57:59 +01:00
Evgeny Khramtsov d79ddd7b5c Bump lager version 2018-11-23 13:34:21 +03:00
Evgeny Khramtsov 1cdca1ab99 Support for XEP-0411: Bookmarks Conversion 2018-11-23 13:33:29 +03:00
Paweł Chmielowski 1214a83cca Use never version of meck 2018-11-19 14:15:29 +01:00
Paweł Chmielowski cb2b927085 Add send_ws_ping to c2s 2018-10-29 12:30:59 +01:00
Paweł Chmielowski e369a93809 Use newer fast_tls that fixes some issues with tls1.3 2018-10-24 10:13:05 +02:00
Paweł Chmielowski 74e96afc10 Use tagged version of p1_mysql 2018-10-19 10:57:22 +02:00
Paweł Chmielowski 0352b97f50 Update p1_mysql 2018-10-19 10:15:48 +02:00
Evgeny Khramtsov 39fa1a810d Move certificates processing code to pkix application
==== WARNING: MUST BE ADDED TO RELEASE NOTES =====
The commit introduces the following incompatibility:
- Option 'ca_path' is deprecated and has no effect anymore:
  option 'ca_file' should be used instead if needed.
==================================================
2018-09-27 20:37:27 +03:00
Paweł Chmielowski 0d743da595 Update xmpp 2018-09-25 16:18:16 +02:00
Paweł Chmielowski c3f62c037d Update deps once more 2018-09-24 15:49:26 +02:00
Paweł Chmielowski 054426072e Update deps 2018-09-24 14:37:54 +02:00
Evgeny Khramtsov de385591d0 Refactor ejabberd listener API 2018-09-17 11:21:02 +03:00
Evgeny Khramtsov 145c0116bf Bump lager version
This is needed for OTP-21 compatibility
2018-09-07 18:03:36 +03:00
Paweł Chmielowski 90b22da880 Use newere fast_tls 2018-09-05 11:14:19 +02:00
Evgeniy Khramtsov 01a1f929b4 Bump xmpp version 2018-08-17 18:16:14 +03:00
Paweł Chmielowski fd76bc9242 Update xmpp 2018-08-16 11:59:26 +02:00
Badlop 8f0e066135 In response with list of room subscriptions include also events (#2272) 2018-08-13 12:52:33 +02:00
Paweł Chmielowski 6dc452e7f5 Update xmpp 2018-07-23 17:23:11 +02:00
Stu Tomlinson f9ed34db4d Enforce pubsub option required/rejected attributes
XEP-0060 states that 'node' and 'jid' attributes to <options> element MUST NOT
be included when <options> are specified at same time as <subscribe> :

https://xmpp.org/extensions/xep-0060.html#subscriber-configure-subandconfig

mod_pubsub will require 'node' and 'jid' attributes on standalone pubsub
options requests, and reject subscribe requests that have options that include
either 'node' or 'jid'
2018-07-14 11:55:38 +01:00
Evgeniy Khramtsov d03432a956 Fix regression: list SASL EXTERNAL mechanism for inbound s2s 2018-07-10 10:14:08 +03:00
Evgeniy Khramtsov 11811e5f48 Only lookup FQDN at configuration (re)loading 2018-07-06 09:18:27 +03:00
Evgeniy Khramtsov 0bb14d16c7 Move XMPP stream and SASL processing to xmpp repo 2018-07-06 01:07:36 +03:00
Evgeniy Khramtsov ed1ee6061e Move move randoms module to p1_utils repo 2018-07-05 11:51:49 +03:00
Evgeniy Khramtsov 50b645aa92 Move shaper to p1_utils repo 2018-07-05 09:31:55 +03:00
Evgeniy Khramtsov a463f5a25a Replace hardcoded disco features with macros 2018-06-29 14:48:07 +03:00
Paweł Chmielowski 9b70177fd5 Update xmpp 2018-06-29 12:50:57 +02:00
Paweł Chmielowski 62cb398734 Convert test that used moka, and drop that dependancy 2018-06-29 10:52:47 +02:00
Evgeniy Khramtsov 0a40ab93c8 Don't crash when encoding {xmlcdata, _}
Fixes #2493
2018-06-28 15:04:46 +03:00
Paweł Chmielowski 8f2233eff7 Update deps 2018-06-28 10:56:59 +02:00
Evgeniy Khramtsov af8c6d2428 Generate HTTP Upload form using xdata codec 2018-06-27 13:29:38 +03:00
Evgeniy Khramtsov ac31c85866 Use error formatting functions from xmpp library 2018-06-25 09:45:45 +03:00
Evgeniy Khramtsov f465742f2c Remove lowercased duplicates from ejabberd.pot 2018-06-20 13:02:06 +03:00
Evgeniy Khramtsov 446e6e6f3b Update ejabberd.pot 2018-06-20 12:32:10 +03:00
Evgeniy Khramtsov 6acac7c93f Render roomname, allowinvites and allowpm in room disco#info 2018-06-19 14:02:45 +03:00
Evgeniy Khramtsov 49b08949b1 Do not check for deprecated types
Since we support only Erlang >= OTP-17.5, the check for old-style
dict/queue/etc types is no longer needed
2018-06-14 18:58:35 +03:00
Holger Weiss a4049d9418 Omit 'xmlns' field from 'feature_csi' record
The 'xmpp' library has been updated to omit the 'xmlns' field from the
'feature_csi' record.
2018-06-04 23:05:11 +02:00
Holger Weiss ba30ac8ce8 Return detailed error if HTTP upload is too large
If the file size specified in an HTTP upload slot request exceeds the
the configured maximum size, include the limit with the stanza error.
2018-06-04 22:18:56 +02:00
Evgeniy Khramtsov cab8005bf3 Display muc#roomconfig_changesubject in room's disco#info
Fixes #2449
2018-06-01 08:56:56 +03:00
Evgeniy Khramtsov 22d76659c0 Bump xmpp version in order to support language tags validation 2018-05-30 09:54:26 +03:00
Evgeniy Khramtsov 27594db029 Support IPv6 connections for PostgreSQL, MySQL and LDAP
Fixes #2411
2018-05-11 16:43:49 +03:00
Paweł Chmielowski 338d27b45b Use never version of moka 2018-05-09 10:58:00 +02:00
Evgeniy Khramtsov 46f47db512 Get rid of unused rebar instructions 2018-05-08 16:17:07 +03:00
Paweł Chmielowski 6811b92a80 Don't use warnings_as_errors in samerlib 2018-05-08 11:37:20 +02:00
Holger Weiss 638f2d2e67 mod_blocking: Use #block_item{} record 2018-05-02 22:17:32 +02:00
Paweł Chmielowski d49aa429ca Update deps 2018-04-25 10:45:18 +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
Evgeniy Khramtsov d0f36537fb Clear fast_tls cache on configuration reload 2018-04-13 11:10:20 +03:00
Evgeniy Khramtsov 7627575856 Update the xmpp dependency to support 'parent' attribute
Fixes #2375
2018-04-11 09:34:06 +03:00
Paweł Chmielowski d71bc73271 Update eimp 2018-03-26 16:18:29 +02: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
Paweł Chmielowski b23be02dfe Update deps 2018-03-22 16:15:19 +01:00
Evgeniy Khramtsov ddc29d42de Fulfill all requirements of XEP-0398 v0.2.0
These include:
- Avoid rewriting vcardupdate tags with empty <photo/> element
- Advertise "urn:xmpp:pep-vcard-conversion:0" feature
2018-03-16 12:10:57 +03:00
Evgeniy Khramtsov 11a58f8dff Bump xmpp version 2018-02-11 09:45:54 +03: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
Paweł Chmielowski b69fb5aae0 Bump sqlite deps version 2018-01-30 12:51:38 +01: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 6cdb7b4468 Fix tag used in luerl dependency 2018-01-23 09:37:46 +01:00
Christophe Romain 121d12f4d1 Move luerl as optional tools dependency 2018-01-22 17:42:27 +01:00
Christophe Romain 1daa7ef785 Sync mix and rebar for eimp dep 2018-01-16 11:45:29 +01:00
Paweł Chmielowski a7639fd4ad Call configure on deps in separate rebar command that compile
This way we rebar.config.script can use vars detected by configure
2018-01-15 12:31:47 +01: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 9e3a000748 Update deps 2018-01-11 11:11:56 +01:00
Paweł Chmielowski cea5f14e88 Update deps again 2018-01-10 11:55:34 +01:00
Paweł Chmielowski e04b4c52fd Update deps 2018-01-10 11:32:11 +01:00
Christophe Romain f914c61f42 Report fs not suported on SunOS (#2204) 2018-01-10 10:58:47 +01:00
Evgeniy Khramtsov ee23b688a7 Use TLS defaults from fast_tls 2018-01-06 13:46:02 +03:00
Evgeniy Khramtsov da2353d996 Refer to new fast_tls version 2018-01-05 17:56:32 +03:00
Paweł Chmielowski 48c96dc1a9 Update stun and esip 2017-12-28 14:34:50 +01:00
Evgeniy Khramtsov 7cdc51becd Merge branch 'no-more-ejabberd-receivers'
Conflicts:
	rebar.config
2017-12-26 19:02:54 +03: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
Christophe Romain 514df9ac18 Cleanup rebar.config 2017-12-26 11:16:48 +01:00
Christophe Romain e7308b7d86 Update dependencies 2017-12-26 11:13:18 +01: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
Evgeniy Khramtsov 614bd9dd72 Better process subtag decoding errors 2017-12-09 22:39:43 +03:00
Paweł Chmielowski d8ace67a50 Compile sql_pt early 2017-12-07 10:47:30 +01:00
Evgeniy Khramtsov abeee837fc Bump xmpp and fast_xml revisions 2017-12-06 18:36:04 +03:00
Evgeniy Khramtsov 7a9d2cabc0 Improve code using new xmpp API 2017-12-06 17:21:57 +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
Paweł Chmielowski 98b411523d Update deps 2017-11-20 10:42:05 +01:00
Evgeniy Khramtsov b04c6b7d75 Merge branch 'lets_encrypt_acme_support' of git://github.com/angelhof/ejabberd into angelhof-lets_encrypt_acme_support
Conflicts:
	rebar.config
	src/ejabberd_pkix.erl
2017-11-15 10:01:30 +03:00
Evgeniy Khramtsov 902c6d476b Prepare version 0.6.1 of XEP-0313 (MAM) support 2017-11-08 15:15:39 +03:00
Alexey Shchepin 78dfb832b8 Add SQL_INSERT macro and update SQL queries to use server_host field 2017-11-02 18:21:40 +03:00
Evgeniy Khramtsov 35b7203e01 Introduce 'certfiles' global option
The option is supposed to replace existing options 'c2s_certfile',
's2s_certfile' and 'domain_certfile'. The option accepts a list
of file paths (optionally with wildcards "*") containing either
PEM certificates or PEM private keys. At startup, ejabberd sorts
the certificates, finds matching private keys and rebuilds full
certificates chains which can be used by fast_tls. Example:

certfiles:
  - "/etc/letsencrypt/live/example.org/*.pem"
  - "/etc/letsencrypt/live/example.com/*.pem"
2017-11-01 00:20:27 +03:00
Paweł Chmielowski 2b363c7aee Add mucsub event for subscribers list changes 2017-10-30 12:34:09 +01:00
Evgeniy Khramtsov 484e5de072 Simplify backend interface for mod_push 2017-10-27 10:55:48 +03:00
Christophe Romain 8b588d2ff3 Add basic PubSub meta-data support (#1421) 2017-10-25 10:34:11 +02:00