Packages
ace
0.15.5
0.19.0
0.18.10
0.18.9
0.18.8
0.18.7
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.1
0.17.0
0.16.8
0.16.7
0.16.6
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.11
0.15.10
0.15.9
0.15.8
0.15.7
0.15.6
retired
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
0.13.0
0.12.1
0.12.0
retired
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.0
0.3.0
0.2.0
HTTP web server and client, supports http1 and http2
Current section
Files
Jump to
Current section
Files
lib/ace/http2/frame/7_go_away.ex
defmodule Ace.HTTP2.Frame.GoAway do
@moduledoc false
alias Ace.HTTP2.{Errors}
@enforce_keys [:error, :last_stream_id, :debug]
defstruct @enforce_keys
def new(last_stream_id, error, debug \\ "") do
%__MODULE__{last_stream_id: last_stream_id, error: error, debug: debug}
end
def decode({7, _flags, 0, <<0::1, last_stream_id::31, error_code::32, debug::binary>>}) do
error = Errors.decode(error_code)
{:ok, new(last_stream_id, error, debug)}
end
def serialize(frame) do
payload = payload(frame)
length = :erlang.iolist_size(payload)
type = 7
<<length::24, type::8, 0::8, 0::1, 0::31, payload::binary>>
end
def payload(%__MODULE__{last_stream_id: last_stream_id, error: error, debug: debug}) do
<<0::1, last_stream_id::31, Errors.encode(error)::32, debug::binary>>
end
end
defimpl Inspect, for: Ace.HTTP2.Frame.GoAway do
def inspect(
%Ace.HTTP2.Frame.GoAway{error: error, debug: debug, last_stream_id: last_stream_id},
_opts
) do
"GO_AWAY(error: #{error}, debug: #{debug}, last_stream_id: #{last_stream_id})"
end
end