(rule: &INetFwRule)
| 266 | } |
| 267 | |
| 268 | fn rule_to_model(rule: &INetFwRule) -> Result<FirewallRule, FirewallError> { |
| 269 | let name = unsafe { rule.Name() }.map_err(|error| t!("firewall.ruleReadFailed", name = "<unknown>", error = error.to_string()).to_string())?; |
| 270 | let name = name.to_string(); |
| 271 | let err = map_read_err(&name); |
| 272 | let profiles = profiles_from_mask(unsafe { rule.Profiles() }.map_err(&err)?); |
| 273 | |
| 274 | Ok(FirewallRule { |
| 275 | name: Some(name.clone()), |
| 276 | exist: None, |
| 277 | description: bstr_to_option(unsafe { rule.Description() }.map_err(&err)?)?, |
| 278 | application_name: bstr_to_option(unsafe { rule.ApplicationName() }.map_err(&err)?)?, |
| 279 | service_name: bstr_to_option(unsafe { rule.ServiceName() }.map_err(&err)?)?, |
| 280 | protocol: Some(unsafe { rule.Protocol() }.map_err(&err)?), |
| 281 | local_ports: bstr_to_option(unsafe { rule.LocalPorts() }.map_err(&err)?)?, |
| 282 | remote_ports: bstr_to_option(unsafe { rule.RemotePorts() }.map_err(&err)?)?, |
| 283 | local_addresses: bstr_to_option(unsafe { rule.LocalAddresses() }.map_err(&err)?)?, |
| 284 | remote_addresses: bstr_to_option(unsafe { rule.RemoteAddresses() }.map_err(&err)?)?, |
| 285 | direction: native_direction_to_model(unsafe { rule.Direction() }.map_err(&err)?), |
| 286 | action: native_action_to_model(unsafe { rule.Action() }.map_err(&err)?), |
| 287 | enabled: Some(unsafe { rule.Enabled() }.map_err(&err)?.as_bool()), |
| 288 | profiles: Some(profiles), |
| 289 | grouping: bstr_to_option(unsafe { rule.Grouping() }.map_err(&err)?)?, |
| 290 | interface_types: split_csv(bstr_to_option(unsafe { rule.InterfaceTypes() }.map_err(&err)?)?), |
| 291 | edge_traversal: Some(unsafe { rule.EdgeTraversal() }.map_err(&err)?.as_bool()), |
| 292 | }) |
| 293 | } |
| 294 | |
| 295 | fn apply_rule_properties(rule: &INetFwRule, desired: &FirewallRule, existing_protocol: Option<i32>) -> Result<(), FirewallError> { |
| 296 | let name = desired.selector_name().unwrap_or("<unknown>"); |
no test coverage detected