| OLD | NEW |
| 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/test_tools/quic_test_client.h" | 5 #include "net/tools/quic/test_tools/quic_test_client.h" |
| 6 | 6 |
| 7 #include "base/time/time.h" | 7 #include "base/time/time.h" |
| 8 #include "net/base/completion_callback.h" | 8 #include "net/base/completion_callback.h" |
| 9 #include "net/base/net_errors.h" | 9 #include "net/base/net_errors.h" |
| 10 #include "net/cert/cert_verify_result.h" | 10 #include "net/cert/cert_verify_result.h" |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 private: | 75 private: |
| 76 string common_name_; | 76 string common_name_; |
| 77 }; | 77 }; |
| 78 | 78 |
| 79 } // anonymous namespace | 79 } // anonymous namespace |
| 80 | 80 |
| 81 BalsaHeaders* MungeHeaders(const BalsaHeaders* const_headers, | 81 BalsaHeaders* MungeHeaders(const BalsaHeaders* const_headers, |
| 82 bool secure) { | 82 bool secure) { |
| 83 StringPiece uri = const_headers->request_uri(); | 83 StringPiece uri = const_headers->request_uri(); |
| 84 if (uri.empty()) { | 84 if (uri.empty()) { |
| 85 return NULL; | 85 return nullptr; |
| 86 } | 86 } |
| 87 if (const_headers->request_method() == "CONNECT") { | 87 if (const_headers->request_method() == "CONNECT") { |
| 88 return NULL; | 88 return nullptr; |
| 89 } | 89 } |
| 90 BalsaHeaders* headers = new BalsaHeaders; | 90 BalsaHeaders* headers = new BalsaHeaders; |
| 91 headers->CopyFrom(*const_headers); | 91 headers->CopyFrom(*const_headers); |
| 92 if (!uri.starts_with("https://") && | 92 if (!uri.starts_with("https://") && |
| 93 !uri.starts_with("http://")) { | 93 !uri.starts_with("http://")) { |
| 94 // If we have a relative URL, set some defaults. | 94 // If we have a relative URL, set some defaults. |
| 95 string full_uri = secure ? "https://www.google.com" : | 95 string full_uri = secure ? "https://www.google.com" : |
| 96 "http://www.google.com"; | 96 "http://www.google.com"; |
| 97 full_uri.append(uri.as_string()); | 97 full_uri.append(uri.as_string()); |
| 98 headers->SetRequestUri(full_uri); | 98 headers->SetRequestUri(full_uri); |
| 99 } | 99 } |
| 100 return headers; | 100 return headers; |
| 101 } | 101 } |
| 102 | 102 |
| 103 MockableQuicClient::MockableQuicClient( | 103 MockableQuicClient::MockableQuicClient( |
| 104 IPEndPoint server_address, | 104 IPEndPoint server_address, |
| 105 const QuicServerId& server_id, | 105 const QuicServerId& server_id, |
| 106 const QuicVersionVector& supported_versions, | 106 const QuicVersionVector& supported_versions, |
| 107 EpollServer* epoll_server) | 107 EpollServer* epoll_server) |
| 108 : QuicClient(server_address, | 108 : QuicClient(server_address, |
| 109 server_id, | 109 server_id, |
| 110 supported_versions, | 110 supported_versions, |
| 111 false, | 111 false, |
| 112 epoll_server), | 112 epoll_server), |
| 113 override_connection_id_(0), | 113 override_connection_id_(0), |
| 114 test_writer_(NULL) {} | 114 test_writer_(nullptr) {} |
| 115 | 115 |
| 116 MockableQuicClient::MockableQuicClient( | 116 MockableQuicClient::MockableQuicClient( |
| 117 IPEndPoint server_address, | 117 IPEndPoint server_address, |
| 118 const QuicServerId& server_id, | 118 const QuicServerId& server_id, |
| 119 const QuicConfig& config, | 119 const QuicConfig& config, |
| 120 const QuicVersionVector& supported_versions, | 120 const QuicVersionVector& supported_versions, |
| 121 EpollServer* epoll_server) | 121 EpollServer* epoll_server) |
| 122 : QuicClient(server_address, | 122 : QuicClient(server_address, |
| 123 server_id, | 123 server_id, |
| 124 supported_versions, | 124 supported_versions, |
| 125 false, | 125 false, |
| 126 config, | 126 config, |
| 127 epoll_server), | 127 epoll_server), |
| 128 override_connection_id_(0), | 128 override_connection_id_(0), |
| 129 test_writer_(NULL) {} | 129 test_writer_(nullptr) {} |
| 130 | 130 |
| 131 MockableQuicClient::~MockableQuicClient() { | 131 MockableQuicClient::~MockableQuicClient() { |
| 132 if (connected()) { | 132 if (connected()) { |
| 133 Disconnect(); | 133 Disconnect(); |
| 134 } | 134 } |
| 135 } | 135 } |
| 136 | 136 |
| 137 QuicPacketWriter* MockableQuicClient::CreateQuicPacketWriter() { | 137 QuicPacketWriter* MockableQuicClient::CreateQuicPacketWriter() { |
| 138 QuicPacketWriter* writer = QuicClient::CreateQuicPacketWriter(); | 138 QuicPacketWriter* writer = QuicClient::CreateQuicPacketWriter(); |
| 139 if (!test_writer_) { | 139 if (!test_writer_) { |
| 140 return writer; | 140 return writer; |
| 141 } | 141 } |
| 142 test_writer_->set_writer(writer); | 142 test_writer_->set_writer(writer); |
| 143 return test_writer_; | 143 return test_writer_; |
| 144 } | 144 } |
| 145 | 145 |
| 146 QuicConnectionId MockableQuicClient::GenerateConnectionId() { | 146 QuicConnectionId MockableQuicClient::GenerateConnectionId() { |
| 147 return override_connection_id_ ? override_connection_id_ | 147 return override_connection_id_ ? override_connection_id_ |
| 148 : QuicClient::GenerateConnectionId(); | 148 : QuicClient::GenerateConnectionId(); |
| 149 } | 149 } |
| 150 | 150 |
| 151 // Takes ownership of writer. | 151 // Takes ownership of writer. |
| 152 void MockableQuicClient::UseWriter(QuicPacketWriterWrapper* writer) { | 152 void MockableQuicClient::UseWriter(QuicPacketWriterWrapper* writer) { |
| 153 CHECK(test_writer_ == NULL); | 153 CHECK(test_writer_ == nullptr); |
| 154 test_writer_ = writer; | 154 test_writer_ = writer; |
| 155 } | 155 } |
| 156 | 156 |
| 157 void MockableQuicClient::UseConnectionId(QuicConnectionId connection_id) { | 157 void MockableQuicClient::UseConnectionId(QuicConnectionId connection_id) { |
| 158 override_connection_id_ = connection_id; | 158 override_connection_id_ = connection_id; |
| 159 } | 159 } |
| 160 | 160 |
| 161 QuicTestClient::QuicTestClient(IPEndPoint server_address, | 161 QuicTestClient::QuicTestClient(IPEndPoint server_address, |
| 162 const string& server_hostname, | 162 const string& server_hostname, |
| 163 const QuicVersionVector& supported_versions) | 163 const QuicVersionVector& supported_versions) |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 supported_versions, | 201 supported_versions, |
| 202 &epoll_server_)) { | 202 &epoll_server_)) { |
| 203 Initialize(secure); | 203 Initialize(secure); |
| 204 } | 204 } |
| 205 | 205 |
| 206 QuicTestClient::QuicTestClient() { | 206 QuicTestClient::QuicTestClient() { |
| 207 } | 207 } |
| 208 | 208 |
| 209 QuicTestClient::~QuicTestClient() { | 209 QuicTestClient::~QuicTestClient() { |
| 210 if (stream_) { | 210 if (stream_) { |
| 211 stream_->set_visitor(NULL); | 211 stream_->set_visitor(nullptr); |
| 212 } | 212 } |
| 213 } | 213 } |
| 214 | 214 |
| 215 void QuicTestClient::Initialize(bool secure) { | 215 void QuicTestClient::Initialize(bool secure) { |
| 216 priority_ = 3; | 216 priority_ = 3; |
| 217 connect_attempted_ = false; | 217 connect_attempted_ = false; |
| 218 secure_ = secure; | 218 secure_ = secure; |
| 219 auto_reconnect_ = false; | 219 auto_reconnect_ = false; |
| 220 buffer_body_ = true; | 220 buffer_body_ = true; |
| 221 fec_policy_ = FEC_PROTECT_OPTIONAL; | 221 fec_policy_ = FEC_PROTECT_OPTIONAL; |
| 222 proof_verifier_ = NULL; | 222 proof_verifier_ = nullptr; |
| 223 ClearPerRequestState(); | 223 ClearPerRequestState(); |
| 224 ExpectCertificates(secure_); | 224 ExpectCertificates(secure_); |
| 225 } | 225 } |
| 226 | 226 |
| 227 void QuicTestClient::ExpectCertificates(bool on) { | 227 void QuicTestClient::ExpectCertificates(bool on) { |
| 228 if (on) { | 228 if (on) { |
| 229 proof_verifier_ = new RecordingProofVerifier; | 229 proof_verifier_ = new RecordingProofVerifier; |
| 230 client_->SetProofVerifier(proof_verifier_); | 230 client_->SetProofVerifier(proof_verifier_); |
| 231 } else { | 231 } else { |
| 232 proof_verifier_ = NULL; | 232 proof_verifier_ = nullptr; |
| 233 client_->SetProofVerifier(NULL); | 233 client_->SetProofVerifier(nullptr); |
| 234 } | 234 } |
| 235 } | 235 } |
| 236 | 236 |
| 237 void QuicTestClient::SetUserAgentID(const string& user_agent_id) { | 237 void QuicTestClient::SetUserAgentID(const string& user_agent_id) { |
| 238 client_->SetUserAgentID(user_agent_id); | 238 client_->SetUserAgentID(user_agent_id); |
| 239 } | 239 } |
| 240 | 240 |
| 241 ssize_t QuicTestClient::SendRequest(const string& uri) { | 241 ssize_t QuicTestClient::SendRequest(const string& uri) { |
| 242 HTTPMessage message(HttpConstants::HTTP_1_1, | 242 HTTPMessage message(HttpConstants::HTTP_1_1, |
| 243 HttpConstants::GET, | 243 HttpConstants::GET, |
| 244 uri); | 244 uri); |
| 245 return SendMessage(message); | 245 return SendMessage(message); |
| 246 } | 246 } |
| 247 | 247 |
| 248 ssize_t QuicTestClient::SendMessage(const HTTPMessage& message) { | 248 ssize_t QuicTestClient::SendMessage(const HTTPMessage& message) { |
| 249 stream_ = NULL; // Always force creation of a stream for SendMessage. | 249 stream_ = nullptr; // Always force creation of a stream for SendMessage. |
| 250 | 250 |
| 251 // If we're not connected, try to find an sni hostname. | 251 // If we're not connected, try to find an sni hostname. |
| 252 if (!connected()) { | 252 if (!connected()) { |
| 253 GURL url(message.headers()->request_uri().as_string()); | 253 GURL url(message.headers()->request_uri().as_string()); |
| 254 if (!url.host().empty()) { | 254 if (!url.host().empty()) { |
| 255 client_->set_server_id( | 255 client_->set_server_id( |
| 256 QuicServerId(url.host(), | 256 QuicServerId(url.host(), |
| 257 url.EffectiveIntPort(), | 257 url.EffectiveIntPort(), |
| 258 url.SchemeIs("https"), | 258 url.SchemeIs("https"), |
| 259 PRIVACY_MODE_DISABLED)); | 259 PRIVACY_MODE_DISABLED)); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 WaitForResponse(); | 324 WaitForResponse(); |
| 325 return response_; | 325 return response_; |
| 326 } | 326 } |
| 327 | 327 |
| 328 QuicSpdyClientStream* QuicTestClient::GetOrCreateStream() { | 328 QuicSpdyClientStream* QuicTestClient::GetOrCreateStream() { |
| 329 if (!connect_attempted_ || auto_reconnect_) { | 329 if (!connect_attempted_ || auto_reconnect_) { |
| 330 if (!connected()) { | 330 if (!connected()) { |
| 331 Connect(); | 331 Connect(); |
| 332 } | 332 } |
| 333 if (!connected()) { | 333 if (!connected()) { |
| 334 return NULL; | 334 return nullptr; |
| 335 } | 335 } |
| 336 } | 336 } |
| 337 if (!stream_) { | 337 if (!stream_) { |
| 338 stream_ = client_->CreateReliableClientStream(); | 338 stream_ = client_->CreateReliableClientStream(); |
| 339 if (stream_ == NULL) { | 339 if (stream_ == nullptr) { |
| 340 return NULL; | 340 return nullptr; |
| 341 } | 341 } |
| 342 stream_->set_visitor(this); | 342 stream_->set_visitor(this); |
| 343 reinterpret_cast<QuicSpdyClientStream*>(stream_)->set_priority(priority_); | 343 reinterpret_cast<QuicSpdyClientStream*>(stream_)->set_priority(priority_); |
| 344 // Set FEC policy on stream. | 344 // Set FEC policy on stream. |
| 345 ReliableQuicStreamPeer::SetFecPolicy(stream_, fec_policy_); | 345 ReliableQuicStreamPeer::SetFecPolicy(stream_, fec_policy_); |
| 346 } | 346 } |
| 347 | 347 |
| 348 return stream_; | 348 return stream_; |
| 349 } | 349 } |
| 350 | 350 |
| 351 QuicErrorCode QuicTestClient::connection_error() { | 351 QuicErrorCode QuicTestClient::connection_error() { |
| 352 return client()->session()->error(); | 352 return client()->session()->error(); |
| 353 } | 353 } |
| 354 | 354 |
| 355 MockableQuicClient* QuicTestClient::client() { return client_.get(); } | 355 MockableQuicClient* QuicTestClient::client() { return client_.get(); } |
| 356 | 356 |
| 357 const string& QuicTestClient::cert_common_name() const { | 357 const string& QuicTestClient::cert_common_name() const { |
| 358 return reinterpret_cast<RecordingProofVerifier*>(proof_verifier_) | 358 return reinterpret_cast<RecordingProofVerifier*>(proof_verifier_) |
| 359 ->common_name(); | 359 ->common_name(); |
| 360 } | 360 } |
| 361 | 361 |
| 362 QuicTagValueMap QuicTestClient::GetServerConfig() const { | 362 QuicTagValueMap QuicTestClient::GetServerConfig() const { |
| 363 QuicCryptoClientConfig* config = | 363 QuicCryptoClientConfig* config = |
| 364 QuicClientPeer::GetCryptoConfig(client_.get()); | 364 QuicClientPeer::GetCryptoConfig(client_.get()); |
| 365 QuicCryptoClientConfig::CachedState* state = | 365 QuicCryptoClientConfig::CachedState* state = |
| 366 config->LookupOrCreate(client_->server_id()); | 366 config->LookupOrCreate(client_->server_id()); |
| 367 const CryptoHandshakeMessage* handshake_msg = state->GetServerConfig(); | 367 const CryptoHandshakeMessage* handshake_msg = state->GetServerConfig(); |
| 368 if (handshake_msg != NULL) { | 368 if (handshake_msg != nullptr) { |
| 369 return handshake_msg->tag_value_map(); | 369 return handshake_msg->tag_value_map(); |
| 370 } else { | 370 } else { |
| 371 return QuicTagValueMap(); | 371 return QuicTagValueMap(); |
| 372 } | 372 } |
| 373 } | 373 } |
| 374 | 374 |
| 375 bool QuicTestClient::connected() const { | 375 bool QuicTestClient::connected() const { |
| 376 return client_->connected(); | 376 return client_->connected(); |
| 377 } | 377 } |
| 378 | 378 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 394 client_->Disconnect(); | 394 client_->Disconnect(); |
| 395 connect_attempted_ = false; | 395 connect_attempted_ = false; |
| 396 } | 396 } |
| 397 | 397 |
| 398 IPEndPoint QuicTestClient::LocalSocketAddress() const { | 398 IPEndPoint QuicTestClient::LocalSocketAddress() const { |
| 399 return client_->client_address(); | 399 return client_->client_address(); |
| 400 } | 400 } |
| 401 | 401 |
| 402 void QuicTestClient::ClearPerRequestState() { | 402 void QuicTestClient::ClearPerRequestState() { |
| 403 stream_error_ = QUIC_STREAM_NO_ERROR; | 403 stream_error_ = QUIC_STREAM_NO_ERROR; |
| 404 stream_ = NULL; | 404 stream_ = nullptr; |
| 405 response_ = ""; | 405 response_ = ""; |
| 406 response_complete_ = false; | 406 response_complete_ = false; |
| 407 response_headers_complete_ = false; | 407 response_headers_complete_ = false; |
| 408 headers_.Clear(); | 408 headers_.Clear(); |
| 409 bytes_read_ = 0; | 409 bytes_read_ = 0; |
| 410 bytes_written_ = 0; | 410 bytes_written_ = 0; |
| 411 response_header_size_ = 0; | 411 response_header_size_ = 0; |
| 412 response_body_size_ = 0; | 412 response_body_size_ = 0; |
| 413 } | 413 } |
| 414 | 414 |
| 415 void QuicTestClient::WaitForResponseForMs(int timeout_ms) { | 415 void QuicTestClient::WaitForResponseForMs(int timeout_ms) { |
| 416 int64 timeout_us = timeout_ms * base::Time::kMicrosecondsPerMillisecond; | 416 int64 timeout_us = timeout_ms * base::Time::kMicrosecondsPerMillisecond; |
| 417 int64 old_timeout_us = epoll_server()->timeout_in_us(); | 417 int64 old_timeout_us = epoll_server()->timeout_in_us(); |
| 418 if (timeout_us > 0) { | 418 if (timeout_us > 0) { |
| 419 epoll_server()->set_timeout_in_us(timeout_us); | 419 epoll_server()->set_timeout_in_us(timeout_us); |
| 420 } | 420 } |
| 421 const QuicClock* clock = | 421 const QuicClock* clock = |
| 422 QuicConnectionPeer::GetHelper(client()->session()->connection())-> | 422 QuicConnectionPeer::GetHelper(client()->session()->connection())-> |
| 423 GetClock(); | 423 GetClock(); |
| 424 QuicTime end_waiting_time = clock->Now().Add( | 424 QuicTime end_waiting_time = clock->Now().Add( |
| 425 QuicTime::Delta::FromMicroseconds(timeout_us)); | 425 QuicTime::Delta::FromMicroseconds(timeout_us)); |
| 426 while (stream_ != NULL && | 426 while (stream_ != nullptr && |
| 427 !client_->session()->IsClosedStream(stream_->id()) && | 427 !client_->session()->IsClosedStream(stream_->id()) && |
| 428 (timeout_us < 0 || clock->Now() < end_waiting_time)) { | 428 (timeout_us < 0 || clock->Now() < end_waiting_time)) { |
| 429 client_->WaitForEvents(); | 429 client_->WaitForEvents(); |
| 430 } | 430 } |
| 431 if (timeout_us > 0) { | 431 if (timeout_us > 0) { |
| 432 epoll_server()->set_timeout_in_us(old_timeout_us); | 432 epoll_server()->set_timeout_in_us(old_timeout_us); |
| 433 } | 433 } |
| 434 } | 434 } |
| 435 | 435 |
| 436 void QuicTestClient::WaitForInitialResponseForMs(int timeout_ms) { | 436 void QuicTestClient::WaitForInitialResponseForMs(int timeout_ms) { |
| 437 int64 timeout_us = timeout_ms * base::Time::kMicrosecondsPerMillisecond; | 437 int64 timeout_us = timeout_ms * base::Time::kMicrosecondsPerMillisecond; |
| 438 int64 old_timeout_us = epoll_server()->timeout_in_us(); | 438 int64 old_timeout_us = epoll_server()->timeout_in_us(); |
| 439 if (timeout_us > 0) { | 439 if (timeout_us > 0) { |
| 440 epoll_server()->set_timeout_in_us(timeout_us); | 440 epoll_server()->set_timeout_in_us(timeout_us); |
| 441 } | 441 } |
| 442 const QuicClock* clock = | 442 const QuicClock* clock = |
| 443 QuicConnectionPeer::GetHelper(client()->session()->connection())-> | 443 QuicConnectionPeer::GetHelper(client()->session()->connection())-> |
| 444 GetClock(); | 444 GetClock(); |
| 445 QuicTime end_waiting_time = clock->Now().Add( | 445 QuicTime end_waiting_time = clock->Now().Add( |
| 446 QuicTime::Delta::FromMicroseconds(timeout_us)); | 446 QuicTime::Delta::FromMicroseconds(timeout_us)); |
| 447 while (stream_ != NULL && | 447 while (stream_ != nullptr && |
| 448 !client_->session()->IsClosedStream(stream_->id()) && | 448 !client_->session()->IsClosedStream(stream_->id()) && |
| 449 stream_->stream_bytes_read() == 0 && | 449 stream_->stream_bytes_read() == 0 && |
| 450 (timeout_us < 0 || clock->Now() < end_waiting_time)) { | 450 (timeout_us < 0 || clock->Now() < end_waiting_time)) { |
| 451 client_->WaitForEvents(); | 451 client_->WaitForEvents(); |
| 452 } | 452 } |
| 453 if (timeout_us > 0) { | 453 if (timeout_us > 0) { |
| 454 epoll_server()->set_timeout_in_us(old_timeout_us); | 454 epoll_server()->set_timeout_in_us(old_timeout_us); |
| 455 } | 455 } |
| 456 } | 456 } |
| 457 | 457 |
| 458 ssize_t QuicTestClient::Send(const void *buffer, size_t size) { | 458 ssize_t QuicTestClient::Send(const void *buffer, size_t size) { |
| 459 return SendData(string(static_cast<const char*>(buffer), size), false); | 459 return SendData(string(static_cast<const char*>(buffer), size), false); |
| 460 } | 460 } |
| 461 | 461 |
| 462 bool QuicTestClient::response_headers_complete() const { | 462 bool QuicTestClient::response_headers_complete() const { |
| 463 if (stream_ != NULL) { | 463 if (stream_ != nullptr) { |
| 464 return stream_->headers_decompressed(); | 464 return stream_->headers_decompressed(); |
| 465 } else { | 465 } else { |
| 466 return response_headers_complete_; | 466 return response_headers_complete_; |
| 467 } | 467 } |
| 468 } | 468 } |
| 469 | 469 |
| 470 const BalsaHeaders* QuicTestClient::response_headers() const { | 470 const BalsaHeaders* QuicTestClient::response_headers() const { |
| 471 if (stream_ != NULL) { | 471 if (stream_ != nullptr) { |
| 472 return &stream_->headers(); | 472 return &stream_->headers(); |
| 473 } else { | 473 } else { |
| 474 return &headers_; | 474 return &headers_; |
| 475 } | 475 } |
| 476 } | 476 } |
| 477 | 477 |
| 478 int64 QuicTestClient::response_size() const { | 478 int64 QuicTestClient::response_size() const { |
| 479 return bytes_read_; | 479 return bytes_read_; |
| 480 } | 480 } |
| 481 | 481 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 497 } | 497 } |
| 498 response_complete_ = true; | 498 response_complete_ = true; |
| 499 response_headers_complete_ = stream_->headers_decompressed(); | 499 response_headers_complete_ = stream_->headers_decompressed(); |
| 500 headers_.CopyFrom(stream_->headers()); | 500 headers_.CopyFrom(stream_->headers()); |
| 501 stream_error_ = stream_->stream_error(); | 501 stream_error_ = stream_->stream_error(); |
| 502 bytes_read_ = stream_->stream_bytes_read() + stream_->header_bytes_read(); | 502 bytes_read_ = stream_->stream_bytes_read() + stream_->header_bytes_read(); |
| 503 bytes_written_ = | 503 bytes_written_ = |
| 504 stream_->stream_bytes_written() + stream_->header_bytes_written(); | 504 stream_->stream_bytes_written() + stream_->header_bytes_written(); |
| 505 response_header_size_ = headers_.GetSizeForWriteBuffer(); | 505 response_header_size_ = headers_.GetSizeForWriteBuffer(); |
| 506 response_body_size_ = stream_->data().size(); | 506 response_body_size_ = stream_->data().size(); |
| 507 stream_ = NULL; | 507 stream_ = nullptr; |
| 508 } | 508 } |
| 509 | 509 |
| 510 void QuicTestClient::UseWriter(QuicPacketWriterWrapper* writer) { | 510 void QuicTestClient::UseWriter(QuicPacketWriterWrapper* writer) { |
| 511 client_->UseWriter(writer); | 511 client_->UseWriter(writer); |
| 512 } | 512 } |
| 513 | 513 |
| 514 void QuicTestClient::UseConnectionId(QuicConnectionId connection_id) { | 514 void QuicTestClient::UseConnectionId(QuicConnectionId connection_id) { |
| 515 DCHECK(!connected()); | 515 DCHECK(!connected()); |
| 516 client_->UseConnectionId(connection_id); | 516 client_->UseConnectionId(connection_id); |
| 517 } | 517 } |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 560 // Set policy for headers and crypto streams. | 560 // Set policy for headers and crypto streams. |
| 561 ReliableQuicStreamPeer::SetFecPolicy( | 561 ReliableQuicStreamPeer::SetFecPolicy( |
| 562 QuicSessionPeer::GetHeadersStream(client()->session()), fec_policy); | 562 QuicSessionPeer::GetHeadersStream(client()->session()), fec_policy); |
| 563 ReliableQuicStreamPeer::SetFecPolicy(client()->session()->GetCryptoStream(), | 563 ReliableQuicStreamPeer::SetFecPolicy(client()->session()->GetCryptoStream(), |
| 564 fec_policy); | 564 fec_policy); |
| 565 } | 565 } |
| 566 | 566 |
| 567 } // namespace test | 567 } // namespace test |
| 568 } // namespace tools | 568 } // namespace tools |
| 569 } // namespace net | 569 } // namespace net |
| OLD | NEW |