Define NGHTTP2_CLEARTEXT_PROTO_VERSION_ID
This identifier string is used if HTTP/2 is used over cleartext TCP.
This commit is contained in:
parent
334658044e
commit
34581d830d
|
@ -38,7 +38,8 @@ extern "C" {
|
||||||
/**
|
/**
|
||||||
* @macro
|
* @macro
|
||||||
*
|
*
|
||||||
* The protocol version identification of this library supports.
|
* The protocol version identification string of this library
|
||||||
|
* supports. This identifier is used if HTTP/2 is used over TLS.
|
||||||
*/
|
*/
|
||||||
#define NGHTTP2_PROTO_VERSION_ID "h2-10"
|
#define NGHTTP2_PROTO_VERSION_ID "h2-10"
|
||||||
/**
|
/**
|
||||||
|
@ -48,6 +49,22 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
#define NGHTTP2_PROTO_VERSION_ID_LEN 5
|
#define NGHTTP2_PROTO_VERSION_ID_LEN 5
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @macro
|
||||||
|
*
|
||||||
|
* The protocol version identification string of this library
|
||||||
|
* supports. This identifier is used if HTTP/2 is used over cleartext
|
||||||
|
* TCP.
|
||||||
|
*/
|
||||||
|
#define NGHTTP2_CLEARTEXT_PROTO_VERSION_ID "h2c-10"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @macro
|
||||||
|
*
|
||||||
|
* The length of :macro:`NGHTTP2_CLEARTEXT_PROTO_VERSION_ID`.
|
||||||
|
*/
|
||||||
|
#define NGHTTP2_CLEARTEXT_PROTO_VERSION_ID_LEN 6
|
||||||
|
|
||||||
struct nghttp2_session;
|
struct nghttp2_session;
|
||||||
/**
|
/**
|
||||||
* @struct
|
* @struct
|
||||||
|
|
|
@ -611,7 +611,7 @@ struct HttpClient {
|
||||||
req += hostport;
|
req += hostport;
|
||||||
req += "\r\n"
|
req += "\r\n"
|
||||||
"Connection: Upgrade, HTTP2-Settings\r\n"
|
"Connection: Upgrade, HTTP2-Settings\r\n"
|
||||||
"Upgrade: " NGHTTP2_PROTO_VERSION_ID "\r\n"
|
"Upgrade: " NGHTTP2_CLEARTEXT_PROTO_VERSION_ID "\r\n"
|
||||||
"HTTP2-Settings: ";
|
"HTTP2-Settings: ";
|
||||||
req += token68;
|
req += token68;
|
||||||
req += "\r\n"
|
req += "\r\n"
|
||||||
|
|
|
@ -542,7 +542,7 @@ int ClientHandler::perform_http2_upgrade(HttpsUpstream *http)
|
||||||
set_bev_cb(upstream_http2_connhd_readcb, upstream_writecb, upstream_eventcb);
|
set_bev_cb(upstream_http2_connhd_readcb, upstream_writecb, upstream_eventcb);
|
||||||
static char res[] = "HTTP/1.1 101 Switching Protocols\r\n"
|
static char res[] = "HTTP/1.1 101 Switching Protocols\r\n"
|
||||||
"Connection: Upgrade\r\n"
|
"Connection: Upgrade\r\n"
|
||||||
"Upgrade: " NGHTTP2_PROTO_VERSION_ID "\r\n"
|
"Upgrade: " NGHTTP2_CLEARTEXT_PROTO_VERSION_ID "\r\n"
|
||||||
"\r\n";
|
"\r\n";
|
||||||
rv = bufferevent_write(bev_, res, sizeof(res) - 1);
|
rv = bufferevent_write(bev_, res, sizeof(res) - 1);
|
||||||
if(rv != 0) {
|
if(rv != 0) {
|
||||||
|
|
|
@ -734,10 +734,12 @@ bool Downstream::http2_upgrade_request() const
|
||||||
bool upgrade_seen = false;
|
bool upgrade_seen = false;
|
||||||
bool http2_settings_seen = false;
|
bool http2_settings_seen = false;
|
||||||
for(auto& hd : request_headers_) {
|
for(auto& hd : request_headers_) {
|
||||||
// For now just check NGHTTP2_PROTO_VERSION_ID in Upgrade header
|
// For now just check NGHTTP2_CLEARTEXT_PROTO_VERSION_ID in
|
||||||
// field and existence of HTTP2-Settings header field.
|
// Upgrade header field and existence of HTTP2-Settings header
|
||||||
|
// field.
|
||||||
if(util::strieq(hd.first.c_str(), "upgrade")) {
|
if(util::strieq(hd.first.c_str(), "upgrade")) {
|
||||||
if(util::strieq(hd.second.c_str(), NGHTTP2_PROTO_VERSION_ID)) {
|
if(util::strieq(hd.second.c_str(),
|
||||||
|
NGHTTP2_CLEARTEXT_PROTO_VERSION_ID)) {
|
||||||
upgrade_seen = true;
|
upgrade_seen = true;
|
||||||
}
|
}
|
||||||
} else if(util::strieq(hd.first.c_str(), "http2-settings")) {
|
} else if(util::strieq(hd.first.c_str(), "http2-settings")) {
|
||||||
|
|
Loading…
Reference in New Issue