I haven’t done that in a long time but I pulled an allnighter today. From 9pm to 9am, working around the clock to fix the last bugs that spiff found. He couldn’t get to see Windows Media Connect. I remembered WMC didn’t seem to respond to M-SEARCH requests. Poking around the internet, I found out that actually it doesn’t respond to M-SEARCH requests issued from the same machine where WMC runs. So the whole Ssdp Proxy solution would work only if it was running on a different machine than WMC. So I was a little worried… But THEN I noticed something very strange. WMC would respond to M-SEARCH requests issued from the same machine when using Intel UPnP Sniffer in unicast mode. Somehow, the UPnPHost service had a bug that could help me!
After a few hours of debugging, I figured out that I was not setting the Host header on my SSDP packets and that UPnPHost was requiring it. After I added it (and it needed to be 239.255.255.250:1900 regardless of the destination), it worked fine. But the most amazing thing about it is that SsdpProxy is NOT required anymore! The xbox can send directly on port 1900 in unicast and wmc will respond to it (as long as it’s the only one listening on that port on the machine of course).
This is very exciting stuff. You don’t even need to set the port in the sources.xml anymore. Actually you don’t even need to add anything. XBMC has got a cool feature that lets you add new Network Locations from within xbmc, including upnp now thanks to spiff. He must have thought I was an idiot cause I couldn’t figure out what he was talking about (root bookmark, add network location, huh?).
Big thanks to spiff also for letting me become an official dev on the xbmc team. I got to meet pike, Donno, DeanPerry (aka C-Quel), jmarshall & Sollie so far. Very nice people. I’ll try to help as much as I can and not f*ck up the repo.
Long live XBMC.
Oh and it looks like the xbmc forums have been updated already about the subject ;-).