feat: add full Zonemaster stack with Docker and Spanish UI
- Clone all 5 Zonemaster component repos (LDNS, Engine, CLI, Backend, GUI) - Dockerfile.backend: 8-stage multi-stage build LDNS→Engine→CLI→Backend - Dockerfile.gui: Astro static build served via nginx - docker-compose.yml: backend (internal) + frontend (port 5353) - nginx.conf: root redirects to /es/, /api/ proxied to backend - zonemaster-gui/config.ts: defaultLanguage set to 'es' (Spanish) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
38
zonemaster-ldns/lib/Zonemaster/LDNS/RR/SPF.pm
Normal file
38
zonemaster-ldns/lib/Zonemaster/LDNS/RR/SPF.pm
Normal file
@@ -0,0 +1,38 @@
|
||||
package Zonemaster::LDNS::RR::SPF;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use parent 'Zonemaster::LDNS::RR';
|
||||
|
||||
sub spfdata() {
|
||||
my ($rr) = @_;
|
||||
|
||||
return join( "", map { substr($rr->rdf($_ - 1), 1) } 1..$rr->rd_count() );
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Zonemaster::LDNS::RR::SPF - Type SPF record
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
A subclass of L<Zonemaster::LDNS::RR>, so it has all the methods of that class available in addition to the ones documented here.
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=over
|
||||
|
||||
=item spfdata()
|
||||
|
||||
Returns the concatenation of all the strings composing the data of the resource record.
|
||||
|
||||
For example, if an SPF resource record has the following presentation format:
|
||||
|
||||
test.example. 3600 IN SPF "v=spf1 " "mx " "a " "-all"
|
||||
|
||||
then C<spfdata()> returns the string C<"v=spf1 mx a -all">.
|
||||
|
||||
=back
|
||||
Reference in New Issue
Block a user