diff --git a/network.go b/network.go
index 02ccaee6..cf6db9ba 100644
--- a/network.go
+++ b/network.go
@@ -157,6 +157,11 @@ func rpcSetNetworkSettings(settings RpcNetworkSettings) (*RpcNetworkSettings, er
l.Debug().Msg("setting new config")
+ rebootRequired := false
+ if netConfig.DHCPClient.String != config.NetworkConfig.DHCPClient.String {
+ rebootRequired = true
+ }
+
_ = setHostname(networkManager, netConfig.Hostname.String, netConfig.Domain.String)
s := networkManager.SetInterfaceConfig(NetIfName, netConfig)
@@ -176,6 +181,10 @@ func rpcSetNetworkSettings(settings RpcNetworkSettings) (*RpcNetworkSettings, er
return nil, err
}
+ if rebootRequired {
+ rpcReboot(false)
+ }
+
return toRpcNetworkSettings(newConfig), nil
}
diff --git a/ui/src/hooks/stores.ts b/ui/src/hooks/stores.ts
index 5dcfb8e5..796682be 100644
--- a/ui/src/hooks/stores.ts
+++ b/ui/src/hooks/stores.ts
@@ -759,6 +759,7 @@ export interface IPv6StaticConfig {
}
export interface NetworkSettings {
+ dhcp_client: string;
hostname: string | null;
domain: string | null;
http_proxy: string | null;
diff --git a/ui/src/routes/devices.$id.settings.network.tsx b/ui/src/routes/devices.$id.settings.network.tsx
index 7ba65957..fde49ee3 100644
--- a/ui/src/routes/devices.$id.settings.network.tsx
+++ b/ui/src/routes/devices.$id.settings.network.tsx
@@ -334,6 +334,17 @@ export default function SettingsNetworkRoute() {
/>
+
+
+
+