Acme-UPnP

 view release on metacpan or  search on metacpan

lib/Acme/UPnP.pm  view on Meta::CPAN

        $sock->send( $msg, 0, pack_sockaddr_in( 1900, inet_aton('239.255.255.250') ) );
        my $rin = '';
        vec( $rin, $sock->fileno, 1 ) = 1;
        my $rout;
        my $found_location;
        my $end_time = time + 2.5;

        while ( time < $end_time ) {
            my $left = $end_time - time;
            last if $left <= 0;
            if ( select( $rout = $rin, undef, undef, $left ) ) {
                my $data;
                my $addr = $sock->recv( $data, 4096 );
                if ( defined $data && $data =~ /Location:\s*(https?:\/\/[^\s\r\n]+)/i ) {
                    $found_location = $1;
                    last;
                }
            }
            else {
                last;
            }

t/basics.t  view on Meta::CPAN

use v5.40;
use Test2::V1;
use lib '../lib';
use feature 'class';

# Mock Socket and HTTP::Tiny
my $socket_recv_data;
my $http_content;

BEGIN {
    *CORE::GLOBAL::select = sub { return 1 }
}
no warnings qw[experimental::class redefine once];
#
*IO::Socket::INET::new = sub { return bless {}, 'MockSocket' };

package MockSocket {
    sub send       {1}
    sub fileno     {1}
    sub sockdomain {2}
    sub sockhost   {'127.0.0.1'}



( run in 0.948 second using v1.01-cache-2.11-cpan-9581c071862 )