Add Apply Config button to save wireguard config file

This commit is contained in:
Khanh Ngo 2020-04-23 09:29:44 +07:00
parent ea36311475
commit 7c3cac8084
No known key found for this signature in database
GPG key ID: D5FAA6A16150E49E
7 changed files with 177 additions and 2 deletions

View file

@ -5,7 +5,9 @@ import (
"errors"
"fmt"
"net"
"os"
"strings"
"text/template"
"time"
externalip "github.com/glendc/go-external-ip"
@ -308,3 +310,30 @@ func ValidateIPAllocation(serverAddresses []string, ipAllocatedList []string, ip
return true, nil
}
// WriteWireGuardServerConfig to write Wireguard server config. e.g. wg0.conf
func WriteWireGuardServerConfig(serverConfig model.Server, clientDataList []model.ClientData, globalSettings model.GlobalSetting) error {
t, err := template.ParseFiles("templates/wg.conf")
if err != nil {
return err
}
f, err := os.Create(globalSettings.ConfigFilePath)
if err != nil {
return err
}
config := map[string]interface{}{
"serverConfig": serverConfig,
"clientDataList": clientDataList,
"globalSettings": globalSettings,
}
err = t.Execute(f, config)
if err != nil {
return err
}
f.Close()
return nil
}