public SetRuleResponse NewRule(SetRuleRequest dtoRule) { ToastHelper.PopToast("New rule"); Rule domainRule; if (dtoRule.WindowsRequst != null) { domainRule = dtoRule.WindowsRequst; } else if (dtoRule.GenericRequest != null) { domainRule = (Rule)(new WindowsRuleAdapter(dtoRule.GenericRequest).NativeType); } else { return(new SetRuleResponse() { Success = false }); } FirewallHelper.NewRule(domainRule); return(new SetRuleResponse() { Success = true }); }
public async Task UpdateRule(string host, string ruleName, SetRuleRequest rule) { using (var handler = getHandler()) { using (var client = new HttpClient(handler)) { // Configure client UriBuilder uriBuilder = new UriBuilder(HTTPS_SCHEME, host, PORT_NUMBER); client.BaseAddress = uriBuilder.Uri; // Configure content var encodedName = Uri.EscapeUriString(ruleName); var json = JsonConvert.SerializeObject(rule); var content = new StringContent(json); content.Headers.ContentType = new MediaTypeHeaderValue(CONTENT_TYPE); // Make request var response = await client.PutAsync($"{RULES_ENDPOINT}/{encodedName}", content); if (!response.IsSuccessStatusCode) { throw new Exception(); } } } }
public void UpdateRule(string id, SetRuleRequest rule) { Linux.Models.Rule newEntry = null; if (rule.GenericRequest != null) { newEntry = (Linux.Models.Rule)(new LinuxRuleAdapter(rule.GenericRequest).NativeType); } else if (rule.UfwRequest != null) { newEntry = rule.UfwRequest; } FirewallHelper.UpdateRule(newEntry); }
public async Task <IActionResult> CrossDeviceRule(Agent.Generic.Models.Rule rule) { var f = Request.Form; var devs = f["Device"]; try { rule.LocalPort = rule.LocalPort ?? Agent.Generic.Models.Rule.ANY_PORT; rule.RemoteAddress = System.Net.IPAddress.Parse(rule.RemoteAddress).ToString(); } catch (FormatException) { rule.RemoteAddress = Agent.Generic.Models.Rule.ANY_IP_ADDRESS; } // TODO: Add to UI if (rule.Direction == Agent.Generic.Models.Direction.In) { rule.RemotePort = Agent.Generic.Models.Rule.ANY_PORT; rule.LocalAddress = Agent.Generic.Models.Rule.ANY_IP_ADDRESS; } else { rule.RemotePort = rule.LocalPort; rule.LocalPort = Agent.Generic.Models.Rule.ANY_PORT; rule.LocalAddress = Agent.Generic.Models.Rule.ANY_IP_ADDRESS; } var dtoRule = new SetRuleRequest(); dtoRule.GenericRequest = rule; var client = new AgentApiClient(); var tasks = new List <Task>(devs.Count); foreach (var device in devs) { var d = deviceRepo.GetDevice(device); tasks.Add(client.NewRule(d.Address, dtoRule)); } await Task.WhenAll(tasks); return(RedirectToAction("Index")); }
public void UpdateRule(string name, SetRuleRequest dtoRule) { ToastHelper.PopToast("Update rule"); Rule domainRule; if (dtoRule.WindowsRequst != null) { domainRule = dtoRule.WindowsRequst; } else if (dtoRule.GenericRequest != null) { domainRule = (Rule)(new WindowsRuleAdapter(dtoRule.GenericRequest).NativeType); } else { // TODO: This is inconsistent with NewRule return; } FirewallHelper.UpdateRule(name, domainRule); }
public SetRuleResponse NewRule(SetRuleRequest rule) { ToastHelper.PopToast("New rule"); Linux.Models.Rule newEntry = null; if (rule.GenericRequest != null) { newEntry = (Linux.Models.Rule)(new LinuxRuleAdapter(rule.GenericRequest).NativeType); } else if (rule.UfwRequest != null) { newEntry = rule.UfwRequest; } //var st = Mapper.Map<FirewallAPI.Rule>(newEntry); FirewallHelper.NewRule(newEntry); return(new SetRuleResponse() { Success = true }); }
public async Task <IActionResult> Create(string id, Agent.Generic.Models.Rule rule) { var device = repo.GetDevice(id); try { rule.LocalPort = rule.LocalPort ?? Agent.Generic.Models.Rule.ANY_PORT; rule.RemoteAddress = System.Net.IPAddress.Parse(rule.RemoteAddress).ToString(); } catch (FormatException) { rule.RemoteAddress = Agent.Generic.Models.Rule.ANY_IP_ADDRESS; } // TODO: Add to UI if (rule.Direction == Agent.Generic.Models.Direction.In) { rule.RemotePort = Agent.Generic.Models.Rule.ANY_PORT; rule.LocalAddress = Agent.Generic.Models.Rule.ANY_IP_ADDRESS; } else { rule.RemotePort = rule.LocalPort; rule.LocalPort = Agent.Generic.Models.Rule.ANY_PORT; rule.LocalAddress = Agent.Generic.Models.Rule.ANY_IP_ADDRESS; } var dtoRule = new SetRuleRequest(); dtoRule.GenericRequest = rule; var client = new AgentApiClient(); await client.NewRule(device.Address, dtoRule); return(RedirectToAction("Index")); }
public void Put([FromRoute] string id, [FromBody] SetRuleRequest rule) { Program.Callbacks.UpdateRule(id, rule); }
public SetRuleResponse Post([FromBody] SetRuleRequest rule) { return(Program.Callbacks.NewRule(rule)); }