OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/installer/util/legacy_firewall_manager_win.h" | 5 #include "chrome/installer/util/legacy_firewall_manager_win.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/win/scoped_bstr.h" | 8 #include "base/win/scoped_bstr.h" |
9 | 9 |
10 namespace installer { | 10 namespace installer { |
11 | 11 |
12 LegacyFirewallManager::LegacyFirewallManager() {} | 12 LegacyFirewallManager::LegacyFirewallManager() {} |
13 | 13 |
14 LegacyFirewallManager::~LegacyFirewallManager() {} | 14 LegacyFirewallManager::~LegacyFirewallManager() {} |
15 | 15 |
16 bool LegacyFirewallManager::Init(const base::string16& app_name, | 16 bool LegacyFirewallManager::Init(const base::string16& app_name, |
17 const base::FilePath& app_path) { | 17 const base::FilePath& app_path) { |
18 base::win::ScopedComPtr<INetFwMgr> firewall_manager; | 18 base::win::ScopedComPtr<INetFwMgr> firewall_manager; |
19 HRESULT hr = firewall_manager.CreateInstance(CLSID_NetFwMgr); | 19 HRESULT hr = firewall_manager.CreateInstance(CLSID_NetFwMgr); |
20 if (FAILED(hr)) { | 20 if (FAILED(hr)) { |
21 DLOG(ERROR) << logging::SystemErrorCodeToString(hr); | 21 DLOG(ERROR) << logging::SystemErrorCodeToString(hr); |
22 return false; | 22 return false; |
23 } | 23 } |
24 | 24 |
25 base::win::ScopedComPtr<INetFwPolicy> firewall_policy; | 25 base::win::ScopedComPtr<INetFwPolicy> firewall_policy; |
26 hr = firewall_manager->get_LocalPolicy(firewall_policy.Receive()); | 26 hr = firewall_manager->get_LocalPolicy(firewall_policy.GetAddressOf()); |
27 if (FAILED(hr)) { | 27 if (FAILED(hr)) { |
28 DLOG(ERROR) << logging::SystemErrorCodeToString(hr); | 28 DLOG(ERROR) << logging::SystemErrorCodeToString(hr); |
29 return false; | 29 return false; |
30 } | 30 } |
31 | 31 |
32 hr = firewall_policy->get_CurrentProfile(current_profile_.Receive()); | 32 hr = firewall_policy->get_CurrentProfile(current_profile_.GetAddressOf()); |
33 if (FAILED(hr)) { | 33 if (FAILED(hr)) { |
34 DLOG(ERROR) << logging::SystemErrorCodeToString(hr); | 34 DLOG(ERROR) << logging::SystemErrorCodeToString(hr); |
35 current_profile_ = NULL; | 35 current_profile_ = NULL; |
36 return false; | 36 return false; |
37 } | 37 } |
38 | 38 |
39 app_name_ = app_name; | 39 app_name_ = app_name; |
40 app_path_ = app_path; | 40 app_path_ = app_path; |
41 return true; | 41 return true; |
42 } | 42 } |
43 | 43 |
44 bool LegacyFirewallManager::IsFirewallEnabled() { | 44 bool LegacyFirewallManager::IsFirewallEnabled() { |
45 VARIANT_BOOL is_enabled = VARIANT_TRUE; | 45 VARIANT_BOOL is_enabled = VARIANT_TRUE; |
46 HRESULT hr = current_profile_->get_FirewallEnabled(&is_enabled); | 46 HRESULT hr = current_profile_->get_FirewallEnabled(&is_enabled); |
47 return SUCCEEDED(hr) && is_enabled != VARIANT_FALSE; | 47 return SUCCEEDED(hr) && is_enabled != VARIANT_FALSE; |
48 } | 48 } |
49 | 49 |
50 bool LegacyFirewallManager::GetAllowIncomingConnection(bool* value) { | 50 bool LegacyFirewallManager::GetAllowIncomingConnection(bool* value) { |
51 // Otherwise, check to see if there is a rule either allowing or disallowing | 51 // Otherwise, check to see if there is a rule either allowing or disallowing |
52 // this chrome.exe. | 52 // this chrome.exe. |
53 base::win::ScopedComPtr<INetFwAuthorizedApplications> authorized_apps( | 53 base::win::ScopedComPtr<INetFwAuthorizedApplications> authorized_apps( |
54 GetAuthorizedApplications()); | 54 GetAuthorizedApplications()); |
55 if (!authorized_apps.Get()) | 55 if (!authorized_apps.Get()) |
56 return false; | 56 return false; |
57 | 57 |
58 base::win::ScopedComPtr<INetFwAuthorizedApplication> chrome_application; | 58 base::win::ScopedComPtr<INetFwAuthorizedApplication> chrome_application; |
59 HRESULT hr = authorized_apps->Item( | 59 HRESULT hr = |
60 base::win::ScopedBstr(app_path_.value().c_str()), | 60 authorized_apps->Item(base::win::ScopedBstr(app_path_.value().c_str()), |
61 chrome_application.Receive()); | 61 chrome_application.GetAddressOf()); |
62 if (FAILED(hr)) | 62 if (FAILED(hr)) |
63 return false; | 63 return false; |
64 VARIANT_BOOL is_enabled = VARIANT_FALSE; | 64 VARIANT_BOOL is_enabled = VARIANT_FALSE; |
65 hr = chrome_application->get_Enabled(&is_enabled); | 65 hr = chrome_application->get_Enabled(&is_enabled); |
66 if (FAILED(hr)) | 66 if (FAILED(hr)) |
67 return false; | 67 return false; |
68 if (value) | 68 if (value) |
69 *value = (is_enabled == VARIANT_TRUE); | 69 *value = (is_enabled == VARIANT_TRUE); |
70 return true; | 70 return true; |
71 } | 71 } |
(...skipping 19 matching lines...) Expand all Loading... |
91 base::win::ScopedComPtr<INetFwAuthorizedApplications> authorized_apps( | 91 base::win::ScopedComPtr<INetFwAuthorizedApplications> authorized_apps( |
92 GetAuthorizedApplications()); | 92 GetAuthorizedApplications()); |
93 if (!authorized_apps.Get()) | 93 if (!authorized_apps.Get()) |
94 return; | 94 return; |
95 authorized_apps->Remove(base::win::ScopedBstr(app_path_.value().c_str())); | 95 authorized_apps->Remove(base::win::ScopedBstr(app_path_.value().c_str())); |
96 } | 96 } |
97 | 97 |
98 base::win::ScopedComPtr<INetFwAuthorizedApplications> | 98 base::win::ScopedComPtr<INetFwAuthorizedApplications> |
99 LegacyFirewallManager::GetAuthorizedApplications() { | 99 LegacyFirewallManager::GetAuthorizedApplications() { |
100 base::win::ScopedComPtr<INetFwAuthorizedApplications> authorized_apps; | 100 base::win::ScopedComPtr<INetFwAuthorizedApplications> authorized_apps; |
101 HRESULT hr = | 101 HRESULT hr = current_profile_->get_AuthorizedApplications( |
102 current_profile_->get_AuthorizedApplications(authorized_apps.Receive()); | 102 authorized_apps.GetAddressOf()); |
103 if (FAILED(hr)) { | 103 if (FAILED(hr)) { |
104 DLOG(ERROR) << logging::SystemErrorCodeToString(hr); | 104 DLOG(ERROR) << logging::SystemErrorCodeToString(hr); |
105 return base::win::ScopedComPtr<INetFwAuthorizedApplications>(); | 105 return base::win::ScopedComPtr<INetFwAuthorizedApplications>(); |
106 } | 106 } |
107 | 107 |
108 return authorized_apps; | 108 return authorized_apps; |
109 } | 109 } |
110 | 110 |
111 base::win::ScopedComPtr<INetFwAuthorizedApplication> | 111 base::win::ScopedComPtr<INetFwAuthorizedApplication> |
112 LegacyFirewallManager::CreateChromeAuthorization(bool allow) { | 112 LegacyFirewallManager::CreateChromeAuthorization(bool allow) { |
(...skipping 11 matching lines...) Expand all Loading... |
124 base::win::ScopedBstr(app_path_.value().c_str())); | 124 base::win::ScopedBstr(app_path_.value().c_str())); |
125 // IpVersion defaults to NET_FW_IP_VERSION_ANY. | 125 // IpVersion defaults to NET_FW_IP_VERSION_ANY. |
126 // Scope defaults to NET_FW_SCOPE_ALL. | 126 // Scope defaults to NET_FW_SCOPE_ALL. |
127 // RemoteAddresses defaults to "*". | 127 // RemoteAddresses defaults to "*". |
128 chrome_application->put_Enabled(allow ? VARIANT_TRUE : VARIANT_FALSE); | 128 chrome_application->put_Enabled(allow ? VARIANT_TRUE : VARIANT_FALSE); |
129 | 129 |
130 return chrome_application; | 130 return chrome_application; |
131 } | 131 } |
132 | 132 |
133 } // namespace installer | 133 } // namespace installer |
OLD | NEW |