summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorK900 <me@0upti.me>2024-07-30 11:07:37 +0300
committerK900 <me@0upti.me>2024-07-30 11:07:37 +0300
commit7f2ec487ccbd62444a3ea7e4c5a23963e66942e0 (patch)
tree9fe312d64ab27c10eaee77bcce26f57a649544d6
parent03930d17a920eb6bce7009b9a7ccccd408468d9d (diff)
nixos/i2pd: actually fix, clean up a little bit
-rw-r--r--nixos/modules/services/networking/i2pd.nix68
1 files changed, 38 insertions, 30 deletions
diff --git a/nixos/modules/services/networking/i2pd.nix b/nixos/modules/services/networking/i2pd.nix
index 9ad58f307db4..2bb9df15de2c 100644
--- a/nixos/modules/services/networking/i2pd.nix
+++ b/nixos/modules/services/networking/i2pd.nix
@@ -183,37 +183,45 @@ let
in
pkgs.writeText "i2pd.conf" (concatStringsSep "\n" opts);
- tunnelConf = let opts = [
- notice
- (flip map
- (collect (tun: tun ? port && tun ? destination) cfg.outTunnels)
- (tun: let outTunOpts = [
- (sec tun.name)
- "type = client"
- (intOpt "port" tun.port)
- (strOpt "destination" tun.destination)
+ tunnelConf = let
+ mkOutTunnel = tun:
+ let
+ outTunOpts = [
+ (sec tun.name)
+ "type = client"
+ (intOpt "port" tun.port)
+ (strOpt "destination" tun.destination)
] ++ (optionals (tun ? destinationPort) (optionalNullInt "destinationport" tun.destinationPort))
- ++ (optionals (tun ? keys) (optionalNullString "keys" tun.keys))
- ++ (optionals (tun ? address) (optionalNullString "address" tun.address))
- ++ (optionals (tun ? inbound.length) (optionalNullInt "inbound.length" tun.inbound.length))
- ++ (optionals (tun ? inbound.quantity) (optionalNullInt "inbound.quantity" tun.inbound.quantity))
- ++ (optionals (tun ? outbound.length) (optionalNullInt "outbound.length" tun.outbound.length))
- ++ (optionals (tun ? outbound.quantity) (optionalNullInt "outbound.quantity" tun.outbound.quantity))
- ++ (optionals (tun ? crypto.tagsToSend) (optionalNullInt "crypto.tagstosend" tun.crypto.tagsToSend));
- in concatStringsSep "\n" outTunOpts))
- (flip map
- (collect (tun: tun ? port && tun ? address) cfg.inTunnels)
- (tun: let inTunOpts = [
- (sec tun.name)
- "type = server"
- (intOpt "port" tun.port)
- (strOpt "host" tun.address)
- ] ++ (optionals (tun ? destination) (optionalNullString "destination" tun.destination))
- ++ (optionals (tun ? keys) (optionalNullString "keys" tun.keys))
- ++ (optionals (tun ? inPort) (optionalNullInt "inport" tun.inPort))
- ++ (optionals (tun ? accessList) (optionalEmptyList "accesslist" tun.accessList));
- in concatStringsSep "\n" inTunOpts))];
- in pkgs.writeText "i2pd-tunnels.conf" (concatStringsSep "\n" opts);
+ ++ (optionals (tun ? keys) (optionalNullString "keys" tun.keys))
+ ++ (optionals (tun ? address) (optionalNullString "address" tun.address))
+ ++ (optionals (tun ? inbound.length) (optionalNullInt "inbound.length" tun.inbound.length))
+ ++ (optionals (tun ? inbound.quantity) (optionalNullInt "inbound.quantity" tun.inbound.quantity))
+ ++ (optionals (tun ? outbound.length) (optionalNullInt "outbound.length" tun.outbound.length))
+ ++ (optionals (tun ? outbound.quantity) (optionalNullInt "outbound.quantity" tun.outbound.quantity))
+ ++ (optionals (tun ? crypto.tagsToSend) (optionalNullInt "crypto.tagstosend" tun.crypto.tagsToSend));
+ in
+ concatStringsSep "\n" outTunOpts;
+
+ mkInTunnel = tun:
+ let
+ inTunOpts = [
+ (sec tun.name)
+ "type = server"
+ (intOpt "port" tun.port)
+ (strOpt "host" tun.address)
+ ] ++ (optionals (tun ? destination) (optionalNullString "destination" tun.destination))
+ ++ (optionals (tun ? keys) (optionalNullString "keys" tun.keys))
+ ++ (optionals (tun ? inPort) (optionalNullInt "inport" tun.inPort))
+ ++ (optionals (tun ? accessList) (optionalEmptyList "accesslist" tun.accessList));
+ in
+ concatStringsSep "\n" inTunOpts;
+
+ allOutTunnels = collect (tun: tun ? port && tun ? destination) cfg.outTunnels;
+ allInTunnels = collect (tun: tun ? port && tun ? address) cfg.inTunnels;
+
+ opts = [ notice ] ++ (map mkOutTunnel allOutTunnels) ++ (map mkInTunnel allInTunnels);
+ in
+ pkgs.writeText "i2pd-tunnels.conf" (concatStringsSep "\n" opts);
i2pdFlags = concatStringsSep " " (
optional (cfg.address != null) ("--host=" + cfg.address) ++ [