diff options
author | Jens Georg <mail@jensge.org> | 2015-11-05 16:07:51 +0100 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2015-11-05 16:08:30 +0100 |
commit | 9d65132d4987d6ae717dac92196307e7db983f42 (patch) | |
tree | cef6123d76e60dba0cd195dc1a171dfb5c8b1ad6 | |
parent | ec73bdc44b9bbb14c61cd297423aee69a31e6a30 (diff) | |
download | gupnp-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.txt | 1 | ||||
-rw-r--r-- | libgupnp-av/gupnp-didl-lite-object.c | 18 | ||||
-rw-r--r-- | libgupnp-av/gupnp-didl-lite-object.h | 3 | ||||
-rw-r--r-- | 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 |