Lines Matching refs:nv
89 static int check_pseudo_header(nghttp2_stream *stream, const nghttp2_hd_nv *nv, in check_pseudo_header() argument
95 if (lws(nv->value->base, nv->value->len)) { in check_pseudo_header()
122 static int http_request_on_header(nghttp2_stream *stream, nghttp2_hd_nv *nv, in http_request_on_header() argument
125 if (nv->name->base[0] == ':') { in http_request_on_header()
132 switch (nv->token) { in http_request_on_header()
134 if (!check_pseudo_header(stream, nv, NGHTTP2_HTTP_FLAG__AUTHORITY)) { in http_request_on_header()
139 if (!check_pseudo_header(stream, nv, NGHTTP2_HTTP_FLAG__METHOD)) { in http_request_on_header()
142 switch (nv->value->len) { in http_request_on_header()
144 if (lstreq("HEAD", nv->value->base, nv->value->len)) { in http_request_on_header()
149 switch (nv->value->base[6]) { in http_request_on_header()
151 if (lstreq("CONNECT", nv->value->base, nv->value->len)) { in http_request_on_header()
164 if (lstreq("OPTIONS", nv->value->base, nv->value->len)) { in http_request_on_header()
176 if (!check_pseudo_header(stream, nv, NGHTTP2_HTTP_FLAG__PATH)) { in http_request_on_header()
179 if (nv->value->base[0] == '/') { in http_request_on_header()
181 } else if (nv->value->len == 1 && nv->value->base[0] == '*') { in http_request_on_header()
189 if (!check_pseudo_header(stream, nv, NGHTTP2_HTTP_FLAG__SCHEME)) { in http_request_on_header()
192 if ((nv->value->len == 4 && memieq("http", nv->value->base, 4)) || in http_request_on_header()
193 (nv->value->len == 5 && memieq("https", nv->value->base, 5))) { in http_request_on_header()
198 if (!check_pseudo_header(stream, nv, NGHTTP2_HTTP_FLAG_HOST)) { in http_request_on_header()
208 parse_uint(nv->value->base, nv->value->len); in http_request_on_header()
222 if (!lstrieq("trailers", nv->value->base, nv->value->len)) { in http_request_on_header()
227 if (nv->name->base[0] == ':') { in http_request_on_header()
232 if (nv->name->base[0] != ':') { in http_request_on_header()
239 static int http_response_on_header(nghttp2_stream *stream, nghttp2_hd_nv *nv, in http_response_on_header() argument
242 if (nv->name->base[0] == ':') { in http_response_on_header()
249 switch (nv->token) { in http_response_on_header()
252 if (!check_pseudo_header(stream, nv, NGHTTP2_HTTP_FLAG__STATUS)) { in http_response_on_header()
255 if (nv->value->len != 3) { in http_response_on_header()
259 (int16_t)parse_uint(nv->value->base, nv->value->len); in http_response_on_header()
275 if (!lstrieq("0", nv->value->base, nv->value->len)) { in http_response_on_header()
290 parse_uint(nv->value->base, nv->value->len); in http_response_on_header()
304 if (!lstrieq("trailers", nv->value->base, nv->value->len)) { in http_response_on_header()
309 if (nv->name->base[0] == ':') { in http_response_on_header()
314 if (nv->name->base[0] != ':') { in http_response_on_header()
427 nghttp2_frame *frame, nghttp2_hd_nv *nv, int trailer) in nghttp2_http_on_header() argument
438 if (!nghttp2_check_header_name(nv->name->base, nv->name->len)) { in nghttp2_http_on_header()
440 if (nv->name->len > 0 && nv->name->base[0] == ':') { in nghttp2_http_on_header()
444 for (i = 0; i < nv->name->len; ++i) { in nghttp2_http_on_header()
445 uint8_t c = nv->name->base[i]; in nghttp2_http_on_header()
457 if (nv->token == NGHTTP2_TOKEN__AUTHORITY || in nghttp2_http_on_header()
458 nv->token == NGHTTP2_TOKEN_HOST) { in nghttp2_http_on_header()
459 rv = check_authority(nv->value->base, nv->value->len); in nghttp2_http_on_header()
460 } else if (nv->token == NGHTTP2_TOKEN__SCHEME) { in nghttp2_http_on_header()
461 rv = check_scheme(nv->value->base, nv->value->len); in nghttp2_http_on_header()
463 rv = nghttp2_check_header_value(nv->value->base, nv->value->len); in nghttp2_http_on_header()
467 assert(nv->name->len > 0); in nghttp2_http_on_header()
468 if (nv->name->base[0] == ':') { in nghttp2_http_on_header()
479 return http_request_on_header(stream, nv, trailer); in nghttp2_http_on_header()
482 return http_response_on_header(stream, nv, trailer); in nghttp2_http_on_header()
606 const nghttp2_nv *nv = &nva[i]; in nghttp2_http_record_request_method() local
607 if (!(nv->namelen == 7 && nv->name[6] == 'd' && in nghttp2_http_record_request_method()
608 memcmp(":metho", nv->name, nv->namelen - 1) == 0)) { in nghttp2_http_record_request_method()
611 if (lstreq("CONNECT", nv->value, nv->valuelen)) { in nghttp2_http_record_request_method()
615 if (lstreq("HEAD", nv->value, nv->valuelen)) { in nghttp2_http_record_request_method()