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

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

Issue 25043005: Add better help information to quic_client and quic_server. Also, (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix comment Created 7 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « net/tools/quic/quic_client.h ('k') | net/tools/quic/quic_client_bin.cc » ('j') | 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 #include "net/tools/quic/quic_client.h" 5 #include "net/tools/quic/quic_client.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <netinet/in.h> 8 #include <netinet/in.h>
9 #include <string.h> 9 #include <string.h>
10 #include <sys/epoll.h> 10 #include <sys/epoll.h>
(...skipping 14 matching lines...) Expand all
25 #define SO_RXQ_OVFL 40 25 #define SO_RXQ_OVFL 40
26 #endif 26 #endif
27 27
28 namespace net { 28 namespace net {
29 namespace tools { 29 namespace tools {
30 30
31 const int kEpollFlags = EPOLLIN | EPOLLOUT | EPOLLET; 31 const int kEpollFlags = EPOLLIN | EPOLLOUT | EPOLLET;
32 32
33 QuicClient::QuicClient(IPEndPoint server_address, 33 QuicClient::QuicClient(IPEndPoint server_address,
34 const string& server_hostname, 34 const string& server_hostname,
35 const QuicVersion version) 35 const QuicVersion version,
36 bool print_response)
36 : server_address_(server_address), 37 : server_address_(server_address),
37 server_hostname_(server_hostname), 38 server_hostname_(server_hostname),
38 local_port_(0), 39 local_port_(0),
39 fd_(-1), 40 fd_(-1),
40 initialized_(false), 41 initialized_(false),
41 packets_dropped_(0), 42 packets_dropped_(0),
42 overflow_supported_(false), 43 overflow_supported_(false),
43 version_(version) { 44 version_(version),
45 print_response_(print_response) {
44 config_.SetDefaults(); 46 config_.SetDefaults();
45 } 47 }
46 48
47 QuicClient::QuicClient(IPEndPoint server_address, 49 QuicClient::QuicClient(IPEndPoint server_address,
48 const string& server_hostname, 50 const string& server_hostname,
49 const QuicConfig& config, 51 const QuicConfig& config,
50 const QuicVersion version) 52 const QuicVersion version)
51 : server_address_(server_address), 53 : server_address_(server_address),
52 server_hostname_(server_hostname), 54 server_hostname_(server_hostname),
53 config_(config), 55 config_(config),
54 local_port_(0), 56 local_port_(0),
55 fd_(-1), 57 fd_(-1),
56 initialized_(false), 58 initialized_(false),
57 packets_dropped_(0), 59 packets_dropped_(0),
58 overflow_supported_(false), 60 overflow_supported_(false),
59 version_(version) { 61 version_(version),
62 print_response_(false) {
60 } 63 }
61 64
62 QuicClient::~QuicClient() { 65 QuicClient::~QuicClient() {
63 if (connected()) { 66 if (connected()) {
64 session()->connection()->SendConnectionClosePacket( 67 session()->connection()->SendConnectionClosePacket(
65 QUIC_PEER_GOING_AWAY, ""); 68 QUIC_PEER_GOING_AWAY, "");
66 } 69 }
67 } 70 }
68 71
69 bool QuicClient::Initialize() { 72 bool QuicClient::Initialize() {
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 174
172 session()->connection()->SendConnectionClose(QUIC_PEER_GOING_AWAY); 175 session()->connection()->SendConnectionClose(QUIC_PEER_GOING_AWAY);
173 epoll_server_.UnregisterFD(fd_); 176 epoll_server_.UnregisterFD(fd_);
174 close(fd_); 177 close(fd_);
175 fd_ = -1; 178 fd_ = -1;
176 initialized_ = false; 179 initialized_ = false;
177 } 180 }
178 181
179 void QuicClient::SendRequestsAndWaitForResponse( 182 void QuicClient::SendRequestsAndWaitForResponse(
180 const CommandLine::StringVector& args) { 183 const CommandLine::StringVector& args) {
181 for (uint32_t i = 0; i < args.size(); i++) { 184 for (size_t i = 0; i < args.size(); i++) {
182 BalsaHeaders headers; 185 BalsaHeaders headers;
183 headers.SetRequestFirstlineFromStringPieces("GET", args[i], "HTTP/1.1"); 186 headers.SetRequestFirstlineFromStringPieces("GET", args[i], "HTTP/1.1");
184 CreateReliableClientStream()->SendRequest(headers, "", true); 187 QuicReliableClientStream* stream = CreateReliableClientStream();
188 stream->SendRequest(headers, "", true);
189 stream->set_visitor(this);
185 } 190 }
186 191
187 while (WaitForEvents()) { } 192 while (WaitForEvents()) { }
188 } 193 }
189 194
190 QuicReliableClientStream* QuicClient::CreateReliableClientStream() { 195 QuicReliableClientStream* QuicClient::CreateReliableClientStream() {
191 if (!connected()) { 196 if (!connected()) {
192 return NULL; 197 return NULL;
193 } 198 }
194 199
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 } 231 }
227 } 232 }
228 if (connected() && (event->in_events & EPOLLOUT)) { 233 if (connected() && (event->in_events & EPOLLOUT)) {
229 session_->connection()->OnCanWrite(); 234 session_->connection()->OnCanWrite();
230 } 235 }
231 if (event->in_events & EPOLLERR) { 236 if (event->in_events & EPOLLERR) {
232 DLOG(INFO) << "Epollerr"; 237 DLOG(INFO) << "Epollerr";
233 } 238 }
234 } 239 }
235 240
241 void QuicClient::OnClose(ReliableQuicStream* stream) {
242 if (!print_response_) {
243 return;
244 }
245
246 QuicReliableClientStream* client_stream =
247 static_cast<QuicReliableClientStream*>(stream);
248 const BalsaHeaders& headers = client_stream->headers();
249 printf("%s\n", headers.first_line().as_string().c_str());
250 for (BalsaHeaders::const_header_lines_iterator i =
251 headers.header_lines_begin();
252 i != headers.header_lines_end(); ++i) {
253 printf("%s: %s\n", i->first.as_string().c_str(),
254 i->second.as_string().c_str());
255 }
256 printf("%s\n", client_stream->data().c_str());
257 }
258
236 QuicPacketCreator::Options* QuicClient::options() { 259 QuicPacketCreator::Options* QuicClient::options() {
237 if (session() == NULL) { 260 if (session() == NULL) {
238 return NULL; 261 return NULL;
239 } 262 }
240 return session_->options(); 263 return session_->options();
241 } 264 }
242 265
243 bool QuicClient::connected() const { 266 bool QuicClient::connected() const {
244 return session_.get() && session_->connection() && 267 return session_.get() && session_->connection() &&
245 session_->connection()->connected(); 268 session_->connection()->connected();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 } 303 }
281 304
282 IPEndPoint client_address(client_ip, client_address_.port()); 305 IPEndPoint client_address(client_ip, client_address_.port());
283 session_->connection()->ProcessUdpPacket( 306 session_->connection()->ProcessUdpPacket(
284 client_address, server_address, packet); 307 client_address, server_address, packet);
285 return true; 308 return true;
286 } 309 }
287 310
288 } // namespace tools 311 } // namespace tools
289 } // namespace net 312 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/quic_client.h ('k') | net/tools/quic/quic_client_bin.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698