| OLD | NEW |
| 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 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/http/disk_based_cert_cache.h" | 5 #include "net/http/disk_based_cert_cache.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 return ERR_FAILED; | 248 return ERR_FAILED; |
| 249 | 249 |
| 250 buffer_ = new IOBuffer(write_data.size()); | 250 buffer_ = new IOBuffer(write_data.size()); |
| 251 io_buf_len_ = write_data.size(); | 251 io_buf_len_ = write_data.size(); |
| 252 memcpy(buffer_->data(), write_data.data(), io_buf_len_); | 252 memcpy(buffer_->data(), write_data.data(), io_buf_len_); |
| 253 | 253 |
| 254 next_state_ = STATE_WRITE_COMPLETE; | 254 next_state_ = STATE_WRITE_COMPLETE; |
| 255 | 255 |
| 256 return entry_->WriteData(0 /* index */, | 256 return entry_->WriteData(0 /* index */, |
| 257 0 /* offset */, | 257 0 /* offset */, |
| 258 buffer_, | 258 buffer_.get(), |
| 259 write_data.size(), | 259 write_data.size(), |
| 260 io_callback_, | 260 io_callback_, |
| 261 true /* truncate */); | 261 true /* truncate */); |
| 262 } | 262 } |
| 263 | 263 |
| 264 int DiskBasedCertCache::WriteWorker::DoWriteComplete(int rv) { | 264 int DiskBasedCertCache::WriteWorker::DoWriteComplete(int rv) { |
| 265 if (rv < io_buf_len_) | 265 if (rv < io_buf_len_) |
| 266 return ERR_FAILED; | 266 return ERR_FAILED; |
| 267 | 267 |
| 268 return OK; | 268 return OK; |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 449 | 449 |
| 450 next_state_ = STATE_READ; | 450 next_state_ = STATE_READ; |
| 451 return OK; | 451 return OK; |
| 452 } | 452 } |
| 453 | 453 |
| 454 int DiskBasedCertCache::ReadWorker::DoRead() { | 454 int DiskBasedCertCache::ReadWorker::DoRead() { |
| 455 next_state_ = STATE_READ_COMPLETE; | 455 next_state_ = STATE_READ_COMPLETE; |
| 456 io_buf_len_ = entry_->GetDataSize(0 /* index */); | 456 io_buf_len_ = entry_->GetDataSize(0 /* index */); |
| 457 buffer_ = new IOBuffer(io_buf_len_); | 457 buffer_ = new IOBuffer(io_buf_len_); |
| 458 return entry_->ReadData( | 458 return entry_->ReadData( |
| 459 0 /* index */, 0 /* offset */, buffer_, io_buf_len_, io_callback_); | 459 0 /* index */, 0 /* offset */, buffer_.get(), io_buf_len_, io_callback_); |
| 460 } | 460 } |
| 461 | 461 |
| 462 int DiskBasedCertCache::ReadWorker::DoReadComplete(int rv) { | 462 int DiskBasedCertCache::ReadWorker::DoReadComplete(int rv) { |
| 463 // The cache should return the entire buffer length. If it does not, | 463 // The cache should return the entire buffer length. If it does not, |
| 464 // it is probably indicative of an issue other than corruption. | 464 // it is probably indicative of an issue other than corruption. |
| 465 if (rv < io_buf_len_) { | 465 if (rv < io_buf_len_) { |
| 466 RecordCacheResult(DISK_CACHE_ERROR); | 466 RecordCacheResult(DISK_CACHE_ERROR); |
| 467 return ERR_FAILED; | 467 return ERR_FAILED; |
| 468 } | 468 } |
| 469 cert_handle_ = X509Certificate::CreateOSCertHandleFromBytes(buffer_->data(), | 469 cert_handle_ = X509Certificate::CreateOSCertHandleFromBytes(buffer_->data(), |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 589 | 589 |
| 590 void DiskBasedCertCache::FinishedWriteOperation( | 590 void DiskBasedCertCache::FinishedWriteOperation( |
| 591 const std::string& key, | 591 const std::string& key, |
| 592 X509Certificate::OSCertHandle cert_handle) { | 592 X509Certificate::OSCertHandle cert_handle) { |
| 593 write_worker_map_.erase(key); | 593 write_worker_map_.erase(key); |
| 594 if (!key.empty()) | 594 if (!key.empty()) |
| 595 mru_cert_cache_.Put(key, X509Certificate::DupOSCertHandle(cert_handle)); | 595 mru_cert_cache_.Put(key, X509Certificate::DupOSCertHandle(cert_handle)); |
| 596 } | 596 } |
| 597 | 597 |
| 598 } // namespace net | 598 } // namespace net |
| OLD | NEW |