File size: 931 Bytes
2e92879
 
 
662b76e
d007060
2e92879
662b76e
 
 
abcde98
2e92879
89df778
2e92879
 
 
 
 
 
a664070
 
2e92879
 
 
 
 
 
 
 
a664070
 
 
 
 
 
 
 
 
 
 
 
2e92879
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
defmodule Srh do
  use Application

  @default_port Application.fetch_env!(:srh, :port)

  def start(_type, _args) do
    {port, ""} = Integer.parse(System.get_env("SRH_PORT", Integer.to_string(@default_port))) # Remains @default_port for backwards compatibility

    IO.puts("Using port #{port}")

    children = [
      Srh.Auth.TokenResolver,
      {GenRegistry, worker_module: Srh.Redis.Client},
      {
        Plug.Cowboy,
        scheme: :http,
        plug: Srh.Http.BaseRouter,
        options: [
          port: port,
          net: check_inet_mode()
        ]
      }
    ]

    opts = [strategy: :one_for_one, name: Srh.Supervisor]

    Supervisor.start_link(children, opts)
  end

  defp check_inet_mode() do
    ipv6 = System.get_env("SRH_IPV6", "false")
    do_check_inet_mode(ipv6)
  end

  defp do_check_inet_mode("true") do
    IO.puts("Using ipv6.")
    :inet6
  end

  defp do_check_inet_mode(_), do: :inet
end