From 5f5ff34337952a56a079e448fb4a5d25f63ddcf6 Mon Sep 17 00:00:00 2001 From: Samuel Lorch Date: Sun, 5 Mar 2023 21:44:42 +0100 Subject: [PATCH] Add Firewall Get Rule API Methods --- api/firewall/destination_nat_rules.go | 20 ++++++++++++++++++++ api/firewall/firewall.go | 9 +++++++++ api/firewall/forward_rules.go | 20 ++++++++++++++++++++ api/firewall/source_nat_rules.go | 20 ++++++++++++++++++++ cmd/api.go | 3 ++- 5 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 api/firewall/destination_nat_rules.go create mode 100644 api/firewall/firewall.go create mode 100644 api/firewall/forward_rules.go create mode 100644 api/firewall/source_nat_rules.go diff --git a/api/firewall/destination_nat_rules.go b/api/firewall/destination_nat_rules.go new file mode 100644 index 0000000..7575aec --- /dev/null +++ b/api/firewall/destination_nat_rules.go @@ -0,0 +1,20 @@ +package firewall + +import ( + "context" + + "nfsense.net/nfsense/pkg/definitions" +) + +type GetDestinationNATRulesParameters struct { +} + +type GetDestinationNATRulesResult struct { + DestinationNATRules []definitions.DestinationNATRule +} + +func (f *Firewall) GetDestinationNATRules(ctx context.Context, params GetForwardRulesParameters) (GetDestinationNATRulesResult, error) { + return GetDestinationNATRulesResult{ + DestinationNATRules: f.Conf.Firewall.DestinationNATRules, + }, nil +} diff --git a/api/firewall/firewall.go b/api/firewall/firewall.go new file mode 100644 index 0000000..2ec9904 --- /dev/null +++ b/api/firewall/firewall.go @@ -0,0 +1,9 @@ +package firewall + +import ( + "nfsense.net/nfsense/pkg/definitions" +) + +type Firewall struct { + Conf *definitions.Config +} diff --git a/api/firewall/forward_rules.go b/api/firewall/forward_rules.go new file mode 100644 index 0000000..525261d --- /dev/null +++ b/api/firewall/forward_rules.go @@ -0,0 +1,20 @@ +package firewall + +import ( + "context" + + "nfsense.net/nfsense/pkg/definitions" +) + +type GetForwardRulesParameters struct { +} + +type GetForwardRulesResult struct { + ForwardRules []definitions.ForwardRule +} + +func (f *Firewall) GetForwardRules(ctx context.Context, params GetForwardRulesParameters) (GetForwardRulesResult, error) { + return GetForwardRulesResult{ + ForwardRules: f.Conf.Firewall.ForwardRules, + }, nil +} diff --git a/api/firewall/source_nat_rules.go b/api/firewall/source_nat_rules.go new file mode 100644 index 0000000..becd459 --- /dev/null +++ b/api/firewall/source_nat_rules.go @@ -0,0 +1,20 @@ +package firewall + +import ( + "context" + + "nfsense.net/nfsense/pkg/definitions" +) + +type GetSourceNATRulesParameters struct { +} + +type GetSourceNATRulesResult struct { + SourceNATRules []definitions.SourceNATRule +} + +func (f *Firewall) GetSourceNATRules(ctx context.Context, params GetForwardRulesParameters) (GetSourceNATRulesResult, error) { + return GetSourceNATRulesResult{ + SourceNATRules: f.Conf.Firewall.SourceNATRules, + }, nil +} diff --git a/cmd/api.go b/cmd/api.go index 4313db3..74acd5c 100644 --- a/cmd/api.go +++ b/cmd/api.go @@ -1,10 +1,11 @@ package main import ( + "nfsense.net/nfsense/api/firewall" "nfsense.net/nfsense/pkg/definitions" "nfsense.net/nfsense/pkg/jsonrpc" ) func RegisterAPIMethods(apiHandler *jsonrpc.Handler, conf *definitions.Config) { - + apiHandler.Register("Firewall", &firewall.Firewall{Conf: conf}) }