[rygel] server: Fix Range header of resources without length



commit afebb9fe5031c89389f9fb13c2fda173101873f8
Author: Jens Georg <mail jensge org>
Date:   Sat Feb 6 19:40:20 2016 +0100

    server: Fix Range header of resources without length
    
    Signed-off-by: Jens Georg <mail jensge org>

 src/librygel-server/rygel-data-sink.vala           |    5 +++++
 .../rygel-http-byte-seek-request.vala              |    3 ++-
 2 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/src/librygel-server/rygel-data-sink.vala b/src/librygel-server/rygel-data-sink.vala
index b1514aa..9d5c8be 100644
--- a/src/librygel-server/rygel-data-sink.vala
+++ b/src/librygel-server/rygel-data-sink.vala
@@ -92,6 +92,11 @@ internal class Rygel.DataSink : Object {
         }
 
         var request = offsets as HTTPByteSeekRequest;
+        if (request.range_length == -1) {
+            debug ("Setting max_bytes to MAX");
+
+            return int64.MAX;
+        }
         debug ("Setting max_bytes to %lld", request.range_length);
 
         return request.range_length;
diff --git a/src/librygel-server/rygel-http-byte-seek-request.vala 
b/src/librygel-server/rygel-http-byte-seek-request.vala
index e76e55f..8de1549 100644
--- a/src/librygel-server/rygel-http-byte-seek-request.vala
+++ b/src/librygel-server/rygel-http-byte-seek-request.vala
@@ -99,10 +99,11 @@ public class Rygel.HTTPByteSeekRequest : Rygel.HTTPSeekRequest {
         }
 
         if (range_tokens[1] == null || (range_tokens[1].length == 0)) {
-            end_byte = total_size - 1;
             if (total_size != UNSPECIFIED) {
+                end_byte = total_size - 1;
                 range_length = end_byte - start_byte + 1; // range is inclusive
             } else {
+                end_byte = UNSPECIFIED;
                 range_length = UNSPECIFIED;
             }
         } else {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]