If the freedb_host isn't freedb.freedb.org and protocol level 1 is specified, the connect method tries to use the highest available protocol level. To do so, it queries the FreeDB to find out exaclty which level is supported. On HTTP connections this takes long. To speed up HTTP connections specify a higher proto_level -say 5 before connect() is called.
freedb_host
freedb.freedb.org
1
connect
HTTP
proto_level
5
connect()
# Make connection through user agent my $connection = LWP::UserAgent->new(); defined($connection) || throw Error::Simple ("ERROR: InfoSys::FreeDB::Connection::HTTP::connect, Failed to instantiate an \'LWP::UserAgent\' object."); # Set _connection_ $self->set__connection_($connection); # Set proxy if required if ( $self->get_proxy_host() ) { my $url = 'http://' . $self->get_proxy_host() . ':' . $self->get_proxy_port(); $connection->proxy ('http', $url); } # Return if the protocol level is greater than 1 ( $self->get_proto_level() > 1 ) && return(undef); # Return if the freedb_host is "freedb.freedb.org" ( $self->get_freedb_host() eq "freedb.freedb.org" ) && return(undef); # Check the stat my $stat = $self->stat(); # Disconnect and throw exception if error if ( $stat->is_error() ) { $self->set__connection_(); throw Error::Simple("ERROR: InfoSys::FreeDB::Connection::HTTP::connect, handshake failed, stat returned an error."); } # Set the highest protocol $self->set_proto_level( $stat->get_proto_max() ); # Return undef return(undef); EOF }, { method_name => 'hello', description => <<EOF, This method is not supported over C<HTTP>. EOF body => <<'EOF', throw Error::Simple ("ERROR: InfoSys::FreeDB::Connection::HTTP::hello, this method is not supported over 'HTTP'."); EOF }, { method_name => 'proto', description => <<EOF, This method is not supported over C<HTTP>. EOF body => <<'EOF', throw Error::Simple ("ERROR: InfoSys::FreeDB::Connection::HTTP::proto, this method is not supported over 'HTTP'."); EOF }, { method_name => 'quit', body => <<'EOF', require InfoSys::FreeDB::Response::Quit; return( InfoSys::FreeDB::Response::Quit->new( { code => 230, result => 'OK, goodbye', hostname => '<this.is.a.dummy.quit.response>', } ) ); EOF }, { method_name => 'update', description => <<EOF, THIS METHOD IS NOT YET IMPLEMENTED __SUPER_POD___ EOF body => <<'EOF', throw Error::Simple ("ERROR: InfoSys::FreeDB::Connection::HTTP::update, THIS METHOD IS NOT YET IMPLEMENTED."); EOF }, { method_name => 'write', description => <<EOF, This method is not supported over C<HTTP>. EOF body => <<'EOF', throw Error::Simple ("ERROR: InfoSys::FreeDB::Connection::HTTP::write, this method is not supported over 'HTTP'."); EOF }, ], use_opt => [ { dependency_name => 'LWP::UserAgent', }, ], sym_opt => [ ], } );
1 POD Error
The following errors were encountered while parsing the POD:
=back doesn't take any parameters, but you said =back EOF body => <<'EOF', my $self = shift;
To install InfoSys::FreeDB, copy and paste the appropriate command in to your terminal.
cpanm
cpanm InfoSys::FreeDB
CPAN shell
perl -MCPAN -e shell install InfoSys::FreeDB
For more information on module installation, please visit the detailed CPAN module installation guide.