From b179a1d938e7adfa0e5672d836892c18bde8925d Mon Sep 17 00:00:00 2001
From: Nebulosa <nebulosa2007@yandex.ru>
Date: Sat, 4 Nov 2023 13:21:03 +0300
Subject: [PATCH] Make Interface PreDown setting.

---
 model/server.go       | 1 +
 templates/server.html | 9 ++++++++-
 templates/wg.conf     | 1 +
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/model/server.go b/model/server.go
index 0784eea..0aa804f 100644
--- a/model/server.go
+++ b/model/server.go
@@ -23,5 +23,6 @@ type ServerInterface struct {
 	ListenPort int       `json:"listen_port,string"` // ,string to get listen_port string input as int
 	UpdatedAt  time.Time `json:"updated_at"`
 	PostUp     string    `json:"post_up"`
+	PreDown    string    `json:"pre_down"`
 	PostDown   string    `json:"post_down"`
 }
diff --git a/templates/server.html b/templates/server.html
index 366d301..6a24e6e 100644
--- a/templates/server.html
+++ b/templates/server.html
@@ -42,6 +42,12 @@ Wireguard Server Settings
                                 <input type="text" class="form-control" id="post_up" name="post_up"
                                        placeholder="Post Up Script" value="{{ .serverInterface.PostUp }}">
                             </div>
+                            <div class="form-group">
+                                <label for="pre_down">Pre Down Script</label>
+                                <input type="text" class="form-control" id="pre_down" name="pre_down"
+                                       placeholder="Pre Down Script" value="{{ .serverInterface.PreDown }}">
+                            </div>
+
                             <div class="form-group">
                                 <label for="post_down">Post Down Script</label>
                                 <input type="text" class="form-control" id="post_down" name="post_down"
@@ -130,8 +136,9 @@ Wireguard Server Settings
             const addresses = $("#addresses").val().split(",");
             const listen_port = $("#listen_port").val();
             const post_up = $("#post_up").val();
+            const pre_down = $("#pre_down").val();
             const post_down = $("#post_down").val();
-            const data = {"addresses": addresses, "listen_port": listen_port, "post_up": post_up, "post_down": post_down};
+            const data = {"addresses": addresses, "listen_port": listen_port, "post_up": post_up, "pre_down": pre_down, "post_down": post_down};
 
             $.ajax({
                 cache: false,
diff --git a/templates/wg.conf b/templates/wg.conf
index 81893a8..916f7ae 100644
--- a/templates/wg.conf
+++ b/templates/wg.conf
@@ -9,6 +9,7 @@ ListenPort = {{ .serverConfig.Interface.ListenPort }}
 PrivateKey = {{ .serverConfig.KeyPair.PrivateKey }}
 {{if .globalSettings.MTU}}MTU = {{ .globalSettings.MTU }}{{end}}
 PostUp = {{ .serverConfig.Interface.PostUp }}
+PreDown = {{ .serverConfig.Interface.PreDown }}
 PostDown = {{ .serverConfig.Interface.PostDown }}
 Table = {{ .globalSettings.Table }}