{ LDNS_STATUS_SYNTAX_VERSION_ERR, "Syntax error, version mismatch" },
{ LDNS_STATUS_SYNTAX_ALG_ERR, "Syntax error, algorithm unknown or non parseable" },
{ LDNS_STATUS_SYNTAX_ERR, "Syntax error, could not parse the RR" },
+ { LDNS_STATUS_SYNTAX_TTL, "A $TTL directive was seen in a zone" },
{ 0, NULL }
};
LDNS_STATUS_SYNTAX_VERSION_ERR,
LDNS_STATUS_SYNTAX_ALG_ERR,
LDNS_STATUS_SYNTAX_KEYWORD_ERR,
+ LDNS_STATUS_SYNTAX_TTL,
LDNS_STATUS_SYNTAX_ERR
};
typedef enum ldns_enum_status ldns_status;
} else if ((keyword = strstr(line, "$TTL "))) {
if (default_ttl) {
*default_ttl = (uint16_t) atoi(keyword + 5);
+ return LDNS_STATUS_SYNTAX_TTL;
}
} else {
if (origin && *origin) {
}
while(!feof(fp)) {
- if ((s = ldns_rr_new_frm_fp_l(&rr, fp, &my_ttl, &my_origin, &my_prev, line_nr))
- == LDNS_STATUS_OK) {
+ s = ldns_rr_new_frm_fp_l(&rr, fp, &my_ttl, &my_origin, &my_prev, line_nr);
+ switch (s) {
+ case LDNS_STATUS_OK:
if (ldns_rr_get_type(rr) == LDNS_RR_TYPE_SOA) {
if (soa_seen) {
/* second SOA
/*my_origin = ldns_rr_owner(rr);*/
my_ttl = ldns_rr_ttl(rr);
my_class = ldns_rr_get_class(rr);
-
- } else {
+ case LDNS_STATUS_SYNTAX_TTL:
+ /* the function set the ttl */
+ break;
+ default:
ldns_zone_free(newzone);
return s;
}