aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--src/gen_mod.erl11
2 files changed, 12 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index b637a276a..cfcca62c2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-09-11 Alexey Shchepin <alexey@process-one.net>
+
+ * src/gen_mod.erl: Added get_module_opt_host/3 (thanks to Badlop)
+
2007-09-10 Mickael Remond <mremond@process-one.net>
* 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)).