IO-EPP

 view release on metacpan or  search on metacpan

lib/IO/EPP/Base.pm  view on Meta::CPAN


    return wantarray ? ( 0, 0, 'empty answer' ) : 0 ;
}

=head2 update_statuses_add

Part of update_* functions

=cut

sub update_statuses_add {
    my ( undef, $type, $statuses ) = @_;

    my $add = '';
    my %sts;

    if ( ref $statuses eq 'HASH' ) {
        %sts = %{$statuses};
    }
    elsif ( ref $statuses eq 'ARRAY' ) {
        $sts{$_} = '+' for @{$statuses};

lib/IO/EPP/Base.pm  view on Meta::CPAN

    return $add;
}


=head2 update_statuses_rem

Part of update_* functions

=cut

sub update_statuses_rem {
    my ( undef, $type, $statuses ) = @_;

    my $rem = '';
    my @sts;

    if ( ref $statuses eq 'HASH' ) {
        @sts = keys %{$statuses};
    }
    elsif ( ref $statuses eq 'ARRAY' ) {
        @sts = @{$statuses};

lib/IO/EPP/Base.pm  view on Meta::CPAN

                phone => '+380.501234567',
                fax => '',
                email => 'reg1010@yandex.com',
                authinfo => 'Q2+qqqqqqqqqqqqqqqqqqqqqqqqqq',
            }
        },
    );

=cut

sub update_contact {
    my ( $self, $params ) = @_;

    return ( 0, 0, 'no params' ) unless ref $params;

    return ( 0, 0, 'no cont_id' ) unless $params->{cont_id};

    my ( $add, $rem, $chg ) = ( '', '', '' );

    if ( $$params{add} ) {
        if ( $$params{add}{statuses} ) {

lib/IO/EPP/Base.pm  view on Meta::CPAN

    } );

    ( $answ, $msg ) = make_request( 'update_ns', {
        ns => 'ns1.sss.ru.com',
        chg => { new_name => 'ns1.sss.xyz' },
        conn => $conn,
    } );

=cut

sub update_ns {
    my ( $self, $params ) = @_;

    return ( 0, 0, 'no ns' ) unless $$params{ns};

    my $add = '';

    if ( $params->{add} ) {
        if ( $params->{add}{ips}  and  ref $params->{add}{ips} ) {
            foreach my $ip ( @{$params->{add}{ips}} ) {
                if ( $ip =~ /^\d+\.\d+\.\d+\.\d+$/ ) {

lib/IO/EPP/Base.pm  view on Meta::CPAN



=head2 update_domain_add_nss

Part of the update_domain function.

Can be overwritten in a child module, example, in L<IO::EPP::DrsUa>

=cut

sub update_domain_add_nss {
    my ( undef, $params ) = @_;

    my $add = "     <domain:ns>\n";

    foreach my $ns ( @{$$params{add}{nss}} ) {
        $add .= "      <domain:hostObj>$ns</domain:hostObj>\n";
    }

    $add .= "     </domain:ns>\n";

lib/IO/EPP/Base.pm  view on Meta::CPAN



=head2 update_domain_rem_nss

Part of the update_domain function.

Can be overwritten in a child module.

=cut

sub update_domain_rem_nss {
    my ( undef, $params ) = @_;

    my $rem = "     <domain:ns>\n";

    foreach my $ns ( @{$$params{rem}{nss}} ) {
        $rem .= "      <domain:hostObj>$ns</domain:hostObj>\n";
    }

    $rem .= "     </domain:ns>\n";

lib/IO/EPP/Base.pm  view on Meta::CPAN

=head2 update_domain_ext

Part of the update_domain function.

Can be overwritten in a child module.

In this function this module contains the DNSSEC extension

=cut

sub update_domain_ext {
    my ( undef, $params ) = @_;

    my $ext = '';

    my $rem_ds = '';
    if ( $params->{rem}  &&  $params->{rem}{dnssec} ) {
        foreach my $raw ( @{$params->{rem}{dnssec}} ) {
            my $ds = '';
            $ds .= "      <secDNS:keyTag>$$raw{keytag}</secDNS:keyTag>\n"          if $raw->{keytag};
            $ds .= "      <secDNS:alg>$$raw{alg}</secDNS:alg>\n"                   if $raw->{alg};

lib/IO/EPP/Base.pm  view on Meta::CPAN


    ( $a, $m ) = make_request( 'update_domain', {
        dname => 'example.com',
        rem => { statuses => [ 'clientUpdateProhibited','clientDeleteProhibited' ] },
        add => { statuses => [ 'clientHold'  ] },
        conn => $c,
    } );

=cut

sub update_domain {
    my ( $self, $params ) = @_;

    return ( 0, 0, 'no params' ) unless ref $params;

    return ( 0, 0, 'no dname' ) unless $params->{dname};

    my $nm = 'update_domain';

    my $add = '';
    if ( ref $$params{add} ) {

lib/IO/EPP/CNic.pm  view on Meta::CPAN

    $params->{pp_ext} = '
    <contact:disclose flag="'.$visible.'">
     <contact:voice/>
     <contact:email/>
    </contact:disclose>';

    return $self->SUPER::create_contact( $params );
}


sub update_contact {
    my ( $self, $params ) = @_;

    if ( ref $params->{chg} ) {
        $params->{chg}{company} =~ s/&/&amp;/g if $params->{chg}{company};

        $params->{chg}{addr} = [ $params->{chg}{addr} ] unless ref $params->{chg}{addr};
        s/&/&amp;/g for @{$params->{chg}{addr}};

        $params->{chg}{authinfo} ||= IO::EPP::Base::gen_pw( 16 );
    }

lib/IO/EPP/CNic.pm  view on Meta::CPAN

    $params->{pp_ext} = '
    <contact:disclose flag="'.$visible.'">
     <contact:voice/>
     <contact:email/>
    </contact:disclose>';

    return $self->SUPER::update_contact( $params );
}


sub update_ns {
    my ( $self, $params ) = @_;

    $params->{no_empty_chg} = 1;

    return $self->SUPER::update_ns( $params );
}

=head2 check_premium

Get prices for premium domains

lib/IO/EPP/CoreNic.pm  view on Meta::CPAN


            $cont{$dt{$k}} =~ s/T/ /;
            $cont{$dt{$k}} =~ s/\.\d+Z$//;
        }
    }

    return \%cont;
}


sub update_contact {
    my ( $self, $params ) = @_;

    if ( $params->{chg} ) {
        $params->{chg}{need_name} = 1;
        $params->{chg}{authinfo}  = IO::EPP::Base::gen_pw( 12 );
    }

    return $self->SUPER::update_contact( $params );
}

lib/IO/EPP/DrsUa.pm  view on Meta::CPAN


    return $self->SUPER::create_contact( $params );
}

=head1 update_contact

It has many features, see the description of the module above

=cut

sub update_contact {
    my ( $self, $params ) = @_;

    _prepare_contact( $params );

    $params->{chg}{need_name} = 1;

    my $visible = $$params{pp_flag} ? 0 : 1;

    $params->{pp_ext} = '
     <contact:disclose flag="'.$visible.'">

lib/IO/EPP/DrsUa.pm  view on Meta::CPAN


sub create_domain {
    my ( $self, $params ) = @_;

    $params->{authinfo} ||= IO::EPP::Base::gen_pw( 16 );

    return $self->SUPER::create_domain( $params );
}


sub update_domain_add_nss {
    my ( $self, $params ) = @_;

    my $add = "     <domain:ns>\n";

    # Old EPP version, see in https://tools.ietf.org/html/rfc3731
    foreach my $ns ( @{$$params{add}{nss}} ) {
        $add .= "      <domain:hostAttr>\n       <domain:hostName>$$ns{ns}</domain:hostName>\n";
        if ( $ns->{ips} ) {
            foreach my $ip ( @{$ns->{ips}} ) {
                if ( $ip =~ /^\d+\.\d+\.\d+\.\d+$/ ) {

lib/IO/EPP/DrsUa.pm  view on Meta::CPAN


        $add .= "      </domain:hostAttr>\n";
    }

    $add .= "     </domain:ns>\n";

    return $add;
}


sub update_domain_rem_nss {
    my ( $self, $params ) = @_;

    my $rem = "     <domain:ns>\n";

    # Old EPP version, see in  https://tools.ietf.org/html/rfc3731
    foreach my $ns ( @{$$params{rem}{nss}} ) {
        $rem .= "      <domain:hostAttr>\n       <domain:hostName>$$ns{ns}</domain:hostName>\n";

        if ( $ns->{ips} ) {
            foreach my $ip ( @{$ns->{ips}} ) {

lib/IO/EPP/DrsUa.pm  view on Meta::CPAN


        $rem .= "      </domain:hostAttr>\n";
    }

    $rem .= "     </domain:ns>\n";

    return $rem;
}


sub update_domain {
    my ( $self, $params ) = @_;

    $params->{nss_as_attr} = 1;

    return $self->SUPER::update_domain( $params );
}

=head1 req_poll

It has many features, see the description of the module above

lib/IO/EPP/HosterKZ.pm  view on Meta::CPAN

    my ( $self, $params ) = @_;

    $params->{cont_id}  = IO::EPP::Base::gen_id( 16 );

    $params->{authinfo} = IO::EPP::Base::gen_pw( 16 );

    return $self->SUPER::create_contact( $params );
}


sub update_contact {
    my ( $self, $params ) = @_;

    $params->{company} =~ s/&/&amp;/g
        if $params->{company};

    $params->{need_name} = 1;

    return $self->SUPER::update_contact( $params );
}

lib/IO/EPP/HosterKZ.pm  view on Meta::CPAN


    return $self->SUPER::request_transfer( $params );
}

=head2 update_domain

See L</create_domain> for C<server_loc> parameters.

=cut

sub update_domain {
    my ( $self, $params ) = @_;

    if ( $params->{server_loc} ) {
        my $server_loc = delete $params->{server_loc};

        $params->{extension} =
'   <srvloc:create xmlns:srvloc="urn:kaznic:params:xml:ns:srvloc-1.0" xsi:schemaLocation="urn:kaznic:params:xml:ns:srvloc-1.0 srvloc-1.0.xsd">
    <srvloc:street>'.$server_loc->{srvloc_street}.'</srvloc:street>
    <srvloc:city>'.$server_loc->{srvloc_city}.'</srvloc:city>
    <srvloc:sp>'.$server_loc->{srvloc_state}.'</srvloc:sp>

lib/IO/EPP/IRRP.pm  view on Meta::CPAN

C<trade> – Changing domain contacts requires confirmation or a fee, depending on the tld;

C<confirm_old_registrant> – send confirmation of changing the owner's email address to the old address;

C<confirm_new_registrant>– send confirmation of changing the owner's email address to the new address;

Other additional parameters depend on the tld.

=cut

sub update_domain {
    my ( $self, $params ) = @_;

    my $extension = '';

    # Up keys for key-value extension
    foreach my $k ( keys %$params ) {
        if ( $k =~ /^x-/ ) {
            $params->{ uc($k) } = delete $params->{$k};
        }
    }

lib/IO/EPP/RIPN.pm  view on Meta::CPAN

C<emails> - hashref where keys - email type, values - email

C<chg>:

C<www> - new web url

C<whois> - new whois url

=cut

sub update_registrar {
    my ( $self, $params ) = @_;

    return ( 0, 0, 'no params' ) unless ref $params;

    my $cltrid = $self->get_cltrid();

    my $add = '';
    if ( $params->{add} ) {
        if ( defined $params->{add}{ips}  and  ref $params->{add}{ips} ) {
            foreach my $ip ( @{$params->{add}{ips}} ) {

lib/IO/EPP/RRPProxy.pm  view on Meta::CPAN

    return $self->SUPER::renew_domain( $params );
}


=head2 update_domain

C<trade> – option for special change of domain owner – paid or requires confirmation;

=cut

sub update_domain {
    my ( $self, $params ) = @_;

    $params->{'X-ACCEPT-TRADE'} = 1 if delete $params->{trade};

    my $extension = _keysys_domain_ext( $params );

    if ( $extension ) {
         $params->{extension} =
qq|   <keysys:update $ks_ext>
    <keysys:domain>$extension

lib/IO/EPP/Verisign.pm  view on Meta::CPAN



=head2 update_contact

.com/.net/.edu zones are not currently supported.

For more information, see L<IO::EPP::Base/update_contact>.

=cut

sub update_contact {
    my ( $self, $params ) = @_;

    $params->{extension} = $self->{namestore_ext};

    return $self->SUPER::update_contact( $params );
}


=head2 delete_contact

lib/IO/EPP/Verisign.pm  view on Meta::CPAN


sub get_ns_info {
    my ( $self, $params ) = @_;

    $params->{extension} = $self->{namestore_ext};

    return $self->SUPER::get_ns_info( $params );
}


sub update_ns {
    my ( $self, $params ) = @_;

    $params->{extension} = $self->{namestore_ext};

    $params->{no_empty_chg} = 1 unless $params->{chg};

    return $self->SUPER::update_ns( $params );
}


lib/IO/EPP/Verisign.pm  view on Meta::CPAN


sub renew_domain {
    my ( $self, $params ) = @_;

    $params->{extension} = $self->{namestore_ext};

    return $self->SUPER::renew_domain( $params );
}


sub update_domain {
    my ( $self, $params ) = @_;

    $params->{extension} = $self->{namestore_ext};

    return $self->SUPER::update_domain( $params );
}

=head2 delete_domain

You can delete a domain only if it does not have NS-s that are used by other domains.



( run in 0.376 second using v1.01-cache-2.11-cpan-4d4bc49f3ae )