diff --git a/NEWS b/NEWS index 43c7fcbb1..00a676eb7 100644 --- a/NEWS +++ b/NEWS @@ -40,11 +40,12 @@ ver 0.22 (not yet released) * switch to C++17 - GCC 7 or clang 4 (or newer) recommended -ver 0.21.25 (not yet released) +ver 0.21.25 (2020/07/06) * protocol: - fix crash when using "rangeid" while playing * database - simple: automatically scan new mounts + - upnp: fix compatibility with Plex DLNA * storage - fix disappearing mounts after mounting twice - udisks: fix reading ".mpdignore" diff --git a/src/db/plugins/upnp/Object.hxx b/src/db/plugins/upnp/Object.hxx index a9709f869..7a6214467 100644 --- a/src/db/plugins/upnp/Object.hxx +++ b/src/db/plugins/upnp/Object.hxx @@ -89,9 +89,18 @@ public: tag.Clear(); } + gcc_pure + bool IsRoot() const noexcept { + return type == Type::CONTAINER && id == "0"; + } + gcc_pure bool Check() const noexcept { - return !id.empty() && !parent_id.empty() && !name.empty() && + return !id.empty() && + /* root nodes don't need a parent id and a + name */ + (IsRoot() || (!parent_id.empty() && + !name.empty())) && (type != UPnPDirObject::Type::ITEM || item_class != UPnPDirObject::ItemClass::UNKNOWN); }