]> git.basschouten.com Git - openhab-addons.git/commitdiff
[homekit] fix restarted on network interface change (#14226)
authorCody Cutrer <cody@cutrer.us>
Fri, 27 Jan 2023 23:39:19 +0000 (16:39 -0700)
committerGitHub <noreply@github.com>
Fri, 27 Jan 2023 23:39:19 +0000 (00:39 +0100)
a regression caused during the final changes of #13877

Signed-off-by: Cody Cutrer <cody@cutrer.us>
bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/HomekitImpl.java

index dfe91464a67e553ae952d46ccffa9bdc6d1fdcc9..3226e770fd7ca969f0c88c91efc3803f2aff0c53 100644 (file)
@@ -87,7 +87,7 @@ public class HomekitImpl implements Homekit, NetworkAddressChangeListener, Ready
     private final List<HomekitServer> homekitServers = new ArrayList<>();
     private final List<HomekitRoot> bridges = new ArrayList<>();
     private MDNSClient mdnsClient;
-    private int currentStartLevel = 0;
+    private boolean started = false;
 
     private final List<HomekitChangeListener> changeListeners = new ArrayList<>();
 
@@ -170,7 +170,7 @@ public class HomekitImpl implements Homekit, NetworkAddressChangeListener, Ready
                     clearStorage(i);
                 }
                 stopHomekitServer();
-                if (currentStartLevel >= StartLevelService.STARTLEVEL_STATES) {
+                if (started) {
                     startHomekitServer();
                 }
             } else {
@@ -201,6 +201,7 @@ public class HomekitImpl implements Homekit, NetworkAddressChangeListener, Ready
     @Override
     public synchronized void onReadyMarkerAdded(ReadyMarker readyMarker) {
         try {
+            started = true;
             startHomekitServer();
         } catch (IOException | InvalidAlgorithmParameterException e) {
             logger.warn("could not initialize HomeKit bridge: {}", e.getMessage());
@@ -209,6 +210,7 @@ public class HomekitImpl implements Homekit, NetworkAddressChangeListener, Ready
 
     @Override
     public synchronized void onReadyMarkerRemoved(ReadyMarker readyMarker) {
+        started = false;
         stopHomekitServer();
     }
 
@@ -411,7 +413,7 @@ public class HomekitImpl implements Homekit, NetworkAddressChangeListener, Ready
     @Override
     public synchronized void onChanged(final List<CidrAddress> added, final List<CidrAddress> removed) {
         logger.trace("HomeKit bridge reacting on network interface changes.");
-        if (currentStartLevel < StartLevelService.STARTLEVEL_STATES) {
+        if (!started) {
             return;
         }
         removed.forEach(i -> {