| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/http_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 1165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1176 DCHECK(headers); | 1176 DCHECK(headers); |
| 1177 | 1177 |
| 1178 int status = headers->response_code(); | 1178 int status = headers->response_code(); |
| 1179 if (status != 401 && status != 407) | 1179 if (status != 401 && status != 407) |
| 1180 return OK; | 1180 return OK; |
| 1181 HttpAuth::Target target = status == 407 ? | 1181 HttpAuth::Target target = status == 407 ? |
| 1182 HttpAuth::AUTH_PROXY : HttpAuth::AUTH_SERVER; | 1182 HttpAuth::AUTH_PROXY : HttpAuth::AUTH_SERVER; |
| 1183 if (target == HttpAuth::AUTH_PROXY && proxy_info_.is_direct()) | 1183 if (target == HttpAuth::AUTH_PROXY && proxy_info_.is_direct()) |
| 1184 return ERR_UNEXPECTED_PROXY_AUTH; | 1184 return ERR_UNEXPECTED_PROXY_AUTH; |
| 1185 | 1185 |
| 1186 // This case can trigger when an HTTPS server responds with a 407 status | |
| 1187 // code through a non-authenticating proxy. | |
| 1188 if (!auth_controllers_[target].get()) | |
| 1189 return ERR_UNEXPECTED_PROXY_AUTH; | |
| 1190 | |
| 1191 int rv = auth_controllers_[target]->HandleAuthChallenge( | 1186 int rv = auth_controllers_[target]->HandleAuthChallenge( |
| 1192 headers, (request_->load_flags & LOAD_DO_NOT_SEND_AUTH_DATA) != 0, false, | 1187 headers, (request_->load_flags & LOAD_DO_NOT_SEND_AUTH_DATA) != 0, false, |
| 1193 net_log_); | 1188 net_log_); |
| 1194 if (auth_controllers_[target]->HaveAuthHandler()) | 1189 if (auth_controllers_[target]->HaveAuthHandler()) |
| 1195 pending_auth_target_ = target; | 1190 pending_auth_target_ = target; |
| 1196 | 1191 |
| 1197 scoped_refptr<AuthChallengeInfo> auth_info = | 1192 scoped_refptr<AuthChallengeInfo> auth_info = |
| 1198 auth_controllers_[target]->auth_info(); | 1193 auth_controllers_[target]->auth_info(); |
| 1199 if (auth_info.get()) | 1194 if (auth_info.get()) |
| 1200 response_.auth_challenge = auth_info; | 1195 response_.auth_challenge = auth_info; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1265 default: | 1260 default: |
| 1266 return priority; | 1261 return priority; |
| 1267 } | 1262 } |
| 1268 } | 1263 } |
| 1269 | 1264 |
| 1270 | 1265 |
| 1271 | 1266 |
| 1272 #undef STATE_CASE | 1267 #undef STATE_CASE |
| 1273 | 1268 |
| 1274 } // namespace net | 1269 } // namespace net |
| OLD | NEW |