summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2015-11-05 16:07:51 +0100
committerJens Georg <mail@jensge.org>2015-11-05 16:08:30 +0100
commit9d65132d4987d6ae717dac92196307e7db983f42 (patch)
treecef6123d76e60dba0cd195dc1a171dfb5c8b1ad6
parentec73bdc44b9bbb14c61cd297423aee69a31e6a30 (diff)
downloadgupnp-av-9d65132d4987d6ae717dac92196307e7db983f42.tar.gz
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
-rw-r--r--doc/gupnp-av-sections.txt1
-rw-r--r--libgupnp-av/gupnp-didl-lite-object.c18
-rw-r--r--libgupnp-av/gupnp-didl-lite-object.h3
-rw-r--r--libgupnp-av/gupnp-didl-lite-parser.c7
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