add: client MTU settings available from command line

This commit is contained in:
Paul Fournet 2022-04-04 12:54:20 +00:00
parent ad4ca4d9bb
commit 026bca5078
3 changed files with 11 additions and 1 deletions

View file

@ -3,10 +3,11 @@ package main
import (
"flag"
"fmt"
"github.com/labstack/echo/v4"
"net/http"
"time"
"github.com/labstack/echo/v4"
rice "github.com/GeertJohan/go.rice"
"github.com/ngoduykhanh/wireguard-ui/emailer"
"github.com/ngoduykhanh/wireguard-ui/handler"
@ -34,6 +35,7 @@ var (
flagEmailFrom string
flagEmailFromName string = "WireGuard UI"
flagSessionSecret string
flagClientMTU int
)
const (
@ -60,6 +62,7 @@ func init() {
flag.StringVar(&flagEmailFrom, "email-from", util.LookupEnvOrString("EMAIL_FROM_ADDRESS", flagEmailFrom), "'From' email address.")
flag.StringVar(&flagEmailFromName, "email-from-name", util.LookupEnvOrString("EMAIL_FROM_NAME", flagEmailFromName), "'From' email name.")
flag.StringVar(&flagSessionSecret, "session-secret", util.LookupEnvOrString("SESSION_SECRET", flagSessionSecret), "The key used to encrypt session cookies.")
flag.IntVar(&flagClientMTU, "client-mtu", util.LookupEnvOrInt("CLIENT_MTU", flagClientMTU), "Client default MTU")
flag.Parse()
// update runtime config
@ -75,6 +78,7 @@ func init() {
util.EmailFrom = flagEmailFrom
util.EmailFromName = flagEmailFromName
util.SessionSecret = []byte(flagSessionSecret)
util.ClientMTU = flagClientMTU
// print app information
fmt.Println("Wireguard UI")

View file

@ -16,6 +16,7 @@ var (
EmailSubject string
EmailContent string
SessionSecret []byte
ClientMTU int
)
const (

View file

@ -27,6 +27,10 @@ func BuildClientConfig(client model.Client, server model.Server, setting model.G
if client.UseServerDNS {
clientDNS = fmt.Sprintf("DNS = %s\n", strings.Join(setting.DNSServers, ","))
}
clientMTU := ""
if ClientMTU > 0 {
clientMTU = fmt.Sprintf("MTU = %d\n", ClientMTU)
}
// Peer section
peerPublicKey := fmt.Sprintf("PublicKey = %s\n", server.KeyPair.PublicKey)
@ -60,6 +64,7 @@ func BuildClientConfig(client model.Client, server model.Server, setting model.G
clientAddress +
clientPrivateKey +
clientDNS +
clientMTU +
"\n[Peer]\n" +
peerPublicKey +
peerPresharedKey +