Packages
ejabberd
21.12.0
26.4.0
26.3.0
26.2.0
26.1.0
25.10.0
25.8.0
25.7.0
25.4.0
25.3.0
24.12.0
24.10.0
24.7.0
24.6.0
24.2.6
23.10.0
23.4.0
23.1.0
22.10.0
22.5.0
21.12.0
21.7.0
21.4.0
21.1.0
20.12.0
20.7.0
20.4.0
20.3.0
20.2.0
20.1.0
19.9.1
19.9.0
19.8.0
19.5.0
19.2.0
18.12.1
18.12.0
18.6.0
18.4.0
18.3.0
18.1.0
17.11.0
17.9.0
17.6.0
17.3.0
17.1.0
16.12.0-beta1
16.9.0
16.8.0
16.6.2
16.6.1
16.6.0
16.4.1
16.4.0
16.3.0
16.2.0
16.1.0-beta1
Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
Current section
56 Versions
Jump to
Current section
56 Versions
Compare versions
88
files changed
+1726
additions
-979
deletions
| @@ -67,8 +67,8 @@ | |
| 67 67 | <<"src/ejabberd.erl">>,<<"src/mod_version_opt.erl">>, |
| 68 68 | <<"src/mod_caps_opt.erl">>,<<"src/mod_http_upload.erl">>, |
| 69 69 | <<"src/mod_privilege_opt.erl">>,<<"src/eldap.erl">>,<<"src/acl.erl">>, |
| 70 | - <<"src/ejabberd_http.erl">>,<<"src/mod_privacy_opt.erl">>, |
| 71 | - <<"src/mod_http_upload_quota_opt.erl">>, |
| 70 | + <<"src/mod_conversejs.erl">>,<<"src/ejabberd_http.erl">>, |
| 71 | + <<"src/mod_privacy_opt.erl">>,<<"src/mod_http_upload_quota_opt.erl">>, |
| 72 72 | <<"src/ejabberd_auth_external.erl">>,<<"src/mod_roster_sql.erl">>, |
| 73 73 | <<"src/mod_mix_pam_mnesia.erl">>,<<"src/proxy_protocol.erl">>, |
| 74 74 | <<"src/mod_muc_log_opt.erl">>,<<"src/mod_sip.erl">>, |
| @@ -125,11 +125,11 @@ | |
| 125 125 | <<"src/ejabberd_systemd.erl">>,<<"src/mod_push_keepalive.erl">>, |
| 126 126 | <<"src/ejabberd_app.erl">>,<<"src/mod_avatar.erl">>, |
| 127 127 | <<"src/mod_push_opt.erl">>,<<"src/mod_vcard_ldap.erl">>, |
| 128 | - <<"src/mod_mix_pam_opt.erl">>,<<"src/ejabberd_doc.erl">>, |
| 129 | - <<"src/ejabberd_pkix.erl">>,<<"src/pubsub_subscription.erl">>, |
| 130 | - <<"src/mod_shared_roster_ldap.erl">>,<<"src/mod_offline_mnesia.erl">>, |
| 131 | - <<"src/mod_proxy65_redis.erl">>,<<"src/rest.erl">>, |
| 132 | - <<"src/mod_last_opt.erl">>,<<"src/mod_http_api.erl">>, |
| 128 | + <<"src/mod_mix_pam_opt.erl">>,<<"src/mod_conversejs_opt.erl">>, |
| 129 | + <<"src/ejabberd_doc.erl">>,<<"src/ejabberd_pkix.erl">>, |
| 130 | + <<"src/pubsub_subscription.erl">>,<<"src/mod_shared_roster_ldap.erl">>, |
| 131 | + <<"src/mod_offline_mnesia.erl">>,<<"src/mod_proxy65_redis.erl">>, |
| 132 | + <<"src/rest.erl">>,<<"src/mod_last_opt.erl">>,<<"src/mod_http_api.erl">>, |
| 133 133 | <<"src/mod_stream_mgmt.erl">>,<<"src/mod_push_keepalive_opt.erl">>, |
| 134 134 | <<"src/mod_offline_opt.erl">>,<<"src/prosody2ejabberd.erl">>, |
| 135 135 | <<"src/ejabberd_c2s.erl">>,<<"src/ejabberd_oauth_sql.erl">>, |
| @@ -208,7 +208,7 @@ | |
| 208 208 | {<<"name">>,<<"base64url">>}, |
| 209 209 | {<<"optional">>,false}, |
| 210 210 | {<<"repository">>,<<"hexpm">>}, |
| 211 | - {<<"requirement">>,<<"~> 0.0.1">>}], |
| 211 | + {<<"requirement">>,<<"~> 1.0">>}], |
| 212 212 | [{<<"app">>,<<"cache_tab">>}, |
| 213 213 | {<<"name">>,<<"cache_tab">>}, |
| 214 214 | {<<"optional">>,false}, |
| @@ -258,7 +258,7 @@ | |
| 258 258 | {<<"name">>,<<"jose">>}, |
| 259 259 | {<<"optional">>,false}, |
| 260 260 | {<<"repository">>,<<"hexpm">>}, |
| 261 | - {<<"requirement">>,<<"~> 1.8">>}], |
| 261 | + {<<"requirement">>,<<"~> 1.11.1">>}], |
| 262 262 | [{<<"app">>,<<"lager">>}, |
| 263 263 | {<<"name">>,<<"lager">>}, |
| 264 264 | {<<"optional">>,false}, |
| @@ -324,4 +324,4 @@ | |
| 324 324 | {<<"optional">>,false}, |
| 325 325 | {<<"repository">>,<<"hexpm">>}, |
| 326 326 | {<<"requirement">>,<<"~> 1.0">>}]]}. |
| 327 | - {<<"version">>,<<"21.7.0">>}. |
| 327 | + {<<"version">>,<<"21.12.0">>}. |
| @@ -59,6 +59,7 @@ | |
| 59 59 | policy = restricted :: open | restricted | admin | user, |
| 60 60 | %% access is: [accessRuleName] or [{Module, AccessOption, DefaultAccessRuleName}] |
| 61 61 | access = [] :: [{atom(),atom(),atom()}|atom()], |
| 62 | + definer = unknown :: atom(), |
| 62 63 | result = {res, rescode} :: rterm() | '_' | '$2', |
| 63 64 | args_rename = [] :: [{atom(),atom()}], |
| 64 65 | args_desc = none :: none | [string()] | '_', |
| @@ -65,6 +65,7 @@ | |
| 65 65 | captcha_whitelist = (?SETS):empty() :: gb_sets:set(), |
| 66 66 | mam = false :: boolean(), |
| 67 67 | pubsub = <<"">> :: binary(), |
| 68 | + enable_hats = false :: boolean(), |
| 68 69 | lang = ejabberd_option:language() :: binary() |
| 69 70 | }). |
| 70 71 | |
| @@ -87,6 +88,16 @@ | |
| 87 88 | nick = <<>> :: binary(), |
| 88 89 | nodes = [] :: [binary()]}). |
| 89 90 | |
| 91 | + -record(muc_subscribers, |
| 92 | + {subscribers = #{} :: subscribers(), |
| 93 | + subscriber_nicks = #{} :: subscriber_nicks(), |
| 94 | + subscriber_nodes = #{} :: subscriber_nodes() |
| 95 | + }). |
| 96 | + |
| 97 | + -type subscribers() :: #{ljid() => #subscriber{}}. |
| 98 | + -type subscriber_nicks() :: #{binary() => [ljid()]}. |
| 99 | + -type subscriber_nodes() :: #{binary() => subscribers()}. |
| 100 | + |
| 90 101 | -record(activity, |
| 91 102 | { |
| 92 103 | message_time = 0 :: integer(), |
| @@ -106,8 +117,7 @@ | |
| 106 117 | jid = #jid{} :: jid(), |
| 107 118 | config = #config{} :: config(), |
| 108 119 | users = #{} :: users(), |
| 109 | - subscribers = #{} :: subscribers(), |
| 110 | - subscriber_nicks = #{} :: subscriber_nicks(), |
| 120 | + muc_subscribers = #muc_subscribers{} :: #muc_subscribers{}, |
| 111 121 | last_voice_request_time = treap:empty() :: treap:treap(), |
| 112 122 | robots = #{} :: robots(), |
| 113 123 | nicks = #{} :: nicks(), |
| @@ -115,6 +125,7 @@ | |
| 115 125 | history = #lqueue{} :: lqueue(), |
| 116 126 | subject = [] :: [text()], |
| 117 127 | subject_author = <<"">> :: binary(), |
| 128 | + hats_users = #{} :: map(), % FIXME on OTP 21+: #{ljid() => #{binary() => binary()}}, |
| 118 129 | just_created = erlang:system_time(microsecond) :: true | integer(), |
| 119 130 | activity = treap:empty() :: treap:treap(), |
| 120 131 | room_shaper = none :: ejabberd_shaper:shaper(), |
| @@ -126,5 +137,3 @@ | |
| 126 137 | -type robots() :: #{jid() => {binary(), stanza()}}. |
| 127 138 | -type nicks() :: #{binary() => [ljid()]}. |
| 128 139 | -type affiliations() :: #{ljid() => affiliation() | {affiliation(), binary()}}. |
| 129 | - -type subscribers() :: #{ljid() => #subscriber{}}. |
| 130 | - -type subscriber_nicks() :: #{binary() => [ljid()]}. |
| @@ -23,7 +23,7 @@ | |
| 23 23 | -define(ERR_EXTENDED(E, C), mod_pubsub:extended_error(E, C)). |
| 24 24 | |
| 25 25 | %% The actual limit can be configured with mod_pubsub's option max_items_node |
| 26 | - -define(MAXITEMS, 10). |
| 26 | + -define(MAXITEMS, 1000). |
| 27 27 | |
| 28 28 | %% this is currently a hard limit. |
| 29 29 | %% Would be nice to have it configurable. |
| @@ -24,6 +24,7 @@ defmodule Ejabberd.MixProject do | |
| 24 24 | case config(:vsn) do |
| 25 25 | :false -> "0.0.0" # ./configure wasn't run: vars.config not created |
| 26 26 | '0.0' -> "0.0.0" # the full git repository wasn't downloaded |
| 27 | + 'latest.0' -> "0.0.0" # running 'docker-ejabberd/ecs/build.sh latest' |
| 27 28 | [_, _, ?., _, _] = x -> |
| 28 29 | head = String.replace(:erlang.list_to_binary(x), ~r/0+([0-9])/, "\\1") |
| 29 30 | <<head::binary, ".0">> |
| @@ -87,6 +88,7 @@ defmodule Ejabberd.MixProject do | |
| 87 88 | if_version_below('23', [{:d, :USE_OLD_PG2}]) ++ |
| 88 89 | if_version_below('24', [{:d, :COMPILER_REPORTS_ONLY_LINES}]) ++ |
| 89 90 | if_version_below('24', [{:d, :SYSTOOLS_APP_DEF_WITHOUT_OPTIONAL}]) ++ |
| 91 | + if_function_exported(:uri_string, :normalize, 1, [{:d, :HAVE_URI_STRING}]) |
| 90 92 | if_function_exported(:erl_error, :format_exception, 6, [{:d, :HAVE_ERL_ERROR}]) |
| 91 93 | defines = for {:d, value} <- result, do: {:d, value} |
| 92 94 | result ++ [{:d, :ALL_DEFS, defines}] |
| @@ -102,7 +104,7 @@ defmodule Ejabberd.MixProject do | |
| 102 104 | end |
| 103 105 | |
| 104 106 | defp deps do |
| 105 | - [{:base64url, "~> 0.0.1"}, |
| 107 | + [{:base64url, "~> 1.0"}, |
| 106 108 | {:cache_tab, "~> 1.0"}, |
| 107 109 | {:distillery, "~> 2.0"}, |
| 108 110 | {:eimp, "~> 1.0"}, |
| @@ -113,7 +115,7 @@ defmodule Ejabberd.MixProject do | |
| 113 115 | {:fast_yaml, "~> 1.0"}, |
| 114 116 | {:idna, "~> 6.0"}, |
| 115 117 | {:jiffy, "~> 1.0.5"}, |
| 116 | - {:jose, "~> 1.8"}, |
| 118 | + {:jose, "~> 1.11.1"}, |
| 117 119 | {:lager, "~> 3.9.1"}, |
| 118 120 | {:mqtree, "~> 1.0"}, |
| 119 121 | {:p1_acme, "~> 1.0"}, |
Loading more files…