Skip to content

blackbull.server.response

blackbull.server.response

PriorityResponder

Bases: Responder

RFC 9113 §6.3 — validate the frame, then discard the signal.

§5.3 deprecated the stream-dependency scheme and this server does not implement it: scheduling reads RFC 9218 extensible priorities (Stream.priority_hint), never the dependency tree. Recording weight and parent therefore built state that nothing read — and, because §6.3 permits PRIORITY on an idle stream, state a peer could grow one node per 14-byte frame for the life of the connection, with no rate meter covering the frame type. The exclusive branch made it worse than linear: it walked every child of root to rewrite that same unread field.

What must not be discarded is the validation. §5.3.1 makes a stream depending on itself a stream error, and h2spec asserts it.

PriorityUpdateResponder

Bases: Responder

RFC 9218 §7.1 — receive PRIORITY_UPDATE, log the hint, do not schedule.

Responder

Abstract base class of responsing classes. You can find every subclass (i.e. responsing classes) by accessing subclasses().

RstStreamResponder

Bases: Responder

respond(handler) async

Terminate the named stream and log the reason.

RFC 9113 §6.4 validation: - RST_STREAM with stream_id 0 is a connection PROTOCOL_ERROR. - RST_STREAM on a stream in the IDLE state is a connection PROTOCOL_ERROR.