Noticed this strange behavior in a remote app - it was unable to auto-discover only the Roku players with the newest firmware 5.3
I investigated and think found the culprit - someone had changed one of the headers returned by the UPnP daemon (discovery process is SSDP - essentially HTTP over UDP). What has changed since <=5.2 is that one of the header names was sent as "Location:
" before (and so documented in the ECP doc
) but now gets sent in all-caps as "LOCATION:
So, if someone looks for that header name in case sensitive fashion to determine the IP of the player, their code will be broken. Case in point, this happens in DVPRemote app. Luckily it did not happen in my app but the only reason was that i don't rely on that header since a nasty bug in Roku firmware over two years ago (it was reporting the old IP even after it has been changed during DHCP renewal, thus causing steady stream of "your app does not work" grievances). That bug has long been fixed but my lack of trust in that particular header remained. Anyway.
I'd call this a bug if i could but HTTP RFC says header names
are case-insensitive and SSDP follows that (unlike the header values
in SSDP). I don't know why someone changed "Location:" to "LOCATION:", seems whimsical if there was no reason - but dropping this note to check if your roku:ecp discovery is misbehaving.