Provide bind9 file format export of domain zones.
This commit is contained in:
		
							parent
							
								
									8bec7eb33c
								
							
						
					
					
						commit
						891be61722
					
				
					 1 changed files with 45 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -56,7 +56,12 @@ class DNSManager::Storage::Zone
 | 
			
		|||
		end
 | 
			
		||||
 | 
			
		||||
		def to_s(io : IO)
 | 
			
		||||
			io << "(#{ "%4d" % @rrid }) #{ "%30s" % @name} #{ "%6d" % @ttl} IN #{ "%10s" % @rrtype } #{ "%30s" % @target}\n"
 | 
			
		||||
			io << "(#{ "%4d" % @rrid }) "
 | 
			
		||||
			io << "#{ "%30s" % @name} #{ "%6d" % @ttl} IN #{ "%10s" % @rrtype } #{ "%30s" % @target}\n"
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		def to_bind9(io : IO)
 | 
			
		||||
			io << "#{@name} #{@ttl} IN #{@rrtype} #{@target}\n"
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -81,7 +86,8 @@ class DNSManager::Storage::Zone
 | 
			
		|||
		end
 | 
			
		||||
 | 
			
		||||
		def to_s(io : IO)
 | 
			
		||||
			io << "(#{ "%4d" % @rrid }) #{name} #{ttl} IN SOA (#{mname} #{rname}\n"
 | 
			
		||||
			io << "(#{ "%4d" % @rrid }) "
 | 
			
		||||
			io << "#{name} #{ttl} IN SOA (#{mname} #{rname}\n"
 | 
			
		||||
			io << "\t\t#{ "%10d" % serial  }  ; serial\n"
 | 
			
		||||
			io << "\t\t#{ "%10d" % refresh }  ; refresh\n"
 | 
			
		||||
			io << "\t\t#{ "%10d" % retry   }  ; retry\n"
 | 
			
		||||
| 
						 | 
				
			
			@ -90,6 +96,16 @@ class DNSManager::Storage::Zone
 | 
			
		|||
			io << "\t)\n"
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		def to_bind9(io : IO)
 | 
			
		||||
			io << "#{name} #{ttl} IN SOA (#{mname} #{rname}\n"
 | 
			
		||||
			io << "\t\t#{serial }  ; serial\n"
 | 
			
		||||
			io << "\t\t#{refresh}  ; refresh\n"
 | 
			
		||||
			io << "\t\t#{retry  }  ; retry\n"
 | 
			
		||||
			io << "\t\t#{expire }  ; expire\n"
 | 
			
		||||
			io << "\t\t#{minttl }  ; minttl\n"
 | 
			
		||||
			io << "\t)\n"
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		def get_errors : Array(Error)
 | 
			
		||||
			errors = [] of Error
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -237,7 +253,12 @@ class DNSManager::Storage::Zone
 | 
			
		|||
		end
 | 
			
		||||
 | 
			
		||||
		def to_s(io : IO)
 | 
			
		||||
			io << "(#{ "%4d" % @rrid }) #{ "%30s" % @name} #{ "%6d" % @ttl} IN MX #{ "%3d" % @priority} #{ "%30s" % @target}\n"
 | 
			
		||||
			io << "(#{ "%4d" % @rrid }) "
 | 
			
		||||
			io << "#{ "%30s" % @name} #{ "%6d" % @ttl} IN MX #{ "%3d" % @priority} #{ "%30s" % @target}\n"
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		def to_bind9(io : IO)
 | 
			
		||||
			io << "#{@name} #{@ttl} IN MX #{@priority} #{@target}\n"
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		def get_errors : Array(Error)
 | 
			
		||||
| 
						 | 
				
			
			@ -287,6 +308,20 @@ class DNSManager::Storage::Zone
 | 
			
		|||
 | 
			
		||||
			errors
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		def to_s(io : IO)
 | 
			
		||||
			io << "(#{ "%4d" % @rrid }) "
 | 
			
		||||
			io << "#{ "%30s" % @name} "
 | 
			
		||||
			io << "#{ "%6d" % @ttl} IN SRV "
 | 
			
		||||
			io << "#{ "%3d" % @priority} "
 | 
			
		||||
			io << "#{ "%3d" % @weight} "
 | 
			
		||||
			io << "#{ "%5d" % @port} "
 | 
			
		||||
			io << "#{ "%30s" % @target}\n"
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		def to_bind9(io : IO)
 | 
			
		||||
			io << "#{@name} #{@ttl} IN SRV #{@priority} #{@weight} #{@port} #{@target}\n"
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	def <<(rr : ResourceRecord)
 | 
			
		||||
| 
						 | 
				
			
			@ -302,6 +337,13 @@ class DNSManager::Storage::Zone
 | 
			
		|||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	def to_bind9(io : IO)
 | 
			
		||||
		io << "DOMAIN: #{@domain}\n"
 | 
			
		||||
		@resources.each do |rr|
 | 
			
		||||
			rr.to_bind9 io
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	def get_errors? : Array(Error)?
 | 
			
		||||
		errors = [] of Error
 | 
			
		||||
		unless Zone.is_domain_valid? @domain
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue