Commit bc58777e authored by Zhongyi Shi's avatar Zhongyi Shi Committed by Commit Bot

Move QuicStreamFactory::OnJobHostResolutionComplete logic to QuicStreamFactory::Job

Change-Id: I6abffaf9c76d1df6cd1075e446c9e739b3c91f27
Reviewed-on: https://chromium-review.googlesource.com/1168991Reviewed-by: default avatarRyan Hamilton <rch@chromium.org>
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582719}
parent c99b682a
...@@ -321,8 +321,7 @@ class QuicStreamFactory::Job { ...@@ -321,8 +321,7 @@ class QuicStreamFactory::Job {
~Job(); ~Job();
int Run(CompletionOnceCallback host_resolution_callback, int Run(CompletionOnceCallback callback);
CompletionOnceCallback callback);
int DoLoop(int rv); int DoLoop(int rv);
int DoResolveHost(); int DoResolveHost();
...@@ -445,13 +444,10 @@ QuicStreamFactory::Job::~Job() { ...@@ -445,13 +444,10 @@ QuicStreamFactory::Job::~Job() {
// non-null. // non-null.
} }
int QuicStreamFactory::Job::Run(CompletionOnceCallback host_resolution_callback, int QuicStreamFactory::Job::Run(CompletionOnceCallback callback) {
CompletionOnceCallback callback) {
int rv = DoLoop(OK); int rv = DoLoop(OK);
if (rv == ERR_IO_PENDING) { if (rv == ERR_IO_PENDING)
host_resolution_callback_ = std::move(host_resolution_callback);
callback_ = std::move(callback); callback_ = std::move(callback);
}
return rv > 0 ? OK : rv; return rv > 0 ? OK : rv;
} }
...@@ -492,8 +488,10 @@ void QuicStreamFactory::Job::OnResolveHostComplete(int rv) { ...@@ -492,8 +488,10 @@ void QuicStreamFactory::Job::OnResolveHostComplete(int rv) {
DCHECK_EQ(STATE_RESOLVE_HOST_COMPLETE, io_state_); DCHECK_EQ(STATE_RESOLVE_HOST_COMPLETE, io_state_);
rv = DoLoop(rv); rv = DoLoop(rv);
if (!host_resolution_callback_.is_null())
base::ResetAndReturn(&host_resolution_callback_).Run(rv); for (auto* request : stream_requests_) {
request->OnHostResolutionComplete(rv);
}
if (rv != ERR_IO_PENDING && !callback_.is_null()) if (rv != ERR_IO_PENDING && !callback_.is_null())
base::ResetAndReturn(&callback_).Run(rv); base::ResetAndReturn(&callback_).Run(rv);
...@@ -1053,8 +1051,6 @@ int QuicStreamFactory::Create(const QuicSessionKey& session_key, ...@@ -1053,8 +1051,6 @@ int QuicStreamFactory::Create(const QuicSessionKey& session_key,
WasQuicRecentlyBroken(session_key.server_id()), WasQuicRecentlyBroken(session_key.server_id()),
priority, cert_verify_flags, net_log); priority, cert_verify_flags, net_log);
int rv = job->Run( int rv = job->Run(
base::BindRepeating(&QuicStreamFactory::OnJobHostResolutionComplete,
base::Unretained(this), job.get()),
base::BindRepeating(&QuicStreamFactory::OnJobComplete, base::BindRepeating(&QuicStreamFactory::OnJobComplete,
base::Unretained(this), job.get())); base::Unretained(this), job.get()));
if (rv == ERR_IO_PENDING) { if (rv == ERR_IO_PENDING) {
...@@ -1123,14 +1119,6 @@ bool QuicStreamFactory::HasMatchingIpSession(const QuicSessionAliasKey& key, ...@@ -1123,14 +1119,6 @@ bool QuicStreamFactory::HasMatchingIpSession(const QuicSessionAliasKey& key,
return false; return false;
} }
void QuicStreamFactory::OnJobHostResolutionComplete(Job* job, int rv) {
auto iter = active_jobs_.find(job->key().session_key());
DCHECK(iter != active_jobs_.end());
for (auto* request : iter->second->stream_requests()) {
request->OnHostResolutionComplete(rv);
}
}
void QuicStreamFactory::OnJobComplete(Job* job, int rv) { void QuicStreamFactory::OnJobComplete(Job* job, int rv) {
auto iter = active_jobs_.find(job->key().session_key()); auto iter = active_jobs_.find(job->key().session_key());
DCHECK(iter != active_jobs_.end()); DCHECK(iter != active_jobs_.end());
......
...@@ -404,7 +404,6 @@ class NET_EXPORT_PRIVATE QuicStreamFactory ...@@ -404,7 +404,6 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
bool HasMatchingIpSession(const QuicSessionAliasKey& key, bool HasMatchingIpSession(const QuicSessionAliasKey& key,
const AddressList& address_list); const AddressList& address_list);
void OnJobHostResolutionComplete(Job* job, int rv);
void OnJobComplete(Job* job, int rv); void OnJobComplete(Job* job, int rv);
void OnCertVerifyJobComplete(CertVerifierJob* job, int rv); void OnCertVerifyJobComplete(CertVerifierJob* job, int rv);
bool HasActiveSession(const QuicSessionKey& session_key) const; bool HasActiveSession(const QuicSessionKey& session_key) const;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment