diff options
author | Konstantinos Kallas <konstantinos.kallas@hotmail.com> | 2017-07-17 09:40:36 +0300 |
---|---|---|
committer | Konstantinos Kallas <konstantinos.kallas@hotmail.com> | 2017-07-17 09:40:36 +0300 |
commit | 478a12637d01da27d1ee3c3c8e323bd615bca555 (patch) | |
tree | 1573d8f1b25849d58d70fbcf8c6b136fd1618c46 /src/ejabberd_acme.erl | |
parent | Make some persistent data wrapper functions (diff) |
Separate the persistent data structure functions
Diffstat (limited to 'src/ejabberd_acme.erl')
-rw-r--r-- | src/ejabberd_acme.erl | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/src/ejabberd_acme.erl b/src/ejabberd_acme.erl index 2b103d69..029f13ed 100644 --- a/src/ejabberd_acme.erl +++ b/src/ejabberd_acme.erl @@ -396,6 +396,28 @@ is_error(_) -> false. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% +%% Handle the persistent data structure +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +data_empty() -> + #data{}. + +data_get_account(#data{account = Account}) -> + case Account of + #data_acc{id = AccId, key = PrivateKey} -> + {ok, AccId, PrivateKey}; + none -> + none + end. + +data_set_account(Data = #data{}, {AccId, PrivateKey}) -> + NewAcc = #data_acc{id = AccId, key = PrivateKey}, + Data#data{account = NewAcc}. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% Handle Config and Persistence Files %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -414,7 +436,7 @@ read_persistent() -> {ok, binary_to_term(Binary)}; {error, enoent} -> create_persistent(), - {ok, #data{}}; + {ok, data_empty()}; {error, Reason} -> ?ERROR_MSG("Error: ~p reading acme data file", [Reason]), throw({error, Reason}) @@ -430,7 +452,7 @@ write_persistent(Data) -> end. create_persistent() -> - Binary = term_to_binary(#data{}), + Binary = term_to_binary(data_empty()), case file:write_file(persistent_file(), Binary) of ok -> case file:change_mode(persistent_file(), persistent_file_mode()) of @@ -444,27 +466,14 @@ create_persistent() -> throw({error, Reason}) end. -get_account_persistent(#data{account = Account}) -> - case Account of - #data_acc{id = AccId, key = PrivateKey} -> - {ok, AccId, PrivateKey}; - none -> - none - end. - -set_account_persistent(Data = #data{}, {AccId, PrivateKey}) -> - NewAcc = #data_acc{id = AccId, key = PrivateKey}, - Data#data{account = NewAcc}. - write_account_persistent({AccId, PrivateKey}) -> {ok, Data} = read_persistent(), - NewData = set_account_persistent(Data, {AccId, PrivateKey}), + NewData = data_set_account(Data, {AccId, PrivateKey}), ok = write_persistent(NewData). read_account_persistent() -> {ok, Data} = read_persistent(), - get_account_persistent(Data). - + data_get_account(Data). save_certificate({error, _, _} = Error) -> Error; |