Github user jiangphcn commented on a diff in the pull request:
https://github.com/apache/couchdb-config/pull/21#discussion_r232872123
--- Diff: src/config.erl ---
@@ -253,34 +253,45 @@ handle_call({set, Sec, Key, Val, Persist, Reason},
_From, Config) ->
true = ets:insert(?MODULE, {{Sec, Key}, Val}),
couch_log:notice("~p: [~s] ~s set to ~s for reason ~p",
[?MODULE, Sec, Key, Val, Reason]),
- case {Persist, Config#config.write_filename} of
+ ConfigWriteReturn = case {Persist,
Config#config.write_filename} of
{true, undefined} ->
ok;
{true, FileName} ->
config_writer:save_to_file({{Sec, Key}, Val},
FileName);
_ ->
ok
end,
- Event = {config_change, Sec, Key, Val, Persist},
- gen_event:sync_notify(config_event, Event),
- {reply, ok, Config}
+ case ConfigWriteReturn of
+ ok ->
+ Event = {config_change, Sec, Key, Val, Persist},
+ gen_event:sync_notify(config_event, Event),
+ {reply, ok, Config};
+ {error, _Else} ->
+ {reply, {error, _Else}, Config}
+ end
end;
handle_call({delete, Sec, Key, Persist, Reason}, _From, Config) ->
true = ets:delete(?MODULE, {Sec,Key}),
couch_log:notice("~p: [~s] ~s deleted for reason ~p",
[?MODULE, Sec, Key, Reason]),
- case {Persist, Config#config.write_filename} of
+ ConfigDeleteReturn = case {Persist, Config#config.write_filename} of
--- End diff --
Good catch on delete scenario
---