From 47c5638356e7925bb1bd0d9acf438e2f7dfd2892 Mon Sep 17 00:00:00 2001 From: Greg ORIOL Date: Tue, 12 May 2026 22:05:42 +0200 Subject: [PATCH] Expose VLAN guest/DHCP addresses on the network settings --- Scripting/UTM.sdef | 15 +++++++++++++++ Scripting/UTMScriptingConfigImpl.swift | 20 ++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/Scripting/UTM.sdef b/Scripting/UTM.sdef index 41af0f1e9c..0b236158a8 100644 --- a/Scripting/UTM.sdef +++ b/Scripting/UTM.sdef @@ -527,6 +527,21 @@ description="Only used in emulated mode. Allows port forwarding from guest to host."> + + + + + + + + + + diff --git a/Scripting/UTMScriptingConfigImpl.swift b/Scripting/UTMScriptingConfigImpl.swift index 5f24f1a50a..6fc1811d9d 100644 --- a/Scripting/UTMScriptingConfigImpl.swift +++ b/Scripting/UTMScriptingConfigImpl.swift @@ -154,6 +154,11 @@ extension UTMScriptingConfigImpl { "address": config.macAddress, "hostInterface": config.bridgeInterface ?? "", "portForwards": config.portForward.map({ serializeQemuPortForward($0) }), + "vlanGuestAddress": config.vlanGuestAddress ?? "", + "vlanGuestAddressIpv6": config.vlanGuestAddressIPv6 ?? "", + "vlanDhcpStartAddress": config.vlanDhcpStartAddress ?? "", + "vlanDhcpEndAddress": config.vlanDhcpEndAddress ?? "", + "isolateFromHost": config.isIsolateFromHost, ] } @@ -487,6 +492,21 @@ extension UTMScriptingConfigImpl { if let portForwards = record["portForwards"] as? [[AnyHashable : Any]] { network.portForward = portForwards.map({ unserializeQemuPortForward(from: $0) }) } + if let value = record["vlanGuestAddress"] as? String, !value.isEmpty { + network.vlanGuestAddress = value + } + if let value = record["vlanGuestAddressIpv6"] as? String, !value.isEmpty { + network.vlanGuestAddressIPv6 = value + } + if let value = record["vlanDhcpStartAddress"] as? String, !value.isEmpty { + network.vlanDhcpStartAddress = value + } + if let value = record["vlanDhcpEndAddress"] as? String, !value.isEmpty { + network.vlanDhcpEndAddress = value + } + if let value = record["isolateFromHost"] as? Bool { + network.isIsolateFromHost = value + } } private func parseNetworkProtocol(_ value: AEKeyword?) -> QEMUNetworkProtocol? {