summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorBruno Victal <mirai@makinata.eu>2023-03-07 12:44:00 +0000
committerLudovic Courtès <ludo@gnu.org>2023-03-10 14:49:57 +0100
commit1545dab1fa8a09ac7936e3a9ba1134843f178e1e (patch)
tree85d08e2e8f4941b75b6025db2bfb334ecb19c8f8 /gnu
parent1e1b3ec0126ec3b23338c7991c747ab432c97a3c (diff)
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>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/services/networking.scm52
1 files changed, 25 insertions, 27 deletions
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index f572de1279..abfaba8004 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -150,6 +150,9 @@
connman-configuration
connman-configuration?
+ connman-configuration-connman
+ connman-configuration-disable-vpn?
+ connman-configuration-iwd?
connman-service-type
modem-manager-configuration
@@ -1300,33 +1303,28 @@ wireless networking."))))
(mkdir-p "/var/lib/connman-vpn/"))))))
(define (connman-shepherd-service config)
- "Return a shepherd service for Connman"
- (and
- (connman-configuration? config)
- (let ((connman (connman-configuration-connman config))
- (disable-vpn? (connman-configuration-disable-vpn? config))
- (iwd? (connman-configuration-iwd? config)))
- (list (shepherd-service
- (documentation "Run Connman")
- (provision '(networking))
- (requirement
- (append '(user-processes dbus-system loopback)
- (if iwd? '(iwd) '())))
- (start #~(make-forkexec-constructor
- (list (string-append #$connman
- "/sbin/connmand")
- "--nodaemon"
- "--nodnsproxy"
- #$@(if disable-vpn? '("--noplugin=vpn") '())
- #$@(if iwd? '("--wifi=iwd_agent") '()))
-
- ;; As connman(8) notes, when passing '-n', connman
- ;; "directs log output to the controlling terminal in
- ;; addition to syslog." Redirect stdout and stderr
- ;; to avoid spamming the console (XXX: for some reason
- ;; redirecting to /dev/null doesn't work.)
- #:log-file "/var/log/connman.log"))
- (stop #~(make-kill-destructor)))))))
+ (match-record config <connman-configuration> (connman disable-vpn? iwd?)
+ (list (shepherd-service
+ (documentation "Run Connman")
+ (provision '(networking))
+ (requirement
+ (append '(user-processes dbus-system loopback)
+ (if iwd? '(iwd) '())))
+ (start #~(make-forkexec-constructor
+ (list (string-append #$connman
+ "/sbin/connmand")
+ "--nodaemon"
+ "--nodnsproxy"
+ #$@(if disable-vpn? '("--noplugin=vpn") '())
+ #$@(if iwd? '("--wifi=iwd_agent") '()))
+
+ ;; As connman(8) notes, when passing '-n', connman
+ ;; "directs log output to the controlling terminal in
+ ;; addition to syslog." Redirect stdout and stderr
+ ;; to avoid spamming the console (XXX: for some reason
+ ;; redirecting to /dev/null doesn't work.)
+ #:log-file "/var/log/connman.log"))
+ (stop #~(make-kill-destructor))))))
(define %connman-log-rotation
(list (log-rotation