X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=netconf-server%2Fsrc%2Fmain%2Fjava%2Forg%2Fcommscope%2Ftr069adapter%2Fnetconf%2Fserver%2Fhelper%2FServerPortAllocationHelper.java;h=f5ff597e90b1d0868d2696406469b63043912f48;hb=641a6c47b4ee74412e9386b3c95693adda3cafc9;hp=a843e62ad3119dc7d08ba1a735712edaaf5811c7;hpb=a58ada8fd244e69cf2ebe48a251fcdd4d48acec4;p=oam%2Ftr069-adapter.git diff --git a/netconf-server/src/main/java/org/commscope/tr069adapter/netconf/server/helper/ServerPortAllocationHelper.java b/netconf-server/src/main/java/org/commscope/tr069adapter/netconf/server/helper/ServerPortAllocationHelper.java index a843e62..f5ff597 100644 --- a/netconf-server/src/main/java/org/commscope/tr069adapter/netconf/server/helper/ServerPortAllocationHelper.java +++ b/netconf-server/src/main/java/org/commscope/tr069adapter/netconf/server/helper/ServerPortAllocationHelper.java @@ -81,6 +81,7 @@ public class ServerPortAllocationHelper { if (availablePorts.isEmpty()) { LOG.debug( "All ports are exhausted. Hence cannot allocate a port to start new netconf server."); + return null; } String port = availablePorts.peek(); @@ -104,6 +105,23 @@ public class ServerPortAllocationHelper { return port; } + public boolean unReserveServerPort(String port) { + + try { + Semaphore semaphore = semaphoreMap.get(port); + semaphore.acquire(); + availablePorts.add(port); + semaphore.release(); + LOG.error("Successfully un-reserved the port " + port + " to start netconf server."); + } catch (InterruptedException e) { + LOG.warn("Failed to un-reserve the port " + port, e); + Thread.currentThread().interrupt(); + return false; + } + + return true; + } + public boolean checkAndReserveServerPort(String port) { try {