�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �% ( 'zone=s', 'sync', 'revoke', 'tag=s@', 'nolocal', 'rebuild-cache' ); if ( !caller() ) { __PACKAGE__->new(@ARGV)->run(); exit 0; } sub run { my ($self) = @_; die "This must run as root!\n" if $>; if ( $self->getopt('rebuild-cache') ) { print "Rebuilding the dnssec enabled cache...\n"; require Cpanel::NameServer::DNSSEC::Cache; Cpanel::NameServer::DNSSEC::Cache::rebuild_cache(); print "Done\n"; return 1; } my $zone = $self->getopt('zone') // die "Must specify a zone.\n" . $self->help(); my $nolocal = $self->getopt('nolocal') ? 0 : 1; unless ( defined( $self->getopt('sync') ) ^ defined( $self->getopt('revoke') ) ) { die "Must specify either --sync or --revoke.\n" . $self->help(); } my $dnssec = Cpanel::NameServer::DNSSEC::SyncKeys->new( $zone, $nolocal ); if ( $self->getopt('sync') ) { my $keys = $self->getopt('tag') // []; if (@$keys) { print "Syncing DNSSEC keys for $zone with tags: " . join( " ", @$keys ) . "\n"; $dnssec->sync_keys( $keys, { skip_verify => 1 } ); } else { print "Syncing all active DNSSEC keys for zone $zone...\n"; $dnssec->sync_active_keys( { skip_verify => 1 } ); } } elsif ( $self->getopt('revoke') ) { my $keys = $self->getopt('tag') // die "Please specify the keytags to revoke with --tag.\n" . $self->help(); print "Removing DNSSEC keys for $zone with tags: " . join( " ", @$keys ) . "\n"; $dnssec->revoke_keys($keys); } print "Done.\n"; return 1; } 1;