nixos/i2pd: tunnel config fixes

Tunnel configuration has no member named "host" - i2pd does but it's called "address" in the options. As a result, no tunnel configuration is generated.

* Fix attribute check in inTunnels
* Fix integer to string coercion in inTunnels
* Add destinationPort option for outTunnels
This commit is contained in:
John Boehr 2017-11-29 17:40:58 -08:00 committed by John Boehr
parent ef8933233b
commit 67c3f7f65f

View File

@ -126,6 +126,7 @@ let
[${tun.name}] [${tun.name}]
type = client type = client
destination = ${tun.destination} destination = ${tun.destination}
destinationport = ${toString tun.destinationPort}
keys = ${tun.keys} keys = ${tun.keys}
address = ${tun.address} address = ${tun.address}
port = ${toString tun.port} port = ${toString tun.port}
@ -137,15 +138,15 @@ let
'') '')
} }
${flip concatMapStrings ${flip concatMapStrings
(collect (tun: tun ? port && tun ? host) cfg.inTunnels) (collect (tun: tun ? port && tun ? address) cfg.inTunnels)
(tun: let portStr = toString tun.port; in '' (tun: ''
[${tun.name}] [${tun.name}]
type = server type = server
destination = ${tun.destination} destination = ${tun.destination}
keys = ${tun.keys} keys = ${tun.keys}
host = ${tun.address} host = ${tun.address}
port = ${tun.port} port = ${toString tun.port}
inport = ${tun.inPort} inport = ${toString tun.inPort}
accesslist = ${builtins.concatStringsSep "," tun.accessList} accesslist = ${builtins.concatStringsSep "," tun.accessList}
'') '')
} }
@ -405,7 +406,13 @@ in
default = {}; default = {};
type = with types; loaOf (submodule ( type = with types; loaOf (submodule (
{ name, config, ... }: { { name, config, ... }: {
options = commonTunOpts name; options = {
destinationPort = mkOption {
type = types.int;
default = 0;
description = "Connect to particular port at destination.";
};
} // commonTunOpts name;
config = { config = {
name = mkDefault name; name = mkDefault name;
}; };