Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 28 additions & 28 deletions lib/riverside/connection.ex
Original file line number Diff line number Diff line change
Expand Up @@ -53,46 +53,46 @@ defmodule Riverside.Connection do

handler = Keyword.fetch!(opts, :handler)

if handler.__config__.show_debug_logs do
if handler.__config__().show_debug_logs do
Logger.debug("<Riverside.Connection:#{inspect(self())}> incoming new request: #{peer}")
end

if Stats.number_of_current_connections() >=
handler.__config__.max_connections do
Logger.warn(
handler.__config__().max_connections do
Logger.warning(
"<Riverside.Connection:#{inspect(self())}> connection number reached the limit."
)

# :cow_http.status/1 doesn't support 508, so use 503 instead
{:ok, CowboyUtil.response(req, 503, %{}), {:unset, handler.__config__.show_debug_logs}}
{:ok, CowboyUtil.response(req, 503, %{}), {:unset, handler.__config__().show_debug_logs}}
else
auth_req = AuthRequest.new(req, peer)

case handler.__handle_authentication__(auth_req) do
{:ok, user_id, handler_state} ->
timeout = handler.__config__.idle_timeout
timeout = handler.__config__().idle_timeout
session_id = Random.hex(20)
state = new(handler, user_id, session_id, peer, handler_state)
{:cowboy_websocket, req, state, %{idle_timeout: timeout}}

{:ok, user_id, session_id, handler_state} ->
timeout = handler.__config__.idle_timeout
timeout = handler.__config__().idle_timeout
state = new(handler, user_id, session_id, peer, handler_state)
{:cowboy_websocket, req, state, %{idle_timeout: timeout}}

{:error, %AuthError{code: code, headers: headers}} ->
{:ok, CowboyUtil.response(req, code, headers),
{:unset, handler.__config__.show_debug_logs}}
{:unset, handler.__config__().show_debug_logs}}

other ->
if handler.__config__.show_debug_logs do
if handler.__config__().show_debug_logs do
Logger.debug(
"<Riverside.Connection:#{inspect(self())}> failed to authenticate by reason: #{inspect(other)}, shutdown"
)
end

{:ok, CowboyUtil.response(req, 500, %{}),
{:unset, handler.__config__.show_debug_logs}}
{:unset, handler.__config__().show_debug_logs}}
end
end
end
Expand All @@ -104,13 +104,13 @@ defmodule Riverside.Connection do
"<Riverside.Connection:#{inspect(self())}>(#{state.session}) websocket_init",
fn -> {:stop, state} end,
fn ->
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug("<Riverside.Connection:#{inspect(self())}>(#{state.session}) @init")
end

if Stats.number_of_current_connections() >=
state.handler.__config__.max_connections do
Logger.warn("<Riverside.Connection:#{inspect(self())}> connection number is over limit")
state.handler.__config__().max_connections do
Logger.warning("<Riverside.Connection:#{inspect(self())}> connection number is over limit")

{:stop, state}
else
Expand All @@ -133,14 +133,14 @@ defmodule Riverside.Connection do
"<Riverside.Connection:#{inspect(self())}>(#{state.session}) websocket_info",
fn -> {:stop, state} end,
fn ->
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug("<Riverside.#{inspect(self())}>(#{state.session}) @post_init")
end

case state.handler.init(state.session, state.handler_state) do
{:ok, session2, handler_state2} ->
if state.handler.__config__.connection_max_age != :infinity do
Process.send_after(self(), :over_age, state.handler.__config__.connection_max_age)
if state.handler.__config__().connection_max_age != :infinity do
Process.send_after(self(), :over_age, state.handler.__config__().connection_max_age)
end

state2 = %{state | session: session2, handler_state: handler_state2}
Expand All @@ -158,23 +158,23 @@ defmodule Riverside.Connection do
end

def websocket_info(:over_age, state) do
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug("<Riverside.Connection:#{inspect(self())}>(#{state.session}) @over_age")
end

{:stop, %{state | shutdown_reason: :over_age}}
end

def websocket_info(:stop, state) do
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug("<Riverside.Connection:#{inspect(self())}>(#{state.session}) @stop")
end

{:stop, state}
end

def websocket_info({:deliver, type, msg}, state) do
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug("<Riverside.Connection:#{inspect(self())}>(#{state.session}) @deliver")
end

Expand All @@ -188,7 +188,7 @@ defmodule Riverside.Connection do
"<Riverside.Connection:#{inspect(self())}>(#{session}) websocket_info",
fn -> {:stop, state} end,
fn ->
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug(
"<Riverside.Connection:#{inspect(self())}>(#{session}) @exit: #{inspect(pid)} -> #{inspect(self())}"
)
Expand All @@ -212,7 +212,7 @@ defmodule Riverside.Connection do
"<Riverside.Connection:#{inspect(self())}>(#{state.session}) websocket_info",
fn -> {:stop, state} end,
fn ->
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug(
"<Riverside.Connection:#{inspect(self())}>(#{state.session}) @info: #{inspect(event)}"
)
Expand Down Expand Up @@ -243,7 +243,7 @@ defmodule Riverside.Connection do
"<Riverrise.Connection:#{inspect(self())}> websocket_handle",
fn -> {:stop, state} end,
fn ->
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug("<Riverside.Connection:#{inspect(self())}>(#{state.session}) @ping")
end

Expand All @@ -257,7 +257,7 @@ defmodule Riverside.Connection do
"<Riverside.Connection:#{inspect(self())}> websocket_handle",
fn -> {:stop, state} end,
fn ->
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug("<Riverside.Connection:#{inspect(self())}>(#{state.session}) @binary")
end

Expand All @@ -271,7 +271,7 @@ defmodule Riverside.Connection do
"<Riverside.Connection:#{inspect(self())}>(#{state.session}) websocket_handle",
fn -> {:stop, state} end,
fn ->
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug("<Riverside.Connection:#{inspect(self())}>(#{state.session}) @text")
end

Expand All @@ -281,7 +281,7 @@ defmodule Riverside.Connection do
end

def websocket_handle(event, state) do
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug(
"<Riverside.Connection:#{inspect(self())}>(#{state.session}) handle: unsupported event #{inspect(event)}"
)
Expand All @@ -303,7 +303,7 @@ defmodule Riverside.Connection do
"<Riverside.Connection:#{inspect(self())}>(#{state.session}) terminate",
fn -> :ok end,
fn ->
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug(
"<Riverside.Connection:#{inspect(self())}>(#{state.session}) @terminate: #{inspect(reason)}"
)
Expand All @@ -323,7 +323,7 @@ defmodule Riverside.Connection do
"<Riverside.Connection:#{inspect(self())}>(#{state.session}) terminate",
fn -> :ok end,
fn ->
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug(
"<Riverside.Connection:#{inspect(self())}>(#{state.session}) @terminate: #{inspect(reason)}"
)
Expand All @@ -341,7 +341,7 @@ defmodule Riverside.Connection do
defp handle_frame(type, data, %{handler: handler, session: session} = state) do
Stats.countup_incoming_messages()

case Session.countup_messages(session, handler.__config__.transmission_limit) do
case Session.countup_messages(session, handler.__config__().transmission_limit) do
{:ok, session2} ->
state2 = %{state | session: session2}

Expand All @@ -354,7 +354,7 @@ defmodule Riverside.Connection do
{:stop, %{state2 | shutdown_reason: reason, handler_state: handler_state3}}

{:error, reason} ->
if state.handler.__config__.show_debug_logs do
if state.handler.__config__().show_debug_logs do
Logger.debug(
"<Riverside.Connection:#{inspect(self())}>(#{session2}) failed to handle frame_type #{inspect(type)}: #{inspect(reason)}"
)
Expand Down
20 changes: 10 additions & 10 deletions lib/riverside/endpoint_supervisor.ex
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ defmodule Riverside.EndpointSupervisor do
router = Keyword.get(opts, :router, Riverside.Router)

scheme =
if Config.get_tls(handler.__config__.tls) do
if Config.get_tls(handler.__config__().tls) do
:https
else
:http
Expand All @@ -38,10 +38,10 @@ defmodule Riverside.EndpointSupervisor do
defp cowboy_opts(router, module) do
Config.ensure_module_loaded(module)

port = Config.get_port(module.__config__.port)
extra_opts = Config.get_cowboy_opts(module.__config__.cowboy_opts)
path = module.__config__.path
idle_timeout = module.__config__.idle_timeout
port = Config.get_port(module.__config__().port)
extra_opts = Config.get_cowboy_opts(module.__config__().cowboy_opts)
path = module.__config__().path
idle_timeout = module.__config__().idle_timeout

cowboy_opts =
[
Expand All @@ -51,18 +51,18 @@ defmodule Riverside.EndpointSupervisor do
] ++ extra_opts

cowboy_opts =
if module.__config__.reuse_port do
if module.__config__().reuse_port do
cowboy_opts ++ [{:raw, 1, 15, <<1, 0, 0, 0>>}]
else
cowboy_opts
end

if Config.get_tls(module.__config__.tls) do
if Config.get_tls(module.__config__().tls) do
cowboy_opts ++
[
otp_app: module.__config__.otp_app,
certfile: Config.get_tls_certfile(module.__config__.tls_certfile),
keyfile: Config.get_tls_keyfile(module.__config__.tls_keyfile)
otp_app: module.__config__().otp_app,
certfile: Config.get_tls_certfile(module.__config__().tls_certfile),
keyfile: Config.get_tls_keyfile(module.__config__().tls_keyfile)
]
else
cowboy_opts
Expand Down
4 changes: 2 additions & 2 deletions lib/riverside/exception_guard.ex
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ defmodule Riverside.ExceptionGuard do
func.()
rescue
err ->
stacktrace = System.stacktrace() |> Exception.format_stacktrace()
stacktrace = __STACKTRACE__ |> Exception.format_stacktrace()
Logger.error("#{log_header} rescued error - #{inspect(err)}, stacktrace - #{stacktrace}")
error_resp.()
catch
error_type, value when error_type in [:throw, :exit] ->
stacktrace = System.stacktrace() |> Exception.format_stacktrace()
stacktrace = __STACKTRACE__ |> Exception.format_stacktrace()
Logger.error("#{log_header} caught error - #{inspect(value)}, stacktrace - #{stacktrace}")
error_resp.()
end
Expand Down
2 changes: 1 addition & 1 deletion lib/riverside/io/random.ex
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule Riverside.IO.Random do
@impl_mod Application.get_env(:riverside, :random_module, Riverside.IO.Random.Real)
@impl_mod Application.compile_env(:riverside, :random_module, Riverside.IO.Random.Real)

defmodule Behaviour do
@callback hex(non_neg_integer) :: String.t()
Expand Down
2 changes: 1 addition & 1 deletion lib/riverside/io/timestamp.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ defmodule Riverside.IO.Timestamp do
@callback milli_seconds() :: non_neg_integer
end

@impl_mod Application.get_env(:riverside, :timestamp_module, Riverside.IO.Timestamp.Real)
@impl_mod Application.compile_env(:riverside, :timestamp_module, Riverside.IO.Timestamp.Real)

@behaviour Behaviour

Expand Down
4 changes: 2 additions & 2 deletions lib/riverside/test/test_client.ex
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ defmodule Riverside.Test.TestClient do
{:ok, value}

{:error, reason} ->
Logger.warn("<Riverside.TestClient> failed to decode received message: #{reason}")
Logger.warning("<Riverside.TestClient> failed to decode received message: #{reason}")
{:error, :bad_format}
end
else
Expand Down Expand Up @@ -153,7 +153,7 @@ defmodule Riverside.Test.TestClient do
{:noreply, state}

{:error, reason} ->
Logger.warn("<Riverside.TestClient> failed to format message: #{reason}")
Logger.warning("<Riverside.TestClient> failed to format message: #{reason}")
{:noreply, state}
end
end
Expand Down