server: Add missing Content-Length header
authorJens Georg <jensg@openismus.com>
Mon, 12 Nov 2012 22:23:03 +0000 (23:23 +0100)
committerJens Georg <jensg@openismus.com>
Tue, 13 Nov 2012 12:07:13 +0000 (13:07 +0100)
More fall-out from that seeking bugfix. Caused seek in player not to work as
well as missing length information for several file types.

src/librygel-server/rygel-http-get.vala
src/librygel-server/rygel-http-identity-handler.vala

index a6ea908..a63768b 100644 (file)
@@ -164,7 +164,7 @@ internal class Rygel.HTTPGet : HTTPRequest {
             this.msg.set_status (Soup.KnownStatusCode.OK);
         }
 
-        if (this.seek != null && this.seek is HTTPByteSeek) {
+        if (this.handler is HTTPIdentityHandler) {
             this.msg.response_headers.set_encoding (Soup.Encoding.CONTENT_LENGTH);
         } else {
             this.msg.response_headers.set_encoding (Soup.Encoding.EOF);
index 7c779b5..a3e13d7 100644 (file)
@@ -47,6 +47,11 @@ internal class Rygel.HTTPIdentityHandler : Rygel.HTTPGetHandler {
 
         if (request.seek != null) {
             request.seek.add_response_headers ();
+        } else {
+            if (request.item.size > 0) {
+                request.msg.response_headers.set_content_length
+                                        (request.item.size);
+            }
         }
 
         // Chain-up