Current section

56 Versions

Jump to

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…