summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2024-08-22 00:50:57 +0200
committerJoel Klinghed <the_jk@spawned.biz>2024-08-22 00:50:57 +0200
commit8f506f21cbf127832bf47f9ca1f6cb18bfe80089 (patch)
tree62294e7670d1180877f7bb685d0f87521220a2f0 /libs
parent21871ed129ea5ca92d668407559aaffcc561a387 (diff)
samba: Disable follow symlinks on samba server
Also no unix extensions (as that is SMB1).
Diffstat (limited to 'libs')
-rw-r--r--libs/samba/src/test/docker/docker-compose.yml2
-rw-r--r--libs/samba/src/test/java/org/the_jk/cleversync/samba/SambaTreeTest.kt23
2 files changed, 10 insertions, 15 deletions
diff --git a/libs/samba/src/test/docker/docker-compose.yml b/libs/samba/src/test/docker/docker-compose.yml
index c7af330..1626b3c 100644
--- a/libs/samba/src/test/docker/docker-compose.yml
+++ b/libs/samba/src/test/docker/docker-compose.yml
@@ -13,6 +13,8 @@ services:
UID_test: 1000
GROUPS_test: family
+ SAMBA_GLOBAL_STANZA: "follow symlinks = no"
+
SAMBA_VOLUME_CONFIG_test: "[Share]; path=/shares/test; valid users = test; guest ok = no; read only = no; browseable = yes"
volumes:
diff --git a/libs/samba/src/test/java/org/the_jk/cleversync/samba/SambaTreeTest.kt b/libs/samba/src/test/java/org/the_jk/cleversync/samba/SambaTreeTest.kt
index eb8746f..7e0a208 100644
--- a/libs/samba/src/test/java/org/the_jk/cleversync/samba/SambaTreeTest.kt
+++ b/libs/samba/src/test/java/org/the_jk/cleversync/samba/SambaTreeTest.kt
@@ -14,6 +14,7 @@ import org.robolectric.annotation.Config
import org.the_jk.cleversync.io.Link
import org.the_jk.cleversync.io.samba.SambaCredentials
import java.io.File
+import java.nio.file.Files
import kotlin.io.path.createSymbolicLinkPointingTo
@Config(manifest=Config.NONE)
@@ -54,29 +55,21 @@ class SambaTreeTest {
}
@Test
- fun listRoot() {
- val dir = File(shareDir, "dir")
- val file = File(shareDir, "file")
- val link = File(shareDir, "link")
- dir.mkdir()
- file.writeText("foo")
- link.toPath().createSymbolicLinkPointingTo(file.toPath())
+ fun listRootWithSymlink() {
+ File(shareDir, "dir").mkdir()
+ File(shareDir, "file").writeText("foo")
+ Files.createSymbolicLink(File(shareDir, "link").toPath(), File("file").toPath())
SambaTreeFactory.tree(uri, credentials).getOrThrow().use { root ->
val content = root.list()
+
assertThat(content.directories).hasSize(1)
assertThat(content.directories[0].name).isEqualTo("dir")
assertThat(content.files).hasSize(1)
assertThat(content.files[0].name).isEqualTo("file")
assertThat(content.files[0].size).isEqualTo(3UL)
- assertThat(content.links).hasSize(1)
- assertThat(content.links[0].name).isEqualTo("link")
- val target = content.links[0].resolve()
- if (target is Link.FileTarget) {
- assertThat(target.file.name).isEqualTo("file")
- } else {
- assertThat(target).isInstanceOf(Link.FileTarget::class.java)
- }
+ // libsmb uses SMB2/SMB3 and unix extensions are SMB1, so no symlinks for now
+ assertThat(content.links).isEmpty()
}
}