services: connman: Use match-record and export accessors.

* gnu/services/networking.scm (connman-shepherd-service): Use match-record.
(connman-configuration-connman, connman-configuration-disable-vpn?)
(connman-configuration-iwd?): Export accessors.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Bruno Victal 2023-03-07 12:44:00 +00:00 committed by Ludovic Courtès
parent 1e1b3ec012
commit 1545dab1fa
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -150,6 +150,9 @@ (define-module (gnu services networking)
connman-configuration connman-configuration
connman-configuration? connman-configuration?
connman-configuration-connman
connman-configuration-disable-vpn?
connman-configuration-iwd?
connman-service-type connman-service-type
modem-manager-configuration modem-manager-configuration
@ -1300,33 +1303,28 @@ (define (connman-activation config)
(mkdir-p "/var/lib/connman-vpn/")))))) (mkdir-p "/var/lib/connman-vpn/"))))))
(define (connman-shepherd-service config) (define (connman-shepherd-service config)
"Return a shepherd service for Connman" (match-record config <connman-configuration> (connman disable-vpn? iwd?)
(and (list (shepherd-service
(connman-configuration? config) (documentation "Run Connman")
(let ((connman (connman-configuration-connman config)) (provision '(networking))
(disable-vpn? (connman-configuration-disable-vpn? config)) (requirement
(iwd? (connman-configuration-iwd? config))) (append '(user-processes dbus-system loopback)
(list (shepherd-service (if iwd? '(iwd) '())))
(documentation "Run Connman") (start #~(make-forkexec-constructor
(provision '(networking)) (list (string-append #$connman
(requirement "/sbin/connmand")
(append '(user-processes dbus-system loopback) "--nodaemon"
(if iwd? '(iwd) '()))) "--nodnsproxy"
(start #~(make-forkexec-constructor #$@(if disable-vpn? '("--noplugin=vpn") '())
(list (string-append #$connman #$@(if iwd? '("--wifi=iwd_agent") '()))
"/sbin/connmand")
"--nodaemon"
"--nodnsproxy"
#$@(if disable-vpn? '("--noplugin=vpn") '())
#$@(if iwd? '("--wifi=iwd_agent") '()))
;; As connman(8) notes, when passing '-n', connman ;; As connman(8) notes, when passing '-n', connman
;; "directs log output to the controlling terminal in ;; "directs log output to the controlling terminal in
;; addition to syslog." Redirect stdout and stderr ;; addition to syslog." Redirect stdout and stderr
;; to avoid spamming the console (XXX: for some reason ;; to avoid spamming the console (XXX: for some reason
;; redirecting to /dev/null doesn't work.) ;; redirecting to /dev/null doesn't work.)
#:log-file "/var/log/connman.log")) #:log-file "/var/log/connman.log"))
(stop #~(make-kill-destructor))))))) (stop #~(make-kill-destructor))))))
(define %connman-log-rotation (define %connman-log-rotation
(list (log-rotation (list (log-rotation