You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by gn...@apache.org on 2013/07/17 21:36:59 UTC
git commit: [SSHD-226] ServerSession's idle timer is not reset,
if server only sends data
Updated Branches:
refs/heads/master e6005dc31 -> 5e69ae74a
[SSHD-226] ServerSession's idle timer is not reset, if server only sends data
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/5e69ae74
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/5e69ae74
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/5e69ae74
Branch: refs/heads/master
Commit: 5e69ae74aa9b17d9678820187e5feaffddb1ed35
Parents: e6005dc
Author: Guillaume Nodet <gn...@apache.org>
Authored: Wed Jul 17 21:36:53 2013 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Wed Jul 17 21:36:53 2013 +0200
----------------------------------------------------------------------
.../apache/sshd/server/session/ServerSession.java | 15 +++++++++++++++
1 file changed, 15 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/5e69ae74/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
index 67d3be9..12b4bf6 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
@@ -28,6 +28,7 @@ import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import org.apache.mina.core.future.WriteFuture;
import org.apache.mina.core.session.IoSession;
import org.apache.sshd.SshServer;
import org.apache.sshd.agent.common.AgentForwardSupport;
@@ -121,6 +122,19 @@ public class ServerSession extends AbstractSession {
return getServerFactoryManager().getScheduledExecutorService();
}
+ @Override
+ public WriteFuture writePacket(Buffer buffer) throws IOException {
+ boolean rescheduleIdleTimer = getState() == State.Running;
+ if (rescheduleIdleTimer) {
+ unscheduleIdleTimer();
+ }
+ WriteFuture future = super.writePacket(buffer);
+ if (rescheduleIdleTimer) {
+ scheduleIdleTimer();
+ }
+ return future;
+ }
+
protected void handleMessage(Buffer buffer) throws Exception {
SshConstants.Message cmd = buffer.getCommand();
log.debug("Received packet {}", cmd);
@@ -291,6 +305,7 @@ public class ServerSession extends AbstractSession {
// A timeout less than one means there is no timeout.
return;
}
+ unscheduleIdleTimer();
Runnable idleTimerTask = new Runnable() {
public void run() {
try {