3
0
Fork 0
forked from mirrors/nixpkgs

strongswan: allow configuring enabled plugins

This commit is contained in:
Andrew Dunham 2017-09-22 03:39:00 -07:00 committed by Robert Helgesson
parent 0807f4ac66
commit 7f921735e7
No known key found for this signature in database
GPG key ID: C3DB11069E65DC86

View file

@ -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}
@ -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 {
@ -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";