From 882520f3baee410647c3b99d608cc8fe18b0f5d0 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Sat, 9 Nov 2024 16:17:44 +0100 Subject: sftp: add single merge tests for both local <-> sftp and sftp <-> local Had to fixup the symlink code in Sftp, most importantly add a PathUtils relativeTo to fixup relative links. --- .../main/java/org/the_jk/cleversync/io/sftp/SftpConnection.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'libs/sftp/src/main') 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 { -- cgit v1.2.3-70-g09d2