You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2018/02/28 17:44:18 UTC

[2/5] mina-sshd git commit: [SSHD-792] Added capability to remove associated IoSession attribute

[SSHD-792] Added capability to remove associated IoSession attribute


Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/c047525e
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/c047525e
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/c047525e

Branch: refs/heads/master
Commit: c047525ee4e149ac84bbe62fa95a413bcdb46b68
Parents: b8bf387
Author: Goldstein Lyor <ly...@c-b4.com>
Authored: Sun Feb 25 12:20:37 2018 +0200
Committer: Lyor Goldstein <ly...@gmail.com>
Committed: Wed Feb 28 19:47:03 2018 +0200

----------------------------------------------------------------------
 .../java/org/apache/sshd/common/io/IoSession.java  |  8 ++++++++
 .../apache/sshd/common/io/mina/MinaSession.java    |  5 +++++
 .../apache/sshd/common/io/nio2/Nio2Session.java    | 17 +++++++++++++++--
 .../session/helpers/AbstractSessionTest.java       |  5 +++++
 4 files changed, 33 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c047525e/sshd-core/src/main/java/org/apache/sshd/common/io/IoSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/IoSession.java b/sshd-core/src/main/java/org/apache/sshd/common/io/IoSession.java
index 3edb6fa..90866c6 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/IoSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/IoSession.java
@@ -48,6 +48,14 @@ public interface IoSession extends PacketWriter, Closeable {
     Object setAttribute(Object key, Object value);
 
     /**
+     * Removes a user-defined attribute with the specified key.
+     *
+     * @param key The key of the attribute we want to remove
+     * @return The old value of the attribute - <tt>null</tt> if not found.
+     */
+    Object removeAttribute(Object key);
+
+    /**
      * @return the socket address of remote peer.
      */
     SocketAddress getRemoteAddress();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c047525e/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
index 81d5b18..259f044 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
@@ -71,6 +71,11 @@ public class MinaSession extends AbstractInnerCloseable implements IoSession {
     }
 
     @Override
+    public Object removeAttribute(Object key) {
+        return session.removeAttribute(key);
+    }
+
+    @Override
     public SocketAddress getRemoteAddress() {
         return session.getRemoteAddress();
     }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c047525e/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
index d86ee34..33e49b4 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
@@ -83,12 +83,23 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
 
     @Override
     public Object getAttribute(Object key) {
-        return attributes.get(key);
+        synchronized (attributes) {
+            return attributes.get(key);
+        }
     }
 
     @Override
     public Object setAttribute(Object key, Object value) {
-        return attributes.put(key, value);
+        synchronized (attributes) {
+            return attributes.put(key, value);
+        }
+    }
+
+    @Override
+    public Object removeAttribute(Object key) {
+        synchronized (attributes) {
+            return attributes.remove(key);
+        }
     }
 
     @Override
@@ -241,6 +252,8 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
                 log.trace("doCloseImmediately(" + this + ") IoHandler#sessionClosed failure details", e);
             }
         }
+
+        attributes.clear();
     }
 
     @Override   // co-variant return

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c047525e/sshd-core/src/test/java/org/apache/sshd/common/session/helpers/AbstractSessionTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/common/session/helpers/AbstractSessionTest.java b/sshd-core/src/test/java/org/apache/sshd/common/session/helpers/AbstractSessionTest.java
index 026dab2..afb9ff7 100644
--- a/sshd-core/src/test/java/org/apache/sshd/common/session/helpers/AbstractSessionTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/common/session/helpers/AbstractSessionTest.java
@@ -351,6 +351,11 @@ public class AbstractSessionTest extends BaseTestSupport {
         }
 
         @Override
+        public Object removeAttribute(Object key) {
+            return null;
+        }
+
+        @Override
         public SocketAddress getRemoteAddress() {
             return null;
         }