2020-04-24 23:36:52 +00:00
|
|
|
{ config, lib, pkgs, ... }: with lib; let
|
|
|
|
cfg = config.services.nullidentdmod;
|
|
|
|
|
|
|
|
in {
|
|
|
|
options.services.nullidentdmod = with types; {
|
2022-09-09 14:08:57 +00:00
|
|
|
enable = mkEnableOption (lib.mdDoc "the nullidentdmod identd daemon");
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
userid = mkOption {
|
|
|
|
type = nullOr str;
|
2022-08-12 12:06:08 +00:00
|
|
|
description = lib.mdDoc "User ID to return. Set to null to return a random string each time.";
|
2020-04-24 23:36:52 +00:00
|
|
|
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";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|