From a6478667525bbc048215a94ec237a6b45f9009f1 Mon Sep 17 00:00:00 2001 From: Christopher Date: Mon, 6 Apr 2020 09:32:54 -0500 Subject: [PATCH] error logging around insufficient roles --- lib/client/session.ex | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) 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 -- 2.45.3