fixes; first version
[rrq/hourglass.git] / ipset-control.lsp
1
2 # Should load from "ipset.cfg"
3 (constant 'IPSET SITE:ipset.bin 'TABLE SITE:ipset.table 'NET SITE:control.net)
4
5 ;; Return current low-leve "close" or "open" status
6 (define (current-status)
7   (if (member NET (exec (format "%s list %s" IPSET TABLE))) "close" "open"))
8
9 ;; Ensure low-level setting is "close" or "open" as given
10 (define (control cmd reason)
11   (when (!= cmd (current-status))
12     (let ((todo (case cmd ("open" "del") ("close" "add") (true "XXX"))))
13       (! (println (date-value)
14                   (format " ipset-control (%s): " reason)
15                   (format "%s %s %s %s" IPSET todo TABLE NET)))))
16   )
17
18 "ipset-control.lsp"