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 { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 = authorized_apps->Item( |
60 base::win::ScopedBstr(app_path_.value().c_str()), | 60 base::win::ScopedBstr(app_path_.value().c_str()), |
61 chrome_application.Receive()); | 61 chrome_application.Receive()); |
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 } |
72 | 72 |
73 // The SharedAccess service must be running. | 73 // The SharedAccess service must be running. |
74 bool LegacyFirewallManager::SetAllowIncomingConnection(bool allow) { | 74 bool LegacyFirewallManager::SetAllowIncomingConnection(bool allow) { |
75 base::win::ScopedComPtr<INetFwAuthorizedApplications> authorized_apps( | 75 base::win::ScopedComPtr<INetFwAuthorizedApplications> authorized_apps( |
76 GetAuthorizedApplications()); | 76 GetAuthorizedApplications()); |
77 if (!authorized_apps.get()) | 77 if (!authorized_apps.Get()) |
78 return false; | 78 return false; |
79 | 79 |
80 // Authorize chrome. | 80 // Authorize chrome. |
81 base::win::ScopedComPtr<INetFwAuthorizedApplication> authorization = | 81 base::win::ScopedComPtr<INetFwAuthorizedApplication> authorization = |
82 CreateChromeAuthorization(allow); | 82 CreateChromeAuthorization(allow); |
83 if (!authorization.get()) | 83 if (!authorization.Get()) |
84 return false; | 84 return false; |
85 HRESULT hr = authorized_apps->Add(authorization.get()); | 85 HRESULT hr = authorized_apps->Add(authorization.Get()); |
86 DLOG_IF(ERROR, FAILED(hr)) << logging::SystemErrorCodeToString(hr); | 86 DLOG_IF(ERROR, FAILED(hr)) << logging::SystemErrorCodeToString(hr); |
87 return SUCCEEDED(hr); | 87 return SUCCEEDED(hr); |
88 } | 88 } |
89 | 89 |
90 void LegacyFirewallManager::DeleteRule() { | 90 void LegacyFirewallManager::DeleteRule() { |
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 = |
102 current_profile_->get_AuthorizedApplications(authorized_apps.Receive()); | 102 current_profile_->get_AuthorizedApplications(authorized_apps.Receive()); |
103 if (FAILED(hr)) { | 103 if (FAILED(hr)) { |
(...skipping 20 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 |