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 """
|
||||
Stop listener
|
||||
"""
|
||||
@spec stop_listener(:inet.socket_address(), :inet.port_number()) :: :ok
|
||||
def stop_listener(ip, port),
|
||||
do: GenServer.stop({:via, Registry, {ListenerRegistry, {ip, port}}}, :normal)
|
||||
@spec stop_listener(:http | :https, :inet.socket_address(), :inet.port_number()) :: :ok
|
||||
def stop_listener(scheme, ip, port),
|
||||
do: GenServer.stop({:via, Registry, {ListenerRegistry, {scheme, ip, port}}}, :normal)
|
||||
end
|
||||
|
|
|
@ -48,7 +48,7 @@ defmodule Wayfarer.Listener.Server do
|
|||
with {:ok, scheme} <- fetch_required_option(options, :scheme),
|
||||
{:ok, pid} <- Bandit.start_link(options),
|
||||
{: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)
|
||||
version = Application.spec(:wayfarer)[:vsn]
|
||||
Logger.info("Started Wayfarer v#{version} listener on #{listen_url}")
|
||||
|
|
|
@ -88,7 +88,7 @@ defmodule Wayfarer.ListenerTest do
|
|||
|
||||
# Crash it
|
||||
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)
|
||||
end)
|
||||
|
||||
|
@ -116,7 +116,7 @@ defmodule Wayfarer.ListenerTest do
|
|||
|> Finch.build("http://127.0.0.1:#{port}/")
|
||||
|> 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)
|
||||
|
||||
|
|
Loading…
Reference in a new issue