MCPcopy Create free account
hub / github.com/apache/trafficserver / handle_frame

Method handle_frame

src/proxy/http3/Http3HeaderVIOAdaptor.cc:56–76  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

54}
55
56Http3ErrorUPtr
57Http3HeaderVIOAdaptor::handle_frame(std::shared_ptr<const Http3Frame> frame, Http3StreamType /* s_type */)
58{
59 ink_assert(frame->type() == Http3FrameType::HEADERS);
60 const Http3HeadersFrame *hframe = dynamic_cast<const Http3HeadersFrame *>(frame.get());
61
62 int res = this->_qpack->decode(this->_stream_id, hframe->header_block(), hframe->header_block_length(), _header, this);
63
64 if (res == 0) {
65 // When decoding is not blocked, continuation should be called directly?
66 } else if (res == 1) {
67 // Decoding is blocked.
68 Dbg(dbg_ctl_http3, "Decoding is blocked. DecodeRequest is scheduled");
69 } else if (res < 0) {
70 Dbg(dbg_ctl_http3, "Error on decoding header (%d)", res);
71 } else {
72 ink_abort("should not be here");
73 }
74
75 return Http3ErrorUPtr(nullptr);
76}
77
78bool
79Http3HeaderVIOAdaptor::is_complete()

Callers

nothing calls this directly

Calls 6

header_block_lengthMethod · 0.80
ink_abortFunction · 0.50
typeMethod · 0.45
getMethod · 0.45
decodeMethod · 0.45
header_blockMethod · 0.45

Tested by

no test coverage detected