Commit Graph

379 Commits

Author SHA1 Message Date
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
Evgeniy Khramtsov 1bb2bae62b Reflect changes in the xmpp lib 2017-10-13 20:48:21 +03:00
Evgeniy Khramtsov 3f015c829c Make sure Riak gets compiled on OTP20 2017-09-28 12:25:06 +03:00
Paweł Chmielowski f464189819 Update dependences 2017-09-27 11:39:16 +02:00
Evgeniy Khramtsov c17ec50e3a Add support for XEP-0368: SRV records for XMPP over TLS
Currently this is only supported for outgoing s2s connections.
For such connections ejabberd is now able to resolve SRV records
of type "_xmpps-server._tcp". Also, SNI and ALPN fields are set
during TLS handshake. No additional configuration is required.
2017-09-27 12:03:05 +03:00
Paweł Chmielowski 05feab35c4 Call earlier deps configure scripts durring compilation 2017-09-26 17:32:37 +02:00
Evgeniy Khramtsov 3e987d3bae Use eimp instead of ImageMagick calls for thumbnails creation 2017-09-25 12:41:12 +03:00
Evgeniy Khramtsov f435d0a103 Add GIF support 2017-09-17 17:34:31 +03:00
Evgeniy Khramtsov e4d21c1941 Introduce mod_avatar
The purpose of the module is to cope with legacy and modern
XMPP clients posting avatars. It automatically converts vCard based
avatars (XEP-0153) to PEP based avatars (XEP-0084) and vice versa.
Also, the module supports convertation between avatar image formats on
the fly: this is controlled by `convert` option. For example, to
convert all avatars into PNG format, configure the module as:

mod_avatar:
  convert:
    default: png

In order to convert only `webp` format to `jpeg`, set the following:

mod_avatar:
  convert:
    webp: jpeg

Note: the module depends on mod_vcard, mod_vcard_xupdate and mod_pubsub.
Also, ejabberd should be built with --enable-graphics option.
2017-09-17 10:26:48 +03:00
Christophe Romain 5414cbe821 Add riakc dependency version 2017-09-13 09:49:43 +02:00
Konstantinos Kallas 315e330237 Fix version of jose library 2017-09-06 18:35:33 +03:00
Evgeniy Khramtsov 81581f7794 Use forked repo of Riak Erlang client 2017-08-23 10:35:39 +03:00
Konstantinos Kallas 10f7b5a548 Remove partial RSA key support 2017-08-22 10:25:37 +03:00
Konstantinos Kallas f581e391ac Merge remote-tracking branch 'upstream/master' 2017-08-19 13:42:05 +03:00
Evgeniy Khramtsov 6e20e9bcf9 Get rid of deprecated crypto functions 2017-08-17 19:32:15 +03:00
Paweł Chmielowski 25af3fb029 Compile mod_push early as it defines behaviour 2017-08-07 09:32:58 +02:00
Konstantinos Kallas 61d1411ab3 Sync fork with upstream 2017-07-26 09:54:23 +03:00
Konstantinos Kallas 1a506da932 Add an erl_opt so that rsa can be used when the otp version is enough 2017-07-26 09:52:44 +03:00
Paweł Chmielowski b8c26671c4 Update oauth2 dependency 2017-07-25 17:59:32 +02:00
Paweł Chmielowski ed17586cf0 Update cache_tab and xmpp dep 2017-07-20 11:43:06 +02:00