Packages
bandit
1.0.0-pre.3
1.12.0
1.11.1
1.11.0
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
retired
1.9.0
1.8.0
1.7.0
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.2
1.4.1
1.4.0
1.3.0
1.2.3
1.2.2
1.2.1
1.2.0
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
1.0.0-pre.18
1.0.0-pre.17
1.0.0-pre.16
1.0.0-pre.15
1.0.0-pre.14
1.0.0-pre.13
1.0.0-pre.12
1.0.0-pre.11
1.0.0-pre.10
1.0.0-pre.9
1.0.0-pre.8
1.0.0-pre.7
1.0.0-pre.6
1.0.0-pre.5
1.0.0-pre.4
1.0.0-pre.3
1.0.0-pre.2
1.0.0-pre.1
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.11
0.5.10
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.2.3
0.2.2
0.2.1
0.2.0
0.1.1
0.1.0
A pure-Elixir HTTP server built for Plug & WebSock apps
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
test/support/server_helpers.ex
defmodule ServerHelpers do
@moduledoc false
defmacro __using__(_) do
quote location: :keep do
import Plug.Conn
def http_server(context, opts \\ []) do
{:ok, server_pid} =
[
plug: __MODULE__,
port: 0,
ip: :loopback,
thousand_island_options: [read_timeout: 1000]
]
|> Keyword.merge(opts)
|> Bandit.child_spec()
|> start_supervised()
{:ok, %{port: port}} = ThousandIsland.listener_info(server_pid)
[base: "http://localhost:#{port}", port: port, server_pid: server_pid]
end
def https_server(context, opts \\ []) do
{:ok, server_pid} =
[
plug: __MODULE__,
scheme: :https,
port: 0,
ip: :loopback,
certfile: Path.join(__DIR__, "../support/cert.pem") |> Path.expand(),
keyfile: Path.join(__DIR__, "../support/key.pem") |> Path.expand(),
thousand_island_options: [read_timeout: 1000]
]
|> Keyword.merge(opts)
|> Bandit.child_spec()
|> start_supervised()
{:ok, %{port: port}} = ThousandIsland.listener_info(server_pid)
[base: "https://localhost:#{port}", port: port, server_pid: server_pid]
end
def init(opts) do
opts
end
def call(conn, []) do
function = String.to_atom(List.first(conn.path_info))
apply(__MODULE__, function, [conn])
end
defoverridable init: 1, call: 2
end
end
end