| OLD | NEW | 
|    1 // Copyright (c) 2009 The Chromium OS Authors. All rights reserved. |    1 // Copyright (c) 2009 The Chromium OS 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 "update_engine/libcurl_http_fetcher.h" |    5 #include "update_engine/libcurl_http_fetcher.h" | 
|    6 #include <algorithm> |    6 #include <algorithm> | 
|    7 #include "base/logging.h" |    7 #include "base/logging.h" | 
|    8  |    8  | 
|    9 using std::max; |    9 using std::max; | 
|   10 using std::make_pair; |   10 using std::make_pair; | 
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   54   CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_WRITEFUNCTION, |   54   CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_WRITEFUNCTION, | 
|   55                             StaticLibcurlWrite), CURLE_OK); |   55                             StaticLibcurlWrite), CURLE_OK); | 
|   56   CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_URL, url_.c_str()), CURLE_OK); |   56   CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_URL, url_.c_str()), CURLE_OK); | 
|   57  |   57  | 
|   58   // If the connection drops under 10 bytes/sec for 3 minutes, reconnect. |   58   // If the connection drops under 10 bytes/sec for 3 minutes, reconnect. | 
|   59   CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_LOW_SPEED_LIMIT, 10), |   59   CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_LOW_SPEED_LIMIT, 10), | 
|   60            CURLE_OK); |   60            CURLE_OK); | 
|   61   CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_LOW_SPEED_TIME, 3 * 60), |   61   CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_LOW_SPEED_TIME, 3 * 60), | 
|   62            CURLE_OK); |   62            CURLE_OK); | 
|   63  |   63  | 
 |   64   // By default, libcurl doesn't follow redirections. Allow up to | 
 |   65   // |kMaxRedirects| redirections. | 
 |   66   CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_FOLLOWLOCATION, 1), | 
 |   67            CURLE_OK); | 
 |   68   CHECK_EQ(curl_easy_setopt(curl_handle_, CURLOPT_MAXREDIRS, kMaxRedirects), | 
 |   69            CURLE_OK); | 
 |   70  | 
|   64   CHECK_EQ(curl_multi_add_handle(curl_multi_handle_, curl_handle_), CURLM_OK); |   71   CHECK_EQ(curl_multi_add_handle(curl_multi_handle_, curl_handle_), CURLM_OK); | 
|   65   transfer_in_progress_ = true; |   72   transfer_in_progress_ = true; | 
|   66 } |   73 } | 
|   67  |   74  | 
|   68 // Begins the transfer, which must not have already been started. |   75 // Begins the transfer, which must not have already been started. | 
|   69 void LibcurlHttpFetcher::BeginTransfer(const std::string& url) { |   76 void LibcurlHttpFetcher::BeginTransfer(const std::string& url) { | 
|   70   transfer_size_ = -1; |   77   transfer_size_ = -1; | 
|   71   bytes_downloaded_ = 0; |   78   bytes_downloaded_ = 0; | 
|   72   resume_offset_ = 0; |   79   resume_offset_ = 0; | 
|   73   retry_count_ = 0; |   80   retry_count_ = 0; | 
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  273     curl_handle_ = NULL; |  280     curl_handle_ = NULL; | 
|  274   } |  281   } | 
|  275   if (curl_multi_handle_) { |  282   if (curl_multi_handle_) { | 
|  276     CHECK_EQ(curl_multi_cleanup(curl_multi_handle_), CURLM_OK); |  283     CHECK_EQ(curl_multi_cleanup(curl_multi_handle_), CURLM_OK); | 
|  277     curl_multi_handle_ = NULL; |  284     curl_multi_handle_ = NULL; | 
|  278   } |  285   } | 
|  279   transfer_in_progress_ = false; |  286   transfer_in_progress_ = false; | 
|  280 } |  287 } | 
|  281  |  288  | 
|  282 }  // namespace chromeos_update_engine |  289 }  // namespace chromeos_update_engine | 
| OLD | NEW |