diff options
Diffstat (limited to 'libs/sftp/src/main')
| -rw-r--r-- | libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpConnection.kt | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpConnection.kt b/libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpConnection.kt index ed5889a..6669e13 100644 --- a/libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpConnection.kt +++ b/libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpConnection.kt @@ -50,11 +50,10 @@ internal class SftpConnection(uri: Uri, credentials: SftpCredentials, hostsStora sftpSession?.unlink(PathUtils.join(baseDir, path)) ?: false fun readLink(path: String): String? { - val target = sftpSession?.readlink(PathUtils.join(baseDir, path)) - if (target?.startsWith(baseDir) == true) { - return target.substring(baseDir.length + 1) - } - return target + val linkPath = PathUtils.join(baseDir, path) + val target = sftpSession?.readlink(linkPath) ?: return null + val parentPath = PathUtils.dirname(linkPath) + return PathUtils.relativeTo(parentPath, target) } fun symlink(target: String, rawTarget: Boolean, path: String): Boolean { |
