summaryrefslogtreecommitdiff
path: root/libs/samba/src/main/java/org
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2024-09-25 21:21:13 +0200
committerJoel Klinghed <the_jk@spawned.biz>2024-09-25 21:21:13 +0200
commit91b08030619e96257c8a9a95824e5a213be28142 (patch)
tree94bd03fb37882b35541a57a5d1b325853a243b52 /libs/samba/src/main/java/org
parent5d68a40cab717fa7562c08dbf2eb9a4394f2e7a5 (diff)
samba: Remove untested symlink code
Not been able to test the symlink code (as it is SMB1 only), instead of having a lot of (possibly, most likely) broken code that might be used by someone, remove it all.
Diffstat (limited to 'libs/samba/src/main/java/org')
-rw-r--r--libs/samba/src/main/java/org/the_jk/cleversync/io/samba/NativeSamba.kt8
-rw-r--r--libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaConnection.kt3
-rw-r--r--libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaDirectory.kt18
-rw-r--r--libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaLink.kt69
4 files changed, 4 insertions, 94 deletions
diff --git a/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/NativeSamba.kt b/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/NativeSamba.kt
index c951d37..590fab8 100644
--- a/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/NativeSamba.kt
+++ b/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/NativeSamba.kt
@@ -26,7 +26,6 @@ internal object NativeSamba {
fun makeDir(path: String): Boolean
fun removeDir(path: String): Boolean
fun unlink(path: String): Boolean
- fun readLink(path: String): String?
fun openFile(path: String, mode: OpenMode): File?
}
@@ -37,7 +36,6 @@ internal object NativeSamba {
enum class DirEntryType {
DIR,
FILE,
- LINK,
}
@Keep
@@ -114,10 +112,6 @@ internal object NativeSamba {
return nativeContextUnlink(ptr, path)
}
- override fun readLink(path: String): String? {
- return nativeContextReadLink(ptr, path)
- }
-
override fun openFile(path: String, mode: NativeSamba.OpenMode): File? {
val file = nativeContextOpenFile(ptr, path, mode.value)
return if (file != 0L) NativeFile(path, file) else null
@@ -181,7 +175,6 @@ internal object NativeSamba {
when (type) {
0 -> DirEntryType.DIR
1 -> DirEntryType.FILE
- 2 -> DirEntryType.LINK
else -> throw IllegalArgumentException("Unknown type: $type")
},
size = size.toULong(),
@@ -198,7 +191,6 @@ internal object NativeSamba {
private external fun nativeContextMakeDir(ptr: Long, path: String): Boolean
private external fun nativeContextRemoveDir(ptr: Long, path: String): Boolean
private external fun nativeContextUnlink(ptr: Long, path: String): Boolean
- private external fun nativeContextReadLink(otr: Long, path: String): String?
private external fun nativeContextOpenFile(ptr: Long, path: String, mode: Int): Long
private external fun nativeUrlDestroy(ptr: Long)
diff --git a/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaConnection.kt b/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaConnection.kt
index a645804..7378ab5 100644
--- a/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaConnection.kt
+++ b/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaConnection.kt
@@ -37,9 +37,6 @@ internal class SambaConnection(uri: String, credentials: SambaCredentials) {
fun unlink(path: String): Boolean =
connected && context.unlink(join(url!!.path(), path))
- fun readLink(path: String): String? =
- if (connected) context.readLink(join(url!!.path(), path)) else null
-
fun openFile(path: String, read: NativeSamba.OpenMode): NativeSamba.File? =
if (connected) context.openFile(join(url!!.path(), path), read) else null
diff --git a/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaDirectory.kt b/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaDirectory.kt
index fc5b290..67228a4 100644
--- a/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaDirectory.kt
+++ b/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaDirectory.kt
@@ -69,16 +69,13 @@ internal open class SambaDirectory(
}
override fun modifiableOpenLink(name: String): ModifiableLink? {
- val newPath = SambaConnection.join(path, name)
- val entry = conn.entry(newPath) ?: return null
- if (entry.type != NativeSamba.DirEntryType.LINK) return null
- return SambaLink(conn, newPath, name)
+ return null
}
override fun modifiableList(): ModifiableDirectory.Content {
val directories = mutableListOf<ModifiableDirectory>()
val files = mutableListOf<ModifiableFile>()
- val links = mutableListOf<ModifiableLink>()
+ val links = emptyList<ModifiableLink>()
val dir = conn.openDir(path)
if (dir != null) {
dir.list().forEach { entry ->
@@ -90,9 +87,6 @@ internal open class SambaDirectory(
NativeSamba.DirEntryType.FILE -> {
files.add(SambaFile(conn, entryPath, entry.name, entry.size, entry.lastModified))
}
- NativeSamba.DirEntryType.LINK -> {
- links.add(SambaLink(conn, entryPath, entry.name))
- }
}
}
dir.destroy()
@@ -138,8 +132,7 @@ internal open class SambaDirectory(
dir.list().forEach { entry ->
val entryPath = SambaConnection.join(removePath, entry.name)
if (!when (entry.type) {
- NativeSamba.DirEntryType.FILE,
- NativeSamba.DirEntryType.LINK,
+ NativeSamba.DirEntryType.FILE
-> conn.unlink(entryPath)
NativeSamba.DirEntryType.DIR
-> removeRecursive(entryPath)
@@ -161,10 +154,7 @@ internal open class SambaDirectory(
}
override fun removeLink(name: String): Boolean {
- val removePath = SambaConnection.join(path, name)
- val entry = conn.entry(removePath) ?: return false
- if (entry.type != NativeSamba.DirEntryType.LINK) return false
- return conn.unlink(removePath)
+ return false
}
override fun openDir(name: String) = modifiableOpenDir(name)
diff --git a/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaLink.kt b/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaLink.kt
deleted file mode 100644
index a9e6f04..0000000
--- a/libs/samba/src/main/java/org/the_jk/cleversync/io/samba/SambaLink.kt
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.the_jk.cleversync.io.samba
-
-import org.the_jk.cleversync.io.Directory
-import org.the_jk.cleversync.io.File
-import org.the_jk.cleversync.io.Link
-import org.the_jk.cleversync.io.ModifiableLink
-import java.io.IOException
-
-internal class SambaLink(
- private val conn: SambaConnection,
- private val path: String,
- override val name: String,
-) : ModifiableLink {
- override fun modifiableResolve(): ModifiableLink.ModifiableLinkTarget {
- val (newPath, entry) = doResolve()
- if (entry == null) return ModifiableLink.NoTarget
- return when (entry.type) {
- NativeSamba.DirEntryType.DIR ->
- ModifiableLink.ModifiableDirectoryTarget(SambaDirectory(conn, newPath, entry.name))
- NativeSamba.DirEntryType.FILE ->
- ModifiableLink.ModifiableFileTarget(
- SambaFile(conn, newPath, entry.name, entry.size, entry.lastModified),
- )
- NativeSamba.DirEntryType.LINK ->
- ModifiableLink.NoTarget
- }
- }
-
- override fun target(directory: Directory) {
- throw IOException("Unsupported operation")
- }
-
- override fun target(file: File) {
- throw IOException("Unsupported operation")
- }
-
- override fun target(name: String) {
- throw IOException("Unsupported operation")
- }
-
- override fun resolve(): Link.LinkTarget {
- val (newPath, entry) = doResolve()
- if (entry == null) return Link.NoTarget
- return when (entry.type) {
- NativeSamba.DirEntryType.DIR ->
- Link.DirectoryTarget(SambaDirectory(conn, newPath, entry.name))
- NativeSamba.DirEntryType.FILE ->
- Link.FileTarget(SambaFile(conn, newPath, entry.name, entry.size, entry.lastModified))
- NativeSamba.DirEntryType.LINK ->
- Link.NoTarget
- }
- }
-
- override fun equals(other: Any?) = other is SambaLink && other.conn == conn && other.path == path
- override fun hashCode() = path.hashCode()
- override fun toString() = "$conn/$path"
-
- private fun doResolve(): Pair<String, NativeSamba.DirEntry?> {
- var linkPath = path
- var entry: NativeSamba.DirEntry? = null
- while (true) {
- val target = conn.readLink(linkPath) ?: break
- linkPath = SambaConnection.join(linkPath, target)
- entry = conn.entry(linkPath) ?: break
- if (entry.type != NativeSamba.DirEntryType.LINK) break
- }
- return linkPath to entry
- }
-}