Lines Matching refs:parser

84  * These are parser function for generic zone file stuff.
820 * the parser has erred, so the zone will not be loaded.
1130 if(zone_is_slave(parser->current_zone->opts))
1187 if(zone_is_slave(parser->current_zone->opts))
1596 if (parser->current_rr.rdata_count >= MAXRDATALEN) {
1599 parser->current_rr.rdatas[parser->current_rr.rdata_count].data
1601 ++parser->current_rr.rdata_count;
1612 if (parser->current_rr.rdata_count >= MAXRDATALEN) {
1620 rd = &parser->current_rr.rdatas[parser->current_rr.rdata_count];
1621 if ((rd->data = (uint16_t *) region_alloc(parser->rr_region,
1626 parser->current_rr.rdata_count++;
1630 rd = &parser->current_rr.rdatas[parser->current_rr.rdata_count-1];
1648 rdata_atom_type *rd = &parser->current_rr.rdatas[parser->current_rr.rdata_count-1];
1651 if ((tmp_data = (uint16_t *) region_alloc(parser->region,
1681 if (parser->current_rr.rdata_count <= 2) {
1682 if (!parser->error_occurred)
1685 } else for (i = 2; i < parser->current_rr.rdata_count; i++) {
1686 if (parser->current_rr.rdatas[i].data == NULL
1687 || rdata_atom_data(parser->current_rr.rdatas[i]) == NULL
1688 || rdata_atom_size(parser->current_rr.rdatas[i]) < 4) {
1689 if (!parser->error_occurred)
1708 qsort( (void *)&parser->current_rr.rdatas[2]
1709 , parser->current_rr.rdata_count - 2
1714 for (i = 2; i < parser->current_rr.rdata_count; i++) {
1715 assert(parser->current_rr.rdatas[i].data);
1716 assert(rdata_atom_data(parser->current_rr.rdatas[i]));
1717 assert(rdata_atom_size(parser->current_rr.rdatas[i]) >= sizeof(uint16_t));
1719 key = read_uint16(rdata_atom_data(parser->current_rr.rdatas[i]));
1732 if(zone_is_slave(parser->current_zone->opts))
1741 } else if(zone_is_slave(parser->current_zone->opts))
1752 size = rdata_atom_size(parser->current_rr.rdatas[2]);
1754 mandatory_values = (void*)rdata_atom_data(parser->current_rr.rdatas[2]);
1767 if(zone_is_slave(parser->current_zone->opts))
1774 if(zone_is_slave(parser->current_zone->opts))
1786 if(zone_is_slave(parser->current_zone->opts))
1794 if(zone_is_slave(parser->current_zone->opts))
1808 if (parser->current_rr.rdata_count >= MAXRDATALEN) {
1811 parser->current_rr.rdatas[parser->current_rr.rdata_count].domain
1814 ++parser->current_rr.rdata_count;
1834 rdata_count = rdata_wireformat_to_rdata_atoms(parser->region,
1835 parser->db->domains,
1852 region_recycle(parser->region, rdatas,
1919 * - pointer to the parser structure
1974 zone_type *zone = parser->current_zone;
1975 rr_type *rr = &parser->current_rr;
2043 rrset = (rrset_type *) region_alloc(parser->region,
2047 rrset->rrs = (rr_type *) region_alloc(parser->region,
2076 region_recycle(parser->region, rr->rdatas[i].data,
2080 region_recycle(parser->region, rr->rdatas,
2091 rrset->rrs = (rr_type *) region_alloc_array(parser->region,
2094 region_recycle(parser->region, o,
2129 apex_rrset_checks(parser->db, rrset, rr->owner);
2131 if(parser->line % ZONEC_PCT_COUNT == 0 && time(NULL) > startzonec + ZONEC_PCT_TIME) {
2138 parser->current_zone->opts->name,
2204 parser->errors = 0;
2206 dname = dname_parse(parser->rr_region, name);
2217 parser->current_zone = zone;
2223 if(parser->origin != error_domain)
2224 domain_table_deldomain(parser->db, parser->origin);
2226 dname = dname_parse(parser->rr_region, name);
2229 if (!parser->current_zone) {
2231 } else if(!parser->current_zone->soa_rrset ||
2232 parser->current_zone->soa_rrset->rr_count == 0) {
2235 parser->current_zone->soa_rrset->rrs[0].owner), dname) != 0) {
2238 parser->current_zone->soa_rrset->rrs[0].owner));
2240 region_free_all(parser->rr_region);
2247 parser->filename = NULL;
2248 return parser->errors;
2259 parser = zparser_create(db->region, rr_region, db);
2260 assert(parser);
2273 if(parser) {
2276 region_destroy(parser->rr_region);
2277 /* removed when parser->region(=db->region) is destroyed:
2278 * region_recycle(parser->region, (void*)error_dname, 1);
2279 * region_recycle(parser->region, (void*)error_domain, 1); */
2296 assert(parser); /* global parser must be setup */
2297 orig_domains = parser->db->domains;
2298 orig_region = parser->region;
2299 orig_dbregion = parser->db->region;
2300 parser->region = region;
2301 parser->db->region = region;
2302 parser->db->domains = domains;
2310 parser->region = orig_region;
2311 parser->db->domains = orig_domains;
2312 parser->db->region = orig_dbregion;
2322 parser->current_zone = zone;
2323 parser->errors = 0;
2329 errors = parser->errors;
2333 else *parsed = parser->prev_dname;
2335 if(parser->origin != error_domain)
2336 domain_table_deldomain(parser->db, parser->origin);
2337 region_free_all(parser->rr_region);
2348 if(parser->current_rr.rdata_count < 3)
2350 if(!parser->current_rr.rdatas[0].data ||
2351 !parser->current_rr.rdatas[1].data ||
2352 !parser->current_rr.rdatas[2].data ||
2353 !parser->current_rr.owner)
2355 if(rdata_atom_size(parser->current_rr.rdatas[1]) != 1)
2357 hash = rdata_atom_data(parser->current_rr.rdatas[1])[0];
2358 size = rdata_atom_size(parser->current_rr.rdatas[2]);
2362 domain_to_string(parser->current_rr.owner),
2367 domain_to_string(parser->current_rr.owner),