diff options
author | John Ericson <git@JohnEricson.me> | 2020-08-11 17:46:39 -0400 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2020-08-11 22:08:19 +0000 |
commit | e6fe9abd8b1b80c9911bc1469eef9cfb0b3f0003 (patch) | |
tree | 14f124af4b04b2d66ee7330c2fa41f7980271bc7 /nixos/modules/services/network-filesystems/ipfs.nix | |
parent | 70d68f04787d0e168723000946368ad110db6476 (diff) | |
download | nixpkgs-e6fe9abd8b1b80c9911bc1469eef9cfb0b3f0003.tar nixpkgs-e6fe9abd8b1b80c9911bc1469eef9cfb0b3f0003.tar.gz nixpkgs-e6fe9abd8b1b80c9911bc1469eef9cfb0b3f0003.tar.bz2 nixpkgs-e6fe9abd8b1b80c9911bc1469eef9cfb0b3f0003.tar.lz nixpkgs-e6fe9abd8b1b80c9911bc1469eef9cfb0b3f0003.tar.xz nixpkgs-e6fe9abd8b1b80c9911bc1469eef9cfb0b3f0003.tar.zst nixpkgs-e6fe9abd8b1b80c9911bc1469eef9cfb0b3f0003.zip |
nixos/ipfs: Allow QUIC connections to socket activate too
Well, via the underlying UDP. QUIC-level socket activation we'll get someday.
Diffstat (limited to 'nixos/modules/services/network-filesystems/ipfs.nix')
-rw-r--r-- | nixos/modules/services/network-filesystems/ipfs.nix | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix index 5c096d26d82..f298f831fa7 100644 --- a/nixos/modules/services/network-filesystems/ipfs.nix +++ b/nixos/modules/services/network-filesystems/ipfs.nix @@ -25,6 +25,15 @@ let then "/${lib.concatStringsSep "/" (lib.tail addr)}" else null; # not valid for listen stream, skip + multiaddrToListenDatagram = addrRaw: let + addr = splitMulitaddr addrRaw; + s = builtins.elemAt addr; + in if s 0 == "ip4" && s 2 == "udp" + then "${s 1}:${s 3}" + else if s 0 == "ip6" && s 2 == "udp" + then "[${s 1}]:${s 3}" + else null; # not valid for listen datagram, skip + in { ###### interface @@ -268,9 +277,14 @@ in { systemd.sockets.ipfs-gateway = { wantedBy = [ "sockets.target" ]; - socketConfig.ListenStream = let - fromCfg = multiaddrToListenStream cfg.gatewayAddress; - in [ "" ] ++ lib.optional (fromCfg != null) fromCfg; + socketConfig = { + ListenStream = let + fromCfg = multiaddrToListenStream cfg.gatewayAddress; + in [ "" ] ++ lib.optional (fromCfg != null) fromCfg; + ListenDatagram = let + fromCfg = multiaddrToListenDatagram cfg.gatewayAddress; + in [ "" ] ++ lib.optional (fromCfg != null) fromCfg; + }; }; systemd.sockets.ipfs-api = { |