Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(419)

Side by Side Diff: net/tools/quic/quic_client_bin.cc

Issue 569353003: Increase flow control receive window of quic_client_bin.cc, by adding a (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@Call_QuicSentPacketManager_OnPacketSerialized_75340764
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // A binary wrapper for QuicClient. 5 // A binary wrapper for QuicClient.
6 // Connects to a host using QUIC, and sends requests to the provided URLS. 6 // Connects to a host using QUIC, and sends requests to the provided URLS.
7 // 7 //
8 // Example usage: 8 // Example usage:
9 // quic_client --address=127.0.0.1 --port=6122 --hostname=www.google.com 9 // quic_client --address=127.0.0.1 --port=6122 --hostname=www.google.com
10 // http://www.google.com/index.html http://www.google.com/favicon.ico 10 // http://www.google.com/index.html http://www.google.com/favicon.ico
(...skipping 14 matching lines...) Expand all
25 std::string FLAGS_address = "127.0.0.1"; 25 std::string FLAGS_address = "127.0.0.1";
26 // The IP or hostname the quic client will connect to. 26 // The IP or hostname the quic client will connect to.
27 std::string FLAGS_hostname = "localhost"; 27 std::string FLAGS_hostname = "localhost";
28 // The port the quic client will connect to. 28 // The port the quic client will connect to.
29 int32 FLAGS_port = 6121; 29 int32 FLAGS_port = 6121;
30 // Check the certificates using proof verifier. 30 // Check the certificates using proof verifier.
31 bool FLAGS_secure = false; 31 bool FLAGS_secure = false;
32 // QUIC version to speak, e.g. 21. Default value of 0 means 'use the latest 32 // QUIC version to speak, e.g. 21. Default value of 0 means 'use the latest
33 // version'. 33 // version'.
34 int32 FLAGS_quic_version = 0; 34 int32 FLAGS_quic_version = 0;
35 // Size of flow control receive window to advertize to the peer.
36 int32 FLAGS_flow_control_window_bytes = 10 * 1024 * 1024; // 10 Mb
35 37
36 int main(int argc, char *argv[]) { 38 int main(int argc, char *argv[]) {
37 base::CommandLine::Init(argc, argv); 39 base::CommandLine::Init(argc, argv);
38 base::CommandLine* line = base::CommandLine::ForCurrentProcess(); 40 base::CommandLine* line = base::CommandLine::ForCurrentProcess();
39 const base::CommandLine::StringVector& urls = line->GetArgs(); 41 const base::CommandLine::StringVector& urls = line->GetArgs();
40 42
41 logging::LoggingSettings settings; 43 logging::LoggingSettings settings;
42 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; 44 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG;
43 CHECK(logging::InitLogging(settings)); 45 CHECK(logging::InitLogging(settings));
44 46
45 if (line->HasSwitch("h") || line->HasSwitch("help") || urls.empty()) { 47 if (line->HasSwitch("h") || line->HasSwitch("help") || urls.empty()) {
46 const char* help_str = 48 const char* help_str =
47 "Usage: quic_client [options] <url> ...\n" 49 "Usage: quic_client [options] <url> ...\n"
48 "\n" 50 "\n"
49 "At least one <url> with scheme must be provided " 51 "At least one <url> with scheme must be provided "
50 "(e.g. http://www.google.com/)\n\n" 52 "(e.g. http://www.google.com/)\n\n"
51 "Options:\n" 53 "Options:\n"
52 "-h, --help show this help message and exit\n" 54 "-h, --help show this help message and exit\n"
53 "--port=<port> specify the port to connect to\n" 55 "--port=<port> specify the port to connect to\n"
54 "--address=<address> specify the IP address to connect to\n" 56 "--address=<address> specify the IP address to connect to\n"
55 "--host=<host> specify the SNI hostname to use\n" 57 "--host=<host> specify the SNI hostname to use\n"
56 "--secure check certificates\n" 58 "--secure check certificates\n"
57 "--quic-version=<quic version> specify QUIC version to speak\n"; 59 "--quic-version=<quic version> specify QUIC version to speak\n"
60 "--flow-control-window-bytes=<bytes> specify size of flow control "
61 "receive window to advertize to the peer\n";
58 std::cout << help_str; 62 std::cout << help_str;
59 exit(0); 63 exit(0);
60 } 64 }
61 if (line->HasSwitch("port")) { 65 if (line->HasSwitch("port")) {
62 int port; 66 int port;
63 if (base::StringToInt(line->GetSwitchValueASCII("port"), &port)) { 67 if (base::StringToInt(line->GetSwitchValueASCII("port"), &port)) {
64 FLAGS_port = port; 68 FLAGS_port = port;
65 } 69 }
66 } 70 }
67 if (line->HasSwitch("address")) { 71 if (line->HasSwitch("address")) {
68 FLAGS_address = line->GetSwitchValueASCII("address"); 72 FLAGS_address = line->GetSwitchValueASCII("address");
69 } 73 }
70 if (line->HasSwitch("hostname")) { 74 if (line->HasSwitch("hostname")) {
71 FLAGS_hostname = line->GetSwitchValueASCII("hostname"); 75 FLAGS_hostname = line->GetSwitchValueASCII("hostname");
72 } 76 }
73 if (line->HasSwitch("secure")) { 77 if (line->HasSwitch("secure")) {
74 FLAGS_secure = true; 78 FLAGS_secure = true;
75 } 79 }
76 if (line->HasSwitch("quic-version")) { 80 if (line->HasSwitch("quic-version")) {
77 int quic_version; 81 int quic_version;
78 if (base::StringToInt(line->GetSwitchValueASCII("quic-version"), 82 if (base::StringToInt(line->GetSwitchValueASCII("quic-version"),
79 &quic_version)) { 83 &quic_version)) {
80 FLAGS_quic_version = quic_version; 84 FLAGS_quic_version = quic_version;
81 } 85 }
82 } 86 }
87 if (line->HasSwitch("flow-control-window-bytes")) {
88 int flow_control_window_bytes;
89 if (base::StringToInt(
90 line->GetSwitchValueASCII("flow-control-window-bytes"),
91 &flow_control_window_bytes)) {
92 FLAGS_flow_control_window_bytes = flow_control_window_bytes;
93 }
94 }
83 VLOG(1) << "server port: " << FLAGS_port 95 VLOG(1) << "server port: " << FLAGS_port
84 << " address: " << FLAGS_address 96 << " address: " << FLAGS_address
85 << " hostname: " << FLAGS_hostname 97 << " hostname: " << FLAGS_hostname
86 << " secure: " << FLAGS_secure 98 << " secure: " << FLAGS_secure
87 << " quic-version: " << FLAGS_quic_version; 99 << " quic-version: " << FLAGS_quic_version;
88 100
89 base::AtExitManager exit_manager; 101 base::AtExitManager exit_manager;
90 102
91 // Determine IP address to connect to from supplied hostname. 103 // Determine IP address to connect to from supplied hostname.
92 net::IPAddressNumber addr; 104 net::IPAddressNumber addr;
93 CHECK(net::ParseIPLiteralToNumber(FLAGS_address, &addr)); 105 CHECK(net::ParseIPLiteralToNumber(FLAGS_address, &addr));
94 106
95 // Populate version vector with all versions if none specified. 107 // Populate version vector with all versions if none specified.
96 net::QuicVersionVector versions; 108 net::QuicVersionVector versions;
97 if (FLAGS_quic_version == 0) { 109 if (FLAGS_quic_version == 0) {
98 versions = net::QuicSupportedVersions(); 110 versions = net::QuicSupportedVersions();
99 } else { 111 } else {
100 versions.push_back(static_cast<net::QuicVersion>(FLAGS_quic_version)); 112 versions.push_back(static_cast<net::QuicVersion>(FLAGS_quic_version));
101 } 113 }
102 114
103 // Build the client, and try to connect. 115 // Build the client, and try to connect.
104 VLOG(1) << "Conecting to " << FLAGS_hostname << ":" << FLAGS_port 116 VLOG(1) << "Conecting to " << FLAGS_hostname << ":" << FLAGS_port
105 << " with supported versions " 117 << " with supported versions "
106 << QuicVersionVectorToString(versions); 118 << QuicVersionVectorToString(versions);
107 net::EpollServer epoll_server; 119 net::EpollServer epoll_server;
108 net::QuicConfig config; 120 net::QuicConfig config;
109 config.SetDefaults(); 121 config.SetDefaults();
110 122
123 // The default flow control window of 16 Kb is too small for practical
124 // purposes. Set it to the specified value, which has a large default.
125 config.SetInitialFlowControlWindowToSend(
126 FLAGS_flow_control_window_bytes);
127 config.SetInitialStreamFlowControlWindowToSend(
128 FLAGS_flow_control_window_bytes);
129 config.SetInitialSessionFlowControlWindowToSend(
130 FLAGS_flow_control_window_bytes);
131
111 net::tools::QuicClient client( 132 net::tools::QuicClient client(
112 net::IPEndPoint(addr, FLAGS_port), 133 net::IPEndPoint(addr, FLAGS_port),
113 net::QuicServerId(FLAGS_hostname, FLAGS_port, FLAGS_secure, 134 net::QuicServerId(FLAGS_hostname, FLAGS_port, FLAGS_secure,
114 net::PRIVACY_MODE_DISABLED), 135 net::PRIVACY_MODE_DISABLED),
115 versions, true, config, &epoll_server); 136 versions, true, config, &epoll_server);
116 137
117 client.Initialize(); 138 client.Initialize();
118 139
119 if (!client.Connect()) { 140 if (!client.Connect()) {
120 LOG(ERROR) << "Client failed to connect to host: " 141 LOG(ERROR) << "Client failed to connect to host: "
121 << FLAGS_hostname << ":" << FLAGS_port; 142 << FLAGS_hostname << ":" << FLAGS_port;
122 return 1; 143 return 1;
123 } 144 }
124 145
125 // Send a GET request for each supplied url. 146 // Send a GET request for each supplied url.
126 client.SendRequestsAndWaitForResponse(urls); 147 client.SendRequestsAndWaitForResponse(urls);
127 return 0; 148 return 0;
128 } 149 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698