2018-09-06 11:46:38 +01:00
|
|
|
{ config, lib, pkgs, ... }: with lib; let
|
|
|
|
cfg = config.services.nullidentdmod;
|
|
|
|
|
|
|
|
in {
|
|
|
|
options.services.nullidentdmod = with types; {
|
2019-04-20 02:41:48 +01:00
|
|
|
enable = mkEnableOption "the nullidentdmod identd daemon";
|
2018-09-06 11:46:38 +01: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";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|