diff --git a/ChangeLog b/ChangeLog index b637a276a..cfcca62c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2007-09-11 Alexey Shchepin + + * src/gen_mod.erl: Added get_module_opt_host/3 (thanks to Badlop) + 2007-09-10 Mickael Remond * src/guide.tex: Fix: user_regexp acls are valid for all local diff --git a/src/gen_mod.erl b/src/gen_mod.erl index 163a8b5dc..168c93df4 100644 --- a/src/gen_mod.erl +++ b/src/gen_mod.erl @@ -15,6 +15,7 @@ get_opt/3, get_opt_host/3, get_module_opt/4, + get_module_opt_host/3, loaded_modules/1, loaded_modules_with_opts/1, get_hosts/2, @@ -92,7 +93,7 @@ wait_for_stop1(MonitorReference) -> get_opt(Opt, Opts) -> case lists:keysearch(Opt, 1, Opts) of false -> - % TODO: replace with more appropriate function + % TODO: replace with more appropriate function throw({undefined_option, Opt}); {value, {_, Val}} -> Val @@ -114,9 +115,9 @@ get_module_opt(global, Module, Opt, Default) -> end, Hosts), Same_all = lists:all( - fun(Other_value) -> + fun(Other_value) -> Other_value == Value - end, + end, Values), case Same_all of true -> Value; @@ -132,6 +133,10 @@ get_module_opt(Host, Module, Opt, Default) -> get_opt(Opt, Opts, Default) end. +get_module_opt_host(Host, Module, Default) -> + Val = get_module_opt(Host, Module, host, Default), + element(2, regexp:gsub(Val, "@HOST@", Host)). + get_opt_host(Host, Opts, Default) -> Val = get_opt(host, Opts, Default), element(2, regexp:gsub(Val, "@HOST@", Host)).