Protocol::HTTP2SourceProtocolHTTP2GoawayFrame

class GoawayFrame

The GOAWAY frame is used to initiate shutdown of a connection or to signal serious error conditions. GOAWAY allows an endpoint to gracefully stop accepting new streams while still finishing processing of previously established streams. This enables administrative actions, like server maintenance.

+-+-------------------------------------------------------------+ |R| Last-Stream-ID (31) | +-+-------------------------------------------------------------+ | Error Code (32) | +---------------------------------------------------------------+ | Additional Debug Data (*) | +---------------------------------------------------------------+

Definitions

def connection?

Check if this frame applies to the connection level.

Signature

returns Boolean

Always returns true for GOAWAY frames.

Implementation

def connection?
	true
end

def unpack

Unpack the GOAWAY frame payload.

Signature

returns Array

Last stream ID, error code, and debug data.

Implementation

def unpack
	data = super
	
	last_stream_id, error_code = data.unpack(FORMAT)
	
	return last_stream_id, error_code, data.slice(8, data.bytesize-8)
end

def pack(last_stream_id, error_code, data)

Pack GOAWAY frame data into payload.

Signature

parameter last_stream_id Integer

The last processed stream ID.

parameter error_code Integer

The error code for connection termination.

parameter data String

Additional debug data.

Implementation

def pack(last_stream_id, error_code, data)
	super [last_stream_id, error_code].pack(FORMAT) + data
end

def apply(connection)

Apply this GOAWAY frame to a connection for processing.

Signature

parameter connection Connection

The connection to apply the frame to.

Implementation

def apply(connection)
	connection.receive_goaway(self)
end