OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/chromeos/cros/cros_network_functions.h" | 5 #include "chrome/browser/chromeos/cros/cros_network_functions.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "chrome/browser/chromeos/cros/gvalue_util.h" | 10 #include "chrome/browser/chromeos/cros/gvalue_util.h" |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 void OnConfigureService(void* object, | 227 void OnConfigureService(void* object, |
228 const char* service_path, | 228 const char* service_path, |
229 NetworkMethodErrorType error, | 229 NetworkMethodErrorType error, |
230 const char* error_message) { | 230 const char* error_message) { |
231 if (error != NETWORK_METHOD_ERROR_NONE) { | 231 if (error != NETWORK_METHOD_ERROR_NONE) { |
232 LOG(WARNING) << "Error from ConfigureService callback: " | 232 LOG(WARNING) << "Error from ConfigureService callback: " |
233 << " Error: " << error << " Message: " << error_message; | 233 << " Error: " << error << " Message: " << error_message; |
234 } | 234 } |
235 } | 235 } |
236 | 236 |
| 237 // A callback used to call a NetworkActionCallback on success. |
| 238 void OnNetworkActionSuccess(const std::string& path, |
| 239 NetworkActionCallback callback, |
| 240 void* object) { |
| 241 callback(object, path.c_str(), NETWORK_METHOD_ERROR_NONE, ""); |
| 242 } |
| 243 |
| 244 // A callback used to call a NetworkActionCallback on error. |
| 245 void OnNetworkActionError(const std::string& path, |
| 246 NetworkActionCallback callback, |
| 247 void* object, |
| 248 const std::string& error_name, |
| 249 const std::string& error_message) { |
| 250 if (error_name.empty()) { |
| 251 callback(object, path.c_str(), NETWORK_METHOD_ERROR_LOCAL, ""); |
| 252 } else { |
| 253 callback(object, path.c_str(), NETWORK_METHOD_ERROR_REMOTE, |
| 254 error_message.c_str()); |
| 255 } |
| 256 } |
| 257 |
237 // Safe string constructor since we can't rely on non NULL pointers | 258 // Safe string constructor since we can't rely on non NULL pointers |
238 // for string values from libcros. | 259 // for string values from libcros. |
239 std::string SafeString(const char* s) { | 260 std::string SafeString(const char* s) { |
240 return s ? std::string(s) : std::string(); | 261 return s ? std::string(s) : std::string(); |
241 } | 262 } |
242 | 263 |
243 // A bool to remember whether we are using Libcros network functions or not. | 264 // A bool to remember whether we are using Libcros network functions or not. |
244 bool g_libcros_network_functions_enabled = true; | 265 bool g_libcros_network_functions_enabled = true; |
245 | 266 |
246 } // namespace | 267 } // namespace |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 | 394 |
374 CrosNetworkWatcher* CrosMonitorSMS(const std::string& modem_device_path, | 395 CrosNetworkWatcher* CrosMonitorSMS(const std::string& modem_device_path, |
375 MonitorSMSCallback callback, | 396 MonitorSMSCallback callback, |
376 void* object) { | 397 void* object) { |
377 return new CrosSMSWatcher(modem_device_path, callback, object); | 398 return new CrosSMSWatcher(modem_device_path, callback, object); |
378 } | 399 } |
379 | 400 |
380 void CrosRequestNetworkServiceConnect(const std::string& service_path, | 401 void CrosRequestNetworkServiceConnect(const std::string& service_path, |
381 NetworkActionCallback callback, | 402 NetworkActionCallback callback, |
382 void* object) { | 403 void* object) { |
383 chromeos::RequestNetworkServiceConnect(service_path.c_str(), callback, | 404 if (g_libcros_network_functions_enabled) { |
384 object); | 405 chromeos::RequestNetworkServiceConnect(service_path.c_str(), callback, |
| 406 object); |
| 407 } else { |
| 408 DBusThreadManager::Get()->GetFlimflamServiceClient()->Connect( |
| 409 dbus::ObjectPath(service_path), |
| 410 base::Bind(&OnNetworkActionSuccess, service_path, callback, object), |
| 411 base::Bind(&OnNetworkActionError, service_path, callback, object)); |
| 412 } |
385 } | 413 } |
386 | 414 |
387 void CrosRequestNetworkManagerProperties( | 415 void CrosRequestNetworkManagerProperties( |
388 const NetworkPropertiesCallback& callback) { | 416 const NetworkPropertiesCallback& callback) { |
389 if (g_libcros_network_functions_enabled) { | 417 if (g_libcros_network_functions_enabled) { |
390 // The newly allocated callback will be deleted in | 418 // The newly allocated callback will be deleted in |
391 // OnRequestNetworkProperties. | 419 // OnRequestNetworkProperties. |
392 chromeos::RequestNetworkManagerProperties( | 420 chromeos::RequestNetworkManagerProperties( |
393 &OnRequestNetworkProperties, | 421 &OnRequestNetworkProperties, |
394 new OnRequestNetworkPropertiesCallback(callback)); | 422 new OnRequestNetworkPropertiesCallback(callback)); |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
588 network_type, base::Bind(&DoNothing)); | 616 network_type, base::Bind(&DoNothing)); |
589 } | 617 } |
590 } | 618 } |
591 } | 619 } |
592 | 620 |
593 void CrosRequestRequirePin(const std::string& device_path, | 621 void CrosRequestRequirePin(const std::string& device_path, |
594 const std::string& pin, | 622 const std::string& pin, |
595 bool enable, | 623 bool enable, |
596 NetworkActionCallback callback, | 624 NetworkActionCallback callback, |
597 void* object) { | 625 void* object) { |
598 chromeos::RequestRequirePin(device_path.c_str(), pin.c_str(), enable, | 626 if (g_libcros_network_functions_enabled) { |
599 callback, object); | 627 chromeos::RequestRequirePin(device_path.c_str(), pin.c_str(), enable, |
| 628 callback, object); |
| 629 } else { |
| 630 DBusThreadManager::Get()->GetFlimflamDeviceClient()->RequirePin( |
| 631 dbus::ObjectPath(device_path), pin, enable, |
| 632 base::Bind(&OnNetworkActionSuccess, device_path, callback, object), |
| 633 base::Bind(&OnNetworkActionError, device_path, callback, object)); |
| 634 } |
600 } | 635 } |
601 | 636 |
602 void CrosRequestEnterPin(const std::string& device_path, | 637 void CrosRequestEnterPin(const std::string& device_path, |
603 const std::string& pin, | 638 const std::string& pin, |
604 NetworkActionCallback callback, | 639 NetworkActionCallback callback, |
605 void* object) { | 640 void* object) { |
606 chromeos::RequestEnterPin(device_path.c_str(), pin.c_str(), callback, object); | 641 if (g_libcros_network_functions_enabled) { |
| 642 chromeos::RequestEnterPin(device_path.c_str(), pin.c_str(), callback, |
| 643 object); |
| 644 } else { |
| 645 DBusThreadManager::Get()->GetFlimflamDeviceClient()->EnterPin( |
| 646 dbus::ObjectPath(device_path), pin, |
| 647 base::Bind(&OnNetworkActionSuccess, device_path, callback, object), |
| 648 base::Bind(&OnNetworkActionError, device_path, callback, object)); |
| 649 } |
607 } | 650 } |
608 | 651 |
609 void CrosRequestUnblockPin(const std::string& device_path, | 652 void CrosRequestUnblockPin(const std::string& device_path, |
610 const std::string& unblock_code, | 653 const std::string& unblock_code, |
611 const std::string& pin, | 654 const std::string& pin, |
612 NetworkActionCallback callback, | 655 NetworkActionCallback callback, |
613 void* object) { | 656 void* object) { |
614 chromeos::RequestUnblockPin(device_path.c_str(), unblock_code.c_str(), | 657 if (g_libcros_network_functions_enabled) { |
615 pin.c_str(), callback, object); | 658 chromeos::RequestUnblockPin(device_path.c_str(), unblock_code.c_str(), |
| 659 pin.c_str(), callback, object); |
| 660 } else { |
| 661 DBusThreadManager::Get()->GetFlimflamDeviceClient()->UnblockPin( |
| 662 dbus::ObjectPath(device_path), unblock_code, pin, |
| 663 base::Bind(&OnNetworkActionSuccess, device_path, callback, object), |
| 664 base::Bind(&OnNetworkActionError, device_path, callback, object)); |
| 665 } |
616 } | 666 } |
617 | 667 |
618 void CrosRequestChangePin(const std::string& device_path, | 668 void CrosRequestChangePin(const std::string& device_path, |
619 const std::string& old_pin, | 669 const std::string& old_pin, |
620 const std::string& new_pin, | 670 const std::string& new_pin, |
621 NetworkActionCallback callback, | 671 NetworkActionCallback callback, |
622 void* object) { | 672 void* object) { |
623 chromeos::RequestChangePin(device_path.c_str(), old_pin.c_str(), | 673 if (g_libcros_network_functions_enabled) { |
624 new_pin.c_str(), callback, object); | 674 chromeos::RequestChangePin(device_path.c_str(), old_pin.c_str(), |
| 675 new_pin.c_str(), callback, object); |
| 676 } else { |
| 677 DBusThreadManager::Get()->GetFlimflamDeviceClient()->ChangePin( |
| 678 dbus::ObjectPath(device_path), old_pin, new_pin, |
| 679 base::Bind(&OnNetworkActionSuccess, device_path, callback, object), |
| 680 base::Bind(&OnNetworkActionError, device_path, callback, object)); |
| 681 } |
625 } | 682 } |
626 | 683 |
627 void CrosProposeScan(const std::string& device_path) { | 684 void CrosProposeScan(const std::string& device_path) { |
628 chromeos::ProposeScan(device_path.c_str()); | 685 chromeos::ProposeScan(device_path.c_str()); |
629 } | 686 } |
630 | 687 |
631 void CrosRequestCellularRegister(const std::string& device_path, | 688 void CrosRequestCellularRegister(const std::string& device_path, |
632 const std::string& network_id, | 689 const std::string& network_id, |
633 chromeos::NetworkActionCallback callback, | 690 chromeos::NetworkActionCallback callback, |
634 void* object) { | 691 void* object) { |
635 chromeos::RequestCellularRegister(device_path.c_str(), network_id.c_str(), | 692 if (g_libcros_network_functions_enabled) { |
636 callback, object); | 693 chromeos::RequestCellularRegister(device_path.c_str(), network_id.c_str(), |
| 694 callback, object); |
| 695 } else { |
| 696 DBusThreadManager::Get()->GetFlimflamDeviceClient()->Register( |
| 697 dbus::ObjectPath(device_path), network_id, |
| 698 base::Bind(&OnNetworkActionSuccess, device_path, callback, object), |
| 699 base::Bind(&OnNetworkActionError, device_path, callback, object)); |
| 700 } |
637 } | 701 } |
638 | 702 |
639 bool CrosSetOfflineMode(bool offline) { | 703 bool CrosSetOfflineMode(bool offline) { |
640 return chromeos::SetOfflineMode(offline); | 704 return chromeos::SetOfflineMode(offline); |
641 } | 705 } |
642 | 706 |
643 IPConfigStatus* CrosListIPConfigs(const std::string& device_path) { | 707 IPConfigStatus* CrosListIPConfigs(const std::string& device_path) { |
644 return chromeos::ListIPConfigs(device_path.c_str()); | 708 return chromeos::ListIPConfigs(device_path.c_str()); |
645 } | 709 } |
646 | 710 |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
726 ScopedGHashTable ghash( | 790 ScopedGHashTable ghash( |
727 ConvertDictionaryValueToStringValueGHashTable(properties)); | 791 ConvertDictionaryValueToStringValueGHashTable(properties)); |
728 chromeos::ConfigureService("", ghash.get(), OnConfigureService, NULL); | 792 chromeos::ConfigureService("", ghash.get(), OnConfigureService, NULL); |
729 } else { | 793 } else { |
730 DBusThreadManager::Get()->GetFlimflamManagerClient()->ConfigureService( | 794 DBusThreadManager::Get()->GetFlimflamManagerClient()->ConfigureService( |
731 properties, base::Bind(&DoNothing)); | 795 properties, base::Bind(&DoNothing)); |
732 } | 796 } |
733 } | 797 } |
734 | 798 |
735 } // namespace chromeos | 799 } // namespace chromeos |
OLD | NEW |