summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlvaro Videla <videlalvaro@gmail.com>2015-10-01 22:42:26 +0200
committerAlvaro Videla <videlalvaro@gmail.com>2015-10-01 22:42:26 +0200
commit16509fe08fdc9c0d965d70131ea282b72dd8b192 (patch)
tree9408d42941bf05f52b0bd24b0656aa6108c8bbea /src
parent032b653adc113d91df3fdd12002401f65bfb99f5 (diff)
downloadrabbitmq-server-git-16509fe08fdc9c0d965d70131ea282b72dd8b192.tar.gz
checks if the current OTP release is >= 18.1
This is rather ugly. In the future once we have erlang.mk support we should use a semver libary instead.
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_error_logger_file_h.erl28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/rabbit_error_logger_file_h.erl b/src/rabbit_error_logger_file_h.erl
index ec17a765f3..c84e2dd331 100644
--- a/src/rabbit_error_logger_file_h.erl
+++ b/src/rabbit_error_logger_file_h.erl
@@ -92,19 +92,41 @@ init_file(File, PrevHandler) ->
case file:open(File, [append]) of
{ok, Fd} ->
State =
- case list_to_float(rabbit_misc:otp_release()) of
- OtpVersion when OtpVersion > 18.0 ->
+ case otp_release_181_or_newer() of
+ true ->
#st{fd = Fd,
filename = File,
prev_handler = PrevHandler,
depth = get_depth()};
- _ ->
+ _ ->
{Fd, File, PrevHandler}
end,
{ok, State};
Error -> Error
end.
+%% OTP 18.1 introduced the new #st record.
+%% TODO we should use a proper Semver library.
+otp_release_181_or_newer() ->
+ try
+ case string:tokens(rabbit_misc:otp_release(), ".") of
+ [Maj, Min | _ ] ->
+ Maj1 = list_to_integer(Maj),
+ Min1 = list_to_integer(Min),
+ Maj1 >= 18 andalso Min1 >= 1;
+ [Maj | _ ] ->
+ Maj1 = list_to_integer(Maj),
+ Maj1 >= 18;
+ _ ->
+ false
+ end
+ catch
+ %% list_to_integer fails with badarg when string contains a
+ %% bad representation of an integer.
+ error:badarg ->
+ false
+ end.
+
handle_event(Event, State) ->
safe_handle_event(fun handle_event0/2, Event, State).