AnyEvent-mDNS
view release on metacpan or search on metacpan
lib/AnyEvent/mDNS.pm view on Meta::CPAN
$cb = pop if @_ % 2 == 0;
my($proto, %args) = @_;
my $fqdn = "$proto.local";
my $data = AnyEvent::DNS::dns_pack { rd => 1, qd => [[$fqdn, "ptr"]] };
my($name, $alias, $udp_proto) = AnyEvent::Socket::getprotobyname('udp');
socket my($sock), PF_INET, SOCK_DGRAM, $udp_proto;
AnyEvent::Util::fh_nonblocking $sock, 1;
bind $sock, sockaddr_in(0, Socket::inet_aton('0.0.0.0'))
or ($args{on_error} || sub { die @_ })->($!);
my %found;
my $callback = $args{on_found} || sub {};
my $t; $t = AnyEvent::Handle::UDP->new(
fh => $sock,
timeout => $args{timeout} || 3,
on_timeout => sub {
undef $t;
( run in 0.652 second using v1.01-cache-2.11-cpan-2398b32b56e )