diff options
Diffstat (limited to 'gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java')
-rw-r--r-- | gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java index 1c3d8282e7..47ec5e4260 100644 --- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java +++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java @@ -25,8 +25,10 @@ import com.google.gerrit.sshd.SshDaemon; import com.google.gerrit.sshd.SshSession; import com.google.inject.Inject; -import org.apache.mina.core.service.IoAcceptor; -import org.apache.mina.core.session.IoSession; +import org.apache.sshd.common.io.IoAcceptor; +import org.apache.sshd.common.io.IoSession; +import org.apache.sshd.common.io.mina.MinaSession; +import org.apache.sshd.server.Environment; import org.apache.sshd.server.session.ServerSession; import org.kohsuke.args4j.Option; @@ -62,10 +64,16 @@ final class ShowConnections extends SshCommand { Collections.sort(list, new Comparator<IoSession>() { @Override public int compare(IoSession arg0, IoSession arg1) { - if (arg0.getCreationTime() < arg1.getCreationTime()) { - return -1; - } else if (arg0.getCreationTime() > arg1.getCreationTime()) { - return 1; + if (arg0 instanceof MinaSession) { + MinaSession mArg0 = (MinaSession) arg0; + MinaSession mArg1 = (MinaSession) arg1; + if (mArg0.getSession().getCreationTime() < mArg1.getSession() + .getCreationTime()) { + return -1; + } else if (mArg0.getSession().getCreationTime() > mArg1.getSession() + .getCreationTime()) { + return 1; + } } return (int) (arg0.getId() - arg1.getId()); } @@ -80,8 +88,15 @@ final class ShowConnections extends SshCommand { SshSession sd = s != null ? s.getAttribute(SshSession.KEY) : null; final SocketAddress remoteAddress = io.getRemoteAddress(); - final long start = io.getCreationTime(); - final long idle = now - io.getLastIoTime(); + MinaSession minaSession = io instanceof MinaSession + ? (MinaSession) io + : null; + final long start = minaSession == null + ? 0 + : minaSession.getSession().getCreationTime(); + final long idle = minaSession == null + ? now + : now - minaSession.getSession().getLastIoTime(); stdout.print(String.format("%8s %8s %8s %-15.15s %.30s\n", // id(sd), // |