From: Christopher Date: Mon, 6 Apr 2020 14:32:54 +0000 (-0500) Subject: error logging around insufficient roles X-Git-Url: http://git.entropealabs.com/?a=commitdiff_plain;h=a6478667525bbc048215a94ec237a6b45f9009f1;p=wampex_client.git error logging around insufficient roles --- diff --git a/lib/client/session.ex b/lib/client/session.ex index d8e1981..52a0816 100644 --- a/lib/client/session.ex +++ b/lib/client/session.ex @@ -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