From 784ee08484f05ac8734c809e3f5b774d67392f7d Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Mon, 18 May 2015 16:20:21 +0200
Subject: [PATCH] access: remote accesses can loop

---
 modules/access/dsm/access.c         | 3 +++
 modules/access/ftp.c                | 4 +++-
 modules/access/sftp.c               | 1 +
 modules/services_discovery/upnp.cpp | 1 +
 4 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/modules/access/dsm/access.c b/modules/access/dsm/access.c
index ecf597a0f362..39dc95f75d66 100644
--- a/modules/access/dsm/access.c
+++ b/modules/access/dsm/access.c
@@ -690,7 +690,10 @@ static int BrowserInit( access_t *p_access )
     if( p_sys->psz_share == NULL )
         p_access->pf_readdir = BrowseShare;
     else
+    {
         p_access->pf_readdir = BrowseDirectory;
+        p_access->info.b_dir_can_loop = true;
+    }
 
     return VLC_SUCCESS;
 }
diff --git a/modules/access/ftp.c b/modules/access/ftp.c
index e9837aace6ad..096d54cae4bc 100644
--- a/modules/access/ftp.c
+++ b/modules/access/ftp.c
@@ -666,8 +666,10 @@ static int InOpen( vlc_object_t *p_this )
         b_directory = true;
 
     if( b_directory )
+    {
         p_access->pf_readdir = DirRead;
-    else
+        p_access->info.b_dir_can_loop = true;
+    } else
         ACCESS_SET_CALLBACKS( Read, NULL, Control, Seek ); \
 
     /* Start the 'stream' */
diff --git a/modules/access/sftp.c b/modules/access/sftp.c
index 475639a1aa4f..740da6ba4a97 100644
--- a/modules/access/sftp.c
+++ b/modules/access/sftp.c
@@ -296,6 +296,7 @@ static int Open( vlc_object_t* p_this )
         p_sys->file = libssh2_sftp_opendir( p_sys->sftp_session, psz_path );
 
         p_access->pf_readdir = DirRead;
+        p_access->info.b_dir_can_loop = true;
 
         if( p_sys->file )
         {
diff --git a/modules/services_discovery/upnp.cpp b/modules/services_discovery/upnp.cpp
index 078636d00f30..4f5aaf8d07c4 100644
--- a/modules/services_discovery/upnp.cpp
+++ b/modules/services_discovery/upnp.cpp
@@ -840,6 +840,7 @@ static int Open( vlc_object_t *p_this )
 
     p_access->pf_readdir = ReadDirectory;
     p_access->info.b_dir_sorted = true;
+    p_access->info.b_dir_can_loop = true;
 
     return VLC_SUCCESS;
 }
-- 
GitLab