diff options
| author | Alvaro Videla <videlalvaro@gmail.com> | 2015-10-01 22:42:26 +0200 |
|---|---|---|
| committer | Alvaro Videla <videlalvaro@gmail.com> | 2015-10-01 22:42:26 +0200 |
| commit | 16509fe08fdc9c0d965d70131ea282b72dd8b192 (patch) | |
| tree | 9408d42941bf05f52b0bd24b0656aa6108c8bbea /src | |
| parent | 032b653adc113d91df3fdd12002401f65bfb99f5 (diff) | |
| download | rabbitmq-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.erl | 28 |
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). |
