File tree Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -60,16 +60,28 @@ def update(&block)
60
60
61
61
def accio ( file )
62
62
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 "
64
64
end
65
65
end
66
66
67
67
def destructo ( file )
68
68
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 "
70
70
end
71
71
end
72
72
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
+
73
85
def rrdata_adds
74
86
newdata - rrdata
75
87
end
@@ -124,7 +136,7 @@ def query
124
136
:ttl => linearray [ 1 ] ,
125
137
:rrclass => linearray [ 2 ] ,
126
138
:type => linearray [ 3 ] ,
127
- :rrdata => linearray [ 4 ]
139
+ :rrdata => maybe_unquote ( linearray [ 3 ] , linearray [ 4 ] )
128
140
}
129
141
end . select do |record |
130
142
record [ :name ] == "#{ name } ."
You can’t perform that action at this time.
0 commit comments