diff --git a/core/server.go b/core/server.go index f1664ff020edc0dc37573615a87e216d079d2fc6..5069498cc34a3d27f6d9e7ea609c9356ad6c48dc 100644 --- a/core/server.go +++ b/core/server.go @@ -35,6 +35,10 @@ func ReadServer() (*model.Server, error) { server.Address = "fd9f:6666::10:6:6:1/112, 10.6.6.1/24" server.Dns = "fd9f::10:0:0:2, 10.0.0.2" server.PersistentKeepalive = 16 + server.PreUp = "echo WireGuard PreUp" + server.PostUp = "echo WireGuard PostUp" + server.PreDown = "echo WireGuard PreDown" + server.PostDown = "echo WireGuard PostDown" server.Created = time.Now().UTC() server.Updated = server.Created diff --git a/model/server.go b/model/server.go index 0d2c642973850fcdf17bbb8b24508d2924d74523..e27df514ab1633a13157b52598480224f1ffc4bc 100644 --- a/model/server.go +++ b/model/server.go @@ -15,4 +15,8 @@ type Server struct { Endpoint string `json:"endpoint"` PersistentKeepalive int `json:"persistentKeepalive"` Dns string `json:"dns"` + PreUp string `json:"preUp"` + PostUp string `json:"postUp"` + PreDown string `json:"preDown"` + PostDown string `json:"postDown"` } diff --git a/template/template.go b/template/template.go index 7469d6a3bc8a17a99f84451fb052d1ef95c789b0..ea6a72077280928a0bc80e63027748dc2d521f7d 100644 --- a/template/template.go +++ b/template/template.go @@ -217,6 +217,10 @@ Address = {{.}} {{end}} ListenPort = {{.Server.ListenPort}} PrivateKey = {{.Server.PrivateKey}} +PreUp = {{.Server.PreUp}} +PostUp = {{.Server.PostUp}} +PreDown = {{.Server.PreDown}} +PostDown = {{.Server.PostDown}} {{$server := .Server}} {{range .Clients}} {{if .Enable}} diff --git a/ui/src/views/Home.vue b/ui/src/views/Home.vue index a6b70d103c3e25935e68942f886154c1e4bf8230..1968b0d55afee8a99feb157cdc94cac417f66697 100644 --- a/ui/src/views/Home.vue +++ b/ui/src/views/Home.vue @@ -55,6 +55,14 @@ </v-chip> </template> </v-combobox> + <v-text-field + v-model="server.preUp" + label="PreUp: script snippets which will be executed by bash before setting up the interface" + /> + <v-text-field + v-model="server.postUp" + label="PostUp: script snippets which will be executed by bash after setting up the interface" + /> </v-col> <v-col cols="6"> <v-text-field @@ -96,6 +104,14 @@ </v-chip> </template> </v-combobox> + <v-text-field + v-model="server.preDown" + label="PreDown: script snippets which will be executed by bash before setting down the interface" + /> + <v-text-field + v-model="server.postDown " + label="PostDown : script snippets which will be executed by bash after setting down the interface" + /> </v-col> </div>