depot/third_party/nixpkgs/patches/kubo-multiaddr.patch

69 lines
2.6 KiB
Diff

diff --git a/nixos/modules/services/network-filesystems/kubo.nix b/nixos/modules/services/network-filesystems/kubo.nix
--- a/nixos/modules/services/network-filesystems/kubo.nix
+++ b/nixos/modules/services/network-filesystems/kubo.nix
@@ -45,6 +45,11 @@ let
then "[${s 1}]:${s 3}"
else null; # not valid for listen datagram, skip
+ multiaddrsFunc = f: addrsRaw: if builtins.isString addrsRaw then let out = f addrsRaw; in lib.optional (out != null) out else lib.filter (x: x != null) (map f addrsRaw);
+
+ multiaddrsToListenStream = multiaddrsFunc multiaddrToListenStream;
+ multiaddrsToListenDatagram = multiaddrsFunc multiaddrToListenDatagram;
+
in
{
@@ -137,19 +142,19 @@ in
options = {
Addresses.API = mkOption {
- type = types.str;
+ type = types.oneOf [ types.str (types.listOf types.str) ];
default = "/ip4/127.0.0.1/tcp/5001";
description = lib.mdDoc "Where Kubo exposes its API to";
};
Addresses.Gateway = mkOption {
- type = types.str;
+ type = types.oneOf [ types.str (types.listOf types.str) ];
default = "/ip4/127.0.0.1/tcp/8080";
description = lib.mdDoc "Where the IPFS Gateway can be reached";
};
Addresses.Swarm = mkOption {
- type = types.listOf types.str;
+ type = types.oneOf [ types.str (types.listOf types.str) ];
default = [
"/ip4/0.0.0.0/tcp/4001"
"/ip6/::/tcp/4001"
@@ -294,14 +299,14 @@ in
socketConfig = {
ListenStream =
let
- fromCfg = multiaddrToListenStream cfg.settings.Addresses.Gateway;
+ fromCfg = multiaddrsToListenStream cfg.settings.Addresses.Gateway;
in
- [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
+ [ "" ] ++ fromCfg;
ListenDatagram =
let
- fromCfg = multiaddrToListenDatagram cfg.settings.Addresses.Gateway;
+ fromCfg = multiaddrsToListenDatagram cfg.settings.Addresses.Gateway;
in
- [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
+ [ "" ] ++ fromCfg;
};
};
@@ -311,9 +316,9 @@ in
# in the multiaddr.
socketConfig.ListenStream =
let
- fromCfg = multiaddrToListenStream cfg.settings.Addresses.API;
+ fromCfg = multiaddrsToListenStream cfg.settings.Addresses.API;
in
- [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
+ [ "" "%t/ipfs.sock" ] ++ fromCfg;
};
};