summaryrefslogtreecommitdiff
path: root/libs/sftp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/sftp')
-rw-r--r--libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpConnection.kt4
-rw-r--r--libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpLink.kt2
2 files changed, 4 insertions, 2 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 6669e13..a6e0ae9 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
@@ -53,7 +53,9 @@ internal class SftpConnection(uri: Uri, credentials: SftpCredentials, hostsStora
val linkPath = PathUtils.join(baseDir, path)
val target = sftpSession?.readlink(linkPath) ?: return null
val parentPath = PathUtils.dirname(linkPath)
- return PathUtils.relativeTo(parentPath, target)
+ val relativeTarget = PathUtils.relativeTo(parentPath, target)
+ if (relativeTarget == ".") return "../${PathUtils.basename(target)}"
+ return relativeTarget
}
fun symlink(target: String, rawTarget: Boolean, path: String): Boolean {
diff --git a/libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpLink.kt b/libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpLink.kt
index 161b5c1..b51f2f9 100644
--- a/libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpLink.kt
+++ b/libs/sftp/src/main/java/org/the_jk/cleversync/io/sftp/SftpLink.kt
@@ -48,7 +48,7 @@ internal class SftpLink(
override fun resolve(): Link.LinkTarget {
val (newPath, firstTarget, entry) = doResolve()
- if (entry == null) return Link.NoTarget(newPath)
+ if (entry == null) return Link.NoTarget(firstTarget)
return when (entry.type) {
NativeSftp.DirEntryType.DIR ->
Link.DirectoryTarget(firstTarget, SftpDirectory(conn, newPath, entry.name))