[gupnp-av] Make DIDL-Lite check less restrictive



commit 9d65132d4987d6ae717dac92196307e7db983f42
Author: Jens Georg <mail jensge org>
Date:   Thu Nov 5 16:07:51 2015 +0100

    Make DIDL-Lite check less restrictive
    
    Only check for validity of @restricted if present, but not its presence
    
    Signed-off-by: Jens Georg <mail jensge org>
    
    https://bugzilla.gnome.org/show_bug.cgi?id=740266

 doc/gupnp-av-sections.txt            |    1 +
 libgupnp-av/gupnp-didl-lite-object.c |   18 ++++++++++++++++++
 libgupnp-av/gupnp-didl-lite-object.h |    3 +++
 libgupnp-av/gupnp-didl-lite-parser.c |    7 ++++++-
 4 files changed, 28 insertions(+), 1 deletions(-)
---
diff --git a/doc/gupnp-av-sections.txt b/doc/gupnp-av-sections.txt
index 2d1580e..be5d34f 100644
--- a/doc/gupnp-av-sections.txt
+++ b/doc/gupnp-av-sections.txt
@@ -66,6 +66,7 @@ gupnp_didl_lite_object_set_update_id
 gupnp_didl_lite_object_unset_artists
 gupnp_didl_lite_object_unset_update_id
 gupnp_didl_lite_object_update_id_is_set
+gupnp_didl_lite_object_is_restricted_set
 <SUBSECTION Standard>
 GUPnPDIDLLiteObjectClass
 GUPNP_TYPE_OCM_FLAGS
diff --git a/libgupnp-av/gupnp-didl-lite-object.c b/libgupnp-av/gupnp-didl-lite-object.c
index 9d669d7..cf73061 100644
--- a/libgupnp-av/gupnp-didl-lite-object.c
+++ b/libgupnp-av/gupnp-didl-lite-object.c
@@ -1168,6 +1168,24 @@ gupnp_didl_lite_object_get_properties (GUPnPDIDLLiteObject *object,
 }
 
 /**
+ * gupnp_didl_lite_object_is_restricted_set:
+ * @object: #GUPnPDIDLLiteObject
+ *
+ * Whehter the restricted attribute exists on @object
+ *
+ * Return value: #TRUE if restricted exists, #FALSE otherwise.
+ **/
+gboolean
+gupnp_didl_lite_object_is_restricted_set (GUPnPDIDLLiteObject *object)
+{
+        g_return_val_if_fail (object != NULL, FALSE);
+        g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), FALSE);
+
+        return xml_util_get_attribute_content (object->priv->xml_node,
+                                               "restricted") != NULL;
+}
+
+/**
  * gupnp_didl_lite_object_get_restricted:
  * @object: #GUPnPDIDLLiteObject
  *
diff --git a/libgupnp-av/gupnp-didl-lite-object.h b/libgupnp-av/gupnp-didl-lite-object.h
index d7937df..61c525a 100644
--- a/libgupnp-av/gupnp-didl-lite-object.h
+++ b/libgupnp-av/gupnp-didl-lite-object.h
@@ -111,6 +111,9 @@ gupnp_didl_lite_object_get_properties   (GUPnPDIDLLiteObject *object,
                                          const char          *name);
 
 gboolean
+gupnp_didl_lite_object_is_restricted_set (GUPnPDIDLLiteObject *object);
+
+gboolean
 gupnp_didl_lite_object_get_restricted   (GUPnPDIDLLiteObject *object);
 
 const char *
diff --git a/libgupnp-av/gupnp-didl-lite-parser.c b/libgupnp-av/gupnp-didl-lite-parser.c
index cf6a6fe..3b2111f 100644
--- a/libgupnp-av/gupnp-didl-lite-parser.c
+++ b/libgupnp-av/gupnp-didl-lite-parser.c
@@ -73,7 +73,12 @@ verify_didl_attributes (xmlNode *node)
                 }
         }
 
-        return xml_util_verify_attribute_is_boolean (node, "restricted");
+        if (xml_util_get_attribute_content (node, "restricted") != NULL) {
+                return xml_util_verify_attribute_is_boolean (node,
+                                                             "restricted");
+        }
+
+        return TRUE;
 }
 
 static gboolean


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