Subject: [PATCH] Wireguard: Add autostart? field.
From: Apoorv Singh <[email-masked]>
To: [email-masked]
Date: Wed, 25 Sep 2024 14:07:31 +0530
List-Id: <debbugs-submit.debbugs.gnu.org>

The following patch adds a record field autostart? which can be 
used by the user to configure weather the wireguard service should 
start automatically. This field is helpful for people who might 
have limited bandwidth and/or they don't want the wireguard 
service to start at boot which in turn starts the VPN without them 
knowing as it can result in un-desired usage of their bandwidth 
etc.

I personally have limited bandwidth on the VPS I am running the wireguard VPN on and don't want to use it all the time, and this options will fix that, as I sometimes forget that I have it turned on

From 378f72413697e418061fe359acddf24d6afe1add Mon Sep 17 00:00:00 2001
From: apoorv569 <[email-masked]>
Date: Wed, 25 Sep 2024 09:10:36 +0530
Subject: [PATCH 2/2] Wireguard add autostart? field

---
 gnu/services/vpn.scm | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm
index 449909e34d..eee7e78c6d 100644
--- a/gnu/services/vpn.scm
+++ b/gnu/services/vpn.scm
@@ -86,6 +86,7 @@ (define-module (gnu services vpn)
             wireguard-configuration-pre-down
             wireguard-configuration-post-down
             wireguard-configuration-table
+            wireguard-configuration-autostart?
 
             wireguard-service-type))
 
@@ -760,7 +761,9 @@ (define-record-type* <wireguard-configuration>
   (post-down          wireguard-configuration-post-down ;list of strings
                       (default '()))
   (table              wireguard-configuration-table ;string
-                      (default "auto")))
+                      (default "auto"))
+  (autostart?         wireguard-configuration-autostart?
+                      (default #f)))
 
 (define (wireguard-configuration-file config)
   (define (peer->config peer)
@@ -907,7 +910,8 @@ (define (wireguard-shepherd-service config)
   (match-record config <wireguard-configuration>
     (wireguard interface)
     (let ((wg-quick (file-append wireguard "/bin/wg-quick"))
-          (config (wireguard-configuration-file config)))
+          (config (wireguard-configuration-file config))
+          (autostart (wireguard-configuration-autostart? config)))
       (list (shepherd-service
              (requirement '(networking))
              (provision (list (wireguard-service-name interface)))
@@ -916,6 +920,7 @@ (define (wireguard-shepherd-service config)
              (stop #~(lambda _
                        (invoke #$wg-quick "down" #$config)
                        #f))                       ;stopped!
+             (auto-start? autostart)
              (actions (list (shepherd-configuration-action config)))
              (documentation "Run the Wireguard VPN tunnel"))))))
 
-- 
2.46.0

.

-- 
- Apoorv Singh
- Sent from Emacs.