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() { /> + + + +