From 85324f80fe1d72a066cc49847815830080eb1bc3 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 13 Jan 2014 22:23:00 +0100 Subject: db/upnp: fix "upnp:class" parser "upnp:class" is an element, not an attribute of element "item". This fixes a regression from commit 65ebfb16 --- src/db/upnp/Directory.cxx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/db/upnp/Directory.cxx b/src/db/upnp/Directory.cxx index a42719e4d..3b75eceda 100644 --- a/src/db/upnp/Directory.cxx +++ b/src/db/upnp/Directory.cxx @@ -104,12 +104,6 @@ protected: const char *pid = GetAttribute(attrs, "parentID"); if (pid != nullptr) m_tobj.m_pid = pid; - - const char *item_class_name = - GetAttribute(attrs, "upnp:class"); - if (item_class_name != nullptr) - m_tobj.item_class = - ParseItemClass(item_class_name); } break; @@ -132,7 +126,8 @@ protected: bool checkobjok() { if (m_tobj.m_id.empty() || m_tobj.m_pid.empty() || m_tobj.m_title.empty() || - m_tobj.item_class == UPnPDirObject::ItemClass::UNKNOWN) + (m_tobj.type == UPnPDirObject::Type::ITEM && + m_tobj.item_class == UPnPDirObject::ItemClass::UNKNOWN)) return false; return true; @@ -168,6 +163,11 @@ protected: } break; case 'u': + if (m_path.back() == "upnp:class") { + m_tobj.item_class = ParseItemClass(str.c_str()); + break; + } + for (auto i = upnptags; *i != nullptr; ++i) if (!m_path.back().compare(*i)) m_tobj.m_props[*i] += str; -- cgit v1.2.3