artembilan commented on issue #397:
URL: https://github.com/apache/mina-sshd/issues/397#issuecomment-1638258682
Well, that's really the point. Our unit test has this piece of code:
```
template.execute(session -> {
session.mkdir("/foo/");
return session.mkdir("/foo/bar/");
});
```
That `session` is a wrapper around `SftpClient`.
According to my debugging investigation, the dot is added here in the
`SelectorUtils`:
```
/*
* At this point we know for sure that 'path' contains only SINGLE
slashes. According to section 4.11 - Pathname
* resolution
*
* A pathname that contains at least one non-slash character and
that ends with one or more trailing slashes
* shall be resolved as if a single dot character ( '.' ) were
appended to the pathname.
*/
if ((path.length() > 1) && (path.charAt(path.length() - 1) ==
sepChar)) {
return path + ".";
} else {
return path;
}
```
I see that if I remove trailing slash from my remote dir to create, the dot
is not added:
```
2023-07-17 10:19:25,424 TRACE [sshd-SftpSubsystem-8948-thread-1]
[org.apache.sshd.common.file.root.RootedFileSystem] - getPath(/foo, []): /foo
2023-07-17 10:19:25,424 TRACE [sshd-SftpSubsystem-8948-thread-1]
[org.apache.sshd.sftp.server.SftpSubsystem] -
resolveFile(ServerSessionImpl[foo@/127.0.0.1:52418]) /foo => /foo
```
Is it really what recommended now? Why a trailing slash is considered to by
as some extra signal to do something else?
Thanks
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]