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;
}