35 VLOG(5) <<
"setupOnHeadersComplete txn=" << txn <<
", id=" << txn->
getID()
36 <<
", handlder=" << txn->
getHandler() <<
", msg=" << msg;
59 auto txnID = txn->
getID();
72 bool codecWasReusable) {
77 if (codecWasReusable) {
79 if (statusCode >= 500) {
82 if (statusCode >= 400) {
98 if (txn.second.isPushed() && !txn.second.isEgressStarted()) {
110 VLOG(4) << *
this <<
" onNativeProtocolUpgrade streamID=" << streamID <<
111 " protocol=" << protocolString;
114 if (txn->canSendHeaders()) {
119 if (!
codec->onIngressUpgradeMessage(msg)) {
120 VLOG(4) << *
this <<
" codec rejected upgrade";
134 txn->sendHeaders(switchingProtos);
145 VLOG(4) << *
this <<
" plaintext upgrade failed due to early response";
virtual const HTTPSettings * getIngressSettings() const
virtual void setHandler(Handler *handler)
bool onNativeProtocolUpgradeImpl(HTTPCodec::StreamID txn, std::unique_ptr< HTTPCodec > codec, const std::string &protocolString)
spdy::GoawayStatusCode statusCode
HTTPCodecFilterChain codec_
HTTPTransaction * findTransaction(HTTPCodec::StreamID streamID)
virtual std::unique_ptr< HTTPCodec > getCodec(const std::string &protocolHint, TransportDirection direction, bool isTLS)=0
virtual HTTPTransactionHandler * getRequestHandler(HTTPTransaction &txn, HTTPMessage *msg)=0
void setStatusMessage(T &&msg)
uint16_t getStatusCode() const
constexpr detail::Map< Move > move
void setNewTransactionPauseState(HTTPCodec::StreamID streamID)
HTTPTransaction::Handler * getTransactionTimeoutHandler(HTTPTransaction *txn) override
HTTP2PriorityQueue txnEgressQueue_
static http_parser_settings settings
const folly::SocketAddress & getLocalAddress() const noexceptoverride
void setupOnHeadersComplete(HTTPTransaction *txn, HTTPMessage *msg) override
~HTTPDownstreamSession() override
virtual HTTPTransactionHandler * getTransactionTimeoutHandler(HTTPTransaction *txn, const folly::SocketAddress &localAddress)=0
bool onNativeProtocolUpgrade(HTTPCodec::StreamID streamID, CodecProtocol protocol, const std::string &protocolString, HTTPMessage &msg) override
void handler(int, siginfo_t *, void *)
HTTPSessionController * getController()
void setCloseReason(ConnectionCloseReason reason)
virtual size_t addPriorityNodes(PriorityQueue &, folly::IOBufQueue &, uint8_t)
const Handler * getHandler() const
HTTPHeaders & getHeaders()
folly::Optional< HTTPCodec::StreamID > getControlStream() const
std::map< HTTPCodec::StreamID, HTTPTransaction > transactions_
folly::IOBufQueue writeBuf_
void setHTTPVersion(uint8_t major, uint8_t minor)
virtual bool isReusable() const =0
bool allTransactionsStarted() const override
HTTPCodec::StreamID getID() const
void onHeadersSent(const HTTPMessage &headers, bool codecWasReusable) override
void setStatusCode(uint16_t status)