cntlm: refactor to systemd service, fixes #11339

Changed files
+16 -18
nixos
modules
services
networking
+16 -18
nixos/modules/services/networking/cntlm.nix
···
###### implementation
config = mkIf config.services.cntlm.enable {
-
+
systemd.services.cntlm = {
+
description = "CNTLM is an NTLM / NTLM Session Response / NTLMv2 authenticating HTTP proxy";
+
after = [ "network.target" ];
+
wantedBy = [ "multi-user.target" ];
+
serviceConfig = {
+
Type = "forking";
+
User = "cntlm";
+
ExecStart = ''
+
${pkgs.cntlm}/bin/cntlm -U cntlm \
+
-c ${pkgs.writeText "cntlm_config" cfg.extraConfig}
+
'';
+
};
+
};
+
services.cntlm.netbios_hostname = mkDefault config.networking.hostName;
-
users.extraUsers = singleton {
+
users.extraUsers.cntlm = {
name = "cntlm";
description = "cntlm system-wide daemon";
home = "/var/empty";
};
-
jobs.cntlm =
-
{ description = "CNTLM is an NTLM / NTLM Session Response / NTLMv2 authenticating HTTP proxy";
-
-
startOn = "started network-interfaces";
-
-
daemonType = "fork";
-
-
exec =
-
''
-
${pkgs.cntlm}/bin/cntlm -U cntlm \
-
-c ${pkgs.writeText "cntlm_config" cfg.extraConfig}
-
'';
-
};
-
services.cntlm.extraConfig =
''
# Cntlm Authentication Proxy Configuration
···
${concatMapStrings (port: ''
Listen ${toString port}
'') cfg.port}
-
'';
-
+
'';
};
}