Skip to content

Commit

Permalink
strongswan: allow configuring enabled plugins
Browse files Browse the repository at this point in the history
  • Loading branch information
andrew-d authored and rycee committed Nov 2, 2017
1 parent 0807f4a commit 7f92173
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions nixos/modules/services/networking/strongswan.nix
Expand Up @@ -32,8 +32,10 @@ let
${caConf}
'';

strongswanConf = {setup, connections, ca, secrets}: toFile "strongswan.conf" ''
strongswanConf = {setup, connections, ca, secrets, managePlugins, enabledPlugins}: toFile "strongswan.conf" ''
charon {
${if managePlugins then "load_modular = no" else ""}
${if managePlugins then ("load = " + (concatStringsSep " " enabledPlugins)) else ""}
plugins {
stroke {
secrets_file = ${ipsecSecrets secrets}
Expand Down Expand Up @@ -112,6 +114,25 @@ in
file.
'';
};

managePlugins = mkOption {
type = types.bool;
default = false;
description = ''
If set to true, this option will disable automatic plugin loading and
then tell strongSwan to enable the plugins specified in the
<option>enabledPlugins</option> option.
'';
};

enabledPlugins = mkOption {
type = types.listOf types.str;
default = [];
description = ''
A list of additional plugins to enable if
<option>managePlugins</option> is true.
'';
};
};

config = with cfg; mkIf enable {
Expand All @@ -122,7 +143,7 @@ in
wants = [ "keys.target" ];
after = [ "network-online.target" "keys.target" ];
environment = {
STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secrets; };
STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secrets managePlugins enabledPlugins; };
};
serviceConfig = {
ExecStart = "${pkgs.strongswan}/sbin/ipsec start --nofork";
Expand Down

0 comments on commit 7f92173

Please sign in to comment.