Net::DRI::Exception::usererr_invalid_parameters('RRs must be array of ref hashes') ifgrep{ ref$_ne 'HASH'} @d;
my@r;
foreachmy$r(@d)
{
my@rr;
Net::DRI::Exception::usererr_insufficient_parameters('In RR, "type" key must exist') unlessNet::DRI::Util::has_key($r,'type');
Net::DRI::Exception::usererr_invalid_parameters('In RR, for key "type", value must be an XML token') unlessNet::DRI::Util::xml_is_token($r->{type});
push@rr,['zoneMgt:type',$r->{type}];
if(Net::DRI::Util::has_key($r,'class'))
{
Net::DRI::Exception::usererr_invalid_parameters('In RR, for key "class", value must be an XML token, if provided') unlessNet::DRI::Util::xml_is_token($r->{class});
push@rr,['zoneMgt:class',$r->{class}];
} else
{
push@rr,['zoneMgt:class','IN'];
}
if(Net::DRI::Util::has_key($r,'ttl'))
{
Net::DRI::Exception::usererr_invalid_parameters('In RR, for key "tll", value must be an XML integeter, if provided') unlessNet::DRI::Util::verify_int($r->{ttl});
push@rr,['zoneMgt:ttl',$r->{ttl}];
}
Net::DRI::Exception::usererr_insufficient_parameters('In RR, "rdata" key must exist') unlessNet::DRI::Util::has_key($r,'rdata');
Net::DRI::Exception::usererr_invalid_parameters('In RR, for key "rdata", value must be an XML token') unlessNet::DRI::Util::xml_is_token($r->{rdata});