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

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

Issue 1640343002: relnote: moves ProcessPacketInterface from quic_dispatcher.h to (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed usage of net/tools/quic/quic_packet_reader.h from quic_client.h Created 4 years, 11 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 | « net/tools/quic/quic_client.h ('k') | net/tools/quic/quic_dispatcher.h » ('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 11 matching lines...) Expand all
22 #include "net/quic/quic_protocol.h" 22 #include "net/quic/quic_protocol.h"
23 #include "net/quic/quic_server_id.h" 23 #include "net/quic/quic_server_id.h"
24 #include "net/tools/quic/quic_epoll_connection_helper.h" 24 #include "net/tools/quic/quic_epoll_connection_helper.h"
25 #include "net/tools/quic/quic_socket_utils.h" 25 #include "net/tools/quic/quic_socket_utils.h"
26 #include "net/tools/quic/spdy_balsa_utils.h" 26 #include "net/tools/quic/spdy_balsa_utils.h"
27 27
28 #ifndef SO_RXQ_OVFL 28 #ifndef SO_RXQ_OVFL
29 #define SO_RXQ_OVFL 40 29 #define SO_RXQ_OVFL 40
30 #endif 30 #endif
31 31
32 // TODO(rtenneti): Add support for MMSG_MORE.
33 #define MMSG_MORE 0
34
32 using std::string; 35 using std::string;
33 using std::vector; 36 using std::vector;
34 37
35 namespace net { 38 namespace net {
36 namespace tools { 39 namespace tools {
37 40
38 const int kEpollFlags = EPOLLIN | EPOLLOUT | EPOLLET; 41 const int kEpollFlags = EPOLLIN | EPOLLOUT | EPOLLET;
39 42
40 void QuicClient::ClientQuicDataToResend::Resend() { 43 void QuicClient::ClientQuicDataToResend::Resend() {
41 client_->SendRequest(*headers_, body_, fin_); 44 client_->SendRequest(*headers_, body_, fin_);
(...skipping 24 matching lines...) Expand all
66 config, 69 config,
67 new QuicEpollConnectionHelper(epoll_server), 70 new QuicEpollConnectionHelper(epoll_server),
68 proof_verifier), 71 proof_verifier),
69 server_address_(server_address), 72 server_address_(server_address),
70 local_port_(0), 73 local_port_(0),
71 epoll_server_(epoll_server), 74 epoll_server_(epoll_server),
72 initialized_(false), 75 initialized_(false),
73 packets_dropped_(0), 76 packets_dropped_(0),
74 overflow_supported_(false), 77 overflow_supported_(false),
75 store_response_(false), 78 store_response_(false),
76 latest_response_code_(-1) {} 79 latest_response_code_(-1),
80 packet_reader_(CreateQuicPacketReader()) {}
77 81
78 QuicClient::~QuicClient() { 82 QuicClient::~QuicClient() {
79 if (connected()) { 83 if (connected()) {
80 session()->connection()->SendConnectionCloseWithDetails( 84 session()->connection()->SendConnectionCloseWithDetails(
81 QUIC_PEER_GOING_AWAY, "Client being torn down"); 85 QUIC_PEER_GOING_AWAY, "Client being torn down");
82 } 86 }
83 87
84 STLDeleteElements(&data_to_resend_on_connect_); 88 STLDeleteElements(&data_to_resend_on_connect_);
85 STLDeleteElements(&data_sent_before_handshake_); 89 STLDeleteElements(&data_sent_before_handshake_);
86 90
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 set_writer(writer); 389 set_writer(writer);
386 session()->connection()->SetQuicPacketWriter(writer, false); 390 session()->connection()->SetQuicPacketWriter(writer, false);
387 391
388 return true; 392 return true;
389 } 393 }
390 394
391 void QuicClient::OnEvent(int fd, EpollEvent* event) { 395 void QuicClient::OnEvent(int fd, EpollEvent* event) {
392 DCHECK_EQ(fd, GetLatestFD()); 396 DCHECK_EQ(fd, GetLatestFD());
393 397
394 if (event->in_events & EPOLLIN) { 398 if (event->in_events & EPOLLIN) {
395 while (connected() && ReadAndProcessPacket()) { 399 while (connected()) {
400 if (
401 #if MMSG_MORE
402 !ReadAndProcessPackets()
403 #else
404 !ReadAndProcessPacket()
405 #endif
406 ) {
407 break;
408 }
396 } 409 }
397 } 410 }
398 if (connected() && (event->in_events & EPOLLOUT)) { 411 if (connected() && (event->in_events & EPOLLOUT)) {
399 writer()->SetWritable(); 412 writer()->SetWritable();
400 session()->connection()->OnCanWrite(); 413 session()->connection()->OnCanWrite();
401 } 414 }
402 if (event->in_events & EPOLLERR) { 415 if (event->in_events & EPOLLERR) {
403 DVLOG(1) << "Epollerr"; 416 DVLOG(1) << "Epollerr";
404 } 417 }
405 } 418 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 456
444 const string& QuicClient::latest_response_trailers() const { 457 const string& QuicClient::latest_response_trailers() const {
445 QUIC_BUG_IF(!store_response_) << "Response not stored!"; 458 QUIC_BUG_IF(!store_response_) << "Response not stored!";
446 return latest_response_trailers_; 459 return latest_response_trailers_;
447 } 460 }
448 461
449 QuicPacketWriter* QuicClient::CreateQuicPacketWriter() { 462 QuicPacketWriter* QuicClient::CreateQuicPacketWriter() {
450 return new QuicDefaultPacketWriter(GetLatestFD()); 463 return new QuicDefaultPacketWriter(GetLatestFD());
451 } 464 }
452 465
466 QuicPacketReader* QuicClient::CreateQuicPacketReader() {
467 // TODO(rtenneti): Add support for QuicPacketReader.
468 // return new QuicPacketReader();
469 return nullptr;
470 }
471
453 int QuicClient::ReadPacket(char* buffer, 472 int QuicClient::ReadPacket(char* buffer,
454 int buffer_len, 473 int buffer_len,
455 IPEndPoint* server_address, 474 IPEndPoint* server_address,
456 IPAddressNumber* client_ip) { 475 IPAddressNumber* client_ip) {
457 return QuicSocketUtils::ReadPacket( 476 return QuicSocketUtils::ReadPacket(
458 GetLatestFD(), buffer, buffer_len, 477 GetLatestFD(), buffer, buffer_len,
459 overflow_supported_ ? &packets_dropped_ : nullptr, client_ip, 478 overflow_supported_ ? &packets_dropped_ : nullptr, client_ip,
460 server_address); 479 server_address);
461 } 480 }
462 481
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 } 520 }
502 521
503 int QuicClient::GetLatestFD() const { 522 int QuicClient::GetLatestFD() const {
504 if (fd_address_map_.empty()) { 523 if (fd_address_map_.empty()) {
505 return -1; 524 return -1;
506 } 525 }
507 526
508 return fd_address_map_.back().first; 527 return fd_address_map_.back().first;
509 } 528 }
510 529
530 void QuicClient::ProcessPacket(const IPEndPoint& self_address,
531 const IPEndPoint& peer_address,
532 const QuicEncryptedPacket& packet) {
533 session()->connection()->ProcessUdpPacket(self_address, peer_address, packet);
534 }
535
511 } // namespace tools 536 } // namespace tools
512 } // namespace net 537 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/quic_client.h ('k') | net/tools/quic/quic_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698