Packages
bandit
1.10.1
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
lib/bandit/http2/errors.ex
defmodule Bandit.HTTP2.Errors do
@moduledoc false
# Errors as defined in RFC9113§7
@typedoc "An error code as defined for GOAWAY and RST_STREAM errors"
@type error_code() ::
(no_error :: 0x0)
| (protocol_error :: 0x1)
| (internal_error :: 0x2)
| (flow_control_error :: 0x3)
| (settings_timeout :: 0x4)
| (stream_closed :: 0x5)
| (frame_size_error :: 0x6)
| (refused_stream :: 0x7)
| (cancel :: 0x8)
| (compression_error :: 0x9)
| (connect_error :: 0xA)
| (enhance_your_calm :: 0xB)
| (inadequate_security :: 0xC)
| (http_1_1_requires :: 0xD)
error_codes = %{
no_error: 0x0,
protocol_error: 0x1,
internal_error: 0x2,
flow_control_error: 0x3,
settings_timeout: 0x4,
stream_closed: 0x5,
frame_size_error: 0x6,
refused_stream: 0x7,
cancel: 0x8,
compression_error: 0x9,
connect_error: 0xA,
enhance_your_calm: 0xB,
inadequate_security: 0xC,
http_1_1_requires: 0xD
}
@spec to_reason(integer()) :: atom()
for {name, value} <- error_codes do
@spec unquote(name)() :: unquote(Macro.var(name, Elixir)) :: unquote(value)
def unquote(name)(), do: unquote(value)
def to_reason(unquote(value)), do: unquote(name)
end
def to_reason(_), do: :unknown
# Represents a stream error as defined in RFC9113§5.4.2
defmodule StreamError do
defexception [:message, :error_code, :stream_id]
end
# Represents a stream error as defined in RFC9113§5.4.3
defmodule ConnectionError do
defexception [:message, :error_code]
end
end