diff --git a/lib/ex_ice/priv/app.ex b/lib/ex_ice/priv/app.ex index 22bd1b2..bb51e79 100644 --- a/lib/ex_ice/priv/app.ex +++ b/lib/ex_ice/priv/app.ex @@ -2,9 +2,36 @@ defmodule ExICE.Priv.App do @moduledoc false use Application + require Logger + @impl true def start(_type, _args) do - children = [{ExICE.Priv.MDNS.Resolver, :gen_udp}] + kernel_ver = kernel_version() + + children = + if kernel_ver >= {9, 1} do + [{ExICE.Priv.MDNS.Resolver, :gen_udp}] + else + Logger.warning(""" + Not starting MDNS resolver as it requires kernel version >= 9.1. + Detected kernel version: #{inspect(kernel_ver)} + """) + + [] + end + Supervisor.start_link(children, strategy: :one_for_one) end + + defp kernel_version() do + ver = + Application.spec(:kernel, :vsn) + |> to_string() + |> String.split(".") + + major = Enum.at(ver, 0) |> String.to_integer() + minor = Enum.at(ver, 1) |> String.to_integer() + + {major, minor} + end end