improvement(Listener): Register listeners with scheme, address and port.
This commit is contained in:
parent
21ee455e54
commit
8f759bf0db
3 changed files with 6 additions and 6 deletions
|
@ -17,7 +17,7 @@ defmodule Wayfarer.Listener do
|
||||||
@doc """
|
@doc """
|
||||||
Stop listener
|
Stop listener
|
||||||
"""
|
"""
|
||||||
@spec stop_listener(:inet.socket_address(), :inet.port_number()) :: :ok
|
@spec stop_listener(:http | :https, :inet.socket_address(), :inet.port_number()) :: :ok
|
||||||
def stop_listener(ip, port),
|
def stop_listener(scheme, ip, port),
|
||||||
do: GenServer.stop({:via, Registry, {ListenerRegistry, {ip, port}}}, :normal)
|
do: GenServer.stop({:via, Registry, {ListenerRegistry, {scheme, ip, port}}}, :normal)
|
||||||
end
|
end
|
||||||
|
|
|
@ -48,7 +48,7 @@ defmodule Wayfarer.Listener.Server do
|
||||||
with {:ok, scheme} <- fetch_required_option(options, :scheme),
|
with {:ok, scheme} <- fetch_required_option(options, :scheme),
|
||||||
{:ok, pid} <- Bandit.start_link(options),
|
{:ok, pid} <- Bandit.start_link(options),
|
||||||
{:ok, %{address: addr, port: port}} <- ThousandIsland.listener_info(pid),
|
{:ok, %{address: addr, port: port}} <- ThousandIsland.listener_info(pid),
|
||||||
{:ok, _pid} <- Registry.register(ListenerRegistry, {addr, port}, pid) do
|
{:ok, _pid} <- Registry.register(ListenerRegistry, {scheme, addr, port}, pid) do
|
||||||
listen_url = listen_url(scheme, addr, port)
|
listen_url = listen_url(scheme, addr, port)
|
||||||
version = Application.spec(:wayfarer)[:vsn]
|
version = Application.spec(:wayfarer)[:vsn]
|
||||||
Logger.info("Started Wayfarer v#{version} listener on #{listen_url}")
|
Logger.info("Started Wayfarer v#{version} listener on #{listen_url}")
|
||||||
|
|
|
@ -88,7 +88,7 @@ defmodule Wayfarer.ListenerTest do
|
||||||
|
|
||||||
# Crash it
|
# Crash it
|
||||||
capture_log(fn ->
|
capture_log(fn ->
|
||||||
[{_, pid}] = Registry.lookup(Listener.Registry, {{127, 0, 0, 1}, port})
|
[{_, pid}] = Registry.lookup(Listener.Registry, {:http, {127, 0, 0, 1}, port})
|
||||||
Process.exit(pid, :kill)
|
Process.exit(pid, :kill)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ defmodule Wayfarer.ListenerTest do
|
||||||
|> Finch.build("http://127.0.0.1:#{port}/")
|
|> Finch.build("http://127.0.0.1:#{port}/")
|
||||||
|> Finch.request(:test_client)
|
|> Finch.request(:test_client)
|
||||||
|
|
||||||
Listener.stop_listener({127, 0, 0, 1}, port)
|
Listener.stop_listener(:http, {127, 0, 0, 1}, port)
|
||||||
|
|
||||||
wait_until_dead(pid)
|
wait_until_dead(pid)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue