diff --git a/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java b/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java index 5da4b2c9..ed66c13f 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java @@ -23,11 +23,9 @@ public class BashCoturnCredentialsService extends CoturnCredentialsService { // No coturn installed in the host machine log.warn("No COTURN server is installed in the host machine. Response: " + response); log.warn("No COTURN server will be automatically configured for clients"); - this.coturnAvailable = false; } else if (response.contains("Cannot initialize Redis DB connection")) { log.warn("Redis DB is not accesible with connection string " + this.coturnDatabaseString); log.warn("No COTURN server will be automatically configured for clients"); - this.coturnAvailable = false; } else { log.info("COTURN Redis DB accessible with string " + this.coturnDatabaseString); log.info("Cleaning COTURN DB..."); @@ -46,11 +44,12 @@ public class BashCoturnCredentialsService extends CoturnCredentialsService { } else { log.error("COTURN DB is not empty"); } + this.coturnAvailable.compareAndSet(false, true); + log.info("Using COTURN credentials service for BASH environment"); } } catch (IOException | InterruptedException e) { e.printStackTrace(); } - log.info("Using COTURN credentials service for BASH environment"); } @Override diff --git a/openvidu-server/src/main/java/io/openvidu/server/coturn/CoturnCredentialsService.java b/openvidu-server/src/main/java/io/openvidu/server/coturn/CoturnCredentialsService.java index c69fe260..9eca4a74 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/coturn/CoturnCredentialsService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/coturn/CoturnCredentialsService.java @@ -1,5 +1,7 @@ package io.openvidu.server.coturn; +import java.util.concurrent.atomic.AtomicBoolean; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -16,7 +18,7 @@ public abstract class CoturnCredentialsService { protected String coturnDatabaseString; protected String trimmedCoturnDatabaseString; - protected boolean coturnAvailable = true; + protected AtomicBoolean coturnAvailable = new AtomicBoolean(false); public CoturnCredentialsService(OpenviduConfig openviduConfig) { this.openviduConfig = openviduConfig; @@ -29,7 +31,7 @@ public abstract class CoturnCredentialsService { public abstract boolean deleteUser(String user); public boolean isCoturnAvailable() { - return this.coturnAvailable; + return this.coturnAvailable.get(); } }