mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-24 16:23:40 +01:00
Process 'name' option for all route-registering modules
The option allows to set arbitrary text for disco#info identity name. Previously, option 'name' was supported by mod_proxy65 and mod_http_upload only. Now, all the following modules support this option as well: - mod_disco - mod_irc - mod_muc - mod_multicast - mod_pubsub - mod_vcard Example: ``` modules: ... mod_disco: name: "Cool XMPP Server" ... ```
This commit is contained in:
parent
150f33b39b
commit
9d94361466
@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
-include("ejabberd.hrl").
|
-include("ejabberd.hrl").
|
||||||
-include("logger.hrl").
|
-include("logger.hrl").
|
||||||
|
-include("translate.hrl").
|
||||||
-include("xmpp.hrl").
|
-include("xmpp.hrl").
|
||||||
-include_lib("stdlib/include/ms_transform.hrl").
|
-include_lib("stdlib/include/ms_transform.hrl").
|
||||||
-include("mod_roster.hrl").
|
-include("mod_roster.hrl").
|
||||||
@ -195,10 +195,12 @@ process_local_iq_info(#iq{type = get, lang = Lang,
|
|||||||
|
|
||||||
-spec get_local_identity([identity()], jid(), jid(),
|
-spec get_local_identity([identity()], jid(), jid(),
|
||||||
binary(), binary()) -> [identity()].
|
binary(), binary()) -> [identity()].
|
||||||
get_local_identity(Acc, _From, _To, <<"">>, _Lang) ->
|
get_local_identity(Acc, _From, To, <<"">>, _Lang) ->
|
||||||
|
Host = To#jid.lserver,
|
||||||
|
Name = gen_mod:get_module_opt(Host, ?MODULE, name, ?T("ejabberd")),
|
||||||
Acc ++ [#identity{category = <<"server">>,
|
Acc ++ [#identity{category = <<"server">>,
|
||||||
type = <<"im">>,
|
type = <<"im">>,
|
||||||
name = <<"ejabberd">>}];
|
name = Name}];
|
||||||
get_local_identity(Acc, _From, _To, _Node, _Lang) ->
|
get_local_identity(Acc, _From, _To, _Node, _Lang) ->
|
||||||
Acc.
|
Acc.
|
||||||
|
|
||||||
@ -456,6 +458,7 @@ depends(_Host, _Opts) ->
|
|||||||
mod_opt_type(extra_domains) ->
|
mod_opt_type(extra_domains) ->
|
||||||
fun (Hs) -> [iolist_to_binary(H) || H <- Hs] end;
|
fun (Hs) -> [iolist_to_binary(H) || H <- Hs] end;
|
||||||
mod_opt_type(iqdisc) -> fun gen_iq_handler:check_type/1;
|
mod_opt_type(iqdisc) -> fun gen_iq_handler:check_type/1;
|
||||||
|
mod_opt_type(name) -> fun iolist_to_binary/1;
|
||||||
mod_opt_type(server_info) ->
|
mod_opt_type(server_info) ->
|
||||||
fun (L) ->
|
fun (L) ->
|
||||||
lists:map(fun (Opts) ->
|
lists:map(fun (Opts) ->
|
||||||
@ -466,4 +469,4 @@ mod_opt_type(server_info) ->
|
|||||||
end,
|
end,
|
||||||
L)
|
L)
|
||||||
end;
|
end;
|
||||||
mod_opt_type(_) -> [extra_domains, iqdisc, server_info].
|
mod_opt_type(_) -> [extra_domains, iqdisc, server_info, name].
|
||||||
|
@ -91,6 +91,7 @@
|
|||||||
-include("ejabberd_http.hrl").
|
-include("ejabberd_http.hrl").
|
||||||
-include("xmpp.hrl").
|
-include("xmpp.hrl").
|
||||||
-include("logger.hrl").
|
-include("logger.hrl").
|
||||||
|
-include("translate.hrl").
|
||||||
|
|
||||||
-record(state,
|
-record(state,
|
||||||
{server_host :: binary(),
|
{server_host :: binary(),
|
||||||
@ -215,7 +216,7 @@ depends(_Host, _Opts) ->
|
|||||||
init([ServerHost, Opts]) ->
|
init([ServerHost, Opts]) ->
|
||||||
process_flag(trap_exit, true),
|
process_flag(trap_exit, true),
|
||||||
Hosts = gen_mod:get_opt_hosts(ServerHost, Opts, <<"upload.@HOST@">>),
|
Hosts = gen_mod:get_opt_hosts(ServerHost, Opts, <<"upload.@HOST@">>),
|
||||||
Name = gen_mod:get_opt(name, Opts, <<"HTTP File Upload">>),
|
Name = gen_mod:get_opt(name, Opts, ?T("HTTP File Upload")),
|
||||||
Access = gen_mod:get_opt(access, Opts, local),
|
Access = gen_mod:get_opt(access, Opts, local),
|
||||||
MaxSize = gen_mod:get_opt(max_size, Opts, 104857600),
|
MaxSize = gen_mod:get_opt(max_size, Opts, 104857600),
|
||||||
SecretLength = gen_mod:get_opt(secret_length, Opts, 40),
|
SecretLength = gen_mod:get_opt(secret_length, Opts, 40),
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
-include("logger.hrl").
|
-include("logger.hrl").
|
||||||
-include("xmpp.hrl").
|
-include("xmpp.hrl").
|
||||||
-include("mod_irc.hrl").
|
-include("mod_irc.hrl").
|
||||||
|
-include("translate.hrl").
|
||||||
|
|
||||||
-define(DEFAULT_IRC_ENCODING, <<"iso8859-15">>).
|
-define(DEFAULT_IRC_ENCODING, <<"iso8859-15">>).
|
||||||
|
|
||||||
@ -432,11 +433,12 @@ sm_route(Host, ServerHost, Packet) ->
|
|||||||
closed_connection(Host, From, Server) ->
|
closed_connection(Host, From, Server) ->
|
||||||
ets:delete(irc_connection, {From, Server, Host}).
|
ets:delete(irc_connection, {From, Server, Host}).
|
||||||
|
|
||||||
iq_disco(_ServerHost, <<"">>, Lang) ->
|
iq_disco(ServerHost, <<"">>, Lang) ->
|
||||||
|
Name = gen_mod:get_module_opt(ServerHost, ?MODULE, name, ?T("IRC Transport")),
|
||||||
#disco_info{
|
#disco_info{
|
||||||
identities = [#identity{category = <<"conference">>,
|
identities = [#identity{category = <<"conference">>,
|
||||||
type = <<"irc">>,
|
type = <<"irc">>,
|
||||||
name = translate:translate(Lang, <<"IRC Transport">>)}],
|
name = translate:translate(Lang, Name)}],
|
||||||
features = [?NS_DISCO_INFO, ?NS_DISCO_ITEMS, ?NS_MUC,
|
features = [?NS_DISCO_INFO, ?NS_DISCO_ITEMS, ?NS_MUC,
|
||||||
?NS_REGISTER, ?NS_VCARD, ?NS_COMMANDS]};
|
?NS_REGISTER, ?NS_VCARD, ?NS_COMMANDS]};
|
||||||
iq_disco(ServerHost, Node, Lang) ->
|
iq_disco(ServerHost, Node, Lang) ->
|
||||||
@ -986,11 +988,13 @@ mod_opt_type(access) ->
|
|||||||
mod_opt_type(db_type) -> fun(T) -> ejabberd_config:v_db(?MODULE, T) end;
|
mod_opt_type(db_type) -> fun(T) -> ejabberd_config:v_db(?MODULE, T) end;
|
||||||
mod_opt_type(default_encoding) ->
|
mod_opt_type(default_encoding) ->
|
||||||
fun iolist_to_binary/1;
|
fun iolist_to_binary/1;
|
||||||
|
mod_opt_type(name) ->
|
||||||
|
fun iolist_to_binary/1;
|
||||||
mod_opt_type(host) -> fun iolist_to_binary/1;
|
mod_opt_type(host) -> fun iolist_to_binary/1;
|
||||||
mod_opt_type(hosts) ->
|
mod_opt_type(hosts) ->
|
||||||
fun (L) -> lists:map(fun iolist_to_binary/1, L) end;
|
fun (L) -> lists:map(fun iolist_to_binary/1, L) end;
|
||||||
mod_opt_type(_) ->
|
mod_opt_type(_) ->
|
||||||
[access, db_type, default_encoding, host, hosts].
|
[access, db_type, default_encoding, host, hosts, name].
|
||||||
|
|
||||||
-spec extract_ident(stanza()) -> binary().
|
-spec extract_ident(stanza()) -> binary().
|
||||||
extract_ident(Packet) ->
|
extract_ident(Packet) ->
|
||||||
|
@ -75,6 +75,7 @@
|
|||||||
-include("logger.hrl").
|
-include("logger.hrl").
|
||||||
-include("xmpp.hrl").
|
-include("xmpp.hrl").
|
||||||
-include("mod_muc.hrl").
|
-include("mod_muc.hrl").
|
||||||
|
-include("translate.hrl").
|
||||||
|
|
||||||
-record(state,
|
-record(state,
|
||||||
{hosts = [] :: [binary()],
|
{hosts = [] :: [binary()],
|
||||||
@ -526,9 +527,10 @@ process_disco_info(#iq{type = get, to = To, lang = Lang,
|
|||||||
Features = [?NS_DISCO_INFO, ?NS_DISCO_ITEMS,
|
Features = [?NS_DISCO_INFO, ?NS_DISCO_ITEMS,
|
||||||
?NS_REGISTER, ?NS_MUC, ?NS_VCARD, ?NS_MUCSUB, ?NS_MUC_UNIQUE
|
?NS_REGISTER, ?NS_MUC, ?NS_VCARD, ?NS_MUCSUB, ?NS_MUC_UNIQUE
|
||||||
| RSMFeatures ++ MAMFeatures],
|
| RSMFeatures ++ MAMFeatures],
|
||||||
|
Name = gen_mod:get_module_opt(ServerHost, ?MODULE, name, ?T("Chatrooms")),
|
||||||
Identity = #identity{category = <<"conference">>,
|
Identity = #identity{category = <<"conference">>,
|
||||||
type = <<"text">>,
|
type = <<"text">>,
|
||||||
name = translate:translate(Lang, <<"Chatrooms">>)},
|
name = translate:translate(Lang, Name)},
|
||||||
xmpp:make_iq_result(
|
xmpp:make_iq_result(
|
||||||
IQ, #disco_info{features = Features,
|
IQ, #disco_info{features = Features,
|
||||||
identities = [Identity],
|
identities = [Identity],
|
||||||
@ -880,6 +882,7 @@ mod_opt_type(ram_db_type) -> fun(T) -> ejabberd_config:v_db(?MODULE, T) end;
|
|||||||
mod_opt_type(history_size) ->
|
mod_opt_type(history_size) ->
|
||||||
fun (I) when is_integer(I), I >= 0 -> I end;
|
fun (I) when is_integer(I), I >= 0 -> I end;
|
||||||
mod_opt_type(host) -> fun iolist_to_binary/1;
|
mod_opt_type(host) -> fun iolist_to_binary/1;
|
||||||
|
mod_opt_type(name) -> fun iolist_to_binary/1;
|
||||||
mod_opt_type(hosts) ->
|
mod_opt_type(hosts) ->
|
||||||
fun (L) -> lists:map(fun iolist_to_binary/1, L) end;
|
fun (L) -> lists:map(fun iolist_to_binary/1, L) end;
|
||||||
mod_opt_type(max_room_desc) ->
|
mod_opt_type(max_room_desc) ->
|
||||||
@ -975,7 +978,7 @@ mod_opt_type({default_room_options, presence_broadcast}) ->
|
|||||||
end;
|
end;
|
||||||
mod_opt_type(_) ->
|
mod_opt_type(_) ->
|
||||||
[access, access_admin, access_create, access_persistent,
|
[access, access_admin, access_create, access_persistent,
|
||||||
db_type, ram_db_type, history_size, host, hosts,
|
db_type, ram_db_type, history_size, host, hosts, name,
|
||||||
max_room_desc, max_room_id, max_room_name,
|
max_room_desc, max_room_id, max_room_name,
|
||||||
max_rooms_discoitems, max_user_conferences, max_users,
|
max_rooms_discoitems, max_user_conferences, max_users,
|
||||||
max_users_admin_threshold, max_users_presence,
|
max_users_admin_threshold, max_users_presence,
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
-include("ejabberd.hrl").
|
-include("ejabberd.hrl").
|
||||||
-include("logger.hrl").
|
-include("logger.hrl").
|
||||||
|
-include("translate.hrl").
|
||||||
-include("xmpp.hrl").
|
-include("xmpp.hrl").
|
||||||
|
|
||||||
-record(state,
|
-record(state,
|
||||||
@ -261,10 +261,12 @@ process_iq(_, _) ->
|
|||||||
-define(FEATURE(Feat), Feat).
|
-define(FEATURE(Feat), Feat).
|
||||||
|
|
||||||
iq_disco_info(From, Lang, State) ->
|
iq_disco_info(From, Lang, State) ->
|
||||||
|
Name = gen_mod:get_module_opt(State#state.lserver, ?MODULE,
|
||||||
|
name, ?T("Multicast")),
|
||||||
#disco_info{
|
#disco_info{
|
||||||
identities = [#identity{category = <<"service">>,
|
identities = [#identity{category = <<"service">>,
|
||||||
type = <<"multicast">>,
|
type = <<"multicast">>,
|
||||||
name = translate:translate(Lang, <<"Multicast">>)}],
|
name = translate:translate(Lang, Name)}],
|
||||||
features = [?NS_DISCO_INFO, ?NS_DISCO_ITEMS, ?NS_VCARD, ?NS_ADDRESS],
|
features = [?NS_DISCO_INFO, ?NS_DISCO_ITEMS, ?NS_VCARD, ?NS_ADDRESS],
|
||||||
xdata = iq_disco_info_extras(From, State)}.
|
xdata = iq_disco_info_extras(From, State)}.
|
||||||
|
|
||||||
@ -1119,6 +1121,7 @@ depends(_Host, _Opts) ->
|
|||||||
mod_opt_type(access) ->
|
mod_opt_type(access) ->
|
||||||
fun acl:access_rules_validator/1;
|
fun acl:access_rules_validator/1;
|
||||||
mod_opt_type(host) -> fun iolist_to_binary/1;
|
mod_opt_type(host) -> fun iolist_to_binary/1;
|
||||||
|
mod_opt_type(name) -> fun iolist_to_binary/1;
|
||||||
mod_opt_type({limits, Type}) when (Type == local) or (Type == remote) ->
|
mod_opt_type({limits, Type}) when (Type == local) or (Type == remote) ->
|
||||||
fun(L) ->
|
fun(L) ->
|
||||||
lists:map(
|
lists:map(
|
||||||
@ -1128,4 +1131,4 @@ mod_opt_type({limits, Type}) when (Type == local) or (Type == remote) ->
|
|||||||
({presence, I} = O) when is_integer(I) -> O
|
({presence, I} = O) when is_integer(I) -> O
|
||||||
end, L)
|
end, L)
|
||||||
end;
|
end;
|
||||||
mod_opt_type(_) -> [access, host, {limits, local}, {limits, remote}].
|
mod_opt_type(_) -> [access, host, {limits, local}, {limits, remote}, name].
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
-include("ejabberd.hrl").
|
-include("ejabberd.hrl").
|
||||||
-include("logger.hrl").
|
-include("logger.hrl").
|
||||||
-include("xmpp.hrl").
|
-include("xmpp.hrl").
|
||||||
|
-include("translate.hrl").
|
||||||
|
|
||||||
-define(PROCNAME, ejabberd_mod_proxy65_service).
|
-define(PROCNAME, ejabberd_mod_proxy65_service).
|
||||||
|
|
||||||
@ -144,7 +145,7 @@ process_disco_info(#iq{type = set, lang = Lang} = IQ) ->
|
|||||||
process_disco_info(#iq{type = get, to = To, lang = Lang} = IQ) ->
|
process_disco_info(#iq{type = get, to = To, lang = Lang} = IQ) ->
|
||||||
Host = ejabberd_router:host_of_route(To#jid.lserver),
|
Host = ejabberd_router:host_of_route(To#jid.lserver),
|
||||||
Name = gen_mod:get_module_opt(Host, mod_proxy65, name,
|
Name = gen_mod:get_module_opt(Host, mod_proxy65, name,
|
||||||
<<"SOCKS5 Bytestreams">>),
|
?T("SOCKS5 Bytestreams")),
|
||||||
Info = ejabberd_hooks:run_fold(disco_info, Host,
|
Info = ejabberd_hooks:run_fold(disco_info, Host,
|
||||||
[], [Host, ?MODULE, <<"">>, <<"">>]),
|
[], [Host, ?MODULE, <<"">>, <<"">>]),
|
||||||
xmpp:make_iq_result(
|
xmpp:make_iq_result(
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
-include("xmpp.hrl").
|
-include("xmpp.hrl").
|
||||||
-include("pubsub.hrl").
|
-include("pubsub.hrl").
|
||||||
-include("mod_roster.hrl").
|
-include("mod_roster.hrl").
|
||||||
|
-include("translate.hrl").
|
||||||
|
|
||||||
-define(STDTREE, <<"tree">>).
|
-define(STDTREE, <<"tree">>).
|
||||||
-define(STDNODE, <<"flat">>).
|
-define(STDNODE, <<"flat">>).
|
||||||
@ -829,7 +830,7 @@ process_disco_info(#iq{from = From, to = To, lang = Lang, type = get,
|
|||||||
Info = ejabberd_hooks:run_fold(disco_info, ServerHost,
|
Info = ejabberd_hooks:run_fold(disco_info, ServerHost,
|
||||||
[],
|
[],
|
||||||
[ServerHost, ?MODULE, <<>>, <<>>]),
|
[ServerHost, ?MODULE, <<>>, <<>>]),
|
||||||
case iq_disco_info(Host, Node, From, Lang) of
|
case iq_disco_info(ServerHost, Host, Node, From, Lang) of
|
||||||
{result, IQRes} ->
|
{result, IQRes} ->
|
||||||
XData = IQRes#disco_info.xdata ++ Info,
|
XData = IQRes#disco_info.xdata ++ Info,
|
||||||
xmpp:make_iq_result(IQ, IQRes#disco_info{node = Node, xdata = XData});
|
xmpp:make_iq_result(IQ, IQRes#disco_info{node = Node, xdata = XData});
|
||||||
@ -970,22 +971,23 @@ node_disco_info(Host, Node, _From, _Identity, _Features) ->
|
|||||||
Other -> Other
|
Other -> Other
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec iq_disco_info(binary(), binary(), jid(), binary())
|
-spec iq_disco_info(binary(), binary(), binary(), jid(), binary())
|
||||||
-> {result, disco_info()} | {error, stanza_error()}.
|
-> {result, disco_info()} | {error, stanza_error()}.
|
||||||
iq_disco_info(Host, SNode, From, Lang) ->
|
iq_disco_info(ServerHost, Host, SNode, From, Lang) ->
|
||||||
[Node | _] = case SNode of
|
[Node | _] = case SNode of
|
||||||
<<>> -> [<<>>];
|
<<>> -> [<<>>];
|
||||||
_ -> str:tokens(SNode, <<"!">>)
|
_ -> str:tokens(SNode, <<"!">>)
|
||||||
end,
|
end,
|
||||||
case Node of
|
case Node of
|
||||||
<<>> ->
|
<<>> ->
|
||||||
|
Name = gen_mod:get_module_opt(ServerHost, ?MODULE, name,
|
||||||
|
?T("Publish-Subscribe")),
|
||||||
{result,
|
{result,
|
||||||
#disco_info{
|
#disco_info{
|
||||||
identities = [#identity{
|
identities = [#identity{
|
||||||
category = <<"pubsub">>,
|
category = <<"pubsub">>,
|
||||||
type = <<"service">>,
|
type = <<"service">>,
|
||||||
name = translate:translate(
|
name = translate:translate(Lang, Name)}],
|
||||||
Lang, <<"Publish-Subscribe">>)}],
|
|
||||||
features = [?NS_DISCO_INFO,
|
features = [?NS_DISCO_INFO,
|
||||||
?NS_DISCO_ITEMS,
|
?NS_DISCO_ITEMS,
|
||||||
?NS_PUBSUB,
|
?NS_PUBSUB,
|
||||||
@ -3853,6 +3855,7 @@ purge_offline(Host, LJID, Node) ->
|
|||||||
|
|
||||||
mod_opt_type(access_createnode) -> fun acl:access_rules_validator/1;
|
mod_opt_type(access_createnode) -> fun acl:access_rules_validator/1;
|
||||||
mod_opt_type(db_type) -> fun(T) -> ejabberd_config:v_db(?MODULE, T) end;
|
mod_opt_type(db_type) -> fun(T) -> ejabberd_config:v_db(?MODULE, T) end;
|
||||||
|
mod_opt_type(name) -> fun iolist_to_binary/1;
|
||||||
mod_opt_type(host) -> fun iolist_to_binary/1;
|
mod_opt_type(host) -> fun iolist_to_binary/1;
|
||||||
mod_opt_type(hosts) ->
|
mod_opt_type(hosts) ->
|
||||||
fun (L) -> lists:map(fun iolist_to_binary/1, L) end;
|
fun (L) -> lists:map(fun iolist_to_binary/1, L) end;
|
||||||
@ -3874,7 +3877,7 @@ mod_opt_type(pep_mapping) ->
|
|||||||
mod_opt_type(plugins) ->
|
mod_opt_type(plugins) ->
|
||||||
fun (A) when is_list(A) -> A end;
|
fun (A) when is_list(A) -> A end;
|
||||||
mod_opt_type(_) ->
|
mod_opt_type(_) ->
|
||||||
[access_createnode, db_type, host, hosts,
|
[access_createnode, db_type, host, hosts, name,
|
||||||
ignore_pep_from_offline, iqdisc, last_item_cache,
|
ignore_pep_from_offline, iqdisc, last_item_cache,
|
||||||
max_items_node, nodetree, pep_mapping, plugins,
|
max_items_node, nodetree, pep_mapping, plugins,
|
||||||
max_subscriptions_node, default_node_config].
|
max_subscriptions_node, default_node_config].
|
||||||
|
@ -46,6 +46,7 @@
|
|||||||
-include("logger.hrl").
|
-include("logger.hrl").
|
||||||
-include("xmpp.hrl").
|
-include("xmpp.hrl").
|
||||||
-include("mod_vcard.hrl").
|
-include("mod_vcard.hrl").
|
||||||
|
-include("translate.hrl").
|
||||||
|
|
||||||
-define(JUD_MATCHES, 30).
|
-define(JUD_MATCHES, 30).
|
||||||
-define(VCARD_CACHE, vcard_cache).
|
-define(VCARD_CACHE, vcard_cache).
|
||||||
@ -286,10 +287,12 @@ disco_features(Acc, _From, _To, _Node, _Lang) ->
|
|||||||
|
|
||||||
-spec disco_identity([identity()], jid(), jid(),
|
-spec disco_identity([identity()], jid(), jid(),
|
||||||
binary(), binary()) -> [identity()].
|
binary(), binary()) -> [identity()].
|
||||||
disco_identity(Acc, _From, _To, <<"">>, Lang) ->
|
disco_identity(Acc, _From, To, <<"">>, Lang) ->
|
||||||
|
Host = ejabberd_router:host_of_route(To#jid.lserver),
|
||||||
|
Name = gen_mod:get_module_opt(Host, ?MODULE, name, ?T("vCard User Search")),
|
||||||
[#identity{category = <<"directory">>,
|
[#identity{category = <<"directory">>,
|
||||||
type = <<"user">>,
|
type = <<"user">>,
|
||||||
name = translate:translate(Lang, <<"vCard User Search">>)}|Acc];
|
name = translate:translate(Lang, Name)}|Acc];
|
||||||
disco_identity(Acc, _From, _To, _Node, _Lang) ->
|
disco_identity(Acc, _From, _To, _Node, _Lang) ->
|
||||||
Acc.
|
Acc.
|
||||||
|
|
||||||
@ -542,6 +545,7 @@ depends(_Host, _Opts) ->
|
|||||||
mod_opt_type(allow_return_all) ->
|
mod_opt_type(allow_return_all) ->
|
||||||
fun (B) when is_boolean(B) -> B end;
|
fun (B) when is_boolean(B) -> B end;
|
||||||
mod_opt_type(db_type) -> fun(T) -> ejabberd_config:v_db(?MODULE, T) end;
|
mod_opt_type(db_type) -> fun(T) -> ejabberd_config:v_db(?MODULE, T) end;
|
||||||
|
mod_opt_type(name) -> fun iolist_to_binary/1;
|
||||||
mod_opt_type(host) -> fun iolist_to_binary/1;
|
mod_opt_type(host) -> fun iolist_to_binary/1;
|
||||||
mod_opt_type(hosts) ->
|
mod_opt_type(hosts) ->
|
||||||
fun (L) -> lists:map(fun iolist_to_binary/1, L) end;
|
fun (L) -> lists:map(fun iolist_to_binary/1, L) end;
|
||||||
@ -563,4 +567,4 @@ mod_opt_type(O) when O == use_cache; O == cache_missed ->
|
|||||||
mod_opt_type(_) ->
|
mod_opt_type(_) ->
|
||||||
[allow_return_all, db_type, host, hosts, iqdisc, matches,
|
[allow_return_all, db_type, host, hosts, iqdisc, matches,
|
||||||
search, search_all_hosts, cache_life_time, cache_size,
|
search, search_all_hosts, cache_life_time, cache_size,
|
||||||
use_cache, cache_missed].
|
use_cache, cache_missed, name].
|
||||||
|
Loading…
Reference in New Issue
Block a user