Lines Matching refs:cfile

92 void skip_to_semi (cfile)  in skip_to_semi()  argument
93 struct parse *cfile; in skip_to_semi()
95 skip_to_rbrace (cfile, 0);
98 void skip_to_rbrace (cfile, brace_count) in skip_to_rbrace() argument
99 struct parse *cfile; in skip_to_rbrace()
109 token = peek_token (&val, (unsigned *)0, cfile);
111 skip_token(&val, (unsigned *)0, cfile);
120 skip_token(&val, (unsigned *)0, cfile);
126 skip_token(&val, (unsigned *)0, cfile);
129 token = next_token (&val, (unsigned *)0, cfile);
133 int parse_semi (cfile) in parse_semi() argument
134 struct parse *cfile; in parse_semi()
139 token = next_token (&val, (unsigned *)0, cfile);
141 parse_warn (cfile, "semicolon expected.");
142 skip_to_semi (cfile);
150 int parse_string (cfile, sptr, lptr) in parse_string() argument
151 struct parse *cfile; in parse_string()
160 token = next_token (&val, &len, cfile);
162 parse_warn (cfile, "expecting a string");
163 skip_to_semi (cfile);
171 if (!parse_semi (cfile)) {
190 char *parse_host_name (cfile) in parse_host_name() argument
191 struct parse *cfile; in parse_host_name()
204 token = peek_token (&val, (unsigned *)0, cfile);
207 skip_token(&val, (unsigned *)0, cfile);
217 token = peek_token (&val, (unsigned *)0, cfile);
219 token = next_token (&val, (unsigned *)0, cfile);
262 int parse_ip_addr_or_hostname (expr, cfile, uniform) in parse_ip_addr_or_hostname() argument
264 struct parse *cfile;
275 token = peek_token (&val, (unsigned *)0, cfile);
285 save_parse_state(cfile);
286 skip_token(NULL, NULL, cfile);
287 if (next_token(NULL, NULL, cfile) == DOT &&
288 next_token(NULL, NULL, cfile) == NUMBER)
290 restore_parse_state(cfile);
293 parse_numeric_aggregate (cfile, addr, &len, DOT, 10, 8))
299 name = parse_host_name (cfile);
315 token = next_token (&val, (unsigned *)0, cfile);
316 parse_warn (cfile, "%s (%d): expecting IP address or hostname",
319 skip_to_semi (cfile);
330 int parse_ip_addr (cfile, addr) in parse_ip_addr() argument
331 struct parse *cfile; in parse_ip_addr()
335 if (parse_numeric_aggregate (cfile, addr -> iabuf,
366 parse_ip6_addr(struct parse *cfile, struct iaddr *addr) { in parse_ip6_addr() argument
378 token = peek_token(&val, NULL, cfile); in parse_ip6_addr()
391 next_raw_token(&val, NULL, cfile); in parse_ip6_addr()
394 parse_warn(cfile, "Invalid IPv6 address."); in parse_ip6_addr()
395 skip_to_semi(cfile); in parse_ip6_addr()
404 token = peek_raw_token(&val, NULL, cfile); in parse_ip6_addr()
412 parse_warn(cfile, "Invalid IPv6 address."); in parse_ip6_addr()
413 skip_to_semi(cfile); in parse_ip6_addr()
426 struct parse *cfile) { in parse_ip6_addr_expr() argument
429 if (!parse_ip6_addr(cfile, &addr)) { in parse_ip6_addr_expr()
439 parse_ip6_prefix(struct parse *cfile, struct iaddr *addr, u_int8_t *plen) { in parse_ip6_prefix() argument
444 if (!parse_ip6_addr(cfile, addr)) { in parse_ip6_prefix()
447 token = next_token(&val, NULL, cfile); in parse_ip6_prefix()
449 parse_warn(cfile, "Slash expected."); in parse_ip6_prefix()
451 skip_to_semi(cfile); in parse_ip6_prefix()
454 token = next_token(&val, NULL, cfile); in parse_ip6_prefix()
456 parse_warn(cfile, "Number expected."); in parse_ip6_prefix()
458 skip_to_semi(cfile); in parse_ip6_prefix()
463 parse_warn(cfile, "Invalid IPv6 prefix length."); in parse_ip6_prefix()
464 skip_to_semi(cfile); in parse_ip6_prefix()
468 parse_warn(cfile, "network mask too short."); in parse_ip6_prefix()
469 skip_to_semi(cfile); in parse_ip6_prefix()
482 parse_ip_addr_with_subnet(cfile, match) in parse_ip_addr_with_subnet() argument
483 struct parse *cfile; in parse_ip_addr_with_subnet()
492 if (parse_ip_addr(cfile, &match->addr)) {
496 token = peek_token(&val, NULL, cfile);
499 skip_token(&val, NULL, cfile);
500 token = next_token(&val, NULL, cfile);
503 parse_warn(cfile, "Invalid CIDR prefix length:"
512 parse_warn(cfile, "subnet prefix is out of "
562 parse_warn(cfile,
575 void parse_hardware_param (cfile, hardware) in parse_hardware_param() argument
576 struct parse *cfile; in parse_hardware_param()
584 token = next_token(&val, NULL, cfile);
602 parse_warn(cfile,
604 skip_to_semi(cfile);
618 token = peek_token(&val, NULL, cfile);
623 t = parse_numeric_aggregate(cfile, NULL, &hlen, COLON, 16, 8);
630 parse_warn(cfile, "hardware address too long");
641 token = next_token(&val, NULL, cfile);
643 parse_warn(cfile, "expecting semicolon.");
644 skip_to_semi(cfile);
650 void parse_lease_time (cfile, timep) in parse_lease_time() argument
651 struct parse *cfile; in parse_lease_time()
658 token = next_token (&val, (unsigned *)0, cfile);
660 parse_warn (cfile, "Expecting numeric lease time");
661 skip_to_semi (cfile);
664 convert_num(cfile, (unsigned char *)&num, val, 10, 32);
668 parse_semi (cfile);
694 unsigned char *parse_numeric_aggregate (cfile, buf, in parse_numeric_aggregate() argument
696 struct parse *cfile; in parse_numeric_aggregate()
718 token = peek_token (&val, (unsigned *)0, cfile);
725 cfile);
726 parse_warn (cfile, "too few numbers.");
728 skip_to_semi (cfile);
734 skip_token(&val, (unsigned *)0, cfile);
736 token = next_token (&val, (unsigned *)0, cfile);
739 parse_warn (cfile, "unexpected end of file");
746 parse_warn (cfile, "expecting numeric value.");
747 skip_to_semi (cfile);
763 convert_num (cfile, s, val, base, size);
788 convert_num (cfile, s, (char *)(c -> car), base, size);
798 void convert_num (cfile, buf, str, base, size) in convert_num() argument
799 struct parse *cfile; in convert_num()
843 parse_warn (cfile, "Bogus number: %s.", str);
847 parse_warn (cfile,
862 parse_warn (cfile,
868 parse_warn (cfile,
874 parse_warn (cfile,
894 parse_warn (cfile,
910 parse_warn (cfile,
936 parse_date_core(cfile) in parse_date_core() argument
937 struct parse *cfile; in parse_date_core()
947 token = peek_token(&val, NULL, cfile);
949 skip_token(&val, NULL, cfile); /* consume NEVER */
955 skip_token(&val, NULL, cfile); /* consume EPOCH */
956 token = peek_token(&val, NULL, cfile);
960 skip_token(&val, NULL, cfile);
961 parse_warn(cfile, "Seconds since epoch expected.");
965 skip_token(&val, NULL, cfile); /* consume number */
973 skip_token(&val, NULL, cfile);
974 parse_warn(cfile, "numeric day of week expected.");
977 skip_token(&val, NULL, cfile); /* consume day of week */
981 token = peek_token(&val, NULL, cfile);
984 skip_token(&val, NULL, cfile);
985 parse_warn(cfile, "numeric year expected.");
988 skip_token(&val, NULL, cfile); /* consume year */
999 token = peek_token(&val, NULL, cfile);
1002 skip_token(&val, NULL, cfile);
1003 parse_warn(cfile,
1007 skip_token(&val, NULL, cfile); /* consume SLASH */
1010 token = peek_token(&val, NULL, cfile);
1013 skip_token(&val, NULL, cfile);
1014 parse_warn(cfile, "numeric month expected.");
1017 skip_token(&val, NULL, cfile); /* consume month */
1021 token = peek_token(&val, NULL, cfile);
1024 skip_token(&val, NULL, cfile);
1025 parse_warn(cfile,
1029 skip_token(&val, NULL, cfile); /* consume SLASH */
1032 token = peek_token(&val, NULL, cfile);
1035 skip_token(&val, NULL, cfile);
1036 parse_warn(cfile, "numeric day of month expected.");
1039 skip_token(&val, NULL, cfile); /* consume day of month */
1043 token = peek_token(&val, NULL, cfile);
1046 skip_token(&val, NULL, cfile);
1047 parse_warn(cfile, "numeric hour expected.");
1050 skip_token(&val, NULL, cfile); /* consume hour */
1054 token = peek_token(&val, NULL, cfile);
1057 skip_token(&val, NULL, cfile);
1058 parse_warn(cfile,
1062 skip_token(&val, NULL, cfile); /* consume colon */
1065 token = peek_token(&val, NULL, cfile);
1068 skip_token(&val, NULL, cfile);
1069 parse_warn(cfile, "numeric minute expected.");
1072 skip_token(&val, NULL, cfile); /* consume minute */
1076 token = peek_token(&val, NULL, cfile);
1079 skip_token(&val, NULL, cfile);
1080 parse_warn(cfile,
1084 skip_token(&val, NULL, cfile); /* consume colon */
1087 token = peek_token(&val, NULL, cfile);
1090 skip_token(&val, NULL, cfile);
1091 parse_warn(cfile, "numeric second expected.");
1094 skip_token(&val, NULL, cfile); /* consume second */
1098 token = peek_token(&val, NULL, cfile);
1100 skip_token(&val, NULL, cfile); /* consume tzoff */
1103 skip_token(&val, NULL, cfile);
1104 parse_warn(cfile,
1139 parse_date(cfile) in parse_date() argument
1140 struct parse *cfile; in parse_date()
1143 guess = parse_date_core(cfile);
1146 if (!parse_semi(cfile))
1159 parse_option_name (cfile, allocate, known, opt) in parse_option_name() argument
1160 struct parse *cfile; in parse_option_name()
1175 token = next_token (&val, (unsigned *)0, cfile);
1177 parse_warn (cfile,
1180 skip_to_semi (cfile);
1187 token = peek_token (&val, (unsigned *)0, cfile);
1190 skip_token(&val, (unsigned *)0, cfile);
1193 token = next_token (&val, (unsigned *)0, cfile);
1195 parse_warn (cfile, "expecting identifier after '.'");
1197 skip_to_semi (cfile);
1206 parse_warn (cfile, "no option space named %s.", uname);
1207 skip_to_semi (cfile);
1238 parse_warn(cfile, "Option codes 0 and %u are illegal "
1241 skip_to_semi(cfile);
1283 parse_warn(cfile, "no option named %s in space %s",
1285 skip_to_semi (cfile);
1300 void parse_option_space_decl (cfile) in parse_option_space_decl() argument
1301 struct parse *cfile; in parse_option_space_decl()
1309 skip_token(&val, (unsigned *)0, cfile); /* Discard the SPACE token,
1312 token = next_token (&val, (unsigned *)0, cfile);
1314 parse_warn (cfile, "expecting identifier.");
1315 skip_to_semi (cfile);
1330 token = next_token(&val, NULL, cfile);
1336 token = next_token(&val, NULL, cfile);
1338 parse_warn(cfile, "expecting width token.");
1342 token = next_token(&val, NULL, cfile);
1344 parse_warn(cfile, "expecting number 1, 2, 4.");
1365 parse_warn(cfile, "invalid code width (%d), "
1373 token = next_token(&val, NULL, cfile);
1375 parse_warn(cfile, "expecting width token.");
1379 token = next_token(&val, NULL, cfile);
1381 parse_warn(cfile, "expecting number 1 or 2.");
1387 parse_warn(cfile, "invalid length width (%d) "
1395 token = next_token(&val, NULL, cfile);
1397 parse_warn(cfile, "expecting size token.");
1401 token = next_token(&val, NULL, cfile);
1403 parse_warn(cfile, "expecting a 10base number");
1412 parse_warn(cfile, "invalid hash length: %d",
1420 parse_warn(cfile, "Unexpected token.");
1523 int parse_option_code_definition (cfile, option) in parse_option_code_definition() argument
1524 struct parse *cfile; in parse_option_code_definition()
1542 token = next_token (&val, (unsigned *)0, cfile);
1544 parse_warn (cfile, "expecting option code number.");
1545 skip_to_semi (cfile);
1550 token = next_token (&val, (unsigned *)0, cfile);
1552 parse_warn (cfile, "expecting \"=\"");
1553 skip_to_semi (cfile);
1558 token = next_token (&val, (unsigned *)0, cfile);
1560 token = next_token (&val, (unsigned *)0, cfile);
1562 parse_warn (cfile, "expecting \"of\".");
1563 skip_to_semi (cfile);
1567 token = next_token (&val, (unsigned *)0, cfile);
1572 token = next_token (&val, (unsigned *)0, cfile);
1578 parse_warn (cfile,
1580 skip_to_semi (cfile);
1587 parse_warn (cfile, "no nested arrays.");
1588 skip_to_rbrace (cfile, recordp);
1590 skip_to_semi (cfile);
1593 token = next_token (&val, (unsigned *)0, cfile);
1595 parse_warn (cfile, "expecting \"of\".");
1596 skip_to_semi (cfile);
1600 token = next_token (&val, (unsigned *)0, cfile);
1602 parse_warn (cfile,
1604 skip_to_rbrace (cfile, recordp + 1);
1605 skip_to_semi (cfile);
1615 token = next_token (&val, (unsigned *)0, cfile);
1617 parse_warn (cfile, "expecting number.");
1618 skip_to_rbrace (cfile, recordp);
1620 skip_to_semi (cfile);
1634 parse_warn (cfile,
1636 skip_to_rbrace (cfile, recordp);
1638 skip_to_semi (cfile);
1645 token = next_token (&val, (unsigned *)0, cfile);
1647 parse_warn (cfile, "expecting \"integer\" keyword.");
1648 skip_to_rbrace (cfile, recordp);
1650 skip_to_semi (cfile);
1669 token = peek_token(&val, NULL, cfile);
1671 skip_token(&val, NULL, cfile);
1681 parse_warn (cfile, "arrays of text strings not %s",
1683 skip_to_rbrace (cfile, recordp);
1685 skip_to_semi (cfile);
1695 token = next_token (&val, (unsigned *)0, cfile);
1697 parse_warn (cfile,
1699 skip_to_semi (cfile);
1705 parse_warn(cfile, "unknown option space %s", val);
1706 skip_to_semi (cfile);
1721 parse_warn (cfile, "array incompatible with zerolen.");
1722 skip_to_rbrace (cfile, recordp);
1724 skip_to_semi (cfile);
1731 parse_warn (cfile, "unknown data type %s", val);
1732 skip_to_rbrace (cfile, recordp);
1734 skip_to_semi (cfile);
1740 parse_warn (cfile, "too many types in record.");
1741 skip_to_rbrace (cfile, recordp);
1743 skip_to_semi (cfile);
1749 token = next_token (&val, (unsigned *)0, cfile);
1752 parse_warn (cfile,
1754 skip_to_rbrace (cfile, 1);
1755 skip_to_semi (cfile);
1763 parse_warn (cfile,
1766 skip_to_rbrace (cfile, 1);
1768 skip_to_semi (cfile);
1771 token = next_token (&val, (unsigned *)0, cfile);
1775 parse_warn (cfile, "expecting right brace.");
1776 skip_to_rbrace (cfile, 1);
1778 skip_to_semi (cfile);
1782 if (!parse_semi (cfile)) {
1783 parse_warn (cfile, "semicolon expected.");
1784 skip_to_semi (cfile);
1786 skip_to_semi (cfile);
1790 parse_warn (cfile,
1847 int parse_base64 (data, cfile) in parse_base64() argument
1849 struct parse *cfile;
1880 (void)next_token(&val, &l, cfile);
1892 (void)peek_token(&val, NULL, cfile);
1909 parse_warn (cfile, "can't allocate buffer for base64 data.");
1920 parse_warn(cfile,
1927 parse_warn(cfile,
1964 parse_warn(cfile,
1988 int parse_cshl (data, cfile) in parse_cshl() argument
1990 struct parse *cfile;
2002 token = next_token (&val, (unsigned *)0, cfile);
2004 parse_warn (cfile, "expecting hexadecimal number.");
2005 skip_to_semi (cfile);
2024 convert_num (cfile, &ibuf [ilen++], val, 16, 8);
2026 token = peek_token (&val, (unsigned *)0, cfile);
2029 skip_token(&val, (unsigned *)0, cfile);
2065 int parse_executable_statements (statements, cfile, lose, case_context) in parse_executable_statements() argument
2067 struct parse *cfile;
2074 while (parse_executable_statement (next, cfile, lose, case_context))
2081 int parse_executable_statement (result, cfile, lose, case_context) in parse_executable_statement() argument
2083 struct parse *cfile;
2103 token = peek_token (&val, (unsigned *)0, cfile);
2106 skip_token(&val, NULL, cfile);
2107 token = next_token(&val, NULL, cfile);
2113 parse_warn(cfile, "Expecting 'local' or 'default'.");
2115 skip_to_semi(cfile);
2120 token = next_token(&val, NULL, cfile);
2122 parse_warn(cfile, "Expecting a semicolon.");
2131 skip_token(&val, (unsigned *)0, cfile);
2132 return parse_if_statement (result, cfile, lose);
2135 skip_token(&val, (unsigned *)0, cfile);
2136 token = next_token (&val, (unsigned *)0, cfile);
2138 parse_warn (cfile, "expecting class name.");
2139 skip_to_semi (cfile);
2146 parse_warn (cfile, "class %s: %s",
2148 skip_to_semi (cfile);
2152 if (!parse_semi (cfile)) {
2163 skip_token(&val, (unsigned *)0, cfile);
2164 if (!parse_semi (cfile)) {
2174 skip_token(&val, (unsigned *)0, cfile);
2176 status = parse_option_name (cfile, 0, &known, &option);
2181 status = parse_option_statement(result, cfile, 1, option,
2188 skip_token(&val, (unsigned *)0, cfile);
2190 status = parse_option_name (cfile, 0, &known, &option);
2195 status = parse_option_statement(result, cfile, 1, option,
2209 skip_token(&val, (unsigned *)0, cfile);
2211 if (!parse_allow_deny (&cache, cfile, flag))
2220 skip_token(&val, (unsigned *)0, cfile);
2221 token = peek_token (&val, (unsigned *)0, cfile);
2225 status = parse_option_name (cfile, 0, &known, &option);
2230 status = parse_option_statement(result, cfile, 1, option,
2236 skip_token(&val, (unsigned *)0, cfile);
2238 status = parse_option_name (cfile, 0, &known, &option);
2243 status = parse_option_statement(result, cfile, 1, option,
2249 skip_token(&val, (unsigned *)0, cfile);
2251 status = parse_option_name (cfile, 0, &known, &option);
2256 status = parse_option_statement(result, cfile, 1, option,
2262 skip_token(&val, (unsigned *)0, cfile);
2263 return parse_on_statement (result, cfile, lose);
2266 skip_token(&val, (unsigned *)0, cfile);
2267 return parse_switch_statement (result, cfile, lose);
2270 skip_token(&val, (unsigned *)0, cfile);
2272 parse_warn (cfile,
2275 skip_to_semi (cfile);
2279 cfile, lose, case_context);
2282 skip_token(&val, (unsigned *)0, cfile);
2284 parse_warn (cfile, "switch default statement in %s",
2298 skip_token(&val, (unsigned *)0, cfile);
2304 token = next_token (&val, (unsigned *)0, cfile);
2306 parse_warn (cfile,
2309 skip_to_semi (cfile);
2321 token = next_token (&val, (unsigned *)0, cfile);
2329 (unsigned *)0, cfile);
2333 parse_warn (cfile,
2335 skip_to_rbrace (cfile, 0);
2355 (unsigned *)0, cfile);
2359 parse_warn (cfile, "expecting right paren.");
2361 skip_to_semi (cfile);
2367 token = next_token (&val, (unsigned *)0, cfile);
2369 parse_warn (cfile, "expecting left brace.");
2383 (&expr -> data.func -> statements, cfile, lose,
2389 token = next_token (&val, (unsigned *)0, cfile);
2391 parse_warn (cfile, "expecting rigt brace.");
2396 parse_warn (cfile,
2403 cfile, lose, context_any,
2407 parse_warn (cfile,
2411 skip_to_semi (cfile);
2415 if (!parse_semi (cfile)) {
2424 skip_token(&val, (unsigned *)0, cfile);
2425 token = next_token (&val, (unsigned *)0, cfile);
2427 parse_warn (cfile,
2429 skip_to_semi (cfile);
2441 if (!parse_semi (cfile)) {
2449 skip_token(&val, (unsigned *)0, cfile);
2455 cfile, lose, context_data, /* XXX */
2458 parse_warn (cfile,
2462 skip_to_semi (cfile);
2466 if (!parse_semi (cfile)) {
2474 skip_token(&val, NULL, cfile);
2480 token = next_token(&val, NULL, cfile);
2482 parse_warn(cfile, "left parenthesis expected.");
2483 skip_to_semi(cfile);
2488 token = next_token(&val, &len, cfile);
2490 parse_warn(cfile, "Expecting a quoted string.");
2491 skip_to_semi(cfile);
2504 while((token = next_token(&val, NULL, cfile)) == COMMA) {
2509 cfile, lose)) {
2511 parse_warn (cfile,
2515 skip_to_semi(cfile);
2524 parse_warn(cfile, "right parenthesis expected.");
2525 skip_to_semi(cfile);
2530 if (!parse_semi (cfile)) {
2535 parse_warn(cfile, "define ENABLE_EXECUTE in site.h to "
2537 skip_to_semi(cfile);
2544 skip_token(&val, (unsigned *)0, cfile);
2551 cfile, lose, context_data,
2554 parse_warn (cfile,
2558 skip_to_semi (cfile);
2562 if (!parse_semi (cfile)) {
2570 skip_token(&val, (unsigned *)0, cfile);
2576 token = next_token (&val, (unsigned *)0, cfile);
2578 parse_warn (cfile, "left parenthesis expected.");
2579 skip_to_semi (cfile);
2584 token = peek_token (&val, (unsigned *)0, cfile);
2599 skip_token(&val, (unsigned *)0, cfile);
2600 token = next_token (&val, (unsigned *)0, cfile);
2602 parse_warn (cfile, "comma expected.");
2603 skip_to_semi (cfile);
2610 (&(*result) -> data.log.expr, cfile, lose))) {
2611 skip_to_semi (cfile);
2616 token = next_token (&val, (unsigned *)0, cfile);
2618 parse_warn (cfile, "right parenthesis expected.");
2619 skip_to_semi (cfile);
2624 token = next_token (&val, (unsigned *)0, cfile);
2626 parse_warn (cfile, "semicolon expected.");
2627 skip_to_semi (cfile);
2637 skip_token(&val, (unsigned *)0, cfile);
2641 zone -> name = parse_host_name (cfile);
2643 parse_warn (cfile, "expecting hostname.");
2646 skip_to_semi (cfile);
2654 parse_warn (cfile, "no trailing '.' on zone");
2663 if (!parse_zone (zone, cfile))
2667 parse_warn (cfile, "dns zone key %s: %s",
2677 skip_token(&val, (unsigned *)0, cfile);
2678 if (!parse_key (cfile)) {
2691 skip_token(&val, (unsigned *)0, cfile);
2693 (result, cfile, 1, option,
2708 cfile, lose, context_data,
2712 parse_warn (cfile, "expecting "
2716 skip_to_semi (cfile);
2720 if (!parse_semi (cfile)) {
2748 int parse_zone (struct dns_zone *zone, struct parse *cfile) in parse_zone() argument
2756 token = next_token (&val, (unsigned *)0, cfile); in parse_zone()
2758 parse_warn (cfile, "expecting left brace"); in parse_zone()
2763 token = peek_token (&val, (unsigned *)0, cfile); in parse_zone()
2767 parse_warn (cfile, in parse_zone()
2769 skip_to_semi (cfile); in parse_zone()
2779 parse_warn (cfile, "more than one secondary."); in parse_zone()
2780 skip_to_semi (cfile); in parse_zone()
2787 skip_token(&val, (unsigned *)0, cfile); in parse_zone()
2790 if (!parse_ip_addr_or_hostname (&expr, cfile, 0)) { in parse_zone()
2791 parse_warn (cfile, in parse_zone()
2793 skip_to_semi (cfile); in parse_zone()
2814 token = next_token (&val, (unsigned *)0, cfile); in parse_zone()
2817 parse_warn (cfile, "expecting semicolon."); in parse_zone()
2818 skip_to_semi (cfile); in parse_zone()
2825 parse_warn(cfile, "more than one primary6."); in parse_zone()
2826 skip_to_semi(cfile); in parse_zone()
2836 parse_warn(cfile, "more than one secondary6."); in parse_zone()
2837 skip_to_semi(cfile); in parse_zone()
2845 skip_token(&val, NULL, cfile); in parse_zone()
2848 if (parse_ip6_addr_expr(&expr, cfile) == 0) { in parse_zone()
2849 parse_warn(cfile, "expecting IPv6 addr."); in parse_zone()
2850 skip_to_semi(cfile); in parse_zone()
2869 token = next_token(&val, NULL, cfile); in parse_zone()
2872 parse_warn(cfile, "expecting semicolon."); in parse_zone()
2873 skip_to_semi(cfile); in parse_zone()
2879 skip_token(&val, (unsigned *)0, cfile); in parse_zone()
2880 token = peek_token (&val, (unsigned *)0, cfile); in parse_zone()
2882 skip_token(&val, (unsigned *)0, cfile); in parse_zone()
2885 key_name = parse_host_name (cfile); in parse_zone()
2887 parse_warn (cfile, "expecting key name."); in parse_zone()
2888 skip_to_semi (cfile); in parse_zone()
2895 parse_warn (cfile, "unknown key %s", val); in parse_zone()
2898 if (!parse_semi (cfile)) in parse_zone()
2908 token = next_token (&val, (unsigned *)0, cfile); in parse_zone()
2910 parse_warn (cfile, "expecting right brace."); in parse_zone()
2924 int parse_key (struct parse *cfile) in parse_key() argument
2938 token = peek_token (&val, (unsigned *)0, cfile); in parse_key()
2940 skip_token(&val, (unsigned *)0, cfile); in parse_key()
2947 key -> name = parse_host_name (cfile); in parse_key()
2949 parse_warn (cfile, "expecting key name."); in parse_key()
2950 skip_to_semi (cfile); in parse_key()
2955 token = next_token (&val, (unsigned *)0, cfile); in parse_key()
2957 parse_warn (cfile, "expecting left brace"); in parse_key()
2962 token = next_token (&val, (unsigned *)0, cfile); in parse_key()
2966 parse_warn (cfile, in parse_key()
2971 key -> algorithm = parse_host_name (cfile); in parse_key()
2973 parse_warn (cfile, in parse_key()
2977 if (!parse_semi (cfile)) in parse_key()
3012 parse_warn (cfile, "key %s: too many secrets", in parse_key()
3018 if (!parse_base64 (&ds, cfile)) in parse_key()
3028 if (!parse_semi (cfile)) in parse_key()
3038 parse_warn (cfile, "expecting right brace."); in parse_key()
3043 token = peek_token (&val, (unsigned *)0, cfile); in parse_key()
3045 skip_token(&val, (unsigned *)0, cfile); in parse_key()
3051 parse_warn (cfile, "tsig key %s: %s", in parse_key()
3059 skip_to_rbrace (cfile, 1); in parse_key()
3072 int parse_on_statement (result, cfile, lose) in parse_on_statement() argument
3074 struct parse *cfile;
3085 token = next_token (&val, (unsigned *)0, cfile);
3104 parse_warn (cfile, "expecting a lease event type");
3105 skip_to_semi (cfile);
3110 token = next_token (&val, (unsigned *)0, cfile);
3118 parse_warn (cfile, "left brace expected.");
3119 skip_to_semi (cfile);
3125 cfile, lose, context_any)) {
3130 (unsigned *)0, cfile);
3136 token = next_token (&val, (unsigned *)0, cfile);
3138 parse_warn (cfile, "right brace expected.");
3139 skip_to_semi (cfile);
3152 int parse_switch_statement (result, cfile, lose) in parse_switch_statement() argument
3154 struct parse *cfile;
3164 token = next_token (&val, (unsigned *)0, cfile);
3166 parse_warn (cfile, "expecting left brace.");
3169 skip_to_semi (cfile);
3176 cfile, lose, context_data_or_numeric,
3179 parse_warn (cfile,
3186 token = next_token (&val, (unsigned *)0, cfile);
3188 parse_warn (cfile, "right paren expected.");
3192 token = next_token (&val, (unsigned *)0, cfile);
3194 parse_warn (cfile, "left brace expected.");
3198 (&(*result) -> data.s_switch.statements, cfile, lose,
3202 skip_to_rbrace (cfile, 1);
3207 token = next_token (&val, (unsigned *)0, cfile);
3209 parse_warn (cfile, "right brace expected.");
3220 int parse_case_statement (result, cfile, lose, case_context) in parse_case_statement() argument
3222 struct parse *cfile;
3234 cfile, lose, case_context,
3238 parse_warn (cfile, "expecting %s expression.",
3244 skip_to_semi (cfile);
3249 token = next_token (&val, (unsigned *)0, cfile);
3251 parse_warn (cfile, "colon expected.");
3267 int parse_if_statement (result, cfile, lose) in parse_if_statement() argument
3269 struct parse *cfile;
3281 token = peek_token (&val, (unsigned *)0, cfile);
3284 skip_token(&val, (unsigned *)0, cfile);
3290 cfile, lose)) {
3292 parse_warn (cfile, "boolean expression expected.");
3301 token = next_token (&val, (unsigned *)0, cfile);
3303 parse_warn (cfile, "expecting right paren.");
3309 token = next_token (&val, (unsigned *)0, cfile);
3311 parse_warn (cfile, "left brace expected.");
3312 skip_to_semi (cfile);
3318 cfile, lose, context_any)) {
3323 (unsigned *)0, cfile);
3329 token = next_token (&val, (unsigned *)0, cfile);
3331 parse_warn (cfile, "right brace expected.");
3332 skip_to_semi (cfile);
3337 token = peek_token (&val, (unsigned *)0, cfile);
3339 skip_token(&val, (unsigned *)0, cfile);
3340 token = peek_token (&val, (unsigned *)0, cfile);
3342 skip_token(&val, (unsigned *)0, cfile);
3344 cfile, lose)) {
3346 parse_warn (cfile,
3353 parse_warn (cfile, "left brace or if expected.");
3354 skip_to_semi (cfile);
3359 skip_token(&val, (unsigned *)0, cfile);
3362 cfile, lose, context_any))) {
3366 token = next_token (&val, (unsigned *)0, cfile);
3368 parse_warn (cfile, "right brace expected.");
3369 skip_to_semi (cfile);
3376 skip_token(&val, (unsigned *)0, cfile);
3378 cfile, lose)) {
3380 parse_warn (cfile,
3403 int parse_boolean_expression (expr, cfile, lose) in parse_boolean_expression() argument
3405 struct parse *cfile;
3409 if (!parse_expression (expr, cfile, lose, context_boolean,
3416 parse_warn (cfile, "Expecting a boolean expression.");
3426 int parse_boolean (cfile) in parse_boolean() argument
3427 struct parse *cfile; in parse_boolean()
3432 (void)next_token(&val, NULL, cfile);
3440 parse_warn (cfile,
3442 skip_to_semi (cfile);
3445 parse_semi (cfile);
3470 int parse_data_expression (expr, cfile, lose) in parse_data_expression() argument
3472 struct parse *cfile;
3476 if (!parse_expression (expr, cfile, lose, context_data,
3484 parse_warn (cfile, "Expecting a data expression.");
3497 int parse_numeric_expression (expr, cfile, lose) in parse_numeric_expression() argument
3499 struct parse *cfile;
3503 if (!parse_expression (expr, cfile, lose, context_numeric,
3511 parse_warn (cfile, "Expecting a numeric expression.");
3520 int parse_non_binary (expr, cfile, lose, context) in parse_non_binary() argument
3522 struct parse *cfile;
3535 token = peek_token (&val, (unsigned *)0, cfile);
3540 skip_token(&val, (unsigned *)0, cfile);
3541 token = next_token (&val, (unsigned *)0, cfile);
3543 parse_warn (cfile, "string expected.");
3544 skip_to_semi (cfile);
3552 parse_warn (cfile, "unknown collection.");
3563 skip_token(&val, NULL, cfile);
3568 cfile, lose, context_boolean)) {
3570 parse_warn (cfile, "expression expected");
3571 skip_to_semi (cfile);
3579 parse_warn (cfile, "boolean expression expected");
3580 skip_to_semi (cfile);
3587 skip_token(&val, (unsigned *)0, cfile);
3588 if (!parse_expression (expr, cfile, lose, context,
3591 parse_warn (cfile, "expression expected");
3592 skip_to_semi (cfile);
3597 token = next_token (&val, (unsigned *)0, cfile);
3600 parse_warn (cfile, "right paren expected");
3601 skip_to_semi (cfile);
3607 skip_token(&val, NULL, cfile);
3613 status = parse_option_name(cfile, 0, &known,
3624 skip_token(&val, (unsigned *)0, cfile);
3631 skip_token(&val, (unsigned *)0, cfile);
3638 skip_token(&val, (unsigned *)0, cfile);
3643 token = next_token (&val, (unsigned *)0, cfile);
3647 parse_warn (cfile, "left parenthesis expected.");
3653 cfile, lose)) {
3657 parse_warn (cfile,
3659 skip_to_semi (cfile);
3665 token = next_token (&val, (unsigned *)0, cfile);
3669 parse_warn (cfile, "comma expected.");
3676 (&(*expr) -> data.substring.offset,cfile, lose)) {
3679 parse_warn (cfile,
3681 skip_to_semi (cfile);
3688 token = next_token (&val, (unsigned *)0, cfile);
3693 (&(*expr) -> data.substring.len, cfile, lose))
3696 token = next_token (&val, (unsigned *)0, cfile);
3699 parse_warn (cfile, "right parenthesis expected.");
3707 skip_token(&val, (unsigned *)0, cfile);
3712 token = next_token (&val, (unsigned *)0, cfile);
3717 cfile, lose))
3720 token = next_token (&val, (unsigned *)0, cfile);
3725 cfile, lose))
3728 token = next_token (&val, (unsigned *)0, cfile);
3734 skip_token(&val, (unsigned *)0, cfile);
3739 token = next_token(&val, (unsigned *)0, cfile);
3743 if (!parse_data_expression(&(*expr)->data.lcase, cfile, lose))
3746 token = next_token(&val, (unsigned *)0, cfile);
3752 skip_token(&val, (unsigned *)0, cfile);
3757 token = next_token (&val, (unsigned *)0, cfile);
3762 cfile, lose))
3765 token = next_token(&val, (unsigned *)0, cfile);
3771 skip_token(&val, (unsigned *)0, cfile);
3776 token = next_token (&val, (unsigned *)0, cfile);
3781 cfile, lose))
3784 token = next_token (&val, (unsigned *)0, cfile);
3790 cfile, lose))
3793 token = next_token (&val, (unsigned *)0, cfile);
3813 skip_token(&val, (unsigned *)0, cfile);
3818 token = next_token (&val, (unsigned *)0, cfile);
3823 cfile, lose))
3826 token = next_token (&val, (unsigned *)0, cfile);
3831 cfile, lose))
3834 token = next_token (&val, (unsigned *)0, cfile);
3839 cfile, lose))
3842 token = next_token (&val, (unsigned *)0, cfile);
3847 cfile, lose))
3850 token = next_token (&val, (unsigned *)0, cfile);
3856 skip_token(&val, (unsigned *)0, cfile);
3861 token = next_token (&val, (unsigned *)0, cfile);
3866 (&(*expr) -> data.reverse.width, cfile, lose)))
3869 token = next_token (&val, (unsigned *)0, cfile);
3874 (&(*expr) -> data.reverse.buffer, cfile, lose)))
3877 token = next_token (&val, (unsigned *)0, cfile);
3885 skip_token(&val, (unsigned *)0, cfile);
3889 token = next_token (&val, (unsigned *)0, cfile);
3899 cfile, lose)))
3902 token = next_token (&val, (unsigned *)0, cfile);
3927 skip_token(&val, (unsigned *)0, cfile);
3930 status = parse_option_name(cfile, 0, &known,
3941 skip_token(&val, (unsigned *)0, cfile);
3948 skip_token(&val, (unsigned *)0, cfile);
3955 skip_token(&val, (unsigned *)0, cfile);
3962 skip_token(&val, (unsigned *)0, cfile);
3969 skip_token(&val, (unsigned *)0, cfile);
3976 skip_token(&val, (unsigned *)0, cfile);
3983 skip_token(&val, (unsigned *)0, cfile);
3990 skip_token(&val, (unsigned *)0, cfile);
3997 skip_token(&val, (unsigned *)0, cfile);
4002 token = next_token (&val, (unsigned *)0, cfile);
4007 cfile, lose))
4010 token = next_token (&val, (unsigned *)0, cfile);
4015 cfile, lose))
4018 token = next_token (&val, (unsigned *)0, cfile);
4024 skip_token(&val, &len, cfile);
4031 skip_token(&val, (unsigned *)0, cfile);
4032 token = next_token (&val, (unsigned *)0, cfile);
4034 parse_warn (cfile, "left parenthesis expected.");
4043 cfile, lose)) {
4045 parse_warn (cfile,
4047 skip_to_semi (cfile);
4054 token = next_token (&val, (unsigned *)0, cfile);
4056 parse_warn (cfile, "comma expected.");
4062 token = next_token (&val, (unsigned *)0, cfile);
4064 parse_warn (cfile, "number expected.");
4083 parse_warn (cfile,
4086 skip_to_semi (cfile);
4091 token = next_token (&val, (unsigned *)0, cfile);
4093 parse_warn (cfile, "right parenthesis expected.");
4101 skip_token(&val, (unsigned *)0, cfile);
4102 token = next_token (&val, (unsigned *)0, cfile);
4104 parse_warn (cfile, "left parenthesis expected.");
4113 cfile, lose)) {
4114 parse_warn (cfile, "expecting numeric expression.");
4115 skip_to_semi (cfile);
4121 token = next_token (&val, (unsigned *)0, cfile);
4123 parse_warn (cfile, "comma expected.");
4129 token = next_token (&val, (unsigned *)0, cfile);
4131 parse_warn (cfile, "number expected.");
4150 parse_warn (cfile,
4153 skip_to_semi (cfile);
4158 token = next_token (&val, (unsigned *)0, cfile);
4160 parse_warn (cfile, "right parenthesis expected.");
4172 skip_token(&val, (unsigned *)0, cfile);
4185 if (!parse_cshl (&(*expr) -> data.const_data, cfile)) {
4195 skip_token(&val, (unsigned *)0, cfile);
4271 skip_token(&val, (unsigned *)0, cfile);
4272 token = next_token (&val, (unsigned *)0, cfile);
4276 token = next_token (&val, (unsigned *)0, cfile);
4278 parse_warn (cfile, "%s can't be a variable name", val);
4279 skip_to_semi (cfile);
4291 token = next_token (&val, (unsigned *)0, cfile);
4298 skip_token(&val, NULL, cfile);
4303 token = next_token(NULL, NULL, cfile);
4307 token = next_token(NULL, NULL, cfile);
4313 skip_token(&val, NULL, cfile);
4314 token = next_token(NULL, NULL, cfile);
4319 token = next_token(&val, NULL, cfile);
4321 parse_warn(cfile, "Expecting quoted literal: "
4323 skip_to_semi(cfile);
4331 token = next_token(NULL, NULL, cfile);
4337 skip_token(&val, NULL, cfile);
4342 token = next_token (&val, NULL, cfile);
4347 cfile, lose))
4350 token = next_token (&val, NULL, cfile);
4355 cfile, lose))
4358 token = next_token (&val, NULL, cfile);
4369 skip_token(&val, (unsigned *)0, cfile);
4378 token = peek_token (&val, (unsigned *)0, cfile);
4387 skip_token(&val, (unsigned *)0, cfile);
4400 cfile, lose, context_any,
4404 parse_warn (cfile,
4408 skip_to_semi (cfile);
4413 token = next_token (&val, (unsigned *)0, cfile);
4416 parse_warn (cfile, "Right parenthesis expected.");
4417 skip_to_semi (cfile);
4429 int parse_expression (expr, cfile, lose, context, plhs, binop) in parse_expression() argument
4431 struct parse *cfile;
4453 if (!parse_non_binary (&rhs, cfile, lose, context)) {
4459 parse_warn (cfile,
4462 skip_to_semi (cfile);
4473 token = peek_token (&val, (unsigned *)0, cfile);
4476 skip_token(&val, (unsigned *)0, cfile);
4477 token = peek_token (&val, (unsigned *)0, cfile);
4479 parse_warn (cfile, "! in boolean context without =");
4481 skip_to_semi (cfile);
4497 skip_token(&val, NULL, cfile);
4498 token = peek_token(&val, NULL, cfile);
4505 parse_warn(cfile, "expecting ~= or ~~ operator");
4507 skip_to_semi(cfile);
4515 parse_warn(cfile, "No support for regex operator.");
4517 skip_to_semi(cfile);
4589 skip_token(&val, (unsigned *)0, cfile);
4604 skip_token(&val, (unsigned *)0, cfile);
4609 if (!parse_expression (&rhs, cfile, lose, op_context (next_op),
4612 parse_warn (cfile,
4627 parse_warn (cfile, "illegal expression relating different types");
4628 skip_to_semi (cfile);
4642 parse_warn (cfile, "expecting data/numeric expression");
4643 skip_to_semi (cfile);
4653 parse_warn(cfile, "expecting data expression");
4654 skip_to_semi(cfile);
4671 parse_warn (cfile, "expecting boolean expressions");
4672 skip_to_semi (cfile);
4689 parse_warn (cfile, "expecting numeric expressions");
4690 skip_to_semi (cfile);
4719 skip_token(&val, (unsigned *)0, cfile);
4748 int parse_option_data (expr, cfile, lookups, option) in parse_option_data() argument
4750 struct parse *cfile;
4799 cfile);
4809 if (!parse_option_token(expr, cfile, &fmt, tmp,
4827 token = peek_token (&val, (unsigned *)0, cfile);
4830 skip_token(&val, (unsigned *)0, cfile);
4855 int parse_option_statement (result, cfile, lookups, option, op) in parse_option_statement() argument
4857 struct parse *cfile;
4867 token = peek_token (&val, (unsigned *)0, cfile);
4876 skip_token(&val, (unsigned *)0, cfile);
4879 skip_token(&val, (unsigned *)0, cfile);
4882 if (!parse_data_expression (&expr, cfile, &lose)) {
4887 parse_warn (cfile,
4889 skip_to_semi (cfile);
4894 if (! parse_option_data(&expr, cfile, lookups, option))
4898 if (!parse_semi (cfile))
4914 int parse_option_token (rv, cfile, fmt, expr, uniform, lookups) in parse_option_token() argument
4916 struct parse *cfile;
4935 token = next_token (&val, &len, cfile);
4938 parse_warn (cfile, "expecting identifier.");
4940 skip_to_semi (cfile);
4952 parse_warn (cfile,
4954 skip_to_semi (cfile);
4961 token = peek_token (&val, (unsigned *)0, cfile);
4965 if (!parse_cshl (&t -> data.const_data, cfile)) {
4971 token = next_token (&val, &len, cfile);
4980 parse_warn (cfile, "expecting string "
4982 skip_to_semi (cfile);
4997 t = parse_domain_list(cfile, compress);
5001 skip_to_semi(cfile);
5008 val = parse_host_name (cfile);
5010 parse_warn (cfile, "not a valid domain name.");
5011 skip_to_semi (cfile);
5019 token = next_token (&val, &len, cfile);
5022 parse_warn (cfile, "expecting string.");
5024 skip_to_semi (cfile);
5043 parse_warn (cfile, "malformed %s (bug!)",
5046 skip_to_semi (cfile);
5050 token = next_token (&val, (unsigned *)0, cfile);
5052 parse_warn (cfile,
5058 parse_warn (cfile, "unknown value");
5067 if (!parse_ip_addr_or_hostname (&t, cfile, uniform))
5070 if (!parse_ip_addr (cfile, &addr))
5079 if (!parse_ip6_addr(cfile, &addr)) {
5088 token = next_token (&val, (unsigned *)0, cfile);
5098 token = next_token (&val, (unsigned *)0, cfile);
5103 parse_warn (cfile, "expecting number.");
5105 skip_to_semi (cfile);
5109 convert_num (cfile, buf, val, 0, 32);
5116 token = next_token (&val, (unsigned *)0, cfile);
5119 convert_num (cfile, buf, val, 0, 16);
5126 token = next_token (&val, (unsigned *)0, cfile);
5129 convert_num (cfile, buf, val, 0, 8);
5135 token = next_token (&val, (unsigned *)0, cfile);
5138 parse_warn (cfile, "expecting identifier.");
5142 skip_to_semi (cfile);
5156 parse_warn (cfile, "expecting boolean.");
5164 token = peek_token (&val, (unsigned *)0, cfile);
5166 parse_warn(cfile, "semicolon expected.");
5167 skip_to_semi(cfile);
5180 parse_warn (cfile, "Bad format '%c' in parse_option_token.",
5182 skip_to_semi (cfile);
5194 int parse_option_decl (oc, cfile) in parse_option_decl() argument
5196 struct parse *cfile;
5217 status = parse_option_name (cfile, 0, &known, &option);
5247 parse_warn (cfile,
5255 len = parse_X (cfile, &hunkbuf [hunkix],
5262 &len, cfile);
5268 &len, cfile);
5270 parse_warn (cfile,
5275 parse_warn (cfile,
5292 express = parse_domain_list(cfile, compress);
5298 parse_warn(cfile, "unexpected "
5307 parse_warn(cfile, "option data buffer "
5321 parse_warn (cfile,
5327 (unsigned *)0, cfile);
5329 parse_warn (cfile,
5336 parse_warn (cfile,
5344 if (!parse_ip6_addr(cfile, &ip_addr))
5351 if (!parse_ip_addr (cfile, &ip_addr))
5358 parse_warn (cfile,
5370 (unsigned *)0, cfile);
5374 parse_warn (cfile,
5381 convert_num (cfile, buf, val, 0, 32);
5389 (unsigned *)0, cfile);
5393 convert_num (cfile, buf, val, 0, 16);
5401 (unsigned *)0, cfile);
5405 convert_num (cfile, buf, val, 0, 8);
5412 (unsigned *)0, cfile);
5414 parse_warn (cfile,
5429 parse_warn (cfile,
5438 token = peek_token(&val, (unsigned *)0, cfile);
5440 parse_warn(cfile,
5454 token = next_token (&val, (unsigned *)0, cfile);
5458 parse_warn (cfile, "semicolon expected.");
5481 skip_to_semi (cfile);
5490 int parse_X (cfile, buf, max) in parse_X() argument
5491 struct parse *cfile; in parse_X()
5499 token = peek_token (&val, (unsigned *)0, cfile);
5503 token = next_token (&val, (unsigned *)0, cfile);
5505 parse_warn (cfile,
5507 skip_to_semi (cfile);
5510 convert_num (cfile, &buf [len], val, 16, 8);
5512 parse_warn (cfile,
5514 skip_to_semi (cfile);
5517 token = peek_token (&val, (unsigned *)0, cfile);
5520 (unsigned *)0, cfile);
5524 skip_token(&val, &len, cfile);
5526 parse_warn (cfile, "string constant too long.");
5527 skip_to_semi (cfile);
5532 parse_warn (cfile, "expecting string or hexadecimal data");
5533 skip_to_semi (cfile);
5539 int parse_warn (struct parse *cfile, const char *fmt, ...) in parse_warn() argument
5552 cfile -> tlname, cfile -> lexline, mbuf); in parse_warn()
5560 cfile -> token_line [i] && i < (cfile -> lexchar - 1); i++) { in parse_warn()
5563 if (cfile -> token_line [i] == '\t') { in parse_warn()
5572 syslog (log_priority | LOG_ERR, "%s", cfile -> token_line); in parse_warn()
5573 if (cfile -> lexchar < 81) in parse_warn()
5580 IGNORE_RET (write (STDERR_FILENO, cfile -> token_line, in parse_warn()
5581 strlen (cfile -> token_line))); in parse_warn()
5583 if (cfile -> lexchar < 81) in parse_warn()
5588 cfile -> warnings_occurred = 1; in parse_warn()
5594 parse_domain_list(struct parse *cfile, int compress) in parse_domain_list() argument
5612 skip_token(&val, NULL, cfile); in parse_domain_list()
5615 token = next_token(&val, &len, cfile); in parse_domain_list()
5618 parse_warn(cfile, "Expecting a domain string."); in parse_domain_list()
5631 parse_warn(cfile, "Error compressing domain " in parse_domain_list()
5646 parse_warn(cfile, "Error assembling domain " in parse_domain_list()
5665 token = peek_token(&val, NULL, cfile); in parse_domain_list()