aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-06-30 10:39:32 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-07-06 19:47:17 -0700
commit1604ea2e6757cc11c2c7b2e8b408d2ce969bd846 (patch)
tree5335d48c0f6001ded39fd8a76bd22937fc8e7235
parent855181e5e5edeb8bc4502448fa0b7803e79eb954 (diff)
downloadconsfigurator-1604ea2e6757cc11c2c7b2e8b408d2ce969bd846.tar.gz
factor out FIREWALLD::%SETXML & add reloading
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
-rw-r--r--src/package.lisp3
-rw-r--r--src/property/firewalld.lisp10
2 files changed, 9 insertions, 4 deletions
diff --git a/src/package.lisp b/src/package.lisp
index e0d7cbc..231e693 100644
--- a/src/package.lisp
+++ b/src/package.lisp
@@ -732,7 +732,8 @@
(defpackage :consfigurator.property.firewalld
(:use #:cl #:consfigurator)
- (:local-nicknames (#:file #:consfigurator.property.file)
+ (:local-nicknames (#:cmd #:consfigurator.property.cmd)
+ (#:file #:consfigurator.property.file)
(#:apt #:consfigurator.property.apt)
(#:os #:consfigurator.property.os))
(:export #:installed
diff --git a/src/property/firewalld.lisp b/src/property/firewalld.lisp
index 4b75713..ad362ca 100644
--- a/src/property/firewalld.lisp
+++ b/src/property/firewalld.lisp
@@ -31,11 +31,15 @@
(os:etypecase
(debianlike (apt:installed "firewalld"))))
+(defproplist %setxml :posix (type name xml)
+ (installed)
+ (on-change
+ (file:exists-with-content #?"/etc/firewalld/${type}/${name}.xml" xml)
+ (cmd:single "firewall-cmd" "--reload")))
+
(defproplist service :posix (name xml)
(:desc #?"firewalld knows service ${name}")
- (installed)
- (file:exists-with-content
- (merge-pathnames (strcat name ".xml") #P"/etc/firewalld/services/") xml))
+ (%setxml "services" name xml))
(defprop %firewall-cmd :posix (file warning &rest args)
(:apply