diff options
author | Wei-Ming Yang <rick68@gmail.com> | 2017-09-26 03:03:16 +0800 |
---|---|---|
committer | Wei-Ming Yang <rick68@gmail.com> | 2017-10-03 01:35:20 +0800 |
commit | 7e4e2667ae95b19ae5982c33c498a100349daccd (patch) | |
tree | e2d9303800314c9ccf21f3739bd1bb02c9e987d2 /nixos | |
parent | 1ff1c6ac4a4c8bc7f237bc14d5ff2ca336f3f610 (diff) | |
download | nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar.gz nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar.bz2 nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar.lz nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar.xz nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.tar.zst nixlib-7e4e2667ae95b19ae5982c33c498a100349daccd.zip |
softether: 4.18 -> 4.20
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/networking/softether.nix | 55 |
1 files changed, 32 insertions, 23 deletions
diff --git a/nixos/modules/services/networking/softether.nix b/nixos/modules/services/networking/softether.nix index 16530078b978..9087b75c29c1 100644 --- a/nixos/modules/services/networking/softether.nix +++ b/nixos/modules/services/networking/softether.nix @@ -3,7 +3,6 @@ with lib; let - pkg = pkgs.softether; cfg = config.services.softether; in @@ -17,6 +16,15 @@ in enable = mkEnableOption "SoftEther VPN services"; + package = mkOption { + type = types.package; + default = pkgs.softether; + defaultText = "pkgs.softether"; + description = '' + softether derivation to use. + ''; + }; + vpnserver.enable = mkEnableOption "SoftEther VPN Server"; vpnbridge.enable = mkEnableOption "SoftEther VPN Bridge"; @@ -41,7 +49,7 @@ in dataDir = mkOption { type = types.string; - default = "${pkg.dataDir}"; + default = "${cfg.package.dataDir}"; description = '' Data directory for SoftEther VPN. ''; @@ -57,12 +65,13 @@ in mkMerge [{ environment.systemPackages = [ - (pkgs.lib.overrideDerivation pkg (attrs: { + (pkgs.lib.overrideDerivation cfg.package (attrs: { dataDir = cfg.dataDir; })) ]; systemd.services."softether-init" = { description = "SoftEther VPN services initial task"; + wantedBy = [ "network.target" ]; serviceConfig = { Type = "oneshot"; RemainAfterExit = false; @@ -71,11 +80,11 @@ in for d in vpnserver vpnbridge vpnclient vpncmd; do if ! test -e ${cfg.dataDir}/$d; then ${pkgs.coreutils}/bin/mkdir -m0700 -p ${cfg.dataDir}/$d - install -m0600 ${pkg}${cfg.dataDir}/$d/hamcore.se2 ${cfg.dataDir}/$d/hamcore.se2 + install -m0600 ${cfg.package}${cfg.dataDir}/$d/hamcore.se2 ${cfg.dataDir}/$d/hamcore.se2 fi done rm -rf ${cfg.dataDir}/vpncmd/vpncmd - ln -s ${pkg}${cfg.dataDir}/vpncmd/vpncmd ${cfg.dataDir}/vpncmd/vpncmd + ln -s ${cfg.package}${cfg.dataDir}/vpncmd/vpncmd ${cfg.dataDir}/vpncmd/vpncmd ''; }; } @@ -83,17 +92,17 @@ in (mkIf (cfg.vpnserver.enable) { systemd.services.vpnserver = { description = "SoftEther VPN Server"; - after = [ "softether-init.service" "network.target" ]; - wants = [ "softether-init.service" ]; - wantedBy = [ "multi-user.target" ]; + after = [ "softether-init.service" ]; + requires = [ "softether-init.service" ]; + wantedBy = [ "network.target" ]; serviceConfig = { Type = "forking"; - ExecStart = "${pkg}/bin/vpnserver start"; - ExecStop = "${pkg}/bin/vpnserver stop"; + ExecStart = "${cfg.package}/bin/vpnserver start"; + ExecStop = "${cfg.package}/bin/vpnserver stop"; }; preStart = '' rm -rf ${cfg.dataDir}/vpnserver/vpnserver - ln -s ${pkg}${cfg.dataDir}/vpnserver/vpnserver ${cfg.dataDir}/vpnserver/vpnserver + ln -s ${cfg.package}${cfg.dataDir}/vpnserver/vpnserver ${cfg.dataDir}/vpnserver/vpnserver ''; postStop = '' rm -rf ${cfg.dataDir}/vpnserver/vpnserver @@ -104,17 +113,17 @@ in (mkIf (cfg.vpnbridge.enable) { systemd.services.vpnbridge = { description = "SoftEther VPN Bridge"; - after = [ "softether-init.service" "network.target" ]; - wants = [ "softether-init.service" ]; - wantedBy = [ "multi-user.target" ]; + after = [ "softether-init.service" ]; + requires = [ "softether-init.service" ]; + wantedBy = [ "network.target" ]; serviceConfig = { Type = "forking"; - ExecStart = "${pkg}/bin/vpnbridge start"; - ExecStop = "${pkg}/bin/vpnbridge stop"; + ExecStart = "${cfg.package}/bin/vpnbridge start"; + ExecStop = "${cfg.package}/bin/vpnbridge stop"; }; preStart = '' rm -rf ${cfg.dataDir}/vpnbridge/vpnbridge - ln -s ${pkg}${cfg.dataDir}/vpnbridge/vpnbridge ${cfg.dataDir}/vpnbridge/vpnbridge + ln -s ${cfg.package}${cfg.dataDir}/vpnbridge/vpnbridge ${cfg.dataDir}/vpnbridge/vpnbridge ''; postStop = '' rm -rf ${cfg.dataDir}/vpnbridge/vpnbridge @@ -125,17 +134,17 @@ in (mkIf (cfg.vpnclient.enable) { systemd.services.vpnclient = { description = "SoftEther VPN Client"; - after = [ "softether-init.service" "network.target" ]; - wants = [ "softether-init.service" ]; - wantedBy = [ "multi-user.target" ]; + after = [ "softether-init.service" ]; + requires = [ "softether-init.service" ]; + wantedBy = [ "network.target" ]; serviceConfig = { Type = "forking"; - ExecStart = "${pkg}/bin/vpnclient start"; - ExecStop = "${pkg}/bin/vpnclient stop"; + ExecStart = "${cfg.package}/bin/vpnclient start"; + ExecStop = "${cfg.package}/bin/vpnclient stop"; }; preStart = '' rm -rf ${cfg.dataDir}/vpnclient/vpnclient - ln -s ${pkg}${cfg.dataDir}/vpnclient/vpnclient ${cfg.dataDir}/vpnclient/vpnclient + ln -s ${cfg.package}${cfg.dataDir}/vpnclient/vpnclient ${cfg.dataDir}/vpnclient/vpnclient ''; postStart = '' sleep 1 |