diff --git a/lib/dns/include/dns/ttl.h b/lib/dns/include/dns/ttl.h index 6cf3c41643..81646bf3e4 100644 --- a/lib/dns/include/dns/ttl.h +++ b/lib/dns/include/dns/ttl.h @@ -66,7 +66,7 @@ dns_ttl_fromtext(isc_textregion_t *source, isc_uint32_t *ttl); * * Returns: * DNS_R_SUCCESS - * DNS_R_SYNTAX + * DNS_R_BADTTL */ ISC_LANG_ENDDECLS diff --git a/lib/dns/master.c b/lib/dns/master.c index 4f02c1e191..753c024087 100644 --- a/lib/dns/master.c +++ b/lib/dns/master.c @@ -15,7 +15,7 @@ * SOFTWARE. */ - /* $Id: master.c,v 1.28 1999/11/02 13:07:51 marka Exp $ */ + /* $Id: master.c,v 1.29 1999/11/04 01:21:27 marka Exp $ */ #include @@ -281,16 +281,12 @@ load(isc_lex_t *lex, dns_name_t *top, dns_name_t *origin, finish_origin = ISC_TRUE; } else if (strcasecmp(token.value.as_pointer, "$TTL") == 0) { - GETTOKEN(lex, ISC_LEXOPT_NUMBER, &token, - ISC_FALSE); - if (token.type != isc_tokentype_number) { - (callbacks->warn)(callbacks, - "dns_master_load: %s:%d $TTL expects number\n", - isc_lex_getsourcename(lex), - isc_lex_getsourceline(lex)); - result = DNS_R_BADTTL; - goto cleanup; - } + GETTOKEN(lex, 0, &token, ISC_FALSE); + result = + dns_ttl_fromtext(&token.value.as_textregion, + &ttl); + if (result != DNS_R_SUCCESS) + goto cleanup; ttl = token.value.as_ulong; if (ttl > 0x7fffffffUL) { (callbacks->warn)(callbacks, @@ -301,7 +297,6 @@ load(isc_lex_t *lex, dns_name_t *top, dns_name_t *origin, ttl = 0; } default_ttl = ttl; - ttl_known = ISC_TRUE; default_ttl_known = ISC_TRUE; read_till_eol = ISC_TRUE; continue; diff --git a/lib/dns/ttl.c b/lib/dns/ttl.c index dada84f544..b856218a2d 100644 --- a/lib/dns/ttl.c +++ b/lib/dns/ttl.c @@ -125,7 +125,12 @@ dns_counter_fromtext(isc_textregion_t *source, isc_uint32_t *ttl) { dns_result_t dns_ttl_fromtext(isc_textregion_t *source, isc_uint32_t *ttl) { - return (bind_ttl(source, ttl)); + dns_result_t result; + + result = bind_ttl(source, ttl); + if (result != DNS_R_SUCCESS) + result = DNS_R_BADTTL; + return (result); } static dns_result_t