summary refs log tree commit diff
path: root/nixos/modules/services/networking/i2pd.nix
diff options
context:
space:
mode:
authorJohn Boehr <jbboehr@gmail.com>2017-11-29 17:40:58 -0800
committerJohn Boehr <john@johnboehr.is>2017-11-30 17:13:42 -0800
commit67c3f7f65f4f495232d710f879efbc54a58c9bff (patch)
treedc6d3b403c4573d5a53e45c1d15c70ce5591d511 /nixos/modules/services/networking/i2pd.nix
parentef8933233b954a28ce8981ec831713cc7a0afc6d (diff)
downloadnixlib-67c3f7f65f4f495232d710f879efbc54a58c9bff.tar
nixlib-67c3f7f65f4f495232d710f879efbc54a58c9bff.tar.gz
nixlib-67c3f7f65f4f495232d710f879efbc54a58c9bff.tar.bz2
nixlib-67c3f7f65f4f495232d710f879efbc54a58c9bff.tar.lz
nixlib-67c3f7f65f4f495232d710f879efbc54a58c9bff.tar.xz
nixlib-67c3f7f65f4f495232d710f879efbc54a58c9bff.tar.zst
nixlib-67c3f7f65f4f495232d710f879efbc54a58c9bff.zip
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
Diffstat (limited to 'nixos/modules/services/networking/i2pd.nix')
-rw-r--r--nixos/modules/services/networking/i2pd.nix17
1 files changed, 12 insertions, 5 deletions
diff --git a/nixos/modules/services/networking/i2pd.nix b/nixos/modules/services/networking/i2pd.nix
index ca2e2a065dcf..8f5aeee4a16b 100644
--- a/nixos/modules/services/networking/i2pd.nix
+++ b/nixos/modules/services/networking/i2pd.nix
@@ -126,6 +126,7 @@ let
         [${tun.name}]
         type = client
         destination = ${tun.destination}
+        destinationport = ${toString tun.destinationPort}
         keys = ${tun.keys}
         address = ${tun.address}
         port = ${toString tun.port}
@@ -137,15 +138,15 @@ let
       '')
     }
     ${flip concatMapStrings
-      (collect (tun: tun ? port && tun ? host) cfg.inTunnels)
-      (tun: let portStr = toString tun.port; in ''
+      (collect (tun: tun ? port && tun ? address) cfg.inTunnels)
+      (tun: ''
         [${tun.name}]
         type = server
         destination = ${tun.destination}
         keys = ${tun.keys}
         host = ${tun.address}
-        port = ${tun.port}
-        inport = ${tun.inPort}
+        port = ${toString tun.port}
+        inport = ${toString tun.inPort}
         accesslist = ${builtins.concatStringsSep "," tun.accessList}
       '')
     }
@@ -405,7 +406,13 @@ in
         default = {};
         type = with types; loaOf (submodule (
           { name, config, ... }: {
-            options = commonTunOpts name;
+            options = {
+              destinationPort = mkOption {
+                type = types.int;
+                default = 0;
+                description = "Connect to particular port at destination.";
+              };
+            } // commonTunOpts name;
             config = {
               name = mkDefault name;
             };