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

Side by Side Diff: net/proxy/proxy_list.cc

Issue 6339012: More net/ method ordering. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More done while waiting for previous patch to clear Created 9 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 | Annotate | Revision Log
« no previous file with comments | « net/http/mock_gssapi_library_posix.cc ('k') | net/socket/client_socket.cc » ('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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/proxy/proxy_list.h" 5 #include "net/proxy/proxy_list.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/string_tokenizer.h" 8 #include "base/string_tokenizer.h"
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "net/proxy/proxy_server.h" 10 #include "net/proxy/proxy_server.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 79
80 bool ProxyList::IsEmpty() const { 80 bool ProxyList::IsEmpty() const {
81 return proxies_.empty(); 81 return proxies_.empty();
82 } 82 }
83 83
84 const ProxyServer& ProxyList::Get() const { 84 const ProxyServer& ProxyList::Get() const {
85 DCHECK(!proxies_.empty()); 85 DCHECK(!proxies_.empty());
86 return proxies_[0]; 86 return proxies_[0];
87 } 87 }
88 88
89 std::string ProxyList::ToPacString() const {
90 std::string proxy_list;
91 std::vector<ProxyServer>::const_iterator iter = proxies_.begin();
92 for (; iter != proxies_.end(); ++iter) {
93 if (!proxy_list.empty())
94 proxy_list += ";";
95 proxy_list += iter->ToPacString();
96 }
97 return proxy_list.empty() ? std::string() : proxy_list;
98 }
99
100 void ProxyList::SetFromPacString(const std::string& pac_string) { 89 void ProxyList::SetFromPacString(const std::string& pac_string) {
101 StringTokenizer entry_tok(pac_string, ";"); 90 StringTokenizer entry_tok(pac_string, ";");
102 proxies_.clear(); 91 proxies_.clear();
103 while (entry_tok.GetNext()) { 92 while (entry_tok.GetNext()) {
104 ProxyServer uri = ProxyServer::FromPacString( 93 ProxyServer uri = ProxyServer::FromPacString(
105 entry_tok.token_begin(), entry_tok.token_end()); 94 entry_tok.token_begin(), entry_tok.token_end());
106 // Silently discard malformed inputs. 95 // Silently discard malformed inputs.
107 if (uri.is_valid()) 96 if (uri.is_valid())
108 proxies_.push_back(uri); 97 proxies_.push_back(uri);
109 } 98 }
110 99
111 // If we failed to parse anything from the PAC results list, fallback to 100 // If we failed to parse anything from the PAC results list, fallback to
112 // DIRECT (this basically means an error in the PAC script). 101 // DIRECT (this basically means an error in the PAC script).
113 if (proxies_.empty()) { 102 if (proxies_.empty()) {
114 proxies_.push_back(ProxyServer::Direct()); 103 proxies_.push_back(ProxyServer::Direct());
115 } 104 }
116 } 105 }
117 106
107 std::string ProxyList::ToPacString() const {
108 std::string proxy_list;
109 std::vector<ProxyServer>::const_iterator iter = proxies_.begin();
110 for (; iter != proxies_.end(); ++iter) {
111 if (!proxy_list.empty())
112 proxy_list += ";";
113 proxy_list += iter->ToPacString();
114 }
115 return proxy_list.empty() ? std::string() : proxy_list;
116 }
117
118 bool ProxyList::Fallback(ProxyRetryInfoMap* proxy_retry_info) { 118 bool ProxyList::Fallback(ProxyRetryInfoMap* proxy_retry_info) {
119 // Number of minutes to wait before retrying a bad proxy server. 119 // Number of minutes to wait before retrying a bad proxy server.
120 const TimeDelta kProxyRetryDelay = TimeDelta::FromMinutes(5); 120 const TimeDelta kProxyRetryDelay = TimeDelta::FromMinutes(5);
121 121
122 // TODO(eroman): It would be good if instead of removing failed proxies 122 // TODO(eroman): It would be good if instead of removing failed proxies
123 // from the list, we simply annotated them with the error code they failed 123 // from the list, we simply annotated them with the error code they failed
124 // with. Of course, ProxyService::ReconsiderProxyAfterError() would need to 124 // with. Of course, ProxyService::ReconsiderProxyAfterError() would need to
125 // be given this information by the network transaction. 125 // be given this information by the network transaction.
126 // 126 //
127 // The advantage of this approach is when the network transaction 127 // The advantage of this approach is when the network transaction
(...skipping 26 matching lines...) Expand all
154 } 154 }
155 } 155 }
156 156
157 // Remove this proxy from our list. 157 // Remove this proxy from our list.
158 proxies_.erase(proxies_.begin()); 158 proxies_.erase(proxies_.begin());
159 159
160 return !proxies_.empty(); 160 return !proxies_.empty();
161 } 161 }
162 162
163 } // namespace net 163 } // namespace net
OLDNEW
« no previous file with comments | « net/http/mock_gssapi_library_posix.cc ('k') | net/socket/client_socket.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698