Subject: | Net::UPnP::ControlPoint->search subroutine fails in Windows Vista |
Hi,
I have used Net::UPnP::ControlPoint search method in Windows XP
successfully. As far as I understand it, this method sends out an SSDP
M-SEARCH method and waits for responses from UPnP compliant devices.
I tried to use the same module in Windows Vista (Home Premium) but with
no success. My script is very simple (it is a slight variation of the
example in the docs):
use Net::UPnP::ControlPoint;
my $obj = Net::UPnP::ControlPoint->new();
my @dev_list = $obj->search();
my $nodevs = @dev_list;
print "Found $nodevs\n";
foreach my $dev (@dev_list) {
print $dev->getfriendlyname();
}
I opened a Wireshark instance in my PC to see exactly what is going on.
The issue is that the PC does not even send the M-Search packet. (BTW, I
am certain that the router and my PC both support UPnP as I can see the
router in the Network devices window of Vista).
I suspect that there is something missing from the search method, i.e.
that the socket opened in ControlPoint.pm is not primarily added to the
SSDP multicast group 239.255.255.250, but since I am relatively new to
socket programming, I am looking forward to your comments.
Thanks a lot in advance,
Athanasia