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

Side by Side Diff: chromeos/network/network_connection_handler.cc

Issue 23701015: Merge 220596 "Differentiate between 'connect-failed' and 'bad-pa..." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1599/src/
Patch Set: Created 7 years, 3 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 | « chromeos/network/network_connection_handler.h ('k') | no next file » | 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "chromeos/network/network_connection_handler.h" 5 #include "chromeos/network/network_connection_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "chromeos/chromeos_switches.h" 10 #include "chromeos/chromeos_switches.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 "passphrase-required"; 111 "passphrase-required";
112 const char NetworkConnectionHandler::kErrorActivationRequired[] = 112 const char NetworkConnectionHandler::kErrorActivationRequired[] =
113 "activation-required"; 113 "activation-required";
114 const char NetworkConnectionHandler::kErrorCertificateRequired[] = 114 const char NetworkConnectionHandler::kErrorCertificateRequired[] =
115 "certificate-required"; 115 "certificate-required";
116 const char NetworkConnectionHandler::kErrorConfigurationRequired[] = 116 const char NetworkConnectionHandler::kErrorConfigurationRequired[] =
117 "configuration-required"; 117 "configuration-required";
118 const char NetworkConnectionHandler::kErrorAuthenticationRequired[] = 118 const char NetworkConnectionHandler::kErrorAuthenticationRequired[] =
119 "authentication-required"; 119 "authentication-required";
120 const char NetworkConnectionHandler::kErrorShillError[] = "shill-error"; 120 const char NetworkConnectionHandler::kErrorShillError[] = "shill-error";
121 const char NetworkConnectionHandler::kErrorConnectFailed[] = "connect-failed";
122 const char NetworkConnectionHandler::kErrorConfigureFailed[] = 121 const char NetworkConnectionHandler::kErrorConfigureFailed[] =
123 "configure-failed"; 122 "configure-failed";
124 const char NetworkConnectionHandler::kErrorActivateFailed[] =
125 "activate-failed";
126 const char NetworkConnectionHandler::kErrorMissingProvider[] =
127 "missing-provider";
128 const char NetworkConnectionHandler::kErrorConnectCanceled[] = 123 const char NetworkConnectionHandler::kErrorConnectCanceled[] =
129 "connect-canceled"; 124 "connect-canceled";
130 const char NetworkConnectionHandler::kErrorUnknown[] = "unknown-error";
131 125
132 struct NetworkConnectionHandler::ConnectRequest { 126 struct NetworkConnectionHandler::ConnectRequest {
133 ConnectRequest(const std::string& service_path, 127 ConnectRequest(const std::string& service_path,
134 const base::Closure& success, 128 const base::Closure& success,
135 const network_handler::ErrorCallback& error) 129 const network_handler::ErrorCallback& error)
136 : service_path(service_path), 130 : service_path(service_path),
137 connect_state(CONNECT_REQUESTED), 131 connect_state(CONNECT_REQUESTED),
138 success_callback(success), 132 success_callback(success),
139 error_callback(error) { 133 error_callback(error) {
140 } 134 }
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 return; 241 return;
248 } 242 }
249 if (NetworkRequiresActivation(network)) { 243 if (NetworkRequiresActivation(network)) {
250 InvokeErrorCallback(service_path, error_callback, 244 InvokeErrorCallback(service_path, error_callback,
251 kErrorActivationRequired); 245 kErrorActivationRequired);
252 return; 246 return;
253 } 247 }
254 248
255 if (check_error_state) { 249 if (check_error_state) {
256 const std::string& error = network->error(); 250 const std::string& error = network->error();
257 if (error == flimflam::kErrorConnectFailed) {
258 InvokeErrorCallback(
259 service_path, error_callback, kErrorPassphraseRequired);
260 return;
261 }
262 if (error == flimflam::kErrorBadPassphrase) { 251 if (error == flimflam::kErrorBadPassphrase) {
263 InvokeErrorCallback( 252 InvokeErrorCallback(service_path, error_callback, error);
264 service_path, error_callback, kErrorPassphraseRequired);
265 return; 253 return;
266 } 254 }
267 if (IsAuthenticationError(error)) { 255 if (IsAuthenticationError(error)) {
268 InvokeErrorCallback( 256 InvokeErrorCallback(
269 service_path, error_callback, kErrorAuthenticationRequired); 257 service_path, error_callback, kErrorAuthenticationRequired);
270 return; 258 return;
271 } 259 }
272 } 260 }
273 } 261 }
274 262
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 // "Provider.Type", etc keys (which are used only to set the values). 382 // "Provider.Type", etc keys (which are used only to set the values).
395 const base::DictionaryValue* provider_properties; 383 const base::DictionaryValue* provider_properties;
396 if (service_properties.GetDictionaryWithoutPathExpansion( 384 if (service_properties.GetDictionaryWithoutPathExpansion(
397 flimflam::kProviderProperty, &provider_properties)) { 385 flimflam::kProviderProperty, &provider_properties)) {
398 provider_properties->GetStringWithoutPathExpansion( 386 provider_properties->GetStringWithoutPathExpansion(
399 flimflam::kTypeProperty, &vpn_provider_type); 387 flimflam::kTypeProperty, &vpn_provider_type);
400 provider_properties->GetStringWithoutPathExpansion( 388 provider_properties->GetStringWithoutPathExpansion(
401 flimflam::kHostProperty, &vpn_provider_host); 389 flimflam::kHostProperty, &vpn_provider_host);
402 } 390 }
403 if (vpn_provider_type.empty() || vpn_provider_host.empty()) { 391 if (vpn_provider_type.empty() || vpn_provider_host.empty()) {
404 ErrorCallbackForPendingRequest(service_path, kErrorMissingProvider); 392 ErrorCallbackForPendingRequest(service_path, kErrorConfigurationRequired);
405 return; 393 return;
406 } 394 }
407 // VPN requires a host and username to be set. 395 // VPN requires a host and username to be set.
408 if (!VPNIsConfigured( 396 if (!VPNIsConfigured(
409 service_path, vpn_provider_type, *provider_properties)) { 397 service_path, vpn_provider_type, *provider_properties)) {
410 NET_LOG_ERROR("VPN Not Configured", service_path); 398 NET_LOG_ERROR("VPN Not Configured", service_path);
411 ErrorCallbackForPendingRequest(service_path, kErrorConfigurationRequired); 399 ErrorCallbackForPendingRequest(service_path, kErrorConfigurationRequired);
412 return; 400 return;
413 } 401 }
414 } 402 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 const std::string& dbus_error_message) { 555 const std::string& dbus_error_message) {
568 ConnectRequest* request = GetPendingRequest(service_path); 556 ConnectRequest* request = GetPendingRequest(service_path);
569 if (!request) { 557 if (!request) {
570 NET_LOG_ERROR("HandleShillConnectFailure called with no pending request.", 558 NET_LOG_ERROR("HandleShillConnectFailure called with no pending request.",
571 service_path); 559 service_path);
572 return; 560 return;
573 } 561 }
574 network_handler::ErrorCallback error_callback = request->error_callback; 562 network_handler::ErrorCallback error_callback = request->error_callback;
575 pending_requests_.erase(service_path); 563 pending_requests_.erase(service_path);
576 network_handler::ShillErrorCallbackFunction( 564 network_handler::ShillErrorCallbackFunction(
577 kErrorConnectFailed, service_path, error_callback, 565 flimflam::kErrorConnectFailed, service_path, error_callback,
578 dbus_error_name, dbus_error_message); 566 dbus_error_name, dbus_error_message);
579 } 567 }
580 568
581 void NetworkConnectionHandler::CheckPendingRequest( 569 void NetworkConnectionHandler::CheckPendingRequest(
582 const std::string service_path) { 570 const std::string service_path) {
583 ConnectRequest* request = GetPendingRequest(service_path); 571 ConnectRequest* request = GetPendingRequest(service_path);
584 DCHECK(request); 572 DCHECK(request);
585 if (request->connect_state == ConnectRequest::CONNECT_REQUESTED) 573 if (request->connect_state == ConnectRequest::CONNECT_REQUESTED)
586 return; // Request has not started, ignore update 574 return; // Request has not started, ignore update
587 const NetworkState* network = 575 const NetworkState* network =
(...skipping 19 matching lines...) Expand all
607 } 595 }
608 596
609 // Network is neither connecting or connected; an error occurred. 597 // Network is neither connecting or connected; an error occurred.
610 std::string error_name, error_detail; 598 std::string error_name, error_detail;
611 if (network->connection_state() == flimflam::kStateIdle && 599 if (network->connection_state() == flimflam::kStateIdle &&
612 pending_requests_.size() > 1) { 600 pending_requests_.size() > 1) {
613 // Another connect request canceled this one. 601 // Another connect request canceled this one.
614 error_name = kErrorConnectCanceled; 602 error_name = kErrorConnectCanceled;
615 error_detail = ""; 603 error_detail = "";
616 } else { 604 } else {
617 error_name = kErrorConnectFailed; 605 error_name = flimflam::kErrorConnectFailed;
618 error_detail = network->error(); 606 error_detail = network->error();
619 if (error_detail.empty()) { 607 if (error_detail.empty()) {
620 if (network->connection_state() == flimflam::kStateFailure) 608 if (network->connection_state() == flimflam::kStateFailure)
621 error_detail = flimflam::kUnknownString; 609 error_detail = flimflam::kUnknownString;
622 else 610 else
623 error_detail = "Unexpected State: " + network->connection_state(); 611 error_detail = "Unexpected State: " + network->connection_state();
624 } 612 }
625 } 613 }
626 std::string error_msg = error_name + ": " + error_detail; 614 std::string error_msg = error_name + ": " + error_detail;
627 NET_LOG_ERROR(error_msg, service_path); 615 NET_LOG_ERROR(error_msg, service_path);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 699
712 void NetworkConnectionHandler::HandleShillActivateSuccess( 700 void NetworkConnectionHandler::HandleShillActivateSuccess(
713 const std::string& service_path, 701 const std::string& service_path,
714 const base::Closure& success_callback) { 702 const base::Closure& success_callback) {
715 NET_LOG_EVENT("Activate Request Sent", service_path); 703 NET_LOG_EVENT("Activate Request Sent", service_path);
716 if (!success_callback.is_null()) 704 if (!success_callback.is_null())
717 success_callback.Run(); 705 success_callback.Run();
718 } 706 }
719 707
720 } // namespace chromeos 708 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/network/network_connection_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698