2018-09-06 12:46:38 +02:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
with lib;
|
|
|
|
let
|
|
|
|
cfg = config.services.nullidentdmod;
|
|
|
|
|
|
|
|
in
|
|
|
|
{
|
|
|
|
options.services.nullidentdmod = with types; {
|
2019-04-19 21:41:48 -04:00
|
|
|
enable = mkEnableOption "the nullidentdmod identd daemon";
|
2018-09-06 12:46:38 +02:00
|
|
|
|
|
|
|
userid = mkOption {
|
|
|
|
type = nullOr str;
|
|
|
|
description = "User ID to return. Set to null to return a random string each time.";
|
|
|
|
default = null;
|
|
|
|
example = "alice";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
systemd.sockets.nullidentdmod = {
|
|
|
|
description = "Socket for identd (NullidentdMod)";
|
|
|
|
listenStreams = [ "113" ];
|
|
|
|
socketConfig.Accept = true;
|
|
|
|
wantedBy = [ "sockets.target" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
systemd.services."nullidentdmod@" = {
|
|
|
|
description = "NullidentdMod service";
|
|
|
|
serviceConfig = {
|
|
|
|
DynamicUser = true;
|
|
|
|
ExecStart = "${pkgs.nullidentdmod}/bin/nullidentdmod${
|
|
|
|
optionalString (cfg.userid != null) " ${cfg.userid}"
|
|
|
|
}";
|
|
|
|
StandardInput = "socket";
|
|
|
|
StandardOutput = "socket";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|