summaryrefslogtreecommitdiff
path: root/libs/sftp/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'libs/sftp/src/main')
-rw-r--r--libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpConnection.kt9
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 {