public abstract class AbstractSftpSubsystemHelper extends org.apache.sshd.common.util.logging.AbstractLoggingBean implements SftpEventListenerManager, SftpSubsystemEnvironment
| Modifier and Type | Field and Description |
|---|---|
static String |
ACL_SUPPORTED_MASK_PROP
Comma separate list of
SSH_ACL_CAP_xxx names - where name can be without
the prefix. |
static String |
AUTO_FOLLOW_LINKS
Whether to automatically follow symbolic links when resolving paths
|
static String |
CLIENT_EXTENSIONS_PROP
Allows controlling reports of which client extensions are supported
(and reported via "support" and "support2" server
extensions) as a comma-separate list of names.
|
static Set<Integer> |
DEFAULT_ACL_SUPPORTED_MASK |
static boolean |
DEFAULT_AUTO_FOLLOW_LINKS
Default value of "sftp-auto-follow-links"
|
static int |
DEFAULT_MAX_READDATA_PACKET_LENGTH |
static List<AbstractOpenSSHExtensionParser.OpenSSHExtension> |
DEFAULT_OPEN_SSH_EXTENSIONS |
static List<String> |
DEFAULT_OPEN_SSH_EXTENSIONS_NAMES |
static NavigableMap<String,OptionalFeature> |
DEFAULT_SUPPORTED_CLIENT_EXTENSIONS
The default reported supported client extensions (case insensitive)
|
static String |
MAX_READDATA_PACKET_LENGTH_PROP
Force the use of a max. packet length for
doRead(Buffer, int) protection
against malicious packets |
static String |
NEWLINE_VALUE
Property that can be used to set the reported NL value.
|
static String |
OPENSSH_EXTENSIONS_PROP
Comma-separated list of which
OpenSSH extensions are reported and
what version is reported for each - format: name=version. |
logALL_SFTP_IMPL, HIGHER_SFTP_IMPL, LOWER_SFTP_IMPL, SFTP_VERSION| Modifier | Constructor and Description |
|---|---|
protected |
AbstractSftpSubsystemHelper(UnsupportedAttributePolicy policy,
SftpFileSystemAccessor accessor,
SftpErrorStatusDataHandler handler) |
getSimplifiedLoggerclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetDefaultDirectory, getVersiongetServerSessionpublic static final String AUTO_FOLLOW_LINKS
DEFAULT_AUTO_FOLLOW_LINKS,
Constant Field Valuespublic static final boolean DEFAULT_AUTO_FOLLOW_LINKS
public static final String CLIENT_EXTENSIONS_PROP
executeExtendedCommand(Buffer, int, String)
command accordingly. If empty string is set then no server extensions
are reportedpublic static final NavigableMap<String,OptionalFeature> DEFAULT_SUPPORTED_CLIENT_EXTENSIONS
public static final String OPENSSH_EXTENSIONS_PROP
OpenSSH extensions are reported and
what version is reported for each - format: name=version. If empty
value set, then no such extensions are reported. Otherwise, the
DEFAULT_OPEN_SSH_EXTENSIONS are usedpublic static final List<AbstractOpenSSHExtensionParser.OpenSSHExtension> DEFAULT_OPEN_SSH_EXTENSIONS
public static final List<String> DEFAULT_OPEN_SSH_EXTENSIONS_NAMES
public static final String ACL_SUPPORTED_MASK_PROP
SSH_ACL_CAP_xxx names - where name can be without
the prefix. If not defined then DEFAULT_ACL_SUPPORTED_MASK is usedpublic static final String NEWLINE_VALUE
IoUtils.EOL is usedpublic static final String MAX_READDATA_PACKET_LENGTH_PROP
doRead(Buffer, int) protection
against malicious packetspublic static final int DEFAULT_MAX_READDATA_PACKET_LENGTH
protected AbstractSftpSubsystemHelper(UnsupportedAttributePolicy policy, SftpFileSystemAccessor accessor, SftpErrorStatusDataHandler handler)
public UnsupportedAttributePolicy getUnsupportedAttributePolicy()
getUnsupportedAttributePolicy in interface SftpSubsystemEnvironmentpublic SftpFileSystemAccessor getFileSystemAccessor()
getFileSystemAccessor in interface SftpSubsystemEnvironmentSftpFileSystemAccessor used to access effective
server-side pathspublic SftpEventListener getSftpEventListenerProxy()
getSftpEventListenerProxy in interface SftpEventListenerManagerpublic boolean addSftpEventListener(SftpEventListener listener)
SftpEventListenerManageraddSftpEventListener in interface SftpEventListenerManagerlistener - The SftpEventListener instance to add - never nulltrue if listener is a previously un-registered onepublic boolean removeSftpEventListener(SftpEventListener listener)
SftpEventListenerManagerremoveSftpEventListener in interface SftpEventListenerManagerlistener - The SftpEventListener instance to remove - never nulltrue if listener is a (removed) registered onepublic SftpErrorStatusDataHandler getErrorStatusDataHandler()
protected Boolean validateProposedVersion(org.apache.sshd.common.util.buffer.Buffer buffer, int id, String proposal) throws IOException
buffer - The Buffer holding the requestid - The request idproposal - The proposed valueBoolean indicating whether to accept/reject the proposal.
If null then rejection response has been sent, otherwise and
appropriate response is generatedIOException - If failed send an independent rejection responseprotected Map.Entry<Integer,String> checkVersionCompatibility(org.apache.sshd.common.util.buffer.Buffer buffer, int id, int proposed, int failureOpcode) throws IOException
SftpSubsystemEnvironment.SFTP_VERSION
property, then it is used to validate the proposed valuebuffer - The Buffer containing the requestid - The SSH message ID to be used to send the failure message
if requiredproposed - The proposed version valuefailureOpcode - The failure opcode to send if validation failsString
of comma separated values representing all the supported versions. null if validation
failed and an appropriate status message was sentIOException - If failed to send the failure status messageprotected void process(org.apache.sshd.common.util.buffer.Buffer buffer) throws IOException
buffer - the buffer to processIOException - if anything wrong happensprotected void doProcess(org.apache.sshd.common.util.buffer.Buffer buffer, int length, int type, int id) throws IOException
IOExceptionprotected void doUnsupported(org.apache.sshd.common.util.buffer.Buffer buffer, int length, int type, int id) throws IOException
IOExceptionprotected abstract void doInit(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void doVersionSelect(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract void doVersionSelect(org.apache.sshd.common.util.buffer.Buffer buffer, int id, String proposed) throws IOException
IOExceptionprotected void doOpen(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract String doOpen(int id, String path, int pflags, int access, Map<String,Object> attrs) throws IOException
id - Request idpath - Pathpflags - Open mode flags - see SSH_FXF_XXX flagsaccess - Access mode flags - see ACE4_XXX flagsattrs - Requested attributesIOException - if failed to executeprotected <E extends IOException> E signalOpenFailure(int id, String pathValue, Path path, boolean isDir, E thrown) throws IOException
IOExceptionprotected void doClose(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract void doClose(int id,
String handle)
throws IOException
IOExceptionprotected void doRead(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract int doRead(int id,
String handle,
long offset,
int length,
byte[] data,
int doff)
throws IOException
IOExceptionprotected void doWrite(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract void doWrite(int id,
String handle,
long offset,
int length,
byte[] data,
int doff,
int remaining)
throws IOException
IOExceptionprotected void doLStat(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected Map<String,Object> doLStat(int id, String path, int flags) throws IOException
IOExceptionprotected void doSetStat(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void doSetStat(int id,
String path,
Map<String,?> attrs)
throws IOException
IOExceptionprotected void doFStat(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract Map<String,Object> doFStat(int id, String handle, int flags) throws IOException
IOExceptionprotected void doFSetStat(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract void doFSetStat(int id,
String handle,
Map<String,?> attrs)
throws IOException
IOExceptionprotected void doOpenDir(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract String doOpenDir(int id, String path, Path p, LinkOption... options) throws IOException
IOExceptionprotected abstract void doReadDir(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void doLink(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void doLink(int id,
String targetPath,
String linkPath,
boolean symLink)
throws IOException
IOExceptionprotected void doSymLink(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void doSymLink(int id,
String targetPath,
String linkPath)
throws IOException
IOExceptionprotected abstract void createLink(int id,
String existingPath,
String linkPath,
boolean symLink)
throws IOException
IOExceptionprotected void doOpenSSHHardLink(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void doOpenSSHHardLink(int id,
String srcFile,
String dstFile)
throws IOException
IOExceptionprotected void doSpaceAvailable(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected SpaceAvailableExtensionInfo doSpaceAvailable(int id, String path) throws IOException
IOExceptionprotected void doTextSeek(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract void doTextSeek(int id,
String handle,
long line)
throws IOException
IOExceptionprotected void doOpenSSHFsync(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract void doOpenSSHFsync(int id,
String handle)
throws IOException
IOExceptionprotected void doCheckFileHash(org.apache.sshd.common.util.buffer.Buffer buffer, int id, String targetType) throws IOException
IOExceptionprotected void doCheckFileHash(int id,
Path file,
NamedFactory<? extends org.apache.sshd.common.digest.Digest> factory,
long startOffset,
long length,
int blockSize,
org.apache.sshd.common.util.buffer.Buffer buffer)
throws Exception
Exceptionprotected void doMD5Hash(org.apache.sshd.common.util.buffer.Buffer buffer, int id, String targetType) throws IOException
IOExceptionprotected abstract byte[] doMD5Hash(int id,
String targetType,
String target,
long startOffset,
long length,
byte[] quickCheckHash)
throws Exception
Exceptionprotected byte[] doMD5Hash(int id,
Path path,
long startOffset,
long length,
byte[] quickCheckHash)
throws Exception
Exceptionprotected abstract void doCheckFileHash(int id,
String targetType,
String target,
Collection<String> algos,
long startOffset,
long length,
int blockSize,
org.apache.sshd.common.util.buffer.Buffer buffer)
throws Exception
Exceptionprotected void doReadLink(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected String doReadLink(int id, String path) throws IOException
IOExceptionprotected void doRename(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void doRename(int id,
String oldPath,
String newPath,
int flags)
throws IOException
IOExceptionprotected void doRename(int id,
String oldPath,
String newPath,
Collection<CopyOption> opts)
throws IOException
IOExceptionprotected void doCopyData(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract void doCopyData(int id,
String readHandle,
long readOffset,
long readLength,
String writeHandle,
long writeOffset)
throws IOException
IOExceptionprotected void doCopyFile(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void doCopyFile(int id,
String srcFile,
String dstFile,
boolean overwriteDestination)
throws IOException
IOExceptionprotected void doCopyFile(int id,
String srcFile,
String dstFile,
Collection<CopyOption> opts)
throws IOException
IOExceptionprotected void doBlock(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract void doBlock(int id,
String handle,
long offset,
long length,
int mask)
throws IOException
IOExceptionprotected void doUnblock(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected abstract void doUnblock(int id,
String handle,
long offset,
long length)
throws IOException
IOExceptionprotected void doStat(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected Map<String,Object> doStat(int id, String path, int flags) throws IOException
IOExceptionprotected void doRealPath(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected AbstractMap.SimpleImmutableEntry<Path,Boolean> doRealPathV6(int id, String path, Collection<String> extraPaths, Path p, LinkOption... options) throws IOException
IOExceptionprotected AbstractMap.SimpleImmutableEntry<Path,Boolean> doRealPathV345(int id, String path, Path p, LinkOption... options) throws IOException
IOExceptionprotected AbstractMap.SimpleImmutableEntry<Path,Boolean> validateRealPath(int id, String path, Path f, LinkOption... options) throws IOException
id - The request identifierpath - The original pathf - The resolve Pathoptions - The LinkOptions to use to verify file existence and accessAbstractMap.SimpleImmutableEntry whose key is the absolute normalized
Path and value is a Boolean indicating its statusIOException - If failed to validate the fileIoUtils.checkFileExists(Path, LinkOption...)protected void doRemoveDirectory(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void doRemoveDirectory(int id,
String path,
LinkOption... options)
throws IOException
IOExceptionprotected void doRemove(int id,
Path p,
boolean isDirectory)
throws IOException
SftpEventListenerid - Deletion request IDp - Path to deleteisDirectory - Whether the requested path represents a directory or a regular fileIOException - If failed to deleteprotected void doMakeDirectory(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void doMakeDirectory(int id,
String path,
Map<String,?> attrs,
LinkOption... options)
throws IOException
IOExceptionprotected void doRemove(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void doRemove(int id,
String path,
LinkOption... options)
throws IOException
IOExceptionprotected <E extends IOException> E signalRemovalPreConditionFailure(int id, String pathValue, Path path, E thrown, boolean isRemoveDirectory) throws IOException
IOExceptionprotected void doExtended(org.apache.sshd.common.util.buffer.Buffer buffer, int id) throws IOException
IOExceptionprotected void executeExtendedCommand(org.apache.sshd.common.util.buffer.Buffer buffer, int id, String extension) throws IOException
buffer - The command Bufferid - The request idextension - The extension nameIOException - If failed to execute the extensionprotected void doUnsupportedExtension(org.apache.sshd.common.util.buffer.Buffer buffer, int id, String extension) throws IOException
IOExceptionprotected void appendExtensions(org.apache.sshd.common.util.buffer.Buffer buffer, String supportedVersions)
protected int appendAclSupportedExtension(org.apache.sshd.common.util.buffer.Buffer buffer)
protected Collection<Integer> resolveAclSupportedCapabilities(ServerSession session)
protected List<AbstractOpenSSHExtensionParser.OpenSSHExtension> appendOpenSSHExtensions(org.apache.sshd.common.util.buffer.Buffer buffer)
protected List<AbstractOpenSSHExtensionParser.OpenSSHExtension> resolveOpenSSHExtensions(ServerSession session)
protected Map<String,OptionalFeature> getSupportedClientExtensions()
protected void appendVersionsExtension(org.apache.sshd.common.util.buffer.Buffer buffer, String value)
buffer - The Buffer to append tovalue - The recommended value - ignored if null/emptySftpConstants.EXT_VERSIONSprotected void appendNewlineExtension(org.apache.sshd.common.util.buffer.Buffer buffer, String value)
buffer - The Buffer to append tovalue - The recommended value - ignored if null/emptySftpConstants.EXT_NEWLINEprotected String resolveNewlineValue(ServerSession session)
protected void appendVendorIdExtension(org.apache.sshd.common.util.buffer.Buffer buffer, Map<String,?> versionProperties)
buffer - The Buffer to append toversionProperties - The currently available version properties - ignored
if null/empty. The code expects the following values:
groupId - as the vendor nameartifactId - as the product nameversion - as the product versionSftpConstants.EXT_VENDOR_ID,
DRAFT 09 - section 4.4protected void appendSupportedExtension(org.apache.sshd.common.util.buffer.Buffer buffer, Collection<String> extras)
buffer - The Buffer to append toextras - The extra extensions that are available and can be reported
- may be null/emptyprotected void appendSupported2Extension(org.apache.sshd.common.util.buffer.Buffer buffer, Collection<String> extras)
buffer - The Buffer to append toextras - The extra extensions that are available and can be reported
- may be null/emptySftpConstants.EXT_SUPPORTED,
DRAFT 13 section 5.4protected void sendHandle(org.apache.sshd.common.util.buffer.Buffer buffer, int id, String handle) throws IOException
IOExceptionprotected void sendAttrs(org.apache.sshd.common.util.buffer.Buffer buffer, int id, Map<String,?> attributes) throws IOException
IOExceptionprotected void sendLink(org.apache.sshd.common.util.buffer.Buffer buffer, int id, String link) throws IOException
IOExceptionprotected void sendPath(org.apache.sshd.common.util.buffer.Buffer buffer, int id, Path f, Map<String,?> attrs) throws IOException
IOExceptionprotected int doReadDir(int id,
String handle,
DirectoryHandle dir,
org.apache.sshd.common.util.buffer.Buffer buffer,
int maxSize,
LinkOption... options)
throws IOException
id - Request idhandle - The (opaque) handle assigned to this directorydir - The DirectoryHandlebuffer - The Buffer to write the resultsmaxSize - Max. buffer sizeoptions - The LinkOption-s to use when querying the directory contentsIOException - If failed to generate an entryprotected void writeDirEntry(int id,
DirectoryHandle dir,
Map<String,Path> entries,
org.apache.sshd.common.util.buffer.Buffer buffer,
int index,
Path f,
String shortName,
LinkOption... options)
throws IOException
id - Request iddir - The DirectoryHandleentries - An in / out Map for updating the written entry -
key = short name, value = entry Pathbuffer - The Buffer to write the resultsindex - Zero-based index of the entry to be writtenf - The entry PathshortName - The entry short nameoptions - The LinkOptions to use for querying the entry-s attributesIOException - If failed to generate the entry dataprotected String getLongName(Path f, String shortName, LinkOption... options) throws IOException
IOExceptionprotected String getLongName(Path f, String shortName, boolean sendAttrs, LinkOption... options) throws IOException
IOExceptionprotected String getLongName(Path f, String shortName, Map<String,?> attributes) throws IOException
IOExceptionprotected String getShortName(Path f) throws IOException
IOExceptionprotected NavigableMap<String,Object> resolveFileAttributes(Path file, int flags, LinkOption... options) throws IOException
IOExceptionprotected void writeAttrs(org.apache.sshd.common.util.buffer.Buffer buffer, Map<String,?> attributes) throws IOException
IOExceptionprotected NavigableMap<String,Object> getAttributes(Path file, LinkOption... options) throws IOException
IOExceptionprotected NavigableMap<String,Object> handleUnknownStatusFileAttributes(Path file, int flags, LinkOption... options) throws IOException
IOExceptionprotected NavigableMap<String,Object> getAttributes(Path file, int flags, LinkOption... options) throws IOException
file - The Path location for the required attributesflags - A mask of the original required attributes - ignored by the
default implementationoptions - The LinkOptions to use in order to access the file
if necessaryMap of the retrieved attributesIOException - If failed to access the fileresolveMissingFileAttributes(Path, int, Map, LinkOption...)protected NavigableMap<String,Object> resolveMissingFileAttributes(Path file, int flags, Map<String,Object> current, LinkOption... options) throws IOException
getAttributes(Path, int, LinkOption...) in order
to complete any attributes that could not be retrieved via the supported
file system views. These attributes are deemed important so an extra
effort is made to provide a value for themfile - The Path location for the required attributesflags - A mask of the original required attributes - ignored by the
default implementationcurrent - The Map of attributes already retrieved - may be
null/empty and/or unmodifiableoptions - The LinkOptions to use in order to access the file
if necessaryMap of the extra attributes whose values need to be
updated in the original map. Note: it is allowed to specify values
which override existing ones - the default implementation does not
override values that have a non-null valueIOException - If failed to access the attributes - in which case
an error is returned to the SFTP clientSftpFileSystemAccessor.FILEATTRS_RESOLVERSprotected Object resolveMissingFileAttributeValue(Path file, String name, Object value, org.apache.sshd.common.util.io.FileInfoExtractor<?> x, LinkOption... options) throws IOException
IOExceptionprotected NavigableMap<String,Object> addMissingAttribute(Path file, NavigableMap<String,Object> current, String name, org.apache.sshd.common.util.io.FileInfoExtractor<?> x, LinkOption... options) throws IOException
IOExceptionprotected NavigableMap<String,Object> readFileAttributes(Path file, String view, LinkOption... options) throws IOException
IOExceptionprotected NavigableMap<String,Object> handleReadFileAttributesException(Path file, String view, LinkOption[] options, IOException e) throws IOException
IOExceptionprotected void doSetAttributes(Path file, Map<String,?> attributes) throws IOException
IOExceptionprotected LinkOption[] getPathResolutionLinkOption(int cmd, String extension, Path path) throws IOException
IOExceptionprotected void setFileAttributes(Path file, Map<String,?> attributes, LinkOption... options) throws IOException
IOExceptionprotected void handleSetFileAttributeFailure(Path file, String view, String attribute, Object value, Collection<String> unsupported, Exception e) throws IOException
IOExceptionprotected void setFileAttribute(Path file, String view, String attribute, Object value, LinkOption... options) throws IOException
IOExceptionprotected void setFileTime(Path file, String view, String attribute, FileTime value, LinkOption... options) throws IOException
IOExceptionprotected void setFileOwnership(Path file, String attribute, Principal value, LinkOption... options) throws IOException
IOExceptionprotected void setFileExtensions(Path file, Map<String,byte[]> extensions, LinkOption... options) throws IOException
IOExceptionprotected void setFilePermissions(Path file, Set<PosixFilePermission> perms, LinkOption... options) throws IOException
IOExceptionprotected void setFileAccessControl(Path file, List<AclEntry> acl, LinkOption... options) throws IOException
IOExceptionprotected void handleUnsupportedAttributes(Collection<String> attributes)
protected GroupPrincipal toGroup(Path file, GroupPrincipal name) throws IOException
IOExceptionprotected UserPrincipal toUser(Path file, UserPrincipal name) throws IOException
IOExceptionprotected void handleUserPrincipalLookupServiceException(Class<? extends Principal> principalType, String name, IOException e) throws IOException
IOExceptionprotected Map<String,Object> readAttrs(org.apache.sshd.common.util.buffer.Buffer buffer) throws IOException
IOExceptionprotected <H extends Handle> H validateHandle(String handle, Handle h, Class<H> type) throws IOException
H - The generic handle typehandle - The original handle idh - The resolved Handle instancetype - The expected handle typeIOException - If a generic exception occurredFileNotFoundException - If the handle instance is nullInvalidHandleException - If the handle instance is not of the expected typeprotected void sendStatus(org.apache.sshd.common.util.buffer.Buffer buffer, int id, Throwable e, int cmd, Object... args) throws IOException
buffer - A Buffer to be used to build the status replyid - Command identifiere - Thrown exceptioncmd - The command that was attemptedargs - The relevant command arguments - Note: provided only for
logging purposes and subject to type and/or order change at any versionIOException - If failed to build and send the status bufferprotected void sendStatus(org.apache.sshd.common.util.buffer.Buffer buffer, int id, int substatus, String msg) throws IOException
IOExceptionprotected void sendStatus(org.apache.sshd.common.util.buffer.Buffer buffer, int id, int substatus, String msg, String lang) throws IOException
IOExceptionprotected abstract org.apache.sshd.common.util.buffer.Buffer prepareReply(org.apache.sshd.common.util.buffer.Buffer buffer)
protected abstract void send(org.apache.sshd.common.util.buffer.Buffer buffer) throws IOException
IOExceptionprotected Path resolveNormalizedLocation(String remotePath) throws IOException, InvalidPathException
IOExceptionInvalidPathExceptionprotected Path resolveFile(String remotePath) throws IOException, InvalidPathException
remotePath - The remote path - separated by '/'PathIOException - If failed to resolve the local pathInvalidPathException - If bad local path specificationCopyright © 2018–2019 The Apache Software Foundation. All rights reserved.