From 645d54933b3534f9d58facb8d41de7763ae8f087 Mon Sep 17 00:00:00 2001 From: Mateus Dalepiane Date: Mon, 30 Mar 2015 18:41:00 -0300 Subject: [PATCH] Reject duplicate connections from same session bbb-apps now rejects duplicate connection attempts from the same session. This fixes the problems that happened when a user connected to the same conference in two different browser tabs, and ended up with two clients in the same session. --- .../bigbluebutton/conference/BigBlueButtonApplication.java | 4 ++-- .../meeting/messaging/red5/ConnectionInvokerService.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/BigBlueButtonApplication.java b/bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/BigBlueButtonApplication.java index 6daf37f176b7..faa6efa82ece 100755 --- a/bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/BigBlueButtonApplication.java +++ b/bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/BigBlueButtonApplication.java @@ -148,7 +148,7 @@ boolean record = (Boolean)params[4]; bbbGW.initLockSettings(room, locked, lsMap); - connInvokerService.addConnection(bbbSession.getInternalUserID(), connection); + boolean success = connInvokerService.addConnection(bbbSession.getInternalUserID(), connection); String meetingId = bbbSession.getRoom(); String userId = bbbSession.getInternalUserID(); @@ -175,7 +175,7 @@ boolean record = (Boolean)params[4]; log.info("User joining bbbb-aps: data={}", logStr); - return super.roomConnect(connection, params); + return success && super.roomConnect(connection, params); } diff --git a/bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/meeting/messaging/red5/ConnectionInvokerService.java b/bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/meeting/messaging/red5/ConnectionInvokerService.java index b00b5b50559a..7191e820c136 100644 --- a/bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/meeting/messaging/red5/ConnectionInvokerService.java +++ b/bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/meeting/messaging/red5/ConnectionInvokerService.java @@ -63,10 +63,10 @@ public void setAppScope(IScope scope) { bbbAppScope = scope; } - public void addConnection(String id, IConnection conn) { + public boolean addConnection(String id, IConnection conn) { if (connections == null) { System.out.println("Connections is null!!!!"); - return; + return false; } if (id == null) { System.out.println("CONN ID IS NULL!!!"); @@ -75,7 +75,7 @@ public void addConnection(String id, IConnection conn) { if (conn == null) { System.out.println("CONN IS NULL"); } - connections.putIfAbsent(id, conn); + return connections.putIfAbsent(id, conn) == null; } public void start() {