removed Net::DDNS and updated master

This commit is contained in:
2023-11-12 17:29:33 +00:00
parent 23b5a19166
commit 3b5a21d819
5 changed files with 33 additions and 23 deletions

39
DDNS.pm
View File

@ -2,7 +2,6 @@ package Martnet::DDNS;
use strict;
use warnings;
use Net::DNS;
use File::Temp qw/tempfile/;
use Memoize;
@ -12,13 +11,15 @@ our $VERSION = '0.4';
# our $misterdns = '198.251.79.234';
our $misterdns = '5.78.68.64';
our $defaultmaster = '5.78.68.64'; # could be v4 and v6 like '198.251.79.234;2607:f1c0:86e:b66f:6b86:babb:c367:b0dc'
our $keyfile = '/etc/bind/zone-management.key';
sub new {
my $me = shift;
my %opts = @_;
return bless {
'keyfile' => '/etc/bind/Knewmartnet.+165+36945.key',
'keyfile' => $keyfile,
%opts
}, $me;
}
@ -53,21 +54,27 @@ sub _lookupOrDie {
_validateOrDie($dom);
my $fqdn = _fqdn($dom, $type);
my $res = Net::DNS::Resolver->new;
my $query = $res->query($fqdn, "TXT");
if ($query) {
foreach my $rr (grep { $_->type eq 'TXT' } $query->answer) {
# We found a record; that's all that I care about.
#print $rr->nsdname, "\n";
return 1;
my $answer;
my $all = '';
my $fh;
open($fh, "dig +short -t txt \@${misterdns} $fqdn |")
|| die "Can't open dig: $!";
while (<$fh>) {
$all .= $_;
if ($_ =~ /^\"(.+)\"$/) {
$answer = $1;
}
}
if ($answer) {
# We found a record; that's all I care about.
return 1;
}
else {
die "query failed: ", $res->errorstring, "\n";
die "query failed: $all\n";
}
# Unreached
die "Failed to find existing DNS record for $fqdn";
}
@ -205,5 +212,11 @@ sub is_dnssec {
return 0;
}
sub default_master {
my ($this, $type) = @_;
# This could return different masters for different types
return $defaultmaster;
}
1;