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
14 changes: 10 additions & 4 deletions config/runtime.exs
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,6 @@ config :teiserver, TeiserverWeb.Endpoint,
endpoint_defaults[:secret_key_base]
)

spring_listeners =
Application.get_env(:teiserver, Teiserver.SpringTcpServer)
|> Keyword.fetch!(:listeners)

tei_defaults = Application.get_env(:teiserver, Teiserver)

spring_listeners =
Expand Down Expand Up @@ -168,6 +164,16 @@ else
config :teiserver, TeiserverWeb.Endpoint, https: nil
end

spring_defaults = Application.get_env(:teiserver, Teiserver.SpringTcpServer, false)

config :teiserver, Teiserver.SpringTcpServer,
disable_startup:
Teiserver.ConfigHelpers.get_env(
"TEI_SPRING_IS_DISABLED",
spring_defaults[:disable_startup],
:bool
)

config :teiserver, Teiserver.Account.Guardian,
issuer: Teiserver.ConfigHelpers.get_env("TEI_GUARDIAN_ISSUER", "teiserver"),
# the default is only there so we can run it easily
Expand Down
2 changes: 1 addition & 1 deletion lib/teiserver/account/client_index_throttle.ex
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ defmodule Teiserver.Account.ClientIndexThrottle do
:ok = PubSub.subscribe(Teiserver.PubSub, "teiserver_global_user_updates")
:ok = PubSub.subscribe(Teiserver.PubSub, "client_inout")

Horde.Registry.register(
Registry.register(
Teiserver.ThrottleRegistry,
"__MODULE__",
:index
Expand Down
13 changes: 5 additions & 8 deletions lib/teiserver/account/libs/client_lib.ex
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ defmodule Teiserver.Account.ClientLib do

@spec list_client_ids() :: [User.id()]
def list_client_ids do
Horde.Registry.select(Teiserver.ClientRegistry, [{{:"$1", :_, :_}, [], [:"$1"]}])
Registry.select(Teiserver.ClientRegistry, [{{:"$1", :_, :_}, [], [:"$1"]}])
end

@spec list_clients() :: [T.client()]
Expand Down Expand Up @@ -201,26 +201,23 @@ defmodule Teiserver.Account.ClientLib do

@spec client_exists?(User.id()) :: pid() | boolean
def client_exists?(userid) do
case Horde.Registry.lookup(Teiserver.ClientRegistry, userid) do
case Registry.lookup(Teiserver.ClientRegistry, userid) do
[{_pid, _value}] -> true
_other -> false
end
end

@spec get_client_pid(User.id()) :: pid() | nil
def get_client_pid(userid) do
case Horde.Registry.lookup(Teiserver.ClientRegistry, userid) do
case Registry.lookup(Teiserver.ClientRegistry, userid) do
[{pid, _value}] -> pid
_other -> nil
end
end

@spec count_client() :: non_neg_integer()
def count_client do
case Horde.Registry.count(Teiserver.ClientRegistry) do
:undefined -> 0
n -> n
end
Registry.count(Teiserver.ClientRegistry)
end

# this isn't terribly efficient, but I'm not sure how
Expand All @@ -232,7 +229,7 @@ defmodule Teiserver.Account.ClientLib do
["SPADS v", "SpringLobbyMonitor", "Teiserver Internal Client", "SLTS Client d"]
|> Enum.map(fn client_name -> {:"=/=", :"$3", client_name} end)

Horde.Registry.select(Teiserver.ClientRegistry, [{{:_, :_, :"$3"}, guards, [{{:"$3"}}]}])
Registry.select(Teiserver.ClientRegistry, [{{:_, :_, :"$3"}, guards, [{{:"$3"}}]}])
|> Enum.count()
end

Expand Down
6 changes: 3 additions & 3 deletions lib/teiserver/account/libs/party_lib.ex
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,15 @@ defmodule Teiserver.Account.PartyLib do

@spec party_exists?(T.party_id()) :: boolean()
def party_exists?(party_id) do
case Horde.Registry.lookup(Teiserver.PartyRegistry, party_id) do
case Registry.lookup(Teiserver.PartyRegistry, party_id) do
[{_pid, _value}] -> true
_other -> false
end
end

@spec list_party_ids() :: [T.party_id()]
def list_party_ids do
Horde.Registry.select(Teiserver.PartyRegistry, [{{:"$1", :_, :_}, [], [:"$1"]}])
Registry.select(Teiserver.PartyRegistry, [{{:"$1", :_, :_}, [], [:"$1"]}])
end

@spec list_parties() :: [T.party()]
Expand Down Expand Up @@ -146,7 +146,7 @@ defmodule Teiserver.Account.PartyLib do

@spec get_party_pid(T.party_id()) :: pid() | nil
def get_party_pid(party_id) do
case Horde.Registry.lookup(Teiserver.PartyRegistry, party_id) do
case Registry.lookup(Teiserver.PartyRegistry, party_id) do
[{pid, _value}] -> pid
_other -> nil
end
Expand Down
2 changes: 1 addition & 1 deletion lib/teiserver/account/servers/client_server.ex
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ defmodule Teiserver.Account.ClientServer do
:timer.send_interval(6_000, :heartbeat)

# Update the queue pids cache to point to this process
Horde.Registry.register(
Registry.register(
Teiserver.ClientRegistry,
userid,
state.client.lobby_client
Expand Down
2 changes: 1 addition & 1 deletion lib/teiserver/account/servers/party_server.ex
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ defmodule Teiserver.Account.PartyServer do
@impl GenServer
@spec init(map()) :: {:ok, map()}
def init(%{party: %{id: id} = party}) do
Horde.Registry.register(
Registry.register(
Teiserver.PartyRegistry,
id,
id
Expand Down
33 changes: 17 additions & 16 deletions lib/teiserver/application.ex
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,15 @@ defmodule Teiserver.Application do

# Teiserver stuff
# Global/singleton registries
{Horde.Registry, [keys: :unique, members: :auto, name: Teiserver.ServerRegistry]},
{Horde.Registry, [keys: :unique, members: :auto, name: Teiserver.ThrottleRegistry]},
{Horde.Registry, [keys: :unique, members: :auto, name: Teiserver.ConsulRegistry]},
{Horde.Registry, [keys: :unique, members: :auto, name: Teiserver.BalancerRegistry]},
{Horde.Registry, [keys: :unique, members: :auto, name: Teiserver.LobbyRegistry]},
{Horde.Registry, [keys: :unique, members: :auto, name: Teiserver.ClientRegistry]},
{Horde.Registry, [keys: :unique, members: :auto, name: Teiserver.PartyRegistry]},
{Horde.Registry, [keys: :unique, members: :auto, name: Teiserver.QueueWaitRegistry]},
{Horde.Registry, [keys: :unique, members: :auto, name: Teiserver.QueueMatchRegistry]},
{Registry, [keys: :unique, members: :auto, name: Teiserver.ServerRegistry]},
{Registry, [keys: :unique, members: :auto, name: Teiserver.ThrottleRegistry]},
{Registry, [keys: :unique, members: :auto, name: Teiserver.ConsulRegistry]},
{Registry, [keys: :unique, members: :auto, name: Teiserver.BalancerRegistry]},
{Registry, [keys: :unique, members: :auto, name: Teiserver.LobbyRegistry]},
{Registry, [keys: :unique, members: :auto, name: Teiserver.ClientRegistry]},
{Registry, [keys: :unique, members: :auto, name: Teiserver.PartyRegistry]},
{Registry, [keys: :unique, members: :auto, name: Teiserver.QueueWaitRegistry]},
{Registry, [keys: :unique, members: :auto, name: Teiserver.QueueMatchRegistry]},

# These are for tracking the number of servers on the local node
{Registry, keys: :duplicate, name: Teiserver.LocalPoolRegistry},
Expand Down Expand Up @@ -159,7 +159,8 @@ defmodule Teiserver.Application do
TeiserverWeb.Endpoint,

# Start the ranch TCP listener process for the Spring protocol
spring_server_child(Teiserver.RawSpringTcpServer, :tcp),
spring_server_child(Teiserver.RawSpringTcpServer, :tcp)
|> IO.inspect(label: "tcp child spec?"),
# Start the ranch TLS listener process for the Spring protocol
spring_server_child(Teiserver.SSLSpringTcpServer, :tls),

Expand Down Expand Up @@ -239,24 +240,24 @@ defmodule Teiserver.Application do
Application.get_env(:teiserver, Teiserver.SpringTcpServer)
|> Keyword.fetch!(:listeners)

if Keyword.get(listeners, :disable_startup) != true do
if Application.get_env(:teiserver, Teiserver.SpringTcpServer)[:disable_startup] != true do
listeners
|> Keyword.get(transport_type, [])
|> spring_server_listener_child(ref, transport_type)
end
end

# When the listener is not configured we dont start the listener
defp spring_server_listener_child(listener_opts, _ref, _transport)
when listener_opts in [nil, false, []],
do: nil
def spring_server_listener_child(listener_opts, _ref, _transport)
when listener_opts in [nil, false, []],
do: nil

defp spring_server_listener_child(listener_opts, ref, :tcp) when is_list(listener_opts) do
def spring_server_listener_child(listener_opts, ref, :tcp) when is_list(listener_opts) do
listener_opts = Map.new(listener_opts)
:ranch.child_spec(ref, :ranch_tcp, listener_opts, Teiserver.SpringTcpServer, [])
end

defp spring_server_listener_child(listener_opts, ref, :tls) when is_list(listener_opts) do
def spring_server_listener_child(listener_opts, ref, :tls) when is_list(listener_opts) do
listener_opts = Map.new(listener_opts)
:ranch.child_spec(ref, :ranch_ssl, listener_opts, Teiserver.SpringTcpServer, [])
end
Expand Down
10 changes: 5 additions & 5 deletions lib/teiserver/autohost/registry.ex
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,20 @@ defmodule Teiserver.Autohost.Registry do
alias Teiserver.Bot.Bot

def start_link do
Horde.Registry.start_link(keys: :unique, name: __MODULE__)
Registry.start_link(keys: :unique, name: __MODULE__)
end

@doc """
how to reach a given autohost
"""
@spec via_tuple(Bot.id()) :: GenServer.name()
def via_tuple(autohost_id) do
{:via, Horde.Registry, {__MODULE__, autohost_id}}
{:via, Registry, {__MODULE__, autohost_id}}
end

@spec lookup(Bot.id()) :: {pid(), AT.Overview.t()} | nil
def lookup(autohost_id) do
case Horde.Registry.lookup(__MODULE__, via_tuple(autohost_id)) do
case Registry.lookup(__MODULE__, via_tuple(autohost_id)) do
[x] -> x
_other -> nil
end
Expand All @@ -34,11 +34,11 @@ defmodule Teiserver.Autohost.Registry do
"""
@spec list() :: [AT.Overview.t()]
def list do
Horde.Registry.select(__MODULE__, [{{:_, :_, :"$1"}, [], [:"$1"]}])
Registry.select(__MODULE__, [{{:_, :_, :"$1"}, [], [:"$1"]}])
end

def child_spec(_opts) do
Supervisor.child_spec(Horde.Registry,
Supervisor.child_spec(Registry,
id: __MODULE__,
start: {__MODULE__, :start_link, []}
)
Expand Down
4 changes: 2 additions & 2 deletions lib/teiserver/battle/servers/match_monitor_server.ex
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,7 @@ defmodule Teiserver.Battle.MatchMonitorServer do
send(self(), :begin)
Logger.metadata(request_id: "MatchMonitorServer")

Horde.Registry.register(
Registry.register(
Teiserver.ServerRegistry,
"MatchMonitorServer",
:match_monitor
Expand All @@ -559,7 +559,7 @@ defmodule Teiserver.Battle.MatchMonitorServer do

@spec get_match_monitor_pid() :: pid() | nil
def get_match_monitor_pid do
case Horde.Registry.lookup(Teiserver.ServerRegistry, "MatchMonitorServer") do
case Registry.lookup(Teiserver.ServerRegistry, "MatchMonitorServer") do
[{pid, _value}] ->
pid

Expand Down
4 changes: 2 additions & 2 deletions lib/teiserver/bridge/bridge_server.ex
Original file line number Diff line number Diff line change
Expand Up @@ -504,11 +504,11 @@ defmodule Teiserver.Bridge.BridgeServer do

@spec get_bridge_pid() :: pid | nil
def get_bridge_pid do
case Horde.Registry.lookup(Teiserver.ServerRegistry, "BridgeServer") do
case Registry.lookup(Teiserver.ServerRegistry, "BridgeServer") do
[{pid, _data}] -> pid
_x -> nil
end
end

defp via_tuple, do: {:via, Horde.Registry, {Teiserver.ServerRegistry, "BridgeServer"}}
defp via_tuple, do: {:via, Registry, {Teiserver.ServerRegistry, "BridgeServer"}}
end
8 changes: 4 additions & 4 deletions lib/teiserver/coordinator.ex
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ defmodule Teiserver.Coordinator do

@spec get_coordinator_pid() :: pid() | nil
def get_coordinator_pid do
case Horde.Registry.lookup(Teiserver.ServerRegistry, "CoordinatorServer") do
case Registry.lookup(Teiserver.ServerRegistry, "CoordinatorServer") do
[{pid, _val}] ->
pid

Expand Down Expand Up @@ -56,7 +56,7 @@ defmodule Teiserver.Coordinator do
# Consul related stuff
@spec get_consul_pid(T.lobby_id()) :: pid() | nil
def get_consul_pid(lobby_id) do
case Horde.Registry.lookup(Teiserver.ConsulRegistry, lobby_id) do
case Registry.lookup(Teiserver.ConsulRegistry, lobby_id) do
[{pid, _val}] ->
pid

Expand Down Expand Up @@ -131,7 +131,7 @@ defmodule Teiserver.Coordinator do
# Balancer related stuff
@spec get_balancer_pid(T.lobby_id()) :: pid() | nil
def get_balancer_pid(lobby_id) do
case Horde.Registry.lookup(Teiserver.BalancerRegistry, lobby_id) do
case Registry.lookup(Teiserver.BalancerRegistry, lobby_id) do
[{pid, _val}] ->
pid

Expand Down Expand Up @@ -290,6 +290,6 @@ defmodule Teiserver.Coordinator do
# Debug stuff
@spec list_all_internal_servers :: [T.lobby_id()]
def list_all_internal_servers do
Horde.Registry.select(Teiserver.ServerRegistry, [{{:"$1", :_, :_}, [], [:"$1"]}])
Registry.select(Teiserver.ServerRegistry, [{{:"$1", :_, :_}, [], [:"$1"]}])
end
end
6 changes: 3 additions & 3 deletions lib/teiserver/coordinator/automod_server.ex
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ defmodule Teiserver.Coordinator.AutomodServer do

@spec start_automod_server() :: :ok | {:failure, String.t()}
def start_automod_server do
case Horde.Registry.lookup(Teiserver.ServerRegistry, "AutomodServer") do
case Registry.lookup(Teiserver.ServerRegistry, "AutomodServer") do
[{_pid, _val}] ->
{:failure, "Already started"}

Expand Down Expand Up @@ -123,7 +123,7 @@ defmodule Teiserver.Coordinator.AutomodServer do

@spec init(map()) :: {:ok, map()}
def init(_opts) do
Horde.Registry.register(
Registry.register(
Teiserver.ServerRegistry,
"AutomodServer",
:automod
Expand Down Expand Up @@ -213,7 +213,7 @@ defmodule Teiserver.Coordinator.AutomodServer do

@spec get_automod_pid() :: pid() | nil
def get_automod_pid do
case Horde.Registry.lookup(Teiserver.ServerRegistry, "AutomodServer") do
case Registry.lookup(Teiserver.ServerRegistry, "AutomodServer") do
[{pid, _val}] ->
pid

Expand Down
2 changes: 1 addition & 1 deletion lib/teiserver/coordinator/consul_server.ex
Original file line number Diff line number Diff line change
Expand Up @@ -1425,7 +1425,7 @@ defmodule Teiserver.Coordinator.ConsulServer do
Logger.metadata(request_id: "ConsulServer##{lobby_id}")

# Update the queue pids cache to point to this process
Horde.Registry.register(
Registry.register(
Teiserver.ConsulRegistry,
lobby_id,
lobby_id
Expand Down
2 changes: 1 addition & 1 deletion lib/teiserver/coordinator/coordinator_server.ex
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ defmodule Teiserver.Coordinator.CoordinatorServer do
def init(_opts) do
Process.flag(:trap_exit, true)

Horde.Registry.register(
Registry.register(
Teiserver.ServerRegistry,
"CoordinatorServer",
:coordinator
Expand Down
4 changes: 2 additions & 2 deletions lib/teiserver/data/lobby_id_server.ex
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ defmodule Teiserver.LobbyIdServer do

@spec get_server_pid() :: pid() | nil
defp get_server_pid do
case Horde.Registry.lookup(Teiserver.ServerRegistry, "LobbyIdServer") do
case Registry.lookup(Teiserver.ServerRegistry, "LobbyIdServer") do
[{pid, _data}] ->
pid

Expand All @@ -64,7 +64,7 @@ defmodule Teiserver.LobbyIdServer do

@spec init(map()) :: {:ok, map()}
def init(_opts) do
Horde.Registry.register(
Registry.register(
Teiserver.ServerRegistry,
"LobbyIdServer",
:lobby_id_server
Expand Down
2 changes: 1 addition & 1 deletion lib/teiserver/game/servers/balancer_server.ex
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ defmodule Teiserver.Game.BalancerServer do
# :ok = PubSub.subscribe(Teiserver.PubSub, "teiserver_server")

# Update the queue pids cache to point to this process
Horde.Registry.register(
Registry.register(
Teiserver.BalancerRegistry,
lobby_id,
lobby_id
Expand Down
8 changes: 2 additions & 6 deletions lib/teiserver/helpers/iex.ex
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ defmodule Teiserver.Helpers.Iex do
end

@doc """
Same as Registry.select, but also works with Horde.Registry.
Same as Registry.select, with some aliases
"""
def list_reg(reg, spec) do
reg =
Expand All @@ -53,11 +53,7 @@ defmodule Teiserver.Helpers.Iex do
x -> x
end

try do
Horde.Registry.select(reg, spec)
rescue
ArgumentError -> Registry.select(reg, spec)
end
Registry.select(reg, spec)
end

@doc """
Expand Down
Loading
Loading