diff options
author | bnc <bnc@chromium.org> | 2015-10-16 04:57:21 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-10-16 11:57:59 +0000 |
commit | 44858c8a031fc46bb4ba11c94fee9869db3b66f1 (patch) | |
tree | 119c805c12d80bbf251204501fa34d8287ac557b /net | |
parent | 3c540d908ba553ac066a2e472619ae415a687bcc (diff) | |
download | chromium_src-44858c8a031fc46bb4ba11c94fee9869db3b66f1.zip chromium_src-44858c8a031fc46bb4ba11c94fee9869db3b66f1.tar.gz chromium_src-44858c8a031fc46bb4ba11c94fee9869db3b66f1.tar.bz2 |
Add quotation marks around probability value in Alternative Services.
Change SpdyAltSvcWireFormat to quote probability value to conform to server
syntax.
This CL lands server change 105446949 by bnc.
BUG=543366
Review URL: https://codereview.chromium.org/1407643005
Cr-Commit-Position: refs/heads/master@{#354496}
Diffstat (limited to 'net')
-rw-r--r-- | net/http/http_network_transaction_unittest.cc | 2 | ||||
-rw-r--r-- | net/quic/quic_network_transaction_unittest.cc | 2 | ||||
-rw-r--r-- | net/spdy/spdy_alt_svc_wire_format.cc | 8 | ||||
-rw-r--r-- | net/spdy/spdy_alt_svc_wire_format_test.cc | 14 | ||||
-rw-r--r-- | net/spdy/spdy_framer_test.cc | 16 |
5 files changed, 23 insertions, 19 deletions
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc index dbf3755..c9014a4 100644 --- a/net/http/http_network_transaction_unittest.cc +++ b/net/http/http_network_transaction_unittest.cc @@ -9586,7 +9586,7 @@ TEST_P(HttpNetworkTransactionTest, HonorMultipleAlternativeServiceHeader) { MockRead("HTTP/1.1 200 OK\r\n"), MockRead("Alt-Svc: "), MockRead(GetAlternateProtocolFromParam()), - MockRead("=\"www.example.com:443\";p=1.0,"), + MockRead("=\"www.example.com:443\";p=\"1.0\","), MockRead("quic=\":1234\"\r\n\r\n"), MockRead("hello world"), MockRead(SYNCHRONOUS, OK), diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc index 9411ccb..d58f2246 100644 --- a/net/quic/quic_network_transaction_unittest.cc +++ b/net/quic/quic_network_transaction_unittest.cc @@ -66,7 +66,7 @@ static const char kQuicAlternateProtocolHttpsHeader[] = static const char kQuicAlternativeServiceHttpHeader[] = "Alt-Svc: quic=\":80\"\r\n\r\n"; static const char kQuicAlternativeService50pctHttpHeader[] = - "Alt-Svc: quic=\":80\";p=.5\r\n\r\n"; + "Alt-Svc: quic=\":80\";p=\".5\"\r\n\r\n"; static const char kQuicAlternativeServiceDifferentPortHttpHeader[] = "Alt-Svc: quic=\":137\"\r\n\r\n"; static const char kQuicAlternativeServiceHttpsHeader[] = diff --git a/net/spdy/spdy_alt_svc_wire_format.cc b/net/spdy/spdy_alt_svc_wire_format.cc index fba2dc5..cc68e87 100644 --- a/net/spdy/spdy_alt_svc_wire_format.cc +++ b/net/spdy/spdy_alt_svc_wire_format.cc @@ -147,7 +147,11 @@ bool SpdyAltSvcWireFormat::ParseHeaderFieldValue( return false; } } else if (parameter_name.compare("p") == 0) { - if (!ParseProbability(parameter_value_begin, c, &probability)) { + // Probability value is enclosed in quotation marks. + if (*parameter_value_begin != '"' || *(c - 1) != '"') { + return false; + } + if (!ParseProbability(parameter_value_begin + 1, c - 1, &probability)) { return false; } } @@ -220,7 +224,7 @@ std::string SpdyAltSvcWireFormat::SerializeHeaderFieldValue( base::StringAppendF(&value, "; ma=%d", altsvc.max_age); } if (altsvc.probability != 1.0) { - base::StringAppendF(&value, "; p=%.2f", altsvc.probability); + base::StringAppendF(&value, "; p=\"%.2f\"", altsvc.probability); } } return value; diff --git a/net/spdy/spdy_alt_svc_wire_format_test.cc b/net/spdy/spdy_alt_svc_wire_format_test.cc index 76567e4..6933e7c 100644 --- a/net/spdy/spdy_alt_svc_wire_format_test.cc +++ b/net/spdy/spdy_alt_svc_wire_format_test.cc @@ -88,12 +88,12 @@ void FuzzHeaderFieldValue( } if (i & 1 << 5) { expected_altsvc->probability = 0.33; - header_field_value->append("; P=.33"); + header_field_value->append("; P=\".33\""); } if (i & 1 << 6) { expected_altsvc->probability = 0.0; expected_altsvc->version = 24; - header_field_value->append("; p=0;v=24"); + header_field_value->append("; p=\"0\";v=24"); } if (i & 1 << 7) { expected_altsvc->max_age = 999999999; @@ -101,7 +101,7 @@ void FuzzHeaderFieldValue( } if (i & 1 << 8) { expected_altsvc->probability = 0.0; - header_field_value->append("; P=0."); + header_field_value->append("; P=\"0.\""); } if (i & 1 << 9) { header_field_value->append(";"); @@ -141,7 +141,7 @@ void FuzzAlternativeService(int i, } if (i & 1 << 3) { altsvc->probability = 0.33; - expected_header_field_value->append("; p=0.33"); + expected_header_field_value->append("; p=\"0.33\""); } } @@ -268,9 +268,9 @@ TEST(SpdyAltSvcWireFormatTest, ParseHeaderFieldValueInvalid) { "a=", "a=\"", "a=\"b\"", "a=\":\"", "a=\"c:\"", "a=\"c:foo\"", "a=\"c:42foo\"", "a=\"b:42\"bar", "a=\"b:42\" ; m", "a=\"b:42\" ; min-age", "a=\"b:42\" ; ma", "a=\"b:42\" ; ma=", - "a=\"b:42\" ; ma=ma", "a=\"b:42\" ; ma=123bar", "a=\"b:42\" ; p=-2", - "a=\"b:42\" ; p=..", "a=\"b:42\" ; p=1.05", - "a=\"b:42\" ; v=-3", "a=\"b:42\" ; v=1.2"}; + "a=\"b:42\" ; ma=ma", "a=\"b:42\" ; ma=123bar", "a=\"b:42\" ; p=\"-2\"", + "a=\"b:42\" ; p=\"..\"", "a=\"b:42\" ; p=\"1.05\"", "a=\"b:42\" ; p=0.4", + "a=\"b:42\" ; p=\" 1.0\"", "a=\"b:42\" ; v=-3", "a=\"b:42\" ; v=1.2"}; for (const char* invalid_field_value : invalid_field_value_array) { EXPECT_FALSE(SpdyAltSvcWireFormat::ParseHeaderFieldValue( invalid_field_value, &altsvc_vector)) diff --git a/net/spdy/spdy_framer_test.cc b/net/spdy/spdy_framer_test.cc index e593862..e7e719b 100644 --- a/net/spdy/spdy_framer_test.cc +++ b/net/spdy/spdy_framer_test.cc @@ -3532,14 +3532,14 @@ TEST_P(SpdyFramerTest, CreateAltSvc) { const char kType = static_cast<unsigned char>( SpdyConstants::SerializeFrameType(spdy_version_, ALTSVC)); const unsigned char kFrameData[] = { - 0x00, 0x00, 0x4f, kType, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, - 'o', 'r', 'i', 'g', 'i', 'n', 'p', 'i', 'd', '1', '=', - '"', 'h', 'o', 's', 't', ':', '4', '4', '3', '"', ';', - ' ', 'm', 'a', '=', '5', ',', 'p', '%', '2', '2', '%', - '3', 'D', 'i', '%', '3', 'A', 'd', '=', '"', 'h', '_', - '\\', '\\', 'o', '\\', '"', 's', 't', ':', '1', '2', '3', - '"', ';', ' ', 'v', '=', '2', '4', ';', ' ', 'm', 'a', - '=', '4', '2', ';', ' ', 'p', '=', '0', '.', '2', '0'}; + 0x00, 0x00, 0x51, kType, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, 'o', + 'r', 'i', 'g', 'i', 'n', 'p', 'i', 'd', '1', '=', '"', 'h', + 'o', 's', 't', ':', '4', '4', '3', '"', ';', ' ', 'm', 'a', + '=', '5', ',', 'p', '%', '2', '2', '%', '3', 'D', 'i', '%', + '3', 'A', 'd', '=', '"', 'h', '_', '\\', '\\', 'o', '\\', '"', + 's', 't', ':', '1', '2', '3', '"', ';', ' ', 'v', '=', '2', + '4', ';', ' ', 'm', 'a', '=', '4', '2', ';', ' ', 'p', '=', + '"', '0', '.', '2', '0', '"'}; SpdyAltSvcIR altsvc_ir(3); altsvc_ir.set_origin("origin"); altsvc_ir.add_altsvc( |