]> Entropealabs - wampex_client.git/commitdiff
error logging around insufficient roles
authorChristopher <chris@entropealabs.com>
Mon, 6 Apr 2020 14:32:54 +0000 (09:32 -0500)
committerChristopher <chris@entropealabs.com>
Mon, 6 Apr 2020 14:32:54 +0000 (09:32 -0500)
lib/client/session.ex

index d8e1981234752e4ab475f733526de29b68af35f2..52a0816b37e8f5d891d36435bada29a9d00dc5a9 100644 (file)
@@ -54,6 +54,7 @@ defmodule Wampex.Client.Session do
           event: Event.t() | nil,
           invocation: Invocation.t() | nil,
           goodbye: binary() | nil,
+          error: binary(),
           realm: Realm.t(),
           name: module() | nil,
           roles: [module()],
@@ -258,16 +259,25 @@ defmodule Wampex.Client.Session do
         %SL{data: %Sess{message: msg, requests: requests, roles: roles}} = data
       ) do
     Logger.debug("Handling Message #{inspect(msg)}")
-    {actions, id, response} = handle_message(msg, roles)
-    {%SL{data: sess} = data, response} = maybe_update_response(data, response)
-    {requests, actions} = resp = handle_response(id, actions, requests, response)
-    Logger.debug("Response: #{inspect(resp)}")
-    {:ok, %SL{data | data: %Sess{sess | requests: requests}}, actions}
+
+    case handle_message(msg, roles) do
+      {actions, id, response} ->
+        {%SL{data: sess} = data, response} = maybe_update_response(data, response)
+        {requests, actions} = resp = handle_response(id, actions, requests, response)
+        Logger.debug("Response: #{inspect(resp)}")
+        {:ok, %SL{data | data: %Sess{sess | requests: requests}}, actions}
+
+      nil ->
+        Logger.error("Not supported by roles #{inspect(roles)} - #{inspect(msg)}")
+
+        {:ok, %SL{data | data: %Sess{data.data | error: "wamp.error.not_supported_by_roles"}},
+         [{:next_event, :internal, :abort}]}
+    end
   end
 
   @impl true
   def handle_resource(@handle_abort, _, @abort, data) do
-    Logger.warn("Aborting: #{data.data.error}")
+    Logger.error("Aborting: #{data.data.error}")
     {:ok, data, []}
   end