Merge remote-tracking branch 'adsb/fordsa'
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-soas
index eb28d8c..7c762a0 100755 (executable)
@@ -133,13 +133,13 @@ class DSADNS < Resolv::DNS
        end
 end
 
-warnings = []
-oks = []
+@warnings = []
+@oks = []
 
 def resolve_ns(dns, domain, nameserver)
        puts "Getting A record for nameserver #{nameserver} for #{domain}" if @verbose > 0
        arecords = dns.getresources(nameserver, Resolv::DNS::Resource::IN::A)
-       warnings << "Nameserver #{nameserver} for #{domain} has #{arecords.length} A records" if arecords.length != 1
+       @warnings << "Nameserver #{nameserver} for #{domain} has #{arecords.length} A records" if arecords.length != 1
        addresses = arecords.map { |a| a.address.to_s }
        puts "Addresses for nameserver #{nameserver} for #{domain}: #{addresses.join(', ')}" if @verbose > 0
        return addresses
@@ -154,7 +154,7 @@ ARGV.each{ |domain|
                nameservernames = nameservers.collect{ |ns| ns.name.to_s }
                nameservernames.each do |nameserver|
                        addrs = resolve_ns(dns, domain, nameserver)
-                       warnings << "Duplicate nameserver #{nameserver} for #{domain}" if nameserver_addresses[nameserver]
+                       @warnings << "Duplicate nameserver #{nameserver} for #{domain}" if nameserver_addresses[nameserver]
                        nameserver_addresses[nameserver] = addrs
                end
        end
@@ -165,7 +165,7 @@ ARGV.each{ |domain|
                rescue ArgumentError
                        addrs = resolve_ns(dns, domain, ns)
                end
-               warnings << "Duplicate nameserver #{ns} for #{domain}" if nameserver_addresses[ns]
+               @warnings << "Duplicate nameserver #{ns} for #{domain}" if nameserver_addresses[ns]
                nameserver_addresses[ns] = addrs
        end
 
@@ -178,10 +178,10 @@ ARGV.each{ |domain|
                                resolver.rd = 0
                                soas = resolver.getresources(domain, Resolv::DNS::Resource::IN::SOA)
                        rescue SystemCallError => e
-                               warnings << "Could not resolve #{domain} on #{nameserver}: #{e.message}"
+                               @warnings << "Could not resolve #{domain} on #{nameserver}: #{e.message}"
                        else
                                resolver.close
-                               warnings << "Nameserver #{nameserver} for #{domain} returns #{soas.length} SOAs" if soas.length != 1
+                               @warnings << "Nameserver #{nameserver} for #{domain} returns #{soas.length} SOAs" if soas.length != 1
                                soas.each do |soa|
                                        puts " Nameserver #{nameserver} returns serial #{soa.serial} for #{domain}" if @verbose > 0
                                        sn = soa.serial.to_i
@@ -196,23 +196,23 @@ ARGV.each{ |domain|
        end
        case serial.keys.length
                when 0
-                       warnings << "Found no serials for #{domain}"
+                       @warnings << "Found no serials for #{domain}"
                when 1
-                       oks << "#{domain} is at #{serial.keys.first}"
+                       @oks << "#{domain} is at #{serial.keys.first}"
                else
                        text = []
                        serial.keys.sort.each do |sn|
                                text << "#{sn} (#{serial[sn].join(', ')})"
                        end
-                       warnings << "Nameservers disagree on serials for #{domain}: found #{text.join(', ')}"
+                       @warnings << "Nameservers disagree on serials for #{domain}: found #{text.join(', ')}"
        end
 }
 dns.close
 
-if warnings.length > 0
-       puts warnings.join('; ')
+if @warnings.length > 0
+       puts @warnings.join('; ')
        exit NAGIOS_STATUS[:WARNING]
 else
-       puts oks.join('; ')
+       puts @oks.join('; ')
        exit NAGIOS_STATUS[:OK]
 end