diff --git a/README.md b/README.md index 35affec..b8f8a62 100644 --- a/README.md +++ b/README.md @@ -88,3 +88,7 @@ mkdir configfiles # or for help of specific verb ./wgcfghelp gen-site --help ``` + +## Copyright + +"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld. diff --git a/WgCfgHelp.CLI/Handler/ServerConfigHandler.cs b/WgCfgHelp.CLI/Handler/ServerConfigHandler.cs index b7e5eee..32ea31b 100644 --- a/WgCfgHelp.CLI/Handler/ServerConfigHandler.cs +++ b/WgCfgHelp.CLI/Handler/ServerConfigHandler.cs @@ -109,6 +109,11 @@ private static int GenerateServerAccessFile(SiteConfigFile configFile, var serverConfig = WgConfigFactory.GenServerConfig(address, configFile.Port!.Value, configFile.PrivateKey!, + configFile.PreUp, + configFile.PostUp, + configFile.PreDown, + configFile.PostDown, + configFile.Mtu, wgQuickPeers ); diff --git a/WgCfgHelp.CLI/Models/SiteConfigFile.cs b/WgCfgHelp.CLI/Models/SiteConfigFile.cs index 866cf70..f21d01d 100644 --- a/WgCfgHelp.CLI/Models/SiteConfigFile.cs +++ b/WgCfgHelp.CLI/Models/SiteConfigFile.cs @@ -24,6 +24,16 @@ public class SiteConfigFile public string? AllowedIPs { get; set; } + public int? Mtu { get; set; } + + public string? PreUp { get; set; } + + public string? PostUp { get; set; } + + public string? PreDown { get; set; } + + public string? PostDown { get; set; } + public List Peers { get; set; } = new List(); public static SiteConfigFile LoadFromFile(string path) diff --git a/WgCfgHelp.Lib/Models/WgQuickConfigFile.cs b/WgCfgHelp.Lib/Models/WgQuickConfigFile.cs index 8b237bf..475ef5e 100644 --- a/WgCfgHelp.Lib/Models/WgQuickConfigFile.cs +++ b/WgCfgHelp.Lib/Models/WgQuickConfigFile.cs @@ -19,6 +19,16 @@ public class WgQuickConfigFile public int? ListenPort { get; set; } + public int? Mtu { get; set; } + + public string? PreUp { get; set; } + + public string? PostUp { get; set; } + + public string? PreDown { get; set; } + + public string? PostDown { get; set; } + public List Peers { get; set; } = new List(); public string ToConfigFileFormat() @@ -28,6 +38,11 @@ public string ToConfigFileFormat() output += $"PrivateKey = {PrivateKey}\n"; output += $"# PublicKey = {PublicKey}\n"; if(!string.IsNullOrWhiteSpace(DNS)) output += $"DNS = {DNS}\n"; + if(Mtu is not null) output += $"MTU = {Mtu}\n"; + if(!string.IsNullOrWhiteSpace(PreUp)) output += $"PreUp = {PreUp}\n"; + if(!string.IsNullOrWhiteSpace(PreDown)) output += $"PreDown = {PreDown}\n"; + if(!string.IsNullOrWhiteSpace(PostUp)) output += $"PostUp = {PostUp}\n"; + if(!string.IsNullOrWhiteSpace(PostDown)) output += $"PostDown = {PostDown}\n"; if (ListenPort.HasValue) output += $"ListenPort = {ListenPort}\n"; foreach (var peer in Peers) diff --git a/WgCfgHelp.Lib/WgConfigFactory.cs b/WgCfgHelp.Lib/WgConfigFactory.cs index ae1c227..b53f171 100644 --- a/WgCfgHelp.Lib/WgConfigFactory.cs +++ b/WgCfgHelp.Lib/WgConfigFactory.cs @@ -14,7 +14,12 @@ public class WgConfigFactory public static WgQuickConfigFile GenServerConfig( string address, int port, - string privateKey, + string privateKey, + string? preUp, + string? postUp, + string? preDown, + string? postDown, + int? mtu, List peers) { var wgExeInt = WgExeInterface.Create(); @@ -23,6 +28,11 @@ public static WgQuickConfigFile GenServerConfig( Address = address, PrivateKey = privateKey, ListenPort = port, + PreUp = preUp, + PostUp = postUp, + PreDown = preDown, + PostDown = postDown, + Mtu = mtu, }; wgConfig.PublicKey = wgExeInt.GenPublicKey(wgConfig.PrivateKey); wgConfig.Peers = peers;