@@ -161,11 +161,13 @@ static really_inline int32_t parse_rr(
161
161
162
162
int32_t code ;
163
163
const type_info_t * descriptor ;
164
+ const mnemonic_t * mnemonic ;
164
165
rdata_t rdata = { parser -> rdata -> octets , parser -> rdata -> octets + 65535 };
165
166
166
- const mnemonic_t * mnemonic ;
167
+ parser -> file -> ttl = parser -> file -> default_ttl ;
167
168
168
169
if ((uint8_t )token -> data [0 ] - '0' < 10 ) {
170
+ parser -> file -> ttl = & parser -> file -> last_ttl ;
169
171
if (!scan_ttl (token -> data , token -> length , parser -> options .pretty_ttls , & parser -> file -> last_ttl ))
170
172
SYNTAX_ERROR (parser , "Invalid %s in %s" , NAME (& fields [3 ]), NAME (& rr ));
171
173
if (parser -> file -> last_ttl & (1u << 31 ))
@@ -187,6 +189,7 @@ static really_inline int32_t parse_rr(
187
189
if ((code = take_contiguous (parser , & rr , & fields [1 ], token )) < 0 )
188
190
return code ;
189
191
if ((uint8_t )token -> data [0 ] - '0' < 10 ) {
192
+ parser -> file -> ttl = & parser -> file -> last_ttl ;
190
193
if (!scan_ttl (token -> data , token -> length , parser -> options .pretty_ttls , & parser -> file -> last_ttl ))
191
194
SYNTAX_ERROR (parser , "Invalid %s in %s" , NAME (& fields [3 ]), NAME (& rr ));
192
195
if (parser -> file -> last_ttl & (1u << 31 ))
@@ -337,14 +340,14 @@ static really_inline int32_t parse_dollar_ttl(
337
340
338
341
if ((code = take_contiguous (parser , & ttl , & fields [0 ], token )) < 0 )
339
342
return code ;
340
- if (!scan_ttl (token -> data , token -> length , parser -> options .pretty_ttls , & parser -> file -> default_ttl ))
343
+ if (!scan_ttl (token -> data , token -> length , parser -> options .pretty_ttls , & parser -> file -> dollar_ttl ))
341
344
SYNTAX_ERROR (parser , "Invalid %s in %s" , NAME (& fields [0 ]), NAME (& ttl ));
342
- if (parser -> file -> default_ttl & (1u << 31 ))
345
+ if (parser -> file -> dollar_ttl & (1u << 31 ))
343
346
SEMANTIC_ERROR (parser , "Invalid %s in %s" , NAME (& fields [0 ]), NAME (& ttl ));
344
347
if ((code = take_delimiter (parser , & ttl , token )) < 0 )
345
348
return code ;
346
349
347
- parser -> file -> last_ttl = parser -> file -> default_ttl ;
350
+ parser -> file -> ttl = parser -> file -> default_ttl = & parser -> file -> dollar_ttl ;
348
351
adjust_line_count (parser -> file );
349
352
return 0 ;
350
353
}
0 commit comments