summary refs log tree commit diff
path: root/gnu/home/services
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/home/services')
-rw-r--r--gnu/home/services/ssh.scm8
1 files changed, 5 insertions, 3 deletions
diff --git a/gnu/home/services/ssh.scm b/gnu/home/services/ssh.scm
index ac72129b6c..34b1fe4658 100644
--- a/gnu/home/services/ssh.scm
+++ b/gnu/home/services/ssh.scm
@@ -203,6 +203,9 @@
                                           first))))
         (memq keyword ssh-match-keywords))))
 
+(define (serialize-match-criteria _ value)
+  (string-append "Match " value "\n"))
+
 (define-maybe match-criteria)
 
 (define-configuration openssh-host
@@ -214,7 +217,7 @@ top-level options.")
   (host-name
    maybe-string
    "Host name---e.g., @code{\"foo.example.org\"} or @code{\"192.168.1.2\"}.")
-  (match-criteria ;TODO implement stricter match-criteria rules
+  (match-criteria
    maybe-match-criteria
    "When specified, this string denotes the set of hosts to which the entry
 applies, superseding the @code{host-name} field.  Its first element must be
@@ -288,8 +291,7 @@ through before connecting to the server.")
              (G_ "define either 'name' or 'match-criteria', not both")))
            (string-append "Host " (openssh-host-name config) "\n"))
        (if (maybe-value-set? (openssh-host-match-criteria config))
-           (string-append
-            "Match " (string-join (openssh-host-match-criteria config) " ") "\n")
+           (serialize-match-criteria #t (openssh-host-match-criteria config))
            (raise
             (formatted-message
              (G_ "define either 'name' or 'match-criteria' once")))))