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 2018/04/19 15:07:59 UTC

[3/5] mina-sshd git commit: [SSHD-812] Move executeExtendedCommand to AbstractSftpSubsystemHelper

[SSHD-812] Move executeExtendedCommand to AbstractSftpSubsystemHelper


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

Branch: refs/heads/master
Commit: bb378250bdddb2e0a2cf30c5942394c70dc40783
Parents: ef23738
Author: Guillaume Nodet <gn...@apache.org>
Authored: Tue Apr 17 09:39:33 2018 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Thu Apr 19 17:07:34 2018 +0200

----------------------------------------------------------------------
 .../sftp/AbstractSftpSubsystemHelper.java       | 44 +++++++++++++++++++-
 .../server/subsystem/sftp/SftpSubsystem.java    | 43 -------------------
 2 files changed, 43 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/bb378250/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java
----------------------------------------------------------------------
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java
index f3946d4..6814ef5 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java
@@ -1563,7 +1563,49 @@ public abstract class AbstractSftpSubsystemHelper
      * @param extension The extension name
      * @throws IOException If failed to execute the extension
      */
-    protected abstract void executeExtendedCommand(Buffer buffer, int id, String extension) throws IOException;
+    protected void executeExtendedCommand(Buffer buffer, int id, String extension) throws IOException {
+        switch (extension) {
+            case SftpConstants.EXT_TEXT_SEEK:
+                doTextSeek(buffer, id);
+                break;
+            case SftpConstants.EXT_VERSION_SELECT:
+                doVersionSelect(buffer, id);
+                break;
+            case SftpConstants.EXT_COPY_FILE:
+                doCopyFile(buffer, id);
+                break;
+            case SftpConstants.EXT_COPY_DATA:
+                doCopyData(buffer, id);
+                break;
+            case SftpConstants.EXT_MD5_HASH:
+            case SftpConstants.EXT_MD5_HASH_HANDLE:
+                doMD5Hash(buffer, id, extension);
+                break;
+            case SftpConstants.EXT_CHECK_FILE_HANDLE:
+            case SftpConstants.EXT_CHECK_FILE_NAME:
+                doCheckFileHash(buffer, id, extension);
+                break;
+            case FsyncExtensionParser.NAME:
+                doOpenSSHFsync(buffer, id);
+                break;
+            case SftpConstants.EXT_SPACE_AVAILABLE:
+                doSpaceAvailable(buffer, id);
+                break;
+            case HardLinkExtensionParser.NAME:
+                doOpenSSHHardLink(buffer, id);
+                break;
+            default:
+                doUnsupportedExtension(buffer, id, extension);
+                break;
+        }
+    }
+
+    protected void doUnsupportedExtension(Buffer buffer, int id, String extension) throws IOException {
+        if (log.isDebugEnabled()) {
+            log.debug("executeExtendedCommand({}) received unsupported SSH_FXP_EXTENDED({})", getServerSession(), extension);
+        }
+        sendStatus(buffer, id, SftpConstants.SSH_FX_OP_UNSUPPORTED, "Command SSH_FXP_EXTENDED(" + extension + ") is unsupported or not implemented");
+    }
 
     protected void appendExtensions(Buffer buffer, String supportedVersions) {
         appendVersionsExtension(buffer, supportedVersions);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/bb378250/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/SftpSubsystem.java
----------------------------------------------------------------------
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/SftpSubsystem.java b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/SftpSubsystem.java
index 8abfba8..8979909 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/SftpSubsystem.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/SftpSubsystem.java
@@ -51,8 +51,6 @@ import org.apache.sshd.common.file.FileSystemAware;
 import org.apache.sshd.common.random.Random;
 import org.apache.sshd.common.subsystem.sftp.SftpConstants;
 import org.apache.sshd.common.subsystem.sftp.SftpHelper;
-import org.apache.sshd.common.subsystem.sftp.extensions.openssh.FsyncExtensionParser;
-import org.apache.sshd.common.subsystem.sftp.extensions.openssh.HardLinkExtensionParser;
 import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.ValidateUtils;
 import org.apache.sshd.common.util.buffer.Buffer;
@@ -306,47 +304,6 @@ public class SftpSubsystem
     }
 
     @Override
-    protected void executeExtendedCommand(Buffer buffer, int id, String extension) throws IOException {
-        switch (extension) {
-            case SftpConstants.EXT_TEXT_SEEK:
-                doTextSeek(buffer, id);
-                break;
-            case SftpConstants.EXT_VERSION_SELECT:
-                doVersionSelect(buffer, id);
-                break;
-            case SftpConstants.EXT_COPY_FILE:
-                doCopyFile(buffer, id);
-                break;
-            case SftpConstants.EXT_COPY_DATA:
-                doCopyData(buffer, id);
-                break;
-            case SftpConstants.EXT_MD5_HASH:
-            case SftpConstants.EXT_MD5_HASH_HANDLE:
-                doMD5Hash(buffer, id, extension);
-                break;
-            case SftpConstants.EXT_CHECK_FILE_HANDLE:
-            case SftpConstants.EXT_CHECK_FILE_NAME:
-                doCheckFileHash(buffer, id, extension);
-                break;
-            case FsyncExtensionParser.NAME:
-                doOpenSSHFsync(buffer, id);
-                break;
-            case SftpConstants.EXT_SPACE_AVAILABLE:
-                doSpaceAvailable(buffer, id);
-                break;
-            case HardLinkExtensionParser.NAME:
-                doOpenSSHHardLink(buffer, id);
-                break;
-            default:
-                if (log.isDebugEnabled()) {
-                    log.debug("executeExtendedCommand({}) received unsupported SSH_FXP_EXTENDED({})", getServerSession(), extension);
-                }
-                sendStatus(BufferUtils.clear(buffer), id, SftpConstants.SSH_FX_OP_UNSUPPORTED, "Command SSH_FXP_EXTENDED(" + extension + ") is unsupported or not implemented");
-                break;
-        }
-    }
-
-    @Override
     protected void createLink(int id, String existingPath, String linkPath, boolean symLink) throws IOException {
         Path link = resolveFile(linkPath);
         Path existing = fileSystem.getPath(existingPath);