[fixed] UPnP Version parsing problem (1 Viewer)

McGoober

Retired Team Member
  • Premium Supporter
  • August 13, 2006
    122
    105
    Cambridge, UK
    Home Country
    United Kingdom United Kingdom
    Whilst I get my branch in order, I thought I'd log a bug I found just now whilst using the UPnpTools/UPnPDeviceSpy project.
    It appears as though devices announcing themselves with header 'SERVER' and a version string that contains multiple components separated with whitespace get junked.
    e.g. Serviio 0.5.2 announces itself with the following header...
    SERVER: Windows 2003, UPnP/1.0 DLNADOC/1.50, Serviio/0.5.2
    When parsed, the UPnP implementation extracts what should be the UPnP version string...
    "UPnP/1.0 DLNADOC/1.50"
    However, the string contains extra information, which confuses the parser and the implementation classes the device as a bad device.
    According to the UPNP architecture document this assumption is in fact fine, however, DLNA spec Requirement 7.4.17.1-3 slightly relaxes the rules and requires that the DLNADOC/1.50 be added to the header as described above.
    Code for this is Source\Core\UPnP\Infrastructure\Common\UPnPVersion.cs.
    My fix was to add
    foreach (var item in versionStr.Split(' '))
     

    Users who are viewing this thread

    Top Bottom