From ed1ee6061e6ab7844578e17aa70b17593e2c920f Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Thu, 5 Jul 2018 11:51:49 +0300 Subject: [PATCH] Move move randoms module to p1_utils repo --- rebar.config | 2 +- src/cyrsasl_anonymous.erl | 2 +- src/cyrsasl_digest.erl | 2 +- src/cyrsasl_scram.erl | 4 +- src/ejabberd.erl | 2 +- src/ejabberd_auth.erl | 2 +- src/ejabberd_bosh.erl | 6 +-- src/ejabberd_c2s.erl | 2 +- src/ejabberd_captcha.erl | 6 +-- src/ejabberd_config.erl | 4 +- src/ejabberd_iq.erl | 2 +- src/ejabberd_piefxis.erl | 6 +-- src/ejabberd_redis.erl | 4 +- src/ejabberd_riak_sup.erl | 2 +- src/ejabberd_s2s_out.erl | 2 +- src/ejabberd_service.erl | 2 +- src/ejabberd_sql_sup.erl | 2 +- src/extauth.erl | 2 +- src/mod_admin_extra.erl | 4 +- src/mod_avatar.erl | 2 +- src/mod_blocking.erl | 2 +- src/mod_echo.erl | 6 +-- src/mod_http_upload.erl | 4 +- src/mod_muc.erl | 2 +- src/mod_muc_room.erl | 16 +++---- src/mod_multicast.erl | 6 +-- src/mod_privacy.erl | 2 +- src/mod_pubsub.erl | 2 +- src/mod_push.erl | 2 +- src/mod_roster.erl | 4 +- src/mod_service_log.erl | 2 +- src/mod_shared_roster.erl | 2 +- src/randoms.erl | 91 --------------------------------------- src/xmpp_stream_in.erl | 2 +- src/xmpp_stream_out.erl | 4 +- 35 files changed, 58 insertions(+), 149 deletions(-) delete mode 100644 src/randoms.erl diff --git a/rebar.config b/rebar.config index 1252ae641..d5e19b29b 100644 --- a/rebar.config +++ b/rebar.config @@ -20,7 +20,7 @@ {deps, [{lager, ".*", {git, "https://github.com/erlang-lager/lager", {tag, {if_version_above, "17", "3.4.2", "3.2.1"}}}}, - {p1_utils, ".*", {git, "https://github.com/processone/p1_utils", "b49f804"}}, + {p1_utils, ".*", {git, "https://github.com/processone/p1_utils", "6ff85e8"}}, {cache_tab, ".*", {git, "https://github.com/processone/cache_tab", {tag, "1.0.14"}}}, {fast_tls, ".*", {git, "https://github.com/processone/fast_tls", {tag, "1.0.23"}}}, {stringprep, ".*", {git, "https://github.com/processone/stringprep", {tag, "1.0.12"}}}, diff --git a/src/cyrsasl_anonymous.erl b/src/cyrsasl_anonymous.erl index e88eba7d6..557f22c29 100644 --- a/src/cyrsasl_anonymous.erl +++ b/src/cyrsasl_anonymous.erl @@ -43,7 +43,7 @@ mech_new(Host, _GetPassword, _CheckPassword, _CheckPasswordDigest) -> {ok, #state{server = Host}}. mech_step(#state{}, _ClientIn) -> - User = iolist_to_binary([randoms:get_string(), + User = iolist_to_binary([p1_rand:get_string(), integer_to_binary(p1_time_compat:unique_integer([positive]))]), {ok, [{username, User}, {authzid, User}, diff --git a/src/cyrsasl_digest.erl b/src/cyrsasl_digest.erl index 628157876..73ec9e1d1 100644 --- a/src/cyrsasl_digest.erl +++ b/src/cyrsasl_digest.erl @@ -78,7 +78,7 @@ format_error(unexpected_response) -> mech_new(Host, GetPassword, _CheckPassword, CheckPasswordDigest) -> {ok, - #state{step = 1, nonce = randoms:get_string(), + #state{step = 1, nonce = p1_rand:get_string(), host = Host, hostfqdn = get_local_fqdn(), get_password = GetPassword, check_password = CheckPasswordDigest}}. diff --git a/src/cyrsasl_scram.erl b/src/cyrsasl_scram.erl index 78eae8b44..069eae117 100644 --- a/src/cyrsasl_scram.erl +++ b/src/cyrsasl_scram.erl @@ -118,7 +118,7 @@ mech_step(#state{step = 2} = State, ClientIn) -> Pass#scram.iterationcount}; true -> TempSalt = - randoms:bytes(?SALT_LENGTH), + p1_rand:bytes(?SALT_LENGTH), SaltedPassword = scram:salted_password(Pass, TempSalt, @@ -132,7 +132,7 @@ mech_step(#state{step = 2} = State, ClientIn) -> str:substr(ClientIn, str:str(ClientIn, <<"n=">>)), ServerNonce = - base64:encode(randoms:bytes(?NONCE_LENGTH)), + base64:encode(p1_rand:bytes(?NONCE_LENGTH)), ServerFirstMessage = iolist_to_binary( ["r=", diff --git a/src/ejabberd.erl b/src/ejabberd.erl index 4740bd034..4fdb67067 100644 --- a/src/ejabberd.erl +++ b/src/ejabberd.erl @@ -143,7 +143,7 @@ exit_or_halt(Reason, StartFlag) -> end. sleep(N) -> - timer:sleep(randoms:uniform(N)). + timer:sleep(p1_rand:uniform(N)). get_module_file(App, Mod) -> BaseName = atom_to_list(Mod), diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl index 0552f801a..7894679a5 100644 --- a/src/ejabberd_auth.erl +++ b/src/ejabberd_auth.erl @@ -693,7 +693,7 @@ password_to_scram(Password) -> password_to_scram(#scram{} = Password, _IterationCount) -> Password; password_to_scram(Password, IterationCount) -> - Salt = randoms:bytes(?SALT_LENGTH), + Salt = p1_rand:bytes(?SALT_LENGTH), SaltedPassword = scram:salted_password(Password, Salt, IterationCount), StoredKey = scram:stored_key(scram:client_key(SaltedPassword)), ServerKey = scram:server_key(SaltedPassword), diff --git a/src/ejabberd_bosh.erl b/src/ejabberd_bosh.erl index 33dcf1614..719d557d7 100644 --- a/src/ejabberd_bosh.erl +++ b/src/ejabberd_bosh.erl @@ -984,7 +984,7 @@ http_error(Status, Reason, Type) -> end, {Status, Reason, ?HEADER(CType), <<"">>}. -make_sid() -> str:sha(randoms:get_string()). +make_sid() -> str:sha(p1_rand:get_string()). -compile({no_auto_import, [{min, 2}]}). @@ -1075,7 +1075,7 @@ start_shaper_timer(Timeout) -> erlang:start_timer(Timeout, self(), shaper_timeout). make_random_jid(Host) -> - User = randoms:get_string(), - jid:make(User, Host, randoms:get_string()). + User = p1_rand:get_string(), + jid:make(User, Host, p1_rand:get_string()). make_socket(Pid, IP) -> {http_bind, Pid, IP}. diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index a994d1713..a36691534 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -881,7 +881,7 @@ bounce_message_queue() -> -spec new_uniq_id() -> binary(). new_uniq_id() -> iolist_to_binary( - [randoms:get_string(), + [p1_rand:get_string(), integer_to_binary(p1_time_compat:unique_integer([positive]))]). -spec get_conn_type(state()) -> c2s | c2s_tls | c2s_compressed | websocket | diff --git a/src/ejabberd_captcha.erl b/src/ejabberd_captcha.erl index 1d3e99c52..a0c731c9a 100644 --- a/src/ejabberd_captcha.erl +++ b/src/ejabberd_captcha.erl @@ -89,7 +89,7 @@ mk_field(Type, Var, Value) -> create_captcha(SID, From, To, Lang, Limiter, Args) -> case create_image(Limiter) of {ok, Type, Key, Image} -> - Id = <<(randoms:get_string())/binary>>, + Id = <<(p1_rand:get_string())/binary>>, JID = jid:encode(From), CID = <<"sha1+", (str:sha(Image))/binary, "@bob.xmpp.org">>, Data = #bob_data{cid = CID, 'max-age' = 0, type = Type, @@ -120,7 +120,7 @@ create_captcha(SID, From, To, Lang, Limiter, Args) -> create_captcha_x(SID, To, Lang, Limiter, #xdata{fields = Fs} = X) -> case create_image(Limiter) of {ok, Type, Key, Image} -> - Id = <<(randoms:get_string())/binary>>, + Id = <<(p1_rand:get_string())/binary>>, CID = <<"sha1+", (str:sha(Image))/binary, "@bob.xmpp.org">>, Data = #bob_data{cid = CID, 'max-age' = 0, type = Type, data = Image}, HelpTxt = translate:translate(Lang, @@ -376,7 +376,7 @@ code_change(_OldVsn, State, _Extra) -> {ok, State}. create_image() -> create_image(undefined). create_image(Limiter) -> - Key = str:substr(randoms:get_string(), 1, 6), + Key = str:substr(p1_rand:get_string(), 1, 6), create_image(Limiter, Key). create_image(Limiter, Key) -> diff --git a/src/ejabberd_config.erl b/src/ejabberd_config.erl index f469fcbe9..8e55ae4d0 100644 --- a/src/ejabberd_config.erl +++ b/src/ejabberd_config.erl @@ -75,7 +75,7 @@ start() -> UnixTime = p1_time_compat:system_time(seconds), SharedKey = case erlang:get_cookie() of nocookie -> - str:sha(randoms:get_string()); + str:sha(p1_rand:get_string()); Cookie -> str:sha(misc:atom_to_binary(Cookie)) end, @@ -115,7 +115,7 @@ start(Hosts, Opts) -> UnixTime = p1_time_compat:system_time(seconds), SharedKey = case erlang:get_cookie() of nocookie -> - str:sha(randoms:get_string()); + str:sha(p1_rand:get_string()); Cookie -> str:sha(misc:atom_to_binary(Cookie)) end, diff --git a/src/ejabberd_iq.erl b/src/ejabberd_iq.erl index 2ac07e72a..adee25dbe 100644 --- a/src/ejabberd_iq.erl +++ b/src/ejabberd_iq.erl @@ -49,7 +49,7 @@ start_link() -> -spec route(iq(), atom() | pid(), term(), non_neg_integer()) -> ok. route(#iq{type = T} = IQ, Proc, Ctx, Timeout) when T == set; T == get -> Expire = current_time() + Timeout, - Rnd = randoms:get_string(), + Rnd = p1_rand:get_string(), ID = encode_id(Expire, Rnd), ets:insert(?MODULE, {{Expire, Rnd}, Proc, Ctx}), gen_server:cast(?MODULE, {restart_timer, Expire}), diff --git a/src/ejabberd_piefxis.erl b/src/ejabberd_piefxis.erl index 20d84b405..32828475d 100644 --- a/src/ejabberd_piefxis.erl +++ b/src/ejabberd_piefxis.erl @@ -478,7 +478,7 @@ process_privacy(#privacy_query{lists = Lists, active = Active} = PrivacyQuery, State = #state{user = U, server = S}) -> JID = jid:make(U, S), - IQ = #iq{type = set, id = randoms:get_string(), + IQ = #iq{type = set, id = p1_rand:get_string(), from = JID, to = JID, sub_els = [PrivacyQuery]}, case mod_privacy:process_iq(IQ) of #iq{type = error} = ResIQ -> @@ -498,7 +498,7 @@ process_privacy(#privacy_query{lists = Lists, -spec process_private(private(), state()) -> {ok, state()} | {error, _}. process_private(Private, State = #state{user = U, server = S}) -> JID = jid:make(U, S), - IQ = #iq{type = set, id = randoms:get_string(), + IQ = #iq{type = set, id = p1_rand:get_string(), from = JID, to = JID, sub_els = [Private]}, case mod_private:process_sm_iq(IQ) of #iq{type = result} -> @@ -510,7 +510,7 @@ process_private(Private, State = #state{user = U, server = S}) -> -spec process_vcard(xmlel(), state()) -> {ok, state()} | {error, _}. process_vcard(El, State = #state{user = U, server = S}) -> JID = jid:make(U, S), - IQ = #iq{type = set, id = randoms:get_string(), + IQ = #iq{type = set, id = p1_rand:get_string(), from = JID, to = JID, sub_els = [El]}, case mod_vcard:process_sm_iq(IQ) of #iq{type = result} -> diff --git a/src/ejabberd_redis.erl b/src/ejabberd_redis.erl index 23415cbfd..3bfc9fa52 100644 --- a/src/ejabberd_redis.erl +++ b/src/ejabberd_redis.erl @@ -437,7 +437,7 @@ connect(#state{num = Num}) -> erlang:error(Why) end catch _:Reason -> - Timeout = randoms:uniform( + Timeout = p1_rand:uniform( min(10, ejabberd_redis_sup:get_pool_size())), ?ERROR_MSG("Redis connection #~p at ~s:~p has failed: ~p; " "reconnecting in ~p seconds", @@ -502,7 +502,7 @@ log_error(Cmd, Reason) -> -spec get_rnd_id() -> pos_integer(). get_rnd_id() -> - randoms:round_robin(ejabberd_redis_sup:get_pool_size() - 1) + 2. + p1_rand:round_robin(ejabberd_redis_sup:get_pool_size() - 1) + 2. -spec get_result([{error, atom() | binary()} | {ok, iodata()}]) -> {ok, [redis_reply()]} | {error, binary()}. diff --git a/src/ejabberd_riak_sup.erl b/src/ejabberd_riak_sup.erl index fb5d10043..043c5a484 100644 --- a/src/ejabberd_riak_sup.erl +++ b/src/ejabberd_riak_sup.erl @@ -162,7 +162,7 @@ get_pids() -> [ejabberd_riak:get_proc(I) || I <- lists:seq(1, get_pool_size())]. get_random_pid() -> - I = randoms:round_robin(get_pool_size()) + 1, + I = p1_rand:round_robin(get_pool_size()) + 1, ejabberd_riak:get_proc(I). transform_options(Opts) -> diff --git a/src/ejabberd_s2s_out.erl b/src/ejabberd_s2s_out.erl index 2aa71fb12..99bc44ab8 100644 --- a/src/ejabberd_s2s_out.erl +++ b/src/ejabberd_s2s_out.erl @@ -375,7 +375,7 @@ mk_bounce_error(_Lang, _State) -> -spec get_delay() -> non_neg_integer(). get_delay() -> MaxDelay = ejabberd_config:get_option(s2s_max_retry_delay, 300), - randoms:uniform(MaxDelay). + p1_rand:uniform(MaxDelay). -spec set_idle_timeout(state()) -> state(). set_idle_timeout(#{on_route := send, server := LServer} = State) -> diff --git a/src/ejabberd_service.erl b/src/ejabberd_service.erl index be417ff9c..496532a6b 100644 --- a/src/ejabberd_service.erl +++ b/src/ejabberd_service.erl @@ -261,7 +261,7 @@ check_from(From, #{host_opts := HostOpts}) -> dict:is_key(Server, HostOpts). random_password() -> - str:sha(randoms:bytes(20)). + str:sha(p1_rand:bytes(20)). transform_listen_option({hosts, Hosts, O}, Opts) -> case lists:keyfind(hosts, 1, Opts) of diff --git a/src/ejabberd_sql_sup.erl b/src/ejabberd_sql_sup.erl index 0827b6492..874a9f99d 100644 --- a/src/ejabberd_sql_sup.erl +++ b/src/ejabberd_sql_sup.erl @@ -91,7 +91,7 @@ get_random_pid(Host) -> case get_pids(Host) of [] -> none; Pids -> - I = randoms:round_robin(length(Pids)) + 1, + I = p1_rand:round_robin(length(Pids)) + 1, lists:nth(I, Pids) end. diff --git a/src/extauth.erl b/src/extauth.erl index 170dc23a0..7a71cfbc9 100644 --- a/src/extauth.erl +++ b/src/extauth.erl @@ -186,7 +186,7 @@ call_port(Server, Args, Timeout) -> StartTime = p1_time_compat:monotonic_time(milli_seconds), Pool = pool_name(Server), PoolSize = pool_size(Server), - I = randoms:round_robin(PoolSize), + I = p1_rand:round_robin(PoolSize), Cmd = str:join(Args, <<":">>), do_call(Cmd, I, I + PoolSize, Pool, PoolSize, StartTime + Timeout, StartTime). diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl index 4eeaa32f9..2deb5525b 100644 --- a/src/mod_admin_extra.erl +++ b/src/mod_admin_extra.erl @@ -974,7 +974,7 @@ build_random_password(Reason) -> {{Year, Month, Day}, {Hour, Minute, Second}} = calendar:universal_time(), Date = str:format("~4..0B~2..0B~2..0BT~2..0B:~2..0B:~2..0B", [Year, Month, Day, Hour, Minute, Second]), - RandomString = randoms:get_string(), + RandomString = p1_rand:get_string(), <<"BANNED_ACCOUNT--", Date/binary, "--", RandomString/binary, "--", Reason/binary>>. set_password_auth(User, Server, Password) -> @@ -1515,7 +1515,7 @@ send_message(Type, From, To, Subject, Body) -> build_packet(Type, Subject, Body) -> #message{type = misc:binary_to_atom(Type), body = xmpp:mk_text(Body), - id = randoms:get_string(), + id = p1_rand:get_string(), subject = xmpp:mk_text(Subject)}. send_stanza(FromString, ToString, Stanza) -> diff --git a/src/mod_avatar.erl b/src/mod_avatar.erl index ca41ac4c6..cab74bd8b 100644 --- a/src/mod_avatar.erl +++ b/src/mod_avatar.erl @@ -359,7 +359,7 @@ set_vcard_avatar(JID, VCardPhoto, Meta) -> ok; {ok, VCard} -> VCard1 = VCard#vcard_temp{photo = VCardPhoto}, - IQ = #iq{from = JID, to = JID, id = randoms:get_string(), + IQ = #iq{from = JID, to = JID, id = p1_rand:get_string(), type = set, sub_els = [VCard1], meta = Meta}, LServer = JID#jid.lserver, ejabberd_hooks:run_fold(vcard_iq_set, LServer, IQ, []), diff --git a/src/mod_blocking.erl b/src/mod_blocking.erl index a67e51683..d428e7d28 100644 --- a/src/mod_blocking.erl +++ b/src/mod_blocking.erl @@ -241,7 +241,7 @@ broadcast_event(#jid{luser = LUser, lserver = LServer} = From, Event) -> fun(R) -> To = jid:replace_resource(From, R), IQ = #iq{type = set, from = BFrom, to = To, - id = <<"push", (randoms:get_string())/binary>>, + id = <<"push", (p1_rand:get_string())/binary>>, sub_els = [Event]}, ejabberd_router:route(IQ) end, ejabberd_sm:get_user_resources(LUser, LServer)). diff --git a/src/mod_echo.erl b/src/mod_echo.erl index 6be1f76dd..a218c5f40 100644 --- a/src/mod_echo.erl +++ b/src/mod_echo.erl @@ -188,12 +188,12 @@ code_change(_OldVsn, State, _Extra) -> {ok, State}. do_client_version(disabled, _From, _To) -> ok; do_client_version(enabled, From, To) -> - Random_resource = randoms:get_string(), + Random_resource = p1_rand:get_string(), From2 = From#jid{resource = Random_resource, lresource = Random_resource}, - ID = randoms:get_string(), + ID = p1_rand:get_string(), Packet = #iq{from = From2, to = To, type = get, - id = randoms:get_string(), + id = p1_rand:get_string(), sub_els = [#version{}]}, ejabberd_router:route(Packet), receive diff --git a/src/mod_http_upload.erl b/src/mod_http_upload.erl index bc88db593..377e625cd 100644 --- a/src/mod_http_upload.erl +++ b/src/mod_http_upload.erl @@ -586,7 +586,7 @@ create_slot(#state{service_url = undefined, case ejabberd_hooks:run_fold(http_upload_slot_request, ServerHost, allow, [JID, UserDir, Size, Lang]) of allow -> - RandStr = randoms:get_alphanum_string(SecretLength), + RandStr = p1_rand:get_alphanum_string(SecretLength), FileStr = make_file_string(File), ?INFO_MSG("Got HTTP upload slot for ~s (file: ~s, size: ~B)", [jid:encode(JID), File, Size]), @@ -887,7 +887,7 @@ convert(Path, #media_info{type = T, width = W, height = H} = Info) -> true -> Dir = filename:dirname(Path), Ext = atom_to_binary(T, latin1), - FileName = <<(randoms:get_string())/binary, $., Ext/binary>>, + FileName = <<(p1_rand:get_string())/binary, $., Ext/binary>>, OutPath = filename:join(Dir, FileName), {W1, H1} = if W > H -> {300, round(H*300/W)}; H > W -> {round(W*300/H), 300}; diff --git a/src/mod_muc.erl b/src/mod_muc.erl index 3be8d1688..f44b53927 100644 --- a/src/mod_muc.erl +++ b/src/mod_muc.erl @@ -568,7 +568,7 @@ process_muc_unique(#iq{type = set, lang = Lang} = IQ) -> process_muc_unique(#iq{from = From, type = get, sub_els = [#muc_unique{}]} = IQ) -> Name = str:sha(term_to_binary([From, p1_time_compat:timestamp(), - randoms:get_string()])), + p1_rand:get_string()])), xmpp:make_iq_result(IQ, #muc_unique{name = Name}). -spec process_mucsub(iq()) -> iq(). diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index e7351fb33..3ff241929 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -546,7 +546,7 @@ handle_sync_event(get_subscribers, _From, StateName, StateData) -> {reply, {ok, JIDs}, StateName, StateData}; handle_sync_event({muc_subscribe, From, Nick, Nodes}, _From, StateName, StateData) -> - IQ = #iq{type = set, id = randoms:get_string(), + IQ = #iq{type = set, id = p1_rand:get_string(), from = From, sub_els = [#muc_subscribe{nick = Nick, events = Nodes}]}, Config = StateData#state.config, @@ -572,7 +572,7 @@ handle_sync_event({muc_subscribe, From, Nick, Nodes}, _From, {reply, {error, get_error_text(Err)}, StateName, StateData} end; handle_sync_event({muc_unsubscribe, From}, _From, StateName, StateData) -> - IQ = #iq{type = set, id = randoms:get_string(), + IQ = #iq{type = set, id = p1_rand:get_string(), from = From, sub_els = [#muc_unsubscribe{}]}, case process_iq_mucsub(From, IQ, StateData) of {result, _, NewState} -> @@ -2162,7 +2162,7 @@ send_self_presence(JID, State) -> Els1 end, ejabberd_router:route(#presence{from = State#state.jid, to = JID, - id = randoms:get_string(), + id = p1_rand:get_string(), sub_els = Els2}). -spec send_initial_presence(jid(), state(), state()) -> ok. @@ -2465,7 +2465,7 @@ send_affiliation(JID, Affiliation, StateData) -> Item = #muc_item{jid = JID, affiliation = Affiliation, role = none}, - Message = #message{id = randoms:get_string(), + Message = #message{id = p1_rand:get_string(), sub_els = [#muc_user{items = [Item]}]}, Users = get_users_and_subscribers(StateData), Recipients = case (StateData#state.config)#config.anonymous of @@ -3479,7 +3479,7 @@ send_config_change_info(New, #state{config = Old} = StateData) -> send_self_presence(JID, StateData#state{config = New}) end, ?DICT:to_list(StateData#state.users)), Message = #message{type = groupchat, - id = randoms:get_string(), + id = p1_rand:get_string(), sub_els = [#muc_user{status_codes = Codes}]}, send_wrapped_multiple(StateData#state.jid, get_users_and_subscribers(StateData), @@ -4324,7 +4324,7 @@ send_subscriptions_change_notifications(From, Nick, Type, State) -> items = #ps_items{ node = ?NS_MUCSUB_NODES_SUBSCRIBERS, items = [#ps_item{ - id = randoms:get_string(), + id = p1_rand:get_string(), sub_els = [Payload]}]}}]}, ejabberd_router:route(xmpp:set_from_to(Packet, From, JID)); false -> @@ -4367,7 +4367,7 @@ send_wrapped(From, To, Packet, Node, State) -> true -> ejabberd_router:route( #presence{from = State#state.jid, to = To, - id = randoms:get_string(), + id = p1_rand:get_string(), type = unavailable}); false -> ok @@ -4389,7 +4389,7 @@ wrap(From, To, Packet, Node) -> items = #ps_items{ node = Node, items = [#ps_item{ - id = randoms:get_string(), + id = p1_rand:get_string(), sub_els = [El]}]}}]}. %% -spec send_multiple(jid(), binary(), [#user{}], stanza()) -> ok. diff --git a/src/mod_multicast.erl b/src/mod_multicast.erl index 427a4176a..ea6e5b442 100644 --- a/src/mod_multicast.erl +++ b/src/mod_multicast.erl @@ -715,7 +715,7 @@ process_discoinfo_result2(From, FromS, LServiceS, false -> case ST of {wait_for_info, _ID} -> - Random = randoms:get_string(), + Random = p1_rand:get_string(), ID = <>, send_query_items(FromS, LServiceS, ID), add_response(RServer, Response, {wait_for_items, ID}); @@ -784,7 +784,7 @@ process_discoitems_result(From, LServiceS, ID, #disco_items{items = Items}) -> [] -> add_response(RServer, not_supported, cached); _ -> - Random = randoms:get_string(), + Random = p1_rand:get_string(), ID2 = <>, [send_query_info(Item, LServiceS, ID2) || Item <- List], add_response(RServer, Response, @@ -859,7 +859,7 @@ search_server_on_cache(RServer, _LServerS, LServiceS, Maxmins) -> end. query_info(RServer, LServiceS, Response) -> - Random = randoms:get_string(), + Random = p1_rand:get_string(), ID = <>, send_query_info(RServer, LServiceS, ID), add_response(RServer, Response, {wait_for_info, ID}). diff --git a/src/mod_privacy.erl b/src/mod_privacy.erl index 8a64c6276..6cb573439 100644 --- a/src/mod_privacy.erl +++ b/src/mod_privacy.erl @@ -364,7 +364,7 @@ push_list_update(From, Name) -> fun(R) -> To = jid:replace_resource(From, R), IQ = #iq{type = set, from = BareFrom, to = To, - id = <<"push", (randoms:get_string())/binary>>, + id = <<"push", (p1_rand:get_string())/binary>>, sub_els = [#privacy_query{ lists = [#privacy_list{name = Name}]}]}, ejabberd_router:route(IQ) diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index 229e7ec45..8ca4c6564 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -1468,7 +1468,7 @@ create_node(Host, ServerHost, Node, Owner, Type) -> create_node(Host, ServerHost, <<>>, Owner, Type, Access, Configuration) -> case lists:member(<<"instant-nodes">>, plugin_features(Host, Type)) of true -> - Node = randoms:get_string(), + Node = p1_rand:get_string(), case create_node(Host, ServerHost, Node, Owner, Type, Access, Configuration) of {result, _} -> {result, #pubsub{create = Node}}; diff --git a/src/mod_push.erl b/src/mod_push.erl index 48746ac20..760f6e540 100644 --- a/src/mod_push.erl +++ b/src/mod_push.erl @@ -464,7 +464,7 @@ notify(LServer, PushLJID, Node, XData, Pkt, Dir, HandleResponse) -> IQ = #iq{type = set, from = From, to = jid:make(PushLJID), - id = randoms:get_string(), + id = p1_rand:get_string(), sub_els = [PubSub]}, ejabberd_router:route_iq(IQ, HandleResponse). diff --git a/src/mod_roster.erl b/src/mod_roster.erl index 38c3a78b0..5c0d3eeca 100644 --- a/src/mod_roster.erl +++ b/src/mod_roster.erl @@ -492,7 +492,7 @@ push_item(To, OldItem, NewItem, Ver) -> route_presence_change(To, OldItem, NewItem), IQ = #iq{type = set, to = To, from = jid:remove_resource(To), - id = <<"push", (randoms:get_string())/binary>>, + id = <<"push", (p1_rand:get_string())/binary>>, sub_els = [#roster_query{ver = Ver, items = [encode_item(NewItem)]}]}, ejabberd_router:route(IQ). @@ -1071,7 +1071,7 @@ user_roster_item_parse_query(User, Server, Items, #iq{type = set, from = UJID, to = UJID, - id = randoms:get_string(), + id = p1_rand:get_string(), sub_els = [#roster_query{ items = [RosterItem]}]}), throw(submitted); diff --git a/src/mod_service_log.erl b/src/mod_service_log.erl index 27ec8af44..d8c9c565e 100644 --- a/src/mod_service_log.erl +++ b/src/mod_service_log.erl @@ -69,7 +69,7 @@ log_user_receive({Packet, C2SState}) -> log_packet(Packet, Host) -> Loggers = gen_mod:get_module_opt(Host, ?MODULE, loggers), ForwardedMsg = #message{from = jid:make(Host), - id = randoms:get_string(), + id = p1_rand:get_string(), sub_els = [#forwarded{ sub_els = [Packet]}]}, lists:foreach( diff --git a/src/mod_shared_roster.erl b/src/mod_shared_roster.erl index 34f5502eb..79b782e17 100644 --- a/src/mod_shared_roster.erl +++ b/src/mod_shared_roster.erl @@ -287,7 +287,7 @@ set_new_rosteritems(UserFrom, ServerFrom, UserTo, set_item(User, Server, Resource, Item) -> ResIQ = #iq{from = jid:make(User, Server, Resource), to = jid:make(Server), - type = set, id = <<"push", (randoms:get_string())/binary>>, + type = set, id = <<"push", (p1_rand:get_string())/binary>>, sub_els = [#roster_query{ items = [mod_roster:encode_item(Item)]}]}, ejabberd_router:route(ResIQ). diff --git a/src/randoms.erl b/src/randoms.erl deleted file mode 100644 index 101241a3c..000000000 --- a/src/randoms.erl +++ /dev/null @@ -1,91 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% File : randoms.erl -%%% Author : Alexey Shchepin -%%% Purpose : Random generation number wrapper -%%% Created : 13 Dec 2002 by Alexey Shchepin -%%% -%%% -%%% ejabberd, Copyright (C) 2002-2018 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --module(randoms). - --author('alexey@process-one.net'). - --export([get_string/0, uniform/0, uniform/1, uniform/2, bytes/1, - round_robin/1, get_alphanum_string/1]). - --define(THRESHOLD, 16#10000000000000000). - --ifdef(RAND_UNIFORM). -get_string() -> - R = rand:uniform(?THRESHOLD), - integer_to_binary(R). - -uniform() -> - rand:uniform(). - -uniform(N) -> - rand:uniform(N). - -uniform(N, M) -> - rand:uniform(M-N+1) + N-1. --else. -get_string() -> - R = crypto:rand_uniform(0, ?THRESHOLD), - integer_to_binary(R). - -uniform() -> - crypto:rand_uniform(0, ?THRESHOLD)/?THRESHOLD. - -uniform(N) -> - crypto:rand_uniform(1, N+1). - -uniform(N, M) -> - crypto:rand_uniform(N, M+1). --endif. - --ifdef(STRONG_RAND_BYTES). -bytes(N) -> - crypto:strong_rand_bytes(N). --else. -bytes(N) -> - crypto:rand_bytes(N). --endif. - --spec round_robin(pos_integer()) -> non_neg_integer(). -round_robin(N) -> - p1_time_compat:unique_integer([monotonic, positive]) rem N. - --spec get_alphanum_string(non_neg_integer()) -> binary(). -get_alphanum_string(Length) -> - list_to_binary(get_alphanum_string([], Length)). - --spec get_alphanum_string(string(), non_neg_integer()) -> string(). -get_alphanum_string(S, 0) -> S; -get_alphanum_string(S, N) -> - get_alphanum_string([make_rand_char() | S], N - 1). - --spec make_rand_char() -> char(). -make_rand_char() -> - map_int_to_char(uniform(0, 61)). - --spec map_int_to_char(0..61) -> char(). -map_int_to_char(N) when N =< 9 -> N + 48; % Digit. -map_int_to_char(N) when N =< 35 -> N + 55; % Upper-case character. -map_int_to_char(N) when N =< 61 -> N + 61. % Lower-case character. diff --git a/src/xmpp_stream_in.erl b/src/xmpp_stream_in.erl index fa1038ead..31018d434 100644 --- a/src/xmpp_stream_in.erl +++ b/src/xmpp_stream_in.erl @@ -428,7 +428,7 @@ noreply(#{stream_timeout := {MSecs, StartTime}} = State) -> -spec new_id() -> binary(). new_id() -> - randoms:get_string(). + p1_rand:get_string(). -spec is_disconnected(state()) -> boolean(). is_disconnected(#{stream_state := StreamState}) -> diff --git a/src/xmpp_stream_out.erl b/src/xmpp_stream_out.erl index 27accf59e..171eef033 100644 --- a/src/xmpp_stream_out.erl +++ b/src/xmpp_stream_out.erl @@ -464,7 +464,7 @@ noreply(#{stream_timeout := {MSecs, OldTime}} = State) -> -spec new_id() -> binary(). new_id() -> - randoms:get_string(). + p1_rand:get_string(). -spec is_disconnected(state()) -> boolean(). is_disconnected(#{stream_state := StreamState}) -> @@ -1190,7 +1190,7 @@ h_addr_list_to_host_ports(AddrList) -> fun({{Priority, Weight, Port, Host}, TLS}) -> N = case Weight of 0 -> 0; - _ -> (Weight + 1) * randoms:uniform() + _ -> (Weight + 1) * p1_rand:uniform() end, [{Priority * 65536 - N, Host, Port, TLS}]; (_) ->