diff options
author | K900 <me@0upti.me> | 2024-07-30 11:07:37 +0300 |
---|---|---|
committer | K900 <me@0upti.me> | 2024-07-30 11:07:37 +0300 |
commit | 7f2ec487ccbd62444a3ea7e4c5a23963e66942e0 (patch) | |
tree | 9fe312d64ab27c10eaee77bcce26f57a649544d6 | |
parent | 03930d17a920eb6bce7009b9a7ccccd408468d9d (diff) |
nixos/i2pd: actually fix, clean up a little bit
-rw-r--r-- | nixos/modules/services/networking/i2pd.nix | 68 |
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) ++ [ |