From 3f490bea2e21871f534cdcd49d85314eb35f0164 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Tue, 7 May 2019 14:59:22 +0200
Subject: [snmp] Replaced usage of random with rand

Use of the deprecated module random has been replaced
by the module rand.

OTP-15331
---
 lib/snmp/src/agent/snmp_standard_mib.erl       | 13 ++++++++-----
 lib/snmp/src/agent/snmp_target_mib.erl         | 13 ++++++++-----
 lib/snmp/src/agent/snmp_user_based_sm_mib.erl  | 12 +++++++-----
 lib/snmp/src/agent/snmp_view_based_acm_mib.erl | 11 +++++++----
 lib/snmp/src/agent/snmpa_mpd.erl               | 10 ++++------
 lib/snmp/src/agent/snmpa_usm.erl               | 22 +++++++++++++---------
 lib/snmp/src/app/snmp_internal.hrl             |  9 +++++++--
 lib/snmp/src/compile/Makefile                  |  4 +++-
 lib/snmp/src/compile/snmpc.erl                 | 11 +++++++----
 lib/snmp/src/manager/snmpm_mpd.erl             | 14 ++++++++------
 lib/snmp/test/snmp_manager_config_test.erl     | 13 ++++++++-----
 lib/snmp/test/snmp_test_mgr.erl                | 14 ++++++++------
 12 files changed, 88 insertions(+), 58 deletions(-)

(limited to 'lib')

diff --git a/lib/snmp/src/agent/snmp_standard_mib.erl b/lib/snmp/src/agent/snmp_standard_mib.erl
index bfe471178d..679d2657c6 100644
--- a/lib/snmp/src/agent/snmp_standard_mib.erl
+++ b/lib/snmp/src/agent/snmp_standard_mib.erl
@@ -1,7 +1,7 @@
 %% 
 %% %CopyrightBegin%
 %% 
-%% Copyright Ericsson AB 1996-2015. All Rights Reserved.
+%% Copyright Ericsson AB 1996-2019. All Rights Reserved.
 %% 
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -27,6 +27,7 @@
 -include("snmp_types.hrl").
 -include("STANDARD-MIB.hrl").
 
+-include("snmpa_internal.hrl").
 -define(VMODULE,"STANDARD-MIB").
 -include("snmp_verbosity.hrl").
 
@@ -547,10 +548,12 @@ dummy(_Op) -> ok.
 %%-----------------------------------------------------------------
 snmp_set_serial_no(new) ->
     snmp_generic:variable_func(new, {snmpSetSerialNo, volatile}),
-    random:seed(erlang:phash2([node()]),
-                erlang:monotonic_time(),
-                erlang:unique_integer()),
-    Val = random:uniform(2147483648) - 1,
+    ?SNMP_RAND_SEED(),
+    %% rand:seed(exrop,
+    %%           {erlang:phash2([node()]),
+    %%            erlang:monotonic_time(),
+    %%            erlang:unique_integer()}),
+    Val = rand:uniform(2147483648) - 1,
     snmp_generic:variable_func(set, Val, {snmpSetSerialNo, volatile});
 
 snmp_set_serial_no(delete) ->
diff --git a/lib/snmp/src/agent/snmp_target_mib.erl b/lib/snmp/src/agent/snmp_target_mib.erl
index e65fa7f340..22fd3acb84 100644
--- a/lib/snmp/src/agent/snmp_target_mib.erl
+++ b/lib/snmp/src/agent/snmp_target_mib.erl
@@ -1,7 +1,7 @@
 %% 
 %% %CopyrightBegin%
 %% 
-%% Copyright Ericsson AB 1998-2015. All Rights Reserved.
+%% Copyright Ericsson AB 1998-2019. All Rights Reserved.
 %% 
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -42,6 +42,7 @@
 
 -define(VMODULE,"TARGET-MIB").
 -include("snmp_verbosity.hrl").
+-include("snmpa_internal.hrl").
 
 
 %% Column not accessible via SNMP - needed when the agent sends informs
@@ -673,10 +674,12 @@ snmpTargetSpinLock(print) ->
     
 snmpTargetSpinLock(new) ->
     snmp_generic:variable_func(new, {snmpTargetSpinLock, volatile}),
-    random:seed(erlang:phash2([node()]),
-                erlang:monotonic_time(),
-                erlang:unique_integer()),
-    Val = random:uniform(2147483648) - 1,
+    ?SNMP_RAND_SEED(),
+    %% rand:seed(exrop,
+    %%           {erlang:phash2([node()]),
+    %%            erlang:monotonic_time(),
+    %%            erlang:unique_integer()}),
+    Val = rand:uniform(2147483648) - 1,
     snmp_generic:variable_func(set, Val, {snmpTargetSpinLock, volatile});
 
 snmpTargetSpinLock(delete) ->
diff --git a/lib/snmp/src/agent/snmp_user_based_sm_mib.erl b/lib/snmp/src/agent/snmp_user_based_sm_mib.erl
index f6e4fd3951..4842669fa4 100644
--- a/lib/snmp/src/agent/snmp_user_based_sm_mib.erl
+++ b/lib/snmp/src/agent/snmp_user_based_sm_mib.erl
@@ -1,7 +1,7 @@
 %% 
 %% %CopyrightBegin%
 %% 
-%% Copyright Ericsson AB 1999-2015. All Rights Reserved.
+%% Copyright Ericsson AB 1999-2019. All Rights Reserved.
 %% 
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -440,10 +440,12 @@ usmUserSpinLock(print) ->
     
 usmUserSpinLock(new) ->
     snmp_generic:variable_func(new, {usmUserSpinLock, volatile}),
-    random:seed(erlang:phash2([node()]),
-                erlang:monotonic_time(),
-                erlang:unique_integer()),
-    Val = random:uniform(2147483648) - 1,
+    ?SNMP_RAND_SEED(),
+    %% rand:seed(exrop,
+    %%           {erlang:phash2([node()]),
+    %%            erlang:monotonic_time(),
+    %%            erlang:unique_integer()}),
+    Val = rand:uniform(2147483648) - 1,
     snmp_generic:variable_func(set, Val, {usmUserSpinLock, volatile});
 
 usmUserSpinLock(delete) ->
diff --git a/lib/snmp/src/agent/snmp_view_based_acm_mib.erl b/lib/snmp/src/agent/snmp_view_based_acm_mib.erl
index c6eeb7cea2..56b5d96142 100644
--- a/lib/snmp/src/agent/snmp_view_based_acm_mib.erl
+++ b/lib/snmp/src/agent/snmp_view_based_acm_mib.erl
@@ -48,6 +48,7 @@
 -include("SNMPv2-TC.hrl").
 -include("SNMP-VIEW-BASED-ACM-MIB.hrl").
 -include("snmpa_vacm.hrl").
+-include("snmpa_internal.hrl").
 
 
 -define(VMODULE,"VACM-MIB").
@@ -860,10 +861,12 @@ vacmViewSpinLock(print) ->
 
 vacmViewSpinLock(new) ->
     snmp_generic:variable_func(new, volatile_db(vacmViewSpinLock)),
-    random:seed(erlang:phash2([node()]),
-                erlang:monotonic_time(),
-                erlang:unique_integer()),
-    Val = random:uniform(2147483648) - 1,
+    ?SNMP_RAND_SEED(),
+    %% rand:seed(exrop,
+    %%           {erlang:phash2([node()]),
+    %%            erlang:monotonic_time(),
+    %%            erlang:unique_integer()}),
+    Val = rand:uniform(2147483648) - 1,
     snmp_generic:variable_func(set, Val, volatile_db(vacmViewSpinLock));
 
 vacmViewSpinLock(delete) ->
diff --git a/lib/snmp/src/agent/snmpa_mpd.erl b/lib/snmp/src/agent/snmpa_mpd.erl
index b440d57d03..2ec5dcb5e6 100644
--- a/lib/snmp/src/agent/snmpa_mpd.erl
+++ b/lib/snmp/src/agent/snmpa_mpd.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 1997-2015. All Rights Reserved.
+%% Copyright Ericsson AB 1997-2019. All Rights Reserved.
 %%
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -76,11 +76,9 @@
 init(Vsns) ->
     ?vlog("init -> entry with"
 	"~n   Vsns: ~p", [Vsns]),
-    random:seed(erlang:phash2([node()]),
-                erlang:monotonic_time(),
-                erlang:unique_integer()),
-    ets:insert(snmp_agent_table, {msg_id, random:uniform(2147483647)}),
-    ets:insert(snmp_agent_table, {req_id, random:uniform(2147483647)}),
+    ?SNMP_RAND_SEED(),
+    ets:insert(snmp_agent_table, {msg_id, rand:uniform(2147483647)}),
+    ets:insert(snmp_agent_table, {req_id, rand:uniform(2147483647)}),
     init_counters(),
     init_versions(Vsns, #state{}).
 
diff --git a/lib/snmp/src/agent/snmpa_usm.erl b/lib/snmp/src/agent/snmpa_usm.erl
index fb616cd9ef..1debceae98 100644
--- a/lib/snmp/src/agent/snmpa_usm.erl
+++ b/lib/snmp/src/agent/snmpa_usm.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 1999-2015. All Rights Reserved.
+%% Copyright Ericsson AB 1999-2019. All Rights Reserved.
 %%
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -646,10 +646,12 @@ get_des_salt() ->
 		ets:insert(snmp_agent_table, {usm_des_salt, 0}),
 		0;
 	    _ -> % it doesn't exist, initialize
-                random:seed(erlang:phash2([node()]),
-                            erlang:monotonic_time(),
-                            erlang:unique_integer()),
-		R = random:uniform(4294967295),
+                ?SNMP_RAND_SEED(),
+                %% rand:seed(exrop,
+                %%           {erlang:phash2([node()]),
+                %%            erlang:monotonic_time(),
+                %%            erlang:unique_integer()}),
+		R = rand:uniform(4294967295),
 		ets:insert(snmp_agent_table, {usm_des_salt, R}),
 		R
 	end,
@@ -679,10 +681,12 @@ get_aes_salt() ->
 		ets:insert(snmp_agent_table, {usm_aes_salt, 0}),
 		0;
 	    _ -> % it doesn't exist, initialize
-                random:seed(erlang:phash2([node()]),
-                            erlang:monotonic_time(),
-                            erlang:unique_integer()),
-		R = random:uniform(36893488147419103231),
+                ?SNMP_RAND_SEED(),
+                %% rand:seed(exrop,
+                %%           {erlang:phash2([node()]),
+                %%            erlang:monotonic_time(),
+                %%            erlang:unique_integer()}),
+		R = rand:uniform(36893488147419103231),
 		ets:insert(snmp_agent_table, {usm_aes_salt, R}),
 		R
 	end,
diff --git a/lib/snmp/src/app/snmp_internal.hrl b/lib/snmp/src/app/snmp_internal.hrl
index 97a7c63ef1..f9a758ab7b 100644
--- a/lib/snmp/src/app/snmp_internal.hrl
+++ b/lib/snmp/src/app/snmp_internal.hrl
@@ -25,6 +25,13 @@
 -define(APPLICATION, snmp).
 -endif.
 
+
+-define(SNMP_RAND_SEED_ALG,    exrop).
+-define(SNMP_RAND_SEED(),      rand:seed(?SNMP_RAND_SEED_ALG,
+                                         {erlang:phash2([node()]),
+                                          erlang:monotonic_time(),
+                                          erlang:unique_integer()})).
+
 -define(snmp_info(C, F, A),    ?snmp_msg(info_msg, C, F, A)).
 -define(snmp_warning(C, F, A), ?snmp_msg(warning_msg, C, F, A)).
 -define(snmp_error(C, F, A),   ?snmp_msg(error_msg, C, F, A)).
@@ -37,5 +44,3 @@
 
 -endif. % -ifdef(snmp_internal).
 
-
-
diff --git a/lib/snmp/src/compile/Makefile b/lib/snmp/src/compile/Makefile
index 4093ffa9ca..d9678669a5 100644
--- a/lib/snmp/src/compile/Makefile
+++ b/lib/snmp/src/compile/Makefile
@@ -2,7 +2,7 @@
 
 # %CopyrightBegin%
 # 
-# Copyright Ericsson AB 1997-2016. All Rights Reserved.
+# Copyright Ericsson AB 1997-2019. All Rights Reserved.
 # 
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -59,6 +59,8 @@ PARSER_TARGET = $(PARSER_MODULE).$(EMULATOR)
 # ----------------------------------------------------
 # FLAGS
 # ----------------------------------------------------
+ERL_COMPILE_FLAGS += -pa $(ERL_TOP)/lib/snmp/ebin
+
 ifeq ($(WARN_UNUSED_VARS),true)
 ERL_COMPILE_FLAGS += +warn_unused_vars
 endif
diff --git a/lib/snmp/src/compile/snmpc.erl b/lib/snmp/src/compile/snmpc.erl
index c810bfcd41..4249799195 100644
--- a/lib/snmp/src/compile/snmpc.erl
+++ b/lib/snmp/src/compile/snmpc.erl
@@ -1,7 +1,7 @@
 %% 
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 1997-2018. All Rights Reserved.
+%% Copyright Ericsson AB 1997-2019. All Rights Reserved.
 %%
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -31,6 +31,7 @@
 -export([init/3]).
 
 -include_lib("stdlib/include/erl_compile.hrl").
+-include_lib("snmp/src/app/snmp_internal.hrl").
 -include("snmp_types.hrl").
 -include("snmpc.hrl").
 -include("snmpc_lib.hrl").
@@ -413,9 +414,11 @@ get_verbosity(Options) ->
 %%----------------------------------------------------------------------
 
 init(From, MibFileName, Options) ->
-    random:seed(erlang:phash2([node()]),
-                erlang:monotonic_time(),
-                erlang:unique_integer()),
+    ?SNMP_RAND_SEED(),
+    %% rand:seed(exrop,
+    %%           {erlang:phash2([node()]),
+    %%            erlang:monotonic_time(),
+    %%            erlang:unique_integer()}),
     put(options,            Options),
     put(verbosity,          get_verbosity(Options)),
     put(description,        get_description(Options)),
diff --git a/lib/snmp/src/manager/snmpm_mpd.erl b/lib/snmp/src/manager/snmpm_mpd.erl
index 191dc2c281..8d0a7918a6 100644
--- a/lib/snmp/src/manager/snmpm_mpd.erl
+++ b/lib/snmp/src/manager/snmpm_mpd.erl
@@ -1,7 +1,7 @@
 %% 
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 2004-2015. All Rights Reserved.
+%% Copyright Ericsson AB 2004-2019. All Rights Reserved.
 %%
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -68,11 +68,13 @@
 %%%-----------------------------------------------------------------
 init(Vsns) ->
     ?vdebug("init -> entry with ~p", [Vsns]),
-    random:seed(erlang:phash2([node()]),
-                erlang:monotonic_time(),
-                erlang:unique_integer()),
-    snmpm_config:cre_counter(msg_id, random:uniform(2147483647)),
-    snmpm_config:cre_counter(req_id, random:uniform(2147483647)),
+    ?SNMP_RAND_SEED(),
+    %% rand:seed(exrop,
+    %%           {erlang:phash2([node()]),
+    %%            erlang:monotonic_time(),
+    %%            erlang:unique_integer()}),
+    snmpm_config:cre_counter(msg_id, rand:uniform(2147483647)),
+    snmpm_config:cre_counter(req_id, rand:uniform(2147483647)),
     init_counters(),
     State = init_versions(Vsns, #state{}),
     init_usm(State#state.v3),
diff --git a/lib/snmp/test/snmp_manager_config_test.erl b/lib/snmp/test/snmp_manager_config_test.erl
index 64d3134055..ccbdd77629 100644
--- a/lib/snmp/test/snmp_manager_config_test.erl
+++ b/lib/snmp/test/snmp_manager_config_test.erl
@@ -1,7 +1,7 @@
 %% 
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 2004-2016. All Rights Reserved.
+%% Copyright Ericsson AB 2004-2019. All Rights Reserved.
 %%
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -35,6 +35,7 @@
 -include_lib("common_test/include/ct.hrl").
 -include("snmp_test_lib.hrl").
 -include_lib("snmp/src/manager/snmpm_usm.hrl").
+-include_lib("snmp/src/app/snmp_internal.hrl").
 
 
 %%----------------------------------------------------------------------
@@ -2259,11 +2260,13 @@ create_and_increment(Conf) when is_list(Conf) ->
     ?line {ok, _Pid} = snmpm_config:start_link(Opts),
 
     %% Random init
-    random:seed(erlang:phash2([node()]),
-                erlang:monotonic_time(),
-                erlang:unique_integer()),
+    ?SNMP_RAND_SEED(),
+    %% rand:seed(exrop,
+    %%           {erlang:phash2([node()]),
+    %%            erlang:monotonic_time(),
+    %%            erlang:unique_integer()}),
 
-    StartVal = random:uniform(2147483647),
+    StartVal = rand:uniform(2147483647),
     IncVal   = 42, 
     EndVal   = StartVal + IncVal,
 
diff --git a/lib/snmp/test/snmp_test_mgr.erl b/lib/snmp/test/snmp_test_mgr.erl
index 73a4d56084..9190c07e6d 100644
--- a/lib/snmp/test/snmp_test_mgr.erl
+++ b/lib/snmp/test/snmp_test_mgr.erl
@@ -52,6 +52,7 @@
 -include_lib("snmp/include/snmp_types.hrl").
 -include_lib("snmp/include/STANDARD-MIB.hrl").
 -include("snmp_test_lib.hrl").
+-include_lib("snmp/src/app/snmp_internal.hrl").
 
 -record(state, {dbg         = true,
                 quiet,
@@ -192,9 +193,11 @@ receive_trap(Timeout) ->
 init({Options, CallerPid}) ->
     put(sname,     mgr),
     put(verbosity, debug), 
-    random:seed(erlang:phash2([node()]),
-                erlang:monotonic_time(),
-                erlang:unique_integer()),
+    ?SNMP_RAND_SEED(),
+    %% rand:seed(exrop,
+    %%           {erlang:phash2([node()]),
+    %%            erlang:monotonic_time(),
+    %%            erlang:unique_integer()}),
     case (catch is_options_ok(Options)) of
 	true ->
 	    put(debug, get_value(debug, Options, false)),
@@ -668,7 +671,6 @@ make_vb(Oid) ->
     #varbind{oid = Oid, variabletype = 'NULL', value = 'NULL'}.
 
 make_request_id() ->
-    %% random:uniform(16#FFFFFFF-1).
     snmp_test_mgr_counter_server:increment(mgr_request_id, 1, 1, 2147483647).
 
 echo_pdu(PDU, MiniMIB) ->
@@ -1141,5 +1143,5 @@ d(_,_F,_A) ->
 print(F, A) ->
     ?PRINT2("MGR " ++ F, A).
 
-formated_timestamp() ->
-    snmp_test_lib:formated_timestamp().
+%% formated_timestamp() ->
+%%     snmp_test_lib:formated_timestamp().
-- 
cgit v1.2.3