src: Rename LinkHeader.url as LinkHeader.uri
This commit is contained in:
parent
7aff00496a
commit
9e723b6b1d
|
@ -876,7 +876,7 @@ std::vector<LinkHeader> parse_link_header(const char *src, size_t len) {
|
||||||
for (; first != last;) {
|
for (; first != last;) {
|
||||||
auto rv = parse_next_link_header_once(first, last);
|
auto rv = parse_next_link_header_once(first, last);
|
||||||
first = rv.second;
|
first = rv.second;
|
||||||
if (rv.first.url.first != 0 || rv.first.url.second != 0) {
|
if (rv.first.uri.first != 0 || rv.first.uri.second != 0) {
|
||||||
res.push_back(rv.first);
|
res.push_back(rv.first);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -258,7 +258,8 @@ const Headers::value_type *get_header(const HeaderIndex &hdidx, int16_t token,
|
||||||
const Headers &nva);
|
const Headers &nva);
|
||||||
|
|
||||||
struct LinkHeader {
|
struct LinkHeader {
|
||||||
std::pair<const char *, const char *> url;
|
// The region of URI is [uri.first, uri.second).
|
||||||
|
std::pair<const char *, const char *> uri;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Returns next URI-reference in Link header field value |src| of
|
// Returns next URI-reference in Link header field value |src| of
|
||||||
|
|
|
@ -309,21 +309,21 @@ void test_http2_parse_link_header(void) {
|
||||||
const char s[] = "<url>; rel=preload";
|
const char s[] = "<url>; rel=preload";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// With extra link-param. URI url should be extracted
|
// With extra link-param. URI url should be extracted
|
||||||
const char s[] = "<url>; rel=preload; as=file";
|
const char s[] = "<url>; rel=preload; as=file";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// With extra link-param. URI url should be extracted
|
// With extra link-param. URI url should be extracted
|
||||||
const char s[] = "<url>; as=file; rel=preload";
|
const char s[] = "<url>; as=file; rel=preload";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// With extra link-param and quote-string. URI url should be
|
// With extra link-param and quote-string. URI url should be
|
||||||
|
@ -331,7 +331,7 @@ void test_http2_parse_link_header(void) {
|
||||||
const char s[] = R"(<url>; rel=preload; title="foo,bar")";
|
const char s[] = R"(<url>; rel=preload; title="foo,bar")";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// With extra link-param and quote-string. URI url should be
|
// With extra link-param and quote-string. URI url should be
|
||||||
|
@ -339,36 +339,36 @@ void test_http2_parse_link_header(void) {
|
||||||
const char s[] = R"(<url>; title="foo,bar"; rel=preload)";
|
const char s[] = R"(<url>; title="foo,bar"; rel=preload)";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// ',' after quote-string
|
// ',' after quote-string
|
||||||
const char s[] = R"(<url>; title="foo,bar", <url>; rel=preload)";
|
const char s[] = R"(<url>; title="foo,bar", <url>; rel=preload)";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[25], &s[28]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[25], &s[28]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Only first URI should be extracted.
|
// Only first URI should be extracted.
|
||||||
const char s[] = "<url>; rel=preload, <url>";
|
const char s[] = "<url>; rel=preload, <url>";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Both have rel=preload, so both urls should be extracted
|
// Both have rel=preload, so both urls should be extracted
|
||||||
const char s[] = "<url>; rel=preload, <url>; rel=preload";
|
const char s[] = "<url>; rel=preload, <url>; rel=preload";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(2 == res.size());
|
CU_ASSERT(2 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].uri);
|
||||||
CU_ASSERT(std::make_pair(&s[21], &s[24]) == res[1].url);
|
CU_ASSERT(std::make_pair(&s[21], &s[24]) == res[1].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Second URI uri should be extracted.
|
// Second URI uri should be extracted.
|
||||||
const char s[] = "<url>, <url>;rel=preload";
|
const char s[] = "<url>, <url>;rel=preload";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[8], &s[11]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[8], &s[11]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Error if input ends with ';'
|
// Error if input ends with ';'
|
||||||
|
@ -381,14 +381,14 @@ void test_http2_parse_link_header(void) {
|
||||||
const char s[] = "<url>;rel=preload,";
|
const char s[] = "<url>;rel=preload,";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Multiple repeated ','s between fields is OK
|
// Multiple repeated ','s between fields is OK
|
||||||
const char s[] = "<url>,,,<url>;rel=preload";
|
const char s[] = "<url>,,,<url>;rel=preload";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[9], &s[12]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[9], &s[12]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Error if url is not enclosed by <>
|
// Error if url is not enclosed by <>
|
||||||
|
@ -431,22 +431,22 @@ void test_http2_parse_link_header(void) {
|
||||||
const char s[] = "<url>;as=file;rel=preload,<url>;rel=preload";
|
const char s[] = "<url>;as=file;rel=preload,<url>;rel=preload";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(2 == res.size());
|
CU_ASSERT(2 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].uri);
|
||||||
CU_ASSERT(std::make_pair(&s[27], &s[30]) == res[1].url);
|
CU_ASSERT(std::make_pair(&s[27], &s[30]) == res[1].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// link-extension may have no value
|
// link-extension may have no value
|
||||||
const char s[] = "<url>; as; rel=preload";
|
const char s[] = "<url>; as; rel=preload";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// ext-name-star
|
// ext-name-star
|
||||||
const char s[] = "<url>; foo*=bar; rel=preload";
|
const char s[] = "<url>; foo*=bar; rel=preload";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[1], &s[4]) == res[0].uri);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// '*' is not allowed expect for trailing one
|
// '*' is not allowed expect for trailing one
|
||||||
|
@ -477,7 +477,7 @@ void test_http2_parse_link_header(void) {
|
||||||
const char s[] = " <url>; rel=preload";
|
const char s[] = " <url>; rel=preload";
|
||||||
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
auto res = http2::parse_link_header(s, sizeof(s) - 1);
|
||||||
CU_ASSERT(1 == res.size());
|
CU_ASSERT(1 == res.size());
|
||||||
CU_ASSERT(std::make_pair(&s[3], &s[6]) == res[0].url);
|
CU_ASSERT(std::make_pair(&s[3], &s[6]) == res[0].uri);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1538,8 +1538,8 @@ int Http2Upstream::prepare_push_promise(Downstream *downstream) {
|
||||||
}
|
}
|
||||||
for (auto &link :
|
for (auto &link :
|
||||||
http2::parse_link_header(kv.value.c_str(), kv.value.size())) {
|
http2::parse_link_header(kv.value.c_str(), kv.value.size())) {
|
||||||
auto link_url = link.url.first;
|
auto link_url = link.uri.first;
|
||||||
auto link_urllen = link.url.second - link.url.first;
|
auto link_urllen = link.uri.second - link.uri.first;
|
||||||
|
|
||||||
const char *rel;
|
const char *rel;
|
||||||
size_t rellen;
|
size_t rellen;
|
||||||
|
|
Loading…
Reference in New Issue