[PATCH] gnu: services: Fix fail2ban configuration serialization.

  • Done
  • quality assurance status badge
Details
3 participants
  • muradm
  • Maxim Cournoyer
  • Bruno Victal
Owner
unassigned
Submitted by
muradm
Severity
normal
M
M
muradm wrote on 10 Jan 2023 11:11
(address . guix-patches@gnu.org)(address . maxim.cournoyer@gmail.com)
20230110101136.26169-1-mail@muradm.net
This fixes a regression from 543d971ed2a1d9eb934af1f51930741d7cc4e7ef whereby
match-lambda due to configuration field reordering.

* gnu/services/security.scm:
[serialize-fail2ban-ignore-cache-configuration]: Remove first _ field.
[serialize-fail2ban-jail-filter-configuration]: Remove first _ field.
[serialize-fail2ban-jail-action-configuration]: Remove first _ field.
---
gnu/services/security.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (33 lines)
diff --git a/gnu/services/security.scm b/gnu/services/security.scm
index 50111455fb..53b3914a4f 100644
--- a/gnu/services/security.scm
+++ b/gnu/services/security.scm
@@ -44,7 +44,7 @@ (define-configuration/no-serialization fail2ban-ignore-cache-configuration
(define serialize-fail2ban-ignore-cache-configuration
(match-lambda
- (($ <fail2ban-ignore-cache-configuration> _ key max-count max-time)
+ (($ <fail2ban-ignore-cache-configuration> key max-count max-time)
(format #f "key=\"~a\", max-count=~d, max-time=~d"
key max-count max-time))))
@@ -56,7 +56,7 @@ (define-configuration/no-serialization fail2ban-jail-filter-configuration
(define serialize-fail2ban-jail-filter-configuration
(match-lambda
- (($ <fail2ban-jail-filter-configuration> _ name mode)
+ (($ <fail2ban-jail-filter-configuration> name mode)
(format #f "~a~@[[mode=~a]~]" name (maybe-value mode)))))
(define (argument? a)
@@ -88,7 +88,7 @@ (define (serialize-fail2ban-jail-action-configuration-arguments args)
(define serialize-fail2ban-jail-action-configuration
(match-lambda
- (($ <fail2ban-jail-action-configuration> _ name arguments)
+ (($ <fail2ban-jail-action-configuration> name arguments)
(format
#f "~a~a"
name
--
2.38.1
B
B
Bruno Victal wrote on 10 Jan 2023 13:05
(address . 60707@debbugs.gnu.org)(address . mail@muradm.net)
6a0ca979-80b0-a0a5-cb01-693516294f97@makinata.eu
You could refactor the code to use match-record instead.
It's easier to use and doesn't suffer from field reordering issues.


Cheers,
Bruno
M
M
muradm wrote on 10 Jan 2023 15:47
[PATCH v2] gnu: services: Fix fail2ban configuration serialization.
(address . 60707@debbugs.gnu.org)
20230110144756.31172-1-mail@muradm.net
This fixes a regression from 543d971ed2a1d9eb934af1f51930741d7cc4e7ef whereby
match-lambda due to configuration field reordering.

* gnu/services/security.scm:
[serialize-fail2ban-ignore-cache-configuration]: Switch to match-record.
[serialize-fail2ban-jail-filter-configuration]: Switch to match-record.
[serialize-fail2ban-jail-action-configuration]: Switch to match-record.
---
gnu/services/security.scm | 40 +++++++++++++++++++--------------------
1 file changed, 20 insertions(+), 20 deletions(-)

Toggle diff (67 lines)
diff --git a/gnu/services/security.scm b/gnu/services/security.scm
index 50111455fb..8116072920 100644
--- a/gnu/services/security.scm
+++ b/gnu/services/security.scm
@@ -42,11 +42,11 @@ (define-configuration/no-serialization fail2ban-ignore-cache-configuration
(max-count integer "Cache size.")
(max-time integer "Cache time."))
-(define serialize-fail2ban-ignore-cache-configuration
- (match-lambda
- (($ <fail2ban-ignore-cache-configuration> _ key max-count max-time)
- (format #f "key=\"~a\", max-count=~d, max-time=~d"
- key max-count max-time))))
+(define (serialize-fail2ban-ignore-cache-configuration config)
+ (match-record config <fail2ban-ignore-cache-configuration>
+ (key max-count max-time)
+ (format #f "key=\"~a\", max-count=~d, max-time=~d"
+ key max-count max-time)))
(define-maybe/no-serialization string)
@@ -54,10 +54,10 @@ (define-configuration/no-serialization fail2ban-jail-filter-configuration
(name string "Filter to use.")
(mode maybe-string "Mode for filter."))
-(define serialize-fail2ban-jail-filter-configuration
- (match-lambda
- (($ <fail2ban-jail-filter-configuration> _ name mode)
- (format #f "~a~@[[mode=~a]~]" name (maybe-value mode)))))
+(define (serialize-fail2ban-jail-filter-configuration config)
+ (match-record config <fail2ban-jail-filter-configuration>
+ (name mode)
+ (format #f "~a~@[[mode=~a]~]" name (maybe-value mode))))
(define (argument? a)
(and (pair? a)
@@ -86,17 +86,17 @@ (define (serialize-fail2ban-jail-action-configuration-arguments args)
(format #f "~a=~a" (car e) (any-value (cdr e))))))
(format #f "~a" (string-join (map key-value args) ","))))
-(define serialize-fail2ban-jail-action-configuration
- (match-lambda
- (($ <fail2ban-jail-action-configuration> _ name arguments)
- (format
- #f "~a~a"
- name
- (if (null? arguments) ""
- (format
- #f "[~a]"
- (serialize-fail2ban-jail-action-configuration-arguments
- arguments)))))))
+(define (serialize-fail2ban-jail-action-configuration config)
+ (match-record config <fail2ban-jail-action-configuration>
+ (name arguments)
+ (format
+ #f "~a~a"
+ name
+ (if (null? arguments) ""
+ (format
+ #f "[~a]"
+ (serialize-fail2ban-jail-action-configuration-arguments
+ arguments))))))
(define fail2ban-backend->string
(match-lambda
--
2.38.1
M
M
Maxim Cournoyer wrote on 10 Jan 2023 17:00
Re: bug#60707: [PATCH] gnu: services: Fix fail2ban configuration serialization.
(name . muradm)(address . mail@muradm.net)
87bkn6l6q3.fsf_-_@gmail.com
Hi!

(Please make sure to keep all participants such as Bruno in '--cc' in
the fututer to make it more likely they see your v2!)

muradm <mail@muradm.net> writes:

Toggle quote (8 lines)
> This fixes a regression from 543d971ed2a1d9eb934af1f51930741d7cc4e7ef whereby
> match-lambda due to configuration field reordering.
>
> * gnu/services/security.scm:
> [serialize-fail2ban-ignore-cache-configuration]: Switch to match-record.
> [serialize-fail2ban-jail-filter-configuration]: Switch to match-record.
> [serialize-fail2ban-jail-action-configuration]: Switch to match-record.

LGTM. Thanks to Bruno for the suggestion to use match-record.

Applied as dc403ec7f1.

--
Thanks,
Maxim
Closed
?