summaryrefslogtreecommitdiff
path: root/src/ejabberd_sm.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2016-04-27 17:10:50 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2016-04-27 17:10:50 +0300
commit9c369b7a8cdb45fe8b14f35cf98df62f4e089eef (patch)
tree26712ce04f29c614480ee0563a50086833888b89 /src/ejabberd_sm.erl
parentForce ERL_PATH for elixir (diff)
Improve detection of databases supported by modules (#1092)
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r--src/ejabberd_sm.erl19
1 files changed, 5 insertions, 14 deletions
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl
index 9a93e6d9..20b0658d 100644
--- a/src/ejabberd_sm.erl
+++ b/src/ejabberd_sm.erl
@@ -733,13 +733,10 @@ force_update_presence({LUser, LServer}) ->
-spec get_sm_backend(binary()) -> module().
get_sm_backend(Host) ->
- DBType = ejabberd_config:get_option({sm_db_type, Host},
- fun(mnesia) -> mnesia;
- (internal) -> mnesia;
- (odbc) -> sql;
- (sql) -> sql;
- (redis) -> redis
- end, mnesia),
+ DBType = ejabberd_config:get_option(
+ {sm_db_type, Host},
+ fun(T) -> ejabberd_config:v_db(?MODULE, T) end,
+ mnesia),
list_to_atom("ejabberd_sm_" ++ atom_to_list(DBType)).
-spec get_sm_backends() -> [module()].
@@ -812,11 +809,5 @@ kick_user(User, Server) ->
make_sid() ->
{p1_time_compat:unique_timestamp(), self()}.
-opt_type(sm_db_type) ->
- fun (mnesia) -> mnesia;
- (internal) -> mnesia;
- (sql) -> sql;
- (odbc) -> sql;
- (redis) -> redis
- end;
+opt_type(sm_db_type) -> fun(T) -> ejabberd_config:v_db(?MODULE, T) end;
opt_type(_) -> [sm_db_type].