diff --git a/README.md b/README.md index d5b9e6c..ffbfd49 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Implements: ```elixir def deps do [ - {:ex_turn, "~> 0.2.0"} + {:ex_turn, "~> 0.2.1"} ] end ``` diff --git a/lib/ex_turn/client.ex b/lib/ex_turn/client.ex index dda067b..14d5c3e 100644 --- a/lib/ex_turn/client.ex +++ b/lib/ex_turn/client.ex @@ -233,7 +233,7 @@ defmodule ExTURN.Client do case {permission, channel} do {false, nil} -> Logger.warning(""" - Tyring to send data but there is no permission for: #{inspect(ip)}. Ignoring. + Trying to send data but there is no permission for: #{inspect(ip)}. Ignoring. """) {:ok, client} @@ -262,7 +262,12 @@ defmodule ExTURN.Client do end @spec handle_message(t(), message()) :: on_handle_message() - def handle_message(%__MODULE__{state: state} = client, msg) when state != :error do + def handle_message(%__MODULE__{state: :error} = client, _msg) do + Logger.debug("Trying to handle internal/external message in state: error. Ignoring.") + {:error, :invalid_state, client} + end + + def handle_message(client, msg) do do_handle_message(client, msg) end diff --git a/mix.exs b/mix.exs index 19c7e2a..f427de1 100644 --- a/mix.exs +++ b/mix.exs @@ -1,7 +1,7 @@ defmodule ExTURN.MixProject do use Mix.Project - @version "0.2.0" + @version "0.2.1" @source_url "https://github.com/elixir-webrtc/ex_turn" def project do diff --git a/test/ex_turn/client_test.exs b/test/ex_turn/client_test.exs index a43fc29..1806c99 100644 --- a/test/ex_turn/client_test.exs +++ b/test/ex_turn/client_test.exs @@ -304,6 +304,9 @@ defmodule ExTURN.ClientTest do msg = {:socket_data, @turn_ip, @turn_port, data} assert {:ok, %Client{}} = Client.handle_message(client, msg) + + client = %{client | state: :error} + assert {:error, :invalid_state, ^client} = Client.handle_message(client, msg) end end