From 35710f6d3c830df3e4fb53ec1b657117a4b18f86 Mon Sep 17 00:00:00 2001 From: Sagar Ch Date: Fri, 7 Jun 2024 02:34:37 +0000 Subject: [PATCH] dhcp file leases with lan name --- nixos/network/config.nix | 9 ++++++++- nixos/network/default.nix | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/nixos/network/config.nix b/nixos/network/config.nix index f18d3ed..a60699b 100644 --- a/nixos/network/config.nix +++ b/nixos/network/config.nix @@ -65,7 +65,7 @@ let localise-queries no-hosts expand-hosts - dhcp-leasefile=/tmp/dhcp.leases + dhcp-leasefile=/tmp/${lanCfg.name}.vmix.dhcp.leases '' + lib.concatStringsSep "\n" (lib.optionals (lanCfg.ipv4.dns.upstream != []) ([ "no-resolv" ] ++ (builtins.map (dnsServer: "server=${dnsServer}") lanCfg.ipv4.dns.upstream))) ); @@ -161,7 +161,14 @@ let networkNames = builtins.attrNames vmixCfg.networks; networkServices = pkgs.unstable.lib.mergeAttrsList (lib.imap0 (index: networkName: (mkNetworkServices networkName (vmixCfg.networks.${networkName} // { inherit index;}))) networkNames); + networkTargets = lib.concatMapAttrs (networkName: netCfg: { + "net.vmix@${networkName}" = { + description = "Network ${networkName} for vmix"; + bindsTo = [ "ns.net.vmix@${networkName}.service" ]; + }; + }) vmixCfg.networks; in { config.systemd.services = namespaceGlobalService // networkServices; + config.systemd.targets = networkTargets; } \ No newline at end of file diff --git a/nixos/network/default.nix b/nixos/network/default.nix index 6c6403d..7a98a6b 100644 --- a/nixos/network/default.nix +++ b/nixos/network/default.nix @@ -1,12 +1,12 @@ args@{ config, pkgs, lib, vmixLib, ... }: with lib; { - options.vmix.global.net.wan.ipv4.range = lib.mkOption { + options.vmix.global.net.wan.ipv4.range = mkOption { type = types.strMatching vmixLib.network.regex.cidr4; default = "172.27.72.0/24"; # enough to create 64x /30 networks for veth pairs used for wan interfaces }; - options.vmix.networks = lib.mkOption { + options.vmix.networks = mkOption { type = types.attrsOf (types.submodule (import ./options.nix args)); default = { };