Merge pull request #37827 from oxij/pull/28938-tor-control-port

nixos/tor: expose control socket
This commit is contained in:
Joachim F 2018-03-26 13:05:27 +00:00 committed by GitHub
commit 1c889be474
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,6 +5,7 @@ with lib;
let
cfg = config.services.tor;
torDirectory = "/var/lib/tor";
torRunDirectory = "/run/tor";
opt = name: value: optionalString (value != null) "${name} ${value}";
optint = name: value: optionalString (value != null && value != 0) "${name} ${toString value}";
@ -38,6 +39,7 @@ let
''}
${optint "ControlPort" cfg.controlPort}
${optionalString cfg.controlSocket.enable "ControlSocket ${torRunDirectory}/control GroupWritable RelaxDirModeCheck"}
''
# Client connection config
+ optionalString cfg.client.enable ''
@ -140,6 +142,17 @@ in
'';
};
controlSocket = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Wheter to enable Tor control socket. Control socket is created
in <literal>${torRunDirectory}/control</literal>
'';
};
};
client = {
enable = mkOption {
type = types.bool;
@ -692,7 +705,7 @@ in
# Translated from the upstream contrib/dist/tor.service.in
preStart = ''
install -o tor -g tor -d ${torDirectory}/onion
install -o tor -g tor -d ${torDirectory}/onion ${torRunDirectory}
${pkgs.tor}/bin/tor -f ${torRcFile} --verify-config
'';
@ -716,7 +729,7 @@ in
DevicePolicy = "closed";
InaccessibleDirectories = "/home";
ReadOnlyDirectories = "/";
ReadWriteDirectories = torDirectory;
ReadWriteDirectories = [torDirectory torRunDirectory];
NoNewPrivileges = "yes";
};
};