]> granicus.if.org Git - ejabberd/commitdiff
More now() replacements
authorPaweł Chmielowski <pchmielowski@process-one.net>
Mon, 7 Dec 2015 15:08:57 +0000 (16:08 +0100)
committerPaweł Chmielowski <pchmielowski@process-one.net>
Mon, 7 Dec 2015 15:09:48 +0000 (16:09 +0100)
23 files changed:
src/adhoc.erl
src/ejabberd_auth_anonymous.erl
src/ejabberd_auth_external.erl
src/ejabberd_c2s.erl
src/ejabberd_http_bind.erl
src/ejabberd_riak_sup.erl
src/ejabberd_router.erl
src/ejabberd_s2s.erl
src/ejabberd_s2s_out.erl
src/ejabberd_web_admin.erl
src/extauth.erl
src/mod_fail2ban.erl
src/mod_last.erl
src/mod_mam.erl
src/mod_muc.erl
src/mod_muc_admin.erl
src/mod_muc_log.erl
src/mod_register.erl
src/mod_sip_proxy.erl
src/mod_sip_registrar.erl
src/mod_time.erl
src/randoms.erl
src/shaper.erl

index a68b54d8926eba7125ff707ce6f9abc0ba14dc38..f2bd2dbeee4ceb9d2ebc7e72b1eb676907bc14af 100644 (file)
@@ -121,7 +121,7 @@ produce_response(
   }) ->
     SessionID = if is_binary(ProvidedSessionID),
         ProvidedSessionID /= <<"">> -> ProvidedSessionID;
-        true                        -> jlib:now_to_utc_string(now())
+        true                        -> jlib:now_to_utc_string(p1_time_compat:timestamp())
     end,
     case Actions of
         [] ->
index 7a1d8fe84f0ba2cda78853b166f1a2e11d1b88dd..ab04534f2ec8a5fd825b9de9526a05de79fcf04a 100644 (file)
@@ -56,7 +56,7 @@
 %% Create the anonymous table if at least one virtual host has anonymous features enabled
 %% Register to login / logout events
 -record(anonymous, {us = {<<"">>, <<"">>} :: {binary(), binary()},
-                    sid = {now(), self()} :: ejabberd_sm:sid()}).
+                    sid = {p1_time_compat:timestamp(), self()} :: ejabberd_sm:sid()}).
 
 start(Host) ->
     %% TODO: Check cluster mode
index cc3a781cef413e9b14395c02bf97885d4534ad2a..393bf1e021d3e358d691d76fe05a363d3e377328 100644 (file)
@@ -270,8 +270,7 @@ set_password_internal(User, Server, Password) ->
                                        Password).
 
 is_fresh_enough(TimeStampLast, CacheTime) ->
-    {MegaSecs, Secs, _MicroSecs} = now(),
-    Now = MegaSecs * 1000000 + Secs,
+    Now = p1_time_compat:system_time(seconds),
     TimeStampLast + CacheTime > Now.
 
 %% @spec (User, Server) -> online | never | mod_last_required | TimeStamp::integer()
index b80abfabe0365cac0936b692b1a666091b68a1c8..fbea2a8e347a098d42f1f7467eb181cdc940d3b1 100644 (file)
@@ -326,7 +326,7 @@ init([{SockMod, Socket}, Opts]) ->
                       xml_socket = XMLSocket, zlib = Zlib, tls = TLS,
                       tls_required = StartTLSRequired,
                       tls_enabled = TLSEnabled, tls_options = TLSOpts,
-                      sid = {now(), self()}, streamid = new_id(),
+                      sid = {p1_time_compat:timestamp(), self()}, streamid = new_id(),
                       access = Access, shaper = Shaper, ip = IP,
                       mgmt_state = StreamMgmtState,
                       mgmt_max_queue = MaxAckQueue,
@@ -1011,9 +1011,7 @@ resource_conflict_action(U, S, R) ->
       acceptnew -> {accept_resource, R};
       closenew -> closenew;
       setresource ->
-         Rnew = iolist_to_binary([randoms:get_string()
-                                   | [jlib:integer_to_binary(X)
-                                      || X <- tuple_to_list(now())]]),
+         Rnew = iolist_to_binary([randoms:get_string(),randoms:get_string(),randoms:get_string()]),
          {accept_resource, Rnew}
     end.
 
@@ -1041,9 +1039,7 @@ wait_for_bind({xmlstreamelement, El}, StateData) ->
          R = case jid:resourceprep(R1) of
                error -> error;
                <<"">> ->
-                      iolist_to_binary([randoms:get_string()
-                                        | [jlib:integer_to_binary(X)
-                                           || X <- tuple_to_list(now())]]);
+                      iolist_to_binary([randoms:get_string(),randoms:get_string(),randoms:get_string()]);
                Resource -> Resource
              end,
          case R of
@@ -2047,7 +2043,7 @@ presence_update(From, Packet, StateData) ->
          FromUnavail = (StateData#state.pres_last == undefined),
          ?DEBUG("from unavail = ~p~n", [FromUnavail]),
          NewStateData = StateData#state{pres_last = Packet,
-                                        pres_timestamp = now()},
+                                        pres_timestamp = p1_time_compat:timestamp()},
          NewState = if FromUnavail ->
                            ejabberd_hooks:run(user_available_hook,
                                               NewStateData#state.server,
@@ -2791,7 +2787,7 @@ mgmt_queue_add(StateData, El) ->
               Num ->
                   Num + 1
             end,
-    NewQueue = queue:in({NewNum, now(), El}, StateData#state.mgmt_queue),
+    NewQueue = queue:in({NewNum, p1_time_compat:timestamp(), El}, StateData#state.mgmt_queue),
     NewState = StateData#state{mgmt_queue = NewQueue,
                               mgmt_stanzas_out = NewNum},
     check_queue_length(NewState).
@@ -3003,7 +2999,7 @@ csi_queue_add(#state{csi_queue = Queue} = StateData, Stanza) ->
       true -> csi_queue_add(csi_queue_flush(StateData), Stanza);
       false ->
          From = xml:get_tag_attr_s(<<"from">>, Stanza),
-         NewQueue = lists:keystore(From, 1, Queue, {From, now(), Stanza}),
+         NewQueue = lists:keystore(From, 1, Queue, {From, p1_time_compat:timestamp(), Stanza}),
          StateData#state{csi_queue = NewQueue}
     end.
 
index a3098779f395411d03cf4bd386cbc35751af9c23..194b099d72ab7d3334f8a8f3c1a61da3871f0b1a 100644 (file)
@@ -233,7 +233,7 @@ process_request(Data, IP, HOpts) ->
                   (?NS_HTTP_BIND)/binary, "'/>">>};
            XmppDomain ->
                 NXmppDomain = jid:nameprep(XmppDomain),
-               Sid = p1_sha:sha(term_to_binary({now(), make_ref()})),
+               Sid = p1_sha:sha(term_to_binary({p1_time_compat:monotonic_time(), make_ref()})),
                case start(NXmppDomain, Sid, <<"">>, IP, HOpts) of
                  {error, _} ->
                      {500, ?HEADER,
@@ -448,7 +448,7 @@ handle_sync_event(#http_put{payload_size =
                                          shaper_timer = NewShaperTimer});
 %% HTTP GET: send packets to the client
 handle_sync_event({http_get, Rid, Wait, Hold}, From, StateName, StateData) ->
-    TNow = tnow(),
+    TNow = p1_time_compat:system_time(micro_seconds),
     if (Hold > 0) and
        ((StateData#state.output == []) or (StateData#state.rid < Rid)) and
        ((TNow - StateData#state.ctime) < (Wait*1000*1000)) and
@@ -606,7 +606,7 @@ process_http_put(#http_put{rid = Rid, attrs = Attrs,
                           end
                     end
               end,
-    TNow = tnow(),
+    TNow = p1_time_compat:system_time(micro_seconds),
     LastPoll = if Payload == [] -> TNow;
                  true -> 0
               end,
@@ -1185,11 +1185,6 @@ get_max_pause({Host, _}) ->
                           ?MAX_PAUSE);
 get_max_pause(_) -> ?MAX_PAUSE.
 
-%% Current time as integer
-tnow() ->
-    {TMegSec, TSec, TMSec} = now(),
-    (TMegSec * 1000000 + TSec) * 1000000 + TMSec.
-
 check_default_xmlns(#xmlel{name = Name, attrs = Attrs,
                           children = Els} =
                        El) ->
index a971a4a3276bd84b83620310ab93c349d2b3e90f..78d6fc6e7783eb5ee2c0570127bb1670678e1aa8 100644 (file)
@@ -141,7 +141,7 @@ get_pids() ->
     [ejabberd_riak:get_proc(I) || I <- lists:seq(1, get_pool_size())].
 
 get_random_pid() ->
-    get_random_pid(now()).
+    get_random_pid(p1_time_compat:monotonic_time()).
 
 get_random_pid(Term) ->
     I = erlang:phash2(Term, get_pool_size()) + 1,
index 9daa498ee773697759cee978fc035141fb801a44..81fedfe0fd458c13e823872a7d01d1e0fdb32c37 100644 (file)
@@ -347,8 +347,8 @@ do_route(OrigFrom, OrigTo, OrigPacket) ->
                          ejabberd_config:get_local_option({domain_balancing,
                                                            LDstDomain}, fun(D) when is_atom(D) -> D end)
                            of
-                         undefined -> now();
-                         random -> now();
+                         undefined -> p1_time_compat:monotonic_time();
+                         random -> p1_time_compat:monotonic_time();
                          source -> jid:tolower(From);
                          destination -> jid:tolower(To);
                          bare_source ->
index a52b4a9afbddc684e3e26a5fd31027e38a7987fc..0e51ec0448dd36893cc3178e1cdbb474fac2e40c 100644 (file)
@@ -81,7 +81,7 @@
 -record(state, {}).
 
 -record(temporarily_blocked, {host = <<"">>     :: binary(),
-                              timestamp = now() :: erlang:timestamp()}).
+                              timestamp         :: integer()}).
 
 -type temporarily_blocked() :: #temporarily_blocked{}.
 
@@ -114,9 +114,9 @@ external_host_overloaded(Host) ->
              "seconds",
              [Host, ?S2S_OVERLOAD_BLOCK_PERIOD]),
     mnesia:transaction(fun () ->
+                               Time = p1_time_compat:monotonic_time(),
                               mnesia:write(#temporarily_blocked{host = Host,
-                                                                timestamp =
-                                                                    now()})
+                                                                timestamp = Time})
                       end).
 
 -spec is_temporarly_blocked(binary()) -> boolean().
@@ -125,7 +125,8 @@ is_temporarly_blocked(Host) ->
     case mnesia:dirty_read(temporarily_blocked, Host) of
       [] -> false;
       [#temporarily_blocked{timestamp = T} = Entry] ->
-         case timer:now_diff(now(), T) of
+          Diff = p1_time_compat:monotonic_time() - T,
+         case p1_time_compat:convert_time_unit(Diff, native, micro_seconds) of
            N when N > (?S2S_OVERLOAD_BLOCK_PERIOD) * 1000 * 1000 ->
                mnesia:dirty_delete_object(Entry), false;
            _ -> true
index 6d3b3e99a8c04b25205b87996e2efff33f2096e2..6bf928282c5f88951300264e93c5848e3def88e6 100644 (file)
@@ -1097,8 +1097,7 @@ get_addr_port(Server) ->
          ?DEBUG("srv lookup of '~s': ~p~n",
                 [Server, HEnt#hostent.h_addr_list]),
          AddrList = HEnt#hostent.h_addr_list,
-         {A1, A2, A3} = now(),
-         random:seed(A1, A2, A3),
+         random:seed(p1_time_compat:monotonic_time()),
          case catch lists:map(fun ({Priority, Weight, Port,
                                     Host}) ->
                                       N = case Weight of
@@ -1273,7 +1272,7 @@ wait_before_reconnect(StateData) ->
     cancel_timer(StateData#state.timer),
     Delay = case StateData#state.delay_to_retry of
              undefined_delay ->
-                 {_, _, MicroSecs} = now(), MicroSecs rem 14000 + 1000;
+                 {_, _, MicroSecs} = p1_time_compat:timestamp(), MicroSecs rem 14000 + 1000;
              D1 -> lists:min([D1 * 2, get_max_retry_delay()])
            end,
     Timer = erlang:start_timer(Delay, self(), []),
index 9a6aea3afef585d2ab14de75bef292d47ce712ec..c4a191eb0b531447b73a4718b1b2ef9c2adab77b 100644 (file)
@@ -1722,8 +1722,7 @@ user_parse_query1(Action, User, Server, Query) ->
     end.
 
 list_last_activity(Host, Lang, Integral, Period) ->
-    {MegaSecs, Secs, _MicroSecs} = now(),
-    TimeStamp = MegaSecs * 1000000 + Secs,
+    TimeStamp = p1_time_compat:system_time(seconds),
     case Period of
       <<"all">> -> TS = 0, Days = infinity;
       <<"year">> -> TS = TimeStamp - 366 * 86400, Days = 366;
index 64220fcbec127af22f26ce61d76aec151fb5d74c..9b84741dcac73119f5a36cf470433b900b6c4a17 100644 (file)
@@ -102,8 +102,7 @@ call_port(Server, Msg) ->
     receive {eauth, Result} -> Result end.
 
 random_instance(MaxNum) ->
-    {A1, A2, A3} = now(),
-    random:seed(A1, A2, A3),
+    random:seed(p1_time_compat:monotonic_time()),
     random:uniform(MaxNum) - 1.
 
 get_instances(Server) ->
index abfd1273fbaa55c9a81c3997f9afb37042de1854..523cbb3f94fffb8d3e36fde8e944c0d8a5cb7aaf 100644 (file)
@@ -65,7 +65,7 @@ c2s_auth_result(false, _User, LServer, {Addr, _Port}) ->
                            LServer, ?MODULE, c2s_max_auth_failures,
                            fun(I) when is_integer(I), I > 0 -> I end,
                            ?C2S_MAX_AUTH_FAILURES),
-           UnbanTS = unban_timestamp(BanLifetime),
+           UnbanTS = p1_time_compat:system_time(seconds) + BanLifetime,
            case ets:lookup(failed_auth, Addr) of
                [{Addr, N, _, _}] ->
                    ets:insert(failed_auth, {Addr, N+1, UnbanTS, MaxFailures});
@@ -79,7 +79,7 @@ c2s_auth_result(true, _User, _Server, _AddrPort) ->
 check_bl_c2s(_Acc, Addr, Lang) ->
     case ets:lookup(failed_auth, Addr) of
        [{Addr, N, TS, MaxFailures}] when N >= MaxFailures ->
-           case TS > now() of
+           case TS > p1_time_compat:system_time(seconds) of
                true ->
                    IP = jlib:ip_to_list(Addr),
                    UnbanDate = format_date(
@@ -139,7 +139,7 @@ handle_cast(_Msg, State) ->
 
 handle_info(clean, State) ->
     ?DEBUG("cleaning ~p ETS table", [failed_auth]),
-    Now = now(),
+    Now = p1_time_compat:system_time(seconds),
     ets:select_delete(
       failed_auth,
       ets:fun2ms(fun({_, _, UnbanTS, _}) -> UnbanTS =< Now end)),
@@ -171,11 +171,6 @@ is_whitelisted(Host, Addr) ->
                                    none),
     acl:match_rule(Host, Access, Addr) == allow.
 
-unban_timestamp(BanLifetime) ->
-    {MegaSecs, MSecs, USecs} = now(),
-    UnbanSecs = MegaSecs * 1000000 + MSecs + BanLifetime,
-    {UnbanSecs div 1000000, UnbanSecs rem 1000000, USecs}.
-
 is_loaded_at_other_hosts(Host) ->
     lists:any(
       fun(VHost) when VHost == Host ->
index cab29c4274149a53ff12cf461ba7bad4e0c993dd..6cd598a187fb060eed7bfd7aaf127bfb58110f86 100644 (file)
@@ -112,7 +112,7 @@ get_node_uptime() ->
         undefined ->
             trunc(element(1, erlang:statistics(wall_clock)) / 1000);
         Now ->
-            now_to_seconds(now()) - Now
+            p1_time_compat:system_time(seconds) - Now
     end.
 
 now_to_seconds({MegaSecs, Secs, _MicroSecs}) ->
@@ -210,7 +210,7 @@ get_last_iq(IQ, SubEl, LUser, LServer) ->
                IQ#iq{type = error,
                      sub_el = [SubEl, ?ERR_SERVICE_UNAVAILABLE]};
            {ok, TimeStamp, Status} ->
-               TimeStamp2 = now_to_seconds(now()),
+               TimeStamp2 = p1_time_compat:system_time(seconds),
                Sec = TimeStamp2 - TimeStamp,
                IQ#iq{type = result,
                      sub_el =
@@ -232,7 +232,7 @@ get_last_iq(IQ, SubEl, LUser, LServer) ->
     end.
 
 on_presence_update(User, Server, _Resource, Status) ->
-    TimeStamp = now_to_seconds(now()),
+    TimeStamp = p1_time_compat:system_time(seconds),
     store_last_info(User, Server, TimeStamp, Status).
 
 store_last_info(User, Server, TimeStamp, Status) ->
index 87ff8e5e16a7759dfb4eb54937162f7e964918bc..c0756b6ebec9d42d8f37c94621f43fa0268a8eed 100644 (file)
@@ -45,7 +45,7 @@
 -record(archive_msg,
        {us = {<<"">>, <<"">>}                :: {binary(), binary()} | '$2',
         id = <<>>                            :: binary() | '_',
-        timestamp = now()                    :: erlang:timestamp() | '_' | '$1',
+        timestamp = p1_time_compat:timestamp() :: erlang:timestamp() | '_' | '$1',
         peer = {<<"">>, <<"">>, <<"">>}      :: ljid() | '_' | '$3',
         bare_peer = {<<"">>, <<"">>, <<"">>} :: ljid() | '_' | '$3',
         packet = #xmlel{}                    :: xmlel() | '_',
@@ -450,7 +450,7 @@ store_muc(MUCState, Pkt, RoomJID, Peer, Nick) ->
 
 store(Pkt, _, {LUser, LServer}, Type, Peer, Nick, _Dir, mnesia) ->
     LPeer = {PUser, PServer, _} = jid:tolower(Peer),
-    TS = now(),
+    TS = p1_time_compat:timestamp(),
     ID = jlib:integer_to_binary(now_to_usec(TS)),
     case mnesia:dirty_write(
           #archive_msg{us = {LUser, LServer},
@@ -467,7 +467,7 @@ store(Pkt, _, {LUser, LServer}, Type, Peer, Nick, _Dir, mnesia) ->
            Err
     end;
 store(Pkt, LServer, {LUser, LHost}, Type, Peer, Nick, _Dir, odbc) ->
-    TSinteger = now_to_usec(now()),
+    TSinteger = p1_time_compat:system_time(micro_seconds),
     ID = TS = jlib:integer_to_binary(TSinteger),
     SUser = case Type of
                chat -> LUser;
index 867f8d387b4691cc9523e1d04a4fda6aaa85798d..385bf54b0bceacb55f8f39ae9a39259c7d714d29 100644 (file)
@@ -864,7 +864,7 @@ flush() -> receive _ -> flush() after 0 -> ok end.
 
 iq_get_unique(From) ->
     {xmlcdata,
-     p1_sha:sha(term_to_binary([From, now(),
+     p1_sha:sha(term_to_binary([From, p1_time_compat:timestamp(),
                             randoms:get_string()]))}.
 
 get_nick(ServerHost, Host, From) ->
index 9df4361ca736e73f8ce09563a56fea58f5d40fe8..97ae3c6ec09f08ec450ee749509e17c918faea7b 100644 (file)
@@ -608,7 +608,7 @@ decide_room({_Room_name, _Host, Room_pid}, Last_allowed) ->
     Num_users = length(?DICT:to_list(Room_users)),
 
     History = (S#state.history)#lqueue.queue,
-    Ts_now = calendar:now_to_universal_time(now()),
+    Ts_now = calendar:universal_time(),
     Ts_uptime = uptime_seconds(),
     {Has_hist, Last} = case queue:is_empty(History) of
                           true ->
index 8f940d318cdad2f8d5459a664055c0303451f892..996ac83a58875bfa64e051050315db267fbb885c 100644 (file)
@@ -348,7 +348,7 @@ add_message_to_log(Nick1, Message, RoomJID, Opts,
     Room = get_room_info(RoomJID, Opts),
     Nick = htmlize(Nick1, FileFormat),
     Nick2 = htmlize_nick(Nick1, FileFormat),
-    Now = now(),
+    Now = p1_time_compat:timestamp(),
     TimeStamp = case Timezone of
                  local -> calendar:now_to_local_time(Now);
                  universal -> calendar:now_to_universal_time(Now)
@@ -902,7 +902,7 @@ put_header_script(F) ->
 put_room_config(_F, _RoomConfig, _Lang, plaintext) ->
     ok;
 put_room_config(F, RoomConfig, Lang, _FileFormat) ->
-    {_, Now2, _} = now(),
+    {_, Now2, _} = p1_time_compat:timestamp(),
     fw(F, <<"<div class=\"rc\">">>),
     fw(F,
        <<"<div class=\"rct\" onclick=\"sh('a~p');return "
@@ -919,7 +919,7 @@ put_room_occupants(_F, _RoomOccupants, _Lang,
     ok;
 put_room_occupants(F, RoomOccupants, Lang,
                   _FileFormat) ->
-    {_, Now2, _} = now(),
+    {_, Now2, _} = p1_time_compat:timestamp(),
 %% htmlize
 %% The default behaviour is to ignore the nofollow spam prevention on links
 %% (NoFollow=false)
@@ -1190,7 +1190,7 @@ get_proc_name(Host) ->
     gen_mod:get_module_proc(Host, ?PROCNAME).
 
 calc_hour_offset(TimeHere) ->
-    TimeZero = calendar:now_to_universal_time(now()),
+    TimeZero = calendar:universal_time(),
     TimeHereHour =
        calendar:datetime_to_gregorian_seconds(TimeHere) div
          3600,
index 21c58446946f6110f7be7d85561ff58013275633..da0b805e73dc9ed5f317cdf50552aeac1a9d0442 100644 (file)
@@ -509,8 +509,7 @@ check_timeout(Source) ->
                         infinity
                 end, 600),
     if is_integer(Timeout) ->
-          {MSec, Sec, _USec} = now(),
-          Priority = -(MSec * 1000000 + Sec),
+          Priority = -p1_time_compat:system_time(seconds),
           CleanPriority = Priority + Timeout,
           F = fun () ->
                       Treap = case mnesia:read(mod_register_ip, treap, write)
index 53b16fd7ea36d4deb90d23a62a19c792832eb3e7..bf297bc88d89936c464bcf858fe33bbe3db98fec 100644 (file)
@@ -299,8 +299,7 @@ add_record_route_and_set_uri(URI, LServer, #sip{hdrs = Hdrs} = Req) ->
            case need_record_route(LServer) of
                true ->
                    RR_URI = get_configured_record_route(LServer),
-                   {MSecs, Secs, _} = now(),
-                   TS = list_to_binary(integer_to_list(MSecs*1000000 + Secs)),
+                   TS = list_to_binary(integer_to_list(p1_time_compat:system_time(seconds))),
                    Sign = make_sign(TS, Hdrs),
                    User = <<TS/binary, $-, Sign/binary>>,
                    NewRR_URI = RR_URI#uri{user = User},
@@ -341,8 +340,7 @@ is_signed_by_me(TS_Sign, Hdrs) ->
     try
        [TSBin, Sign] = str:tokens(TS_Sign, <<"-">>),
        TS = list_to_integer(binary_to_list(TSBin)),
-       {MSecs, Secs, _} = now(),
-       NowTS = MSecs*1000000 + Secs,
+       NowTS = p1_time_compat:system_time(seconds),
        true = (NowTS - TS) =< ?SIGN_LIFETIME,
        Sign == make_sign(TSBin, Hdrs)
     catch _:_ ->
index 4bc68f6071517e165647b4ec7d91c3a0abd68b9f..44091ed391d92501312c4acdee383eb9e8dd1db0 100644 (file)
@@ -48,7 +48,7 @@
                      socket = #sip_socket{} :: #sip_socket{},
                      call_id = <<"">> :: binary(),
                      cseq = 0 :: non_neg_integer(),
-                     timestamp = now() :: erlang:timestamp(),
+                     timestamp = p1_time_compat:timestamp() :: erlang:timestamp(),
                      contact :: {binary(), #uri{}, [{binary(), binary()}]},
                      flow_tref :: reference(),
                      reg_tref = make_ref() :: reference(),
@@ -242,7 +242,7 @@ register_session(US, SIPSocket, CallID, CSeq, IsOutboundSupported,
                                      socket = SIPSocket,
                                      call_id = CallID,
                                      cseq = CSeq,
-                                     timestamp = now(),
+                                     timestamp = p1_time_compat:timestamp(),
                                      contact = Contact,
                                      expires = Expires}
                 end, ContactsWithExpires),
index e11468400938b6f89a0b41d392a08808882c5fbc..4c2e6e567d6300dae4ebf803135a5dcd77e7c098 100644 (file)
@@ -56,9 +56,8 @@ process_local_iq(_From, _To,
       set ->
          IQ#iq{type = error, sub_el = [SubEl, ?ERR_NOT_ALLOWED]};
       get ->
-         Now = now(),
-         Now_universal = calendar:now_to_universal_time(Now),
-         Now_local = calendar:now_to_local_time(Now),
+         Now_universal = calendar:universal_time(),
+         Now_local = calendar:universal_time_to_local_time(Now_universal),
          {UTC, UTC_diff} = jlib:timestamp_to_iso(Now_universal,
                                                  utc),
          Seconds_diff =
index 950f29fc33875de7685225592a97a49dab94e587..b2e95b256c8ce54a662e901658ddd803f247a81d 100644 (file)
@@ -35,7 +35,7 @@ start() ->
     register(random_generator, spawn(randoms, init, [])).
 
 init() ->
-    {A1, A2, A3} = now(), random:seed(A1, A2, A3), loop().
+    random:seed(p1_time_compat:monotonic_time()), loop().
 
 loop() ->
     receive
index c8140703c3530cc4ba5775f2801e1150700c63dc..a2fd09dfa635209ba76300e876bcb4989ab2a13a 100644 (file)
@@ -107,7 +107,7 @@ new(Name) ->
 new1(none) -> none;
 new1(MaxRate) ->
     #maxrate{maxrate = MaxRate, lastrate = 0.0,
-            lasttime = now_to_usec(now())}.
+            lasttime = p1_time_compat:system_time(micro_seconds)}.
 
 -spec update(shaper(), integer()) -> {shaper(), integer()}.
 
@@ -115,7 +115,7 @@ update(none, _Size) -> {none, 0};
 update(#maxrate{} = State, Size) ->
     MinInterv = 1000 * Size /
                  (2 * State#maxrate.maxrate - State#maxrate.lastrate),
-    Interv = (now_to_usec(now()) - State#maxrate.lasttime) /
+    Interv = (p1_time_compat:system_time(micro_seconds) - State#maxrate.lasttime) /
               1000,
     ?DEBUG("State: ~p, Size=~p~nM=~p, I=~p~n",
           [State, Size, MinInterv, Interv]),
@@ -123,7 +123,7 @@ update(#maxrate{} = State, Size) ->
                   1 + trunc(MinInterv - Interv);
               true -> 0
            end,
-    NextNow = now_to_usec(now()) + Pause * 1000,
+    NextNow = p1_time_compat:system_time(micro_seconds) + Pause * 1000,
     {State#maxrate{lastrate =
                       (State#maxrate.lastrate +
                          1000000 * Size / (NextNow - State#maxrate.lasttime))
@@ -141,8 +141,5 @@ transform_options({OptName, Name, none}, Opts) when OptName == shaper ->
 transform_options(Opt, Opts) ->
     [Opt|Opts].
 
-now_to_usec({MSec, Sec, USec}) ->
-    (MSec * 1000000 + Sec) * 1000000 + USec.
-
 opt_type(shaper) -> fun (V) -> V end;
 opt_type(_) -> [shaper].