[rygel/rygel-0-18] server: Don't add resource to empty containers



commit de8780d0ff82e57b6016a9203ead092f7e537ca1
Author: Jens Georg <jensg openismus com>
Date:   Thu Apr 11 18:42:39 2013 +0200

    server: Don't add resource to empty containers
    
    https://bugzilla.gnome.org/show_bug.cgi?id=697793

 src/librygel-server/rygel-media-container.vala |   36 +++++++++++++----------
 1 files changed, 20 insertions(+), 16 deletions(-)
---
diff --git a/src/librygel-server/rygel-media-container.vala b/src/librygel-server/rygel-media-container.vala
index f805ef6..b0f5035 100644
--- a/src/librygel-server/rygel-media-container.vala
+++ b/src/librygel-server/rygel-media-container.vala
@@ -322,25 +322,29 @@ public abstract class Rygel.MediaContainer : MediaObject {
                                          string         protocol,
                                          string?        import_uri = null)
                                          throws Error {
-        var res = base.add_resource (didl_object,
-                                     uri,
-                                     protocol,
-                                     import_uri);
+        if (this.child_count > 0) {
+            var res = base.add_resource (didl_object,
+                                         uri,
+                                         protocol,
+                                         import_uri);
+
+            if (uri != null) {
+                res.uri = uri;
+            }
 
-        if (uri != null) {
-            res.uri = uri;
-        }
+            var protocol_info = new ProtocolInfo ();
+            protocol_info.mime_type = "text/xml";
+            protocol_info.dlna_profile = "DIDL_S";
+            protocol_info.protocol = protocol;
+            protocol_info.dlna_flags = DLNAFlags.DLNA_V15 |
+                                       DLNAFlags.CONNECTION_STALL |
+                                       DLNAFlags.BACKGROUND_TRANSFER_MODE;
+            res.protocol_info = protocol_info;
 
-        var protocol_info = new ProtocolInfo ();
-        protocol_info.mime_type = "text/xml";
-        protocol_info.dlna_profile = "DIDL_S";
-        protocol_info.protocol = protocol;
-        protocol_info.dlna_flags = DLNAFlags.DLNA_V15 |
-                                   DLNAFlags.CONNECTION_STALL |
-                                   DLNAFlags.BACKGROUND_TRANSFER_MODE;
-        res.protocol_info = protocol_info;
+            return res;
+        }
 
-        return res;
+        return null as DIDLLiteResource;
     }
 
     /**


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