summaryrefslogtreecommitdiff
path: root/src/ejabberd_acme.erl
diff options
context:
space:
mode:
authorKonstantinos Kallas <konstantinos.kallas@hotmail.com>2017-07-17 09:40:36 +0300
committerKonstantinos Kallas <konstantinos.kallas@hotmail.com>2017-07-17 09:40:36 +0300
commit478a12637d01da27d1ee3c3c8e323bd615bca555 (patch)
tree1573d8f1b25849d58d70fbcf8c6b136fd1618c46 /src/ejabberd_acme.erl
parentMake 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.erl43
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;