diff options
author | Linus Nordberg <linus@nordu.net> | 2017-07-06 17:34:48 +0200 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2017-07-06 17:34:48 +0200 |
commit | 05235680257a54f112c44c7854b3afe8300acd40 (patch) | |
tree | 25fe5447ec40e8bd59170241bcbd107f2e56f45d /src/plop_compat.erl | |
parent | 0d7c7bb15f449656e35801dac5ba410f16261c6f (diff) | |
parent | df2441c6315de4b245e1faf5b72517c5199fe179 (diff) |
Diffstat (limited to 'src/plop_compat.erl')
-rw-r--r-- | src/plop_compat.erl | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/plop_compat.erl b/src/plop_compat.erl index 4d45590..5c1fa17 100644 --- a/src/plop_compat.erl +++ b/src/plop_compat.erl @@ -2,7 +2,7 @@ %%% See LICENSE for licensing information. -module(plop_compat). --export([unpack_spki/1, timestamp/0, monotonic_time/1, start_timer/4]). +-export([unpack_spki/1, timestamp/0, monotonic_time/1, start_timer/4, unique_integer/1, time_offset/1]). -include_lib("public_key/include/public_key.hrl"). unpack_spki(SPKI) -> @@ -13,6 +13,10 @@ monotonic_time(Unit) -> monotonic_time(erlang:system_info(otp_release), Unit). start_timer(Time, Dest, Msg, Options) -> start_timer(erlang:system_info(otp_release), Time, Dest, Msg, Options). +unique_integer(Modifiers) -> + unique_integer(erlang:system_info(otp_release), Modifiers). +time_offset(Unit) -> + time_offset(erlang:system_info(otp_release), Unit). unpack_spki("R16" ++ _, SPKI) -> #'SubjectPublicKeyInfo'{subjectPublicKey = {_, Octets}, @@ -43,15 +47,35 @@ timestamp("19") -> monotonic_time("R16" ++ _, millisecond) -> {MeS, S, MiS} = timestamp(), - MeS * 1000000 + S * 1000 + MiS; + (MeS * 1000000 + S) * 1000 + MiS div 1000; monotonic_time("17", millisecond) -> {MeS, S, MiS} = timestamp(), - MeS * 1000000 + S * 1000 + MiS; + (MeS * 1000000 + S) * 1000 + MiS div 1000; monotonic_time("18", Unit) -> erlang:monotonic_time(Unit); monotonic_time("19", Unit) -> erlang:monotonic_time(Unit). +unique_integer("R16", _Modifiers) -> + {MeS, S, MiS} = erlang:now(), + (MeS * 1000000 + S) * 1000000 + MiS; +unique_integer("17", _Modifiers) -> + {MeS, S, MiS} = erlang:now(), + (MeS * 1000000 + S) * 1000000 + MiS; +unique_integer("18", Modifiers) -> + erlang:unique_integer(Modifiers); +unique_integer("19", Modifiers) -> + erlang:unique_integer(Modifiers). + +time_offset("R16", _Unit) -> + 0; +time_offset("17", _Unit) -> + 0; +time_offset("18", Unit) -> + erlang:time_offset(Unit); +time_offset("19", Unit) -> + erlang:time_offset(Unit). + start_timer("R16" ++ _, Time, Dest, Msg, [{abs, true}]) -> erlang:start_timer(max(0, Time - monotonic_time(millisecond)), Dest, Msg); start_timer("17", Time, Dest, Msg, [{abs, true}]) -> |