diff options
author | Siri Hansen <[email protected]> | 2011-04-29 17:14:12 +0200 |
---|---|---|
committer | Siri Hansen <[email protected]> | 2011-05-03 16:33:43 +0200 |
commit | 2187b54499a280fdf92e8832a5126cadeb9cd610 (patch) | |
tree | 217b13302fcc3b0fd85ed5c7f50a97a940e44995 /lib/sasl/src | |
parent | 9051df48646573dbb740b16396bf9b55be288525 (diff) | |
download | otp-2187b54499a280fdf92e8832a5126cadeb9cd610.tar.gz otp-2187b54499a280fdf92e8832a5126cadeb9cd610.tar.bz2 otp-2187b54499a280fdf92e8832a5126cadeb9cd610.zip |
Fail sasl startup if some, but not all, environment variables related to log_mf_h are given
The sasl application starts and adds log_mf_h handler if all three
environment variables are given and valid. If any of the variables are
invalid, sasl startup will crash.
Earlier, if one or two of the variables were missing sasl would
successfully start but silently skip adding log_mf_h. This commit
changes this behaviour so that sasl startup will crash if some
variables are given and some are not.
Diffstat (limited to 'lib/sasl/src')
-rw-r--r-- | lib/sasl/src/sasl.erl | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/lib/sasl/src/sasl.erl b/lib/sasl/src/sasl.erl index d1babaffff..aed5f0da1f 100644 --- a/lib/sasl/src/sasl.erl +++ b/lib/sasl/src/sasl.erl @@ -81,27 +81,38 @@ get_mf() -> Dir = get_mf_dir(), MaxB = get_mf_maxb(), MaxF = get_mf_maxf(), - {Dir, MaxB, MaxF}. + case {Dir, MaxB, MaxF} of + {undefined,undefined,undefined} = R -> + R; + {undefined,_,_} -> + exit({missing_config, {sasl, error_logger_mf_dir}}); + {_,undefined,_} -> + exit({missing_config, {sasl, error_logger_mf_maxbytes}}); + {_,_,undefined} -> + exit({missing_config, {sasl, error_logger_mf_maxfiles}}); + R -> + R + end. get_mf_dir() -> case application:get_env(sasl, error_logger_mf_dir) of - {ok, false} -> throw(undefined); + {ok, false} -> undefined; {ok, Dir} when is_list(Dir) -> Dir; - undefined -> throw(undefined); + undefined -> undefined; {ok, Bad} -> exit({bad_config, {sasl, {error_logger_mf_dir, Bad}}}) end. get_mf_maxb() -> case application:get_env(sasl, error_logger_mf_maxbytes) of {ok, MaxB} when is_integer(MaxB) -> MaxB; - undefined -> throw(undefined); + undefined -> undefined; {ok, Bad} -> exit({bad_config, {sasl, {error_logger_mf_maxbytes, Bad}}}) end. get_mf_maxf() -> case application:get_env(sasl, error_logger_mf_maxfiles) of {ok, MaxF} when is_integer(MaxF), MaxF > 0, MaxF < 256 -> MaxF; - undefined -> throw(undefined); + undefined -> undefined; {ok, Bad} -> exit({bad_config, {sasl, {error_logger_mf_maxfiles, Bad}}}) end. |