1
0
Эх сурвалжийг харах

some fixes in dns reolving

rajven 3 жил өмнө
parent
commit
e729232d57

+ 2 - 2
scripts/Rstat/mysql.pm

@@ -654,7 +654,7 @@ my $static_ref;
 my $dynamic_ref;
 
 if ($fqdn_static ne '') {
-    my @dns_record=ResolveNames($fqdn_static);
+    my @dns_record=ResolveNames($fqdn_static,$dns_server);
     $static_exists = (scalar @dns_record>0);
     if ($static_exists) {
             $static_ref = join(' ',@dns_record);
@@ -665,7 +665,7 @@ if ($fqdn_static ne '') {
     } else { $static_ok = 1; }
 
 if ($fqdn ne '') {
-    my @dns_record=ResolveNames($fqdn);
+    my @dns_record=ResolveNames($fqdn,$dns_server);
     $dynamic_exists = (scalar @dns_record>0);
     if ($dynamic_exists) {
             $dynamic_ref = join(' ',@dns_record);

+ 2 - 1
scripts/Rstat/net_utils.pm

@@ -59,9 +59,10 @@ our $Loopback;
 
 sub ResolveNames {
 my $hostname = shift;
+my $ns_ip = shift;
 my @result=();
 my $res = Net::DNS::Resolver->new;
-$res->nameservers($dns_server) if (!$dns_server);
+$res->nameservers($ns_ip) if ($ns_ip);
 my $query = $res->search($hostname,"A");
 my $result;
 if ($query) {

+ 4 - 4
scripts/sync_mikrotik.pl

@@ -385,7 +385,7 @@ foreach my $row (@filterlist_ref) {
         $filters{$row->{id}}->{dns_dst}=0;
         } else {
         #if dst not ip - check dns record
-        my @dns_record=ResolveNames($row->{dst});
+        my @dns_record=ResolveNames($row->{dst},undef);
         $resolved_ips = (scalar @dns_record>0);
         next if (!$resolved_ips);
         foreach my $resolved_ip (@dns_record) {
@@ -400,7 +400,7 @@ foreach my $row (@filterlist_ref) {
                 $filters{$dyn_filters_index}->{action}=$row->{action};
                 $filters{$dyn_filters_index}->{dns_dst}=0;
                 #save new filter dns id for original filter id
-                push(@{$dyn_filter->{$row->{id}}},$dyn_filters_index);
+                push(@{$dyn_filters->{$row->{id}}},$dyn_filters_index);
                 $dyn_filters_index++;
             }
         }
@@ -420,8 +420,8 @@ foreach my $row (@grouplist_ref) {
         $index++;
     } else {
         #if found dns dst filters - add
-        if (exists $dyn_filter->{$row->{filter_id}} and scalar @{$dyn_filter->{$row->{filter_id}}}>0) {
-            foreach my $dyn_filter (@{$dyn_filter->{$row->{filter_id}}}) {
+        if (exists $dyn_filters->{$row->{filter_id}} and scalar @{$dyn_filters->{$row->{filter_id}}}>0) {
+            foreach my $dyn_filter (@{$dyn_filters->{$row->{filter_id}}}) {
                 $group_filters{'group_'.$row->{group_id}}->{$index}=$dyn_filter;
                 $index++; 
             }