Browse Source

Fix pagination for DLNA root folder list

Previously, when responding to a DLNA "Browse" request, the
`StartingIndex` was not respected and all of the root items were
returned each time. This caused infinite loops with in DLNA clients that
ignored the `TotalMatches` data in the response and just continued
asking for the next page until they got an empty response.

This fix makes the root folder list respect the `StartingIndex` and
`RequestedCount` parameters like all other responses.

Fixes issue #2303
Carey Metcalfe 5 years ago
parent
commit
f2eea89ff0
2 changed files with 3 additions and 2 deletions
  1. 1 0
      CONTRIBUTORS.md
  2. 2 2
      Emby.Dlna/ContentDirectory/ControlHandler.cs

+ 1 - 0
CONTRIBUTORS.md

@@ -32,6 +32,7 @@
  - [nevado](https://github.com/nevado)
  - [mark-monteiro](https://github.com/mark-monteiro)
  - [ullmie02](https://github.com/ullmie02)
+ - [pR0Ps](https://github.com/pR0Ps)
 
 # Emby Contributors
 

+ 2 - 2
Emby.Dlna/ContentDirectory/ControlHandler.cs

@@ -771,11 +771,11 @@ namespace Emby.Dlna.ContentDirectory
                 })
                 .ToArray();
 
-            return new QueryResult<ServerItem>
+            return ApplyPaging(new QueryResult<ServerItem>
             {
                 Items = folders,
                 TotalRecordCount = folders.Length
-            };
+            }, startIndex, limit);
         }
 
         private QueryResult<ServerItem> GetTvFolders(BaseItem item, User user, StubType? stubType, SortCriteria sort, int? startIndex, int? limit)