同步操作将从 libhv/libhv 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#ifndef HV_HTTP2_PARSER_H_#define HV_HTTP2_PARSER_H_#ifdef WITH_NGHTTP2#include "HttpParser.h"#include "http2def.h"#include "grpcdef.h"#include "nghttp2/nghttp2.h"enum http2_session_state {H2_SEND_MAGIC,H2_SEND_SETTINGS,H2_SEND_PING,H2_SEND_HEADERS,H2_SEND_DATA_FRAME_HD,H2_SEND_DATA,H2_SEND_DONE,H2_WANT_SEND,H2_WANT_RECV,H2_RECV_SETTINGS,H2_RECV_PING,H2_RECV_HEADERS,H2_RECV_DATA,};class Http2Parser : public HttpParser {public:static nghttp2_session_callbacks* cbs;nghttp2_session* session;http2_session_state state;HttpMessage* submited;HttpMessage* parsed;int error;int stream_id;int stream_closed;int frame_type_when_stream_closed;// http2_frame_hd + grpc_message_hd// at least HTTP2_FRAME_HDLEN + GRPC_MESSAGE_HDLEN = 9 + 5 = 14unsigned char frame_hdbuf[32];Http2Parser(http_session_type type = HTTP_CLIENT);virtual ~Http2Parser();virtual int GetSendData(char** data, size_t* len);virtual int FeedRecvData(const char* data, size_t len);virtual int GetState() {return (int)state;}virtual bool WantRecv() {return state == H2_WANT_RECV;}virtual bool WantSend() {return state <= H2_WANT_SEND;}virtual bool IsComplete() {return stream_closed && (frame_type_when_stream_closed == HTTP2_DATA || frame_type_when_stream_closed == HTTP2_HEADERS);}virtual int GetError() {return error;}virtual const char* StrError(int error) {//return nghttp2_http2_strerror(error);return nghttp2_strerror(error);}// client// SubmitRequest -> while(GetSendData) {send} -> InitResponse -> do {recv -> FeedRecvData} while(WantRecv)virtual int SubmitRequest(HttpRequest* req);virtual int InitResponse(HttpResponse* res);// server// InitRequest -> do {recv -> FeedRecvData} while(WantRecv) -> SubmitResponse -> while(GetSendData) {send}virtual int InitRequest(HttpRequest* req);virtual int SubmitResponse(HttpResponse* res);};#endif#endif // HV_HTTP2_PARSER_H_
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。