diff --git a/client/pom.xml b/client/pom.xml index 2594c4045754bda783ffbf8f23b846be5052bf24..3e8ecd251e66e1b21586c7be36496f604d226943 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>org.red5</groupId> <artifactId>red5-parent</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>red5-client</artifactId> diff --git a/client/src/main/java/org/red5/client/Red5Client.java b/client/src/main/java/org/red5/client/Red5Client.java index db56837db20ce7400413d85b51c7ce4071ccd391..ff0a082e26d14f949fe4a3f9a89b072b072e3642 100644 --- a/client/src/main/java/org/red5/client/Red5Client.java +++ b/client/src/main/java/org/red5/client/Red5Client.java @@ -18,7 +18,7 @@ public final class Red5Client { /** * Current server version with revision */ - public static final String VERSION = "Red5 Client 1.3.4"; + public static final String VERSION = "Red5 Client 1.3.5"; /** * Create a new Red5Client object using the connection local to the current thread A bit of magic that lets you access the red5 scope diff --git a/common/pom.xml b/common/pom.xml index 35d8686172763a75546c5e03e794acce6a3e2e35..038fe0677c1e02b3f78c4ce9ce594b0a79c4762e 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>org.red5</groupId> <artifactId>red5-parent</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>red5-server-common</artifactId> @@ -124,7 +124,7 @@ <dependency> <groupId>net.engio</groupId> <artifactId>mbassador</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </dependency> --> <dependency> <groupId>junit</groupId> diff --git a/common/src/main/java/org/red5/server/api/Red5.java b/common/src/main/java/org/red5/server/api/Red5.java index 50c0dfa986fcb3d69435fef6181c8d1a7b0c6d3c..997eca6e1317641221f4343edcd2a4df2c64a495 100644 --- a/common/src/main/java/org/red5/server/api/Red5.java +++ b/common/src/main/java/org/red5/server/api/Red5.java @@ -55,12 +55,12 @@ public final class Red5 { /** * Server version with revision */ - public static final String VERSION = "Red5 Server 1.3.4"; + public static final String VERSION = "Red5 Server 1.3.5"; /** * Server version for fmsVer requests */ - public static final String FMS_VERSION = "RED5/1,3,4,0"; + public static final String FMS_VERSION = "RED5/1,3,5,0"; /** * Server capabilities diff --git a/io/pom.xml b/io/pom.xml index d5c75c138bb6f0ee1bceeaa915ba9d046a93066b..9c198d7c7ab409585f673dd891042a10b096a117 100644 --- a/io/pom.xml +++ b/io/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>org.red5</groupId> <artifactId>red5-parent</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>red5-io</artifactId> diff --git a/pom.xml b/pom.xml index ad7bf57994ab882b0b11c89659164a280e2f45fd..6256ddfe70843727106ca57bbb647d9d69545517 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ <name>Red5</name> <description>The Red5 server</description> <groupId>org.red5</groupId> - <version>1.3.4</version> + <version>1.3.5</version> <url>https://github.com/Red5/red5-server</url> <inceptionYear>2005</inceptionYear> <organization> diff --git a/server/pom.xml b/server/pom.xml index 2c6a243a25798182baacc06ccc4a9c4a6934a17f..e79650be1acf29ce44179a55ed8abbe60c7c8e53 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>org.red5</groupId> <artifactId>red5-parent</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>red5-server</artifactId> diff --git a/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java b/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java index d30e67ee9b10bb8926b96bd65d63ba93cfd5717a..1d67cb512e723353dd30ec54ecbd8bde5aebeafb 100644 --- a/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java +++ b/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java @@ -322,16 +322,15 @@ public class WebSocketConnection extends AttributeStore implements Comparable<We if (connected.compareAndSet(true, false)) { log.debug("close: {}", wsSessionId); WsSession session = wsSession != null ? wsSession.get() : null; - if (session != null && session.isOpen()) { - // clean up internal ws session maps since close doesnt - //if (session.isOpen()) { - // session.getPathParameters().clear(); - // session.getUserProperties().clear(); - //} - // ensure the endpoint is closed - CloseReason reason = new CloseReason(CloseCodes.GOING_AWAY, ""); - // close the socket, don't wait for the browser to respond or we could hang - session.onClose(reason); + WebSocketScopeManager manager = null; + if (session != null) { + manager = (WebSocketScopeManager) session.getUserProperties().get(WSConstants.WS_MANAGER); + if (session.isOpen()) { + // ensure the endpoint is closed + CloseReason reason = new CloseReason(CloseCodes.GOING_AWAY, ""); + // close the socket, don't wait for the browser to respond or we could hang + session.onClose(reason); + } } // clean up our props attributes.clear(); @@ -346,6 +345,10 @@ public class WebSocketConnection extends AttributeStore implements Comparable<We if (headers != null) { headers = null; } + // fire callback for manager + if (manager != null) { + manager.removeConnection(this); + } if (scope.get() != null) { // disconnect from scope scope.get().removeConnection(this); diff --git a/service/pom.xml b/service/pom.xml index 893321c485e08bf89e203f57f7997c8721e2da02..b612c205cb50bc5a9463eea458d259ba1d0f326e 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>org.red5</groupId> <artifactId>red5-parent</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>red5-service</artifactId>