Skip to content

Commit 9038011

Browse files
committed
Merge pull request thias#39 from inkblot/quote-txt-rrdata
Automatic quote and unquote TXT and SPF
2 parents beaf69c + f259360 commit 9038011

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

lib/puppet_bind/provider/nsupdate.rb

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,28 @@ def update(&block)
6060

6161
def accio(file)
6262
rrdata_adds.each do |datum|
63-
file.write "update add #{name}. #{resource[:ttl]} #{rrclass} #{type} #{datum}\n"
63+
file.write "update add #{name}. #{resource[:ttl]} #{rrclass} #{type} #{maybe_quote(type, datum)}\n"
6464
end
6565
end
6666

6767
def destructo(file)
6868
rrdata_deletes.each do |datum|
69-
file.write "update delete #{name}. #{ttl} #{rrclass} #{type} #{datum}\n"
69+
file.write "update delete #{name}. #{ttl} #{rrclass} #{type} #{maybe_quote(type, datum)}\n"
7070
end
7171
end
7272

73+
def quoted_type?(type)
74+
%(TXT SPF).include?(type)
75+
end
76+
77+
def maybe_quote(type, datum)
78+
quoted_type?(type) ? "\"#{datum}\"" : datum
79+
end
80+
81+
def maybe_unquote(type, datum)
82+
quoted_type?(type) ? datum.gsub(/^\"(.*)\"$/, '\1') : datum
83+
end
84+
7385
def rrdata_adds
7486
newdata - rrdata
7587
end
@@ -124,7 +136,7 @@ def query
124136
:ttl => linearray[1],
125137
:rrclass => linearray[2],
126138
:type => linearray[3],
127-
:rrdata => linearray[4]
139+
:rrdata => maybe_unquote(linearray[3], linearray[4])
128140
}
129141
end.select do |record|
130142
record[:name] == "#{name}."

0 commit comments

Comments
 (0)