@@ -40,26 +40,37 @@ class DesktopNetworkInterfaceService(
4040 config.useNetworkInterfaces,
4141 )
4242 if (config.enableDiscovery && useNetworkInterfaces.isEmpty()) {
43- val preferredInterface = getPreferredNetworkInterface()
44- if (preferredInterface != null ) {
45- val useNetworkInterfacesJson =
46- jsonUtils.JSON .encodeToString(listOf (preferredInterface.name))
47- configManager.updateConfig(" useNetworkInterfaces" , useNetworkInterfacesJson)
48- }
43+ autoSelectAndSavePreferredInterface()?.let { return it }
4944 }
50- return createNetworkInterfaceInfos(
51- configManager.getCurrentConfig().useNetworkInterfaces,
52- )
45+
46+ val allNetworkInterfaceInfos = getAllNetworkInterfaceInfo()
47+
48+ val interfaceInfos = allNetworkInterfaceInfos.filter { it.name in useNetworkInterfaces }
49+
50+ if (interfaceInfos.isEmpty() && allNetworkInterfaceInfos.isNotEmpty()) {
51+ autoSelectAndSavePreferredInterface()?.let { return it }
52+ }
53+
54+ return interfaceInfos
5355 }
5456
57+ private fun autoSelectAndSavePreferredInterface (): List <NetworkInterfaceInfo >? =
58+ getPreferredNetworkInterface()?.let {
59+ val useNetworkInterfacesJson =
60+ jsonUtils.JSON .encodeToString(listOf (it.name))
61+ configManager.updateConfig(" useNetworkInterfaces" , useNetworkInterfacesJson)
62+
63+ listOf (it)
64+ }
65+
5566 private fun createNetworkInterfaceInfos (useNetworkInterfacesJson : String ): List <NetworkInterfaceInfo > {
5667 val useNetworkInterfaces =
5768 jsonUtils.JSON .decodeFromString<List <String >>(
5869 useNetworkInterfacesJson,
5970 )
6071
61- val networkInterfaceInfos = getAllNetworkInterfaceInfo()
72+ val allNetworkInterfaceInfos = getAllNetworkInterfaceInfo()
6273
63- return networkInterfaceInfos .filter { it.name in useNetworkInterfaces }
74+ return allNetworkInterfaceInfos .filter { it.name in useNetworkInterfaces }
6475 }
6576}
0 commit comments