From: Wouter Wijngaards Date: Mon, 15 Apr 2013 07:57:08 +0000 (+0000) Subject: - Fix so that for a configuration line of include: "*.conf" it is not X-Git-Tag: release-1.4.21rc1~43 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2be3e346582003f4cbdbfbd89d5252e80e5f9651;p=thirdparty%2Funbound.git - Fix so that for a configuration line of include: "*.conf" it is not an error if there are no files matching the glob pattern. git-svn-id: file:///svn/unbound/trunk@2883 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index 922d040ad..6b931e996 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +15 April 2013: Wouter + - Fix so that for a configuration line of include: "*.conf" it is not + an error if there are no files matching the glob pattern. + 11 April 2013: Wouter - Fix queries leaking up for stubs and forwards, if the configured nameservers all fail to answer. diff --git a/util/configlexer.c b/util/configlexer.c index 146ceb7e3..45058af66 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -10,7 +10,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_SUBMINOR_VERSION 36 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -55,7 +55,6 @@ typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -86,6 +85,8 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -154,7 +155,12 @@ typedef unsigned int flex_uint32_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif -extern int yyleng; +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t yyleng; extern FILE *yyin, *yyout; @@ -180,11 +186,6 @@ extern FILE *yyin, *yyout; #define unput(c) yyunput( c, (yytext_ptr) ) -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -202,7 +203,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -272,8 +273,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int yyleng; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; @@ -301,7 +302,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); void *yyalloc (yy_size_t ); void *yyrealloc (void *,yy_size_t ); @@ -1603,6 +1604,8 @@ static void config_start_include_glob(const char* filename) if(r) { /* some error */ globfree(&g); + if(r == GLOB_NOMATCH) + return; /* no matches for pattern */ config_start_include(filename); /* let original deal with it */ return; } @@ -1638,7 +1641,7 @@ static void config_end_include(void) #endif #define YY_NO_INPUT 1 -#line 148 "./util/configlexer.lex" +#line 150 "./util/configlexer.lex" #ifndef YY_NO_UNPUT #define YY_NO_UNPUT 1 #endif @@ -1646,7 +1649,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1648 "" +#line 1651 "" #define INITIAL 0 #define quotedstring 1 @@ -1690,7 +1693,7 @@ FILE *yyget_out (void ); void yyset_out (FILE * out_str ); -int yyget_leng (void ); +yy_size_t yyget_leng (void ); char *yyget_text (void ); @@ -1749,7 +1752,7 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - unsigned n; \ + size_t n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -1831,9 +1834,9 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 168 "./util/configlexer.lex" +#line 170 "./util/configlexer.lex" -#line 1835 "" +#line 1838 "" if ( !(yy_init) ) { @@ -1924,627 +1927,627 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 169 "./util/configlexer.lex" +#line 171 "./util/configlexer.lex" { LEXOUT(("SP ")); /* ignore */ } YY_BREAK case 2: YY_RULE_SETUP -#line 171 "./util/configlexer.lex" +#line 173 "./util/configlexer.lex" { /* note that flex makes the longest match and '.' is any but not nl */ LEXOUT(("comment(%s) ", yytext)); /* ignore */ } YY_BREAK case 3: YY_RULE_SETUP -#line 174 "./util/configlexer.lex" +#line 176 "./util/configlexer.lex" { YDVAR(0, VAR_SERVER) } YY_BREAK case 4: YY_RULE_SETUP -#line 175 "./util/configlexer.lex" +#line 177 "./util/configlexer.lex" { YDVAR(1, VAR_NUM_THREADS) } YY_BREAK case 5: YY_RULE_SETUP -#line 176 "./util/configlexer.lex" +#line 178 "./util/configlexer.lex" { YDVAR(1, VAR_VERBOSITY) } YY_BREAK case 6: YY_RULE_SETUP -#line 177 "./util/configlexer.lex" +#line 179 "./util/configlexer.lex" { YDVAR(1, VAR_PORT) } YY_BREAK case 7: YY_RULE_SETUP -#line 178 "./util/configlexer.lex" +#line 180 "./util/configlexer.lex" { YDVAR(1, VAR_OUTGOING_RANGE) } YY_BREAK case 8: YY_RULE_SETUP -#line 179 "./util/configlexer.lex" +#line 181 "./util/configlexer.lex" { YDVAR(1, VAR_OUTGOING_PORT_PERMIT) } YY_BREAK case 9: YY_RULE_SETUP -#line 180 "./util/configlexer.lex" +#line 182 "./util/configlexer.lex" { YDVAR(1, VAR_OUTGOING_PORT_AVOID) } YY_BREAK case 10: YY_RULE_SETUP -#line 181 "./util/configlexer.lex" +#line 183 "./util/configlexer.lex" { YDVAR(1, VAR_OUTGOING_NUM_TCP) } YY_BREAK case 11: YY_RULE_SETUP -#line 182 "./util/configlexer.lex" +#line 184 "./util/configlexer.lex" { YDVAR(1, VAR_INCOMING_NUM_TCP) } YY_BREAK case 12: YY_RULE_SETUP -#line 183 "./util/configlexer.lex" +#line 185 "./util/configlexer.lex" { YDVAR(1, VAR_DO_IP4) } YY_BREAK case 13: YY_RULE_SETUP -#line 184 "./util/configlexer.lex" +#line 186 "./util/configlexer.lex" { YDVAR(1, VAR_DO_IP6) } YY_BREAK case 14: YY_RULE_SETUP -#line 185 "./util/configlexer.lex" +#line 187 "./util/configlexer.lex" { YDVAR(1, VAR_DO_UDP) } YY_BREAK case 15: YY_RULE_SETUP -#line 186 "./util/configlexer.lex" +#line 188 "./util/configlexer.lex" { YDVAR(1, VAR_DO_TCP) } YY_BREAK case 16: YY_RULE_SETUP -#line 187 "./util/configlexer.lex" +#line 189 "./util/configlexer.lex" { YDVAR(1, VAR_TCP_UPSTREAM) } YY_BREAK case 17: YY_RULE_SETUP -#line 188 "./util/configlexer.lex" +#line 190 "./util/configlexer.lex" { YDVAR(1, VAR_SSL_UPSTREAM) } YY_BREAK case 18: YY_RULE_SETUP -#line 189 "./util/configlexer.lex" +#line 191 "./util/configlexer.lex" { YDVAR(1, VAR_SSL_SERVICE_KEY) } YY_BREAK case 19: YY_RULE_SETUP -#line 190 "./util/configlexer.lex" +#line 192 "./util/configlexer.lex" { YDVAR(1, VAR_SSL_SERVICE_PEM) } YY_BREAK case 20: YY_RULE_SETUP -#line 191 "./util/configlexer.lex" +#line 193 "./util/configlexer.lex" { YDVAR(1, VAR_SSL_PORT) } YY_BREAK case 21: YY_RULE_SETUP -#line 192 "./util/configlexer.lex" +#line 194 "./util/configlexer.lex" { YDVAR(1, VAR_DO_DAEMONIZE) } YY_BREAK case 22: YY_RULE_SETUP -#line 193 "./util/configlexer.lex" +#line 195 "./util/configlexer.lex" { YDVAR(1, VAR_INTERFACE) } YY_BREAK case 23: YY_RULE_SETUP -#line 194 "./util/configlexer.lex" +#line 196 "./util/configlexer.lex" { YDVAR(1, VAR_OUTGOING_INTERFACE) } YY_BREAK case 24: YY_RULE_SETUP -#line 195 "./util/configlexer.lex" +#line 197 "./util/configlexer.lex" { YDVAR(1, VAR_INTERFACE_AUTOMATIC) } YY_BREAK case 25: YY_RULE_SETUP -#line 196 "./util/configlexer.lex" +#line 198 "./util/configlexer.lex" { YDVAR(1, VAR_SO_RCVBUF) } YY_BREAK case 26: YY_RULE_SETUP -#line 197 "./util/configlexer.lex" +#line 199 "./util/configlexer.lex" { YDVAR(1, VAR_SO_SNDBUF) } YY_BREAK case 27: YY_RULE_SETUP -#line 198 "./util/configlexer.lex" +#line 200 "./util/configlexer.lex" { YDVAR(1, VAR_CHROOT) } YY_BREAK case 28: YY_RULE_SETUP -#line 199 "./util/configlexer.lex" +#line 201 "./util/configlexer.lex" { YDVAR(1, VAR_USERNAME) } YY_BREAK case 29: YY_RULE_SETUP -#line 200 "./util/configlexer.lex" +#line 202 "./util/configlexer.lex" { YDVAR(1, VAR_DIRECTORY) } YY_BREAK case 30: YY_RULE_SETUP -#line 201 "./util/configlexer.lex" +#line 203 "./util/configlexer.lex" { YDVAR(1, VAR_LOGFILE) } YY_BREAK case 31: YY_RULE_SETUP -#line 202 "./util/configlexer.lex" +#line 204 "./util/configlexer.lex" { YDVAR(1, VAR_PIDFILE) } YY_BREAK case 32: YY_RULE_SETUP -#line 203 "./util/configlexer.lex" +#line 205 "./util/configlexer.lex" { YDVAR(1, VAR_ROOT_HINTS) } YY_BREAK case 33: YY_RULE_SETUP -#line 204 "./util/configlexer.lex" +#line 206 "./util/configlexer.lex" { YDVAR(1, VAR_EDNS_BUFFER_SIZE) } YY_BREAK case 34: YY_RULE_SETUP -#line 205 "./util/configlexer.lex" +#line 207 "./util/configlexer.lex" { YDVAR(1, VAR_MSG_BUFFER_SIZE) } YY_BREAK case 35: YY_RULE_SETUP -#line 206 "./util/configlexer.lex" +#line 208 "./util/configlexer.lex" { YDVAR(1, VAR_MSG_CACHE_SIZE) } YY_BREAK case 36: YY_RULE_SETUP -#line 207 "./util/configlexer.lex" +#line 209 "./util/configlexer.lex" { YDVAR(1, VAR_MSG_CACHE_SLABS) } YY_BREAK case 37: YY_RULE_SETUP -#line 208 "./util/configlexer.lex" +#line 210 "./util/configlexer.lex" { YDVAR(1, VAR_RRSET_CACHE_SIZE) } YY_BREAK case 38: YY_RULE_SETUP -#line 209 "./util/configlexer.lex" +#line 211 "./util/configlexer.lex" { YDVAR(1, VAR_RRSET_CACHE_SLABS) } YY_BREAK case 39: YY_RULE_SETUP -#line 210 "./util/configlexer.lex" +#line 212 "./util/configlexer.lex" { YDVAR(1, VAR_CACHE_MAX_TTL) } YY_BREAK case 40: YY_RULE_SETUP -#line 211 "./util/configlexer.lex" +#line 213 "./util/configlexer.lex" { YDVAR(1, VAR_CACHE_MIN_TTL) } YY_BREAK case 41: YY_RULE_SETUP -#line 212 "./util/configlexer.lex" +#line 214 "./util/configlexer.lex" { YDVAR(1, VAR_INFRA_HOST_TTL) } YY_BREAK case 42: YY_RULE_SETUP -#line 213 "./util/configlexer.lex" +#line 215 "./util/configlexer.lex" { YDVAR(1, VAR_INFRA_LAME_TTL) } YY_BREAK case 43: YY_RULE_SETUP -#line 214 "./util/configlexer.lex" +#line 216 "./util/configlexer.lex" { YDVAR(1, VAR_INFRA_CACHE_SLABS) } YY_BREAK case 44: YY_RULE_SETUP -#line 215 "./util/configlexer.lex" +#line 217 "./util/configlexer.lex" { YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } YY_BREAK case 45: YY_RULE_SETUP -#line 216 "./util/configlexer.lex" +#line 218 "./util/configlexer.lex" { YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } YY_BREAK case 46: YY_RULE_SETUP -#line 217 "./util/configlexer.lex" +#line 219 "./util/configlexer.lex" { YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } YY_BREAK case 47: YY_RULE_SETUP -#line 218 "./util/configlexer.lex" +#line 220 "./util/configlexer.lex" { YDVAR(1, VAR_JOSTLE_TIMEOUT) } YY_BREAK case 48: YY_RULE_SETUP -#line 219 "./util/configlexer.lex" +#line 221 "./util/configlexer.lex" { YDVAR(1, VAR_TARGET_FETCH_POLICY) } YY_BREAK case 49: YY_RULE_SETUP -#line 220 "./util/configlexer.lex" +#line 222 "./util/configlexer.lex" { YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } YY_BREAK case 50: YY_RULE_SETUP -#line 221 "./util/configlexer.lex" +#line 223 "./util/configlexer.lex" { YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } YY_BREAK case 51: YY_RULE_SETUP -#line 222 "./util/configlexer.lex" +#line 224 "./util/configlexer.lex" { YDVAR(1, VAR_HARDEN_GLUE) } YY_BREAK case 52: YY_RULE_SETUP -#line 223 "./util/configlexer.lex" +#line 225 "./util/configlexer.lex" { YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } YY_BREAK case 53: YY_RULE_SETUP -#line 224 "./util/configlexer.lex" +#line 226 "./util/configlexer.lex" { YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } YY_BREAK case 54: YY_RULE_SETUP -#line 225 "./util/configlexer.lex" +#line 227 "./util/configlexer.lex" { YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 55: YY_RULE_SETUP -#line 226 "./util/configlexer.lex" +#line 228 "./util/configlexer.lex" { YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 56: YY_RULE_SETUP -#line 227 "./util/configlexer.lex" +#line 229 "./util/configlexer.lex" { YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 57: YY_RULE_SETUP -#line 228 "./util/configlexer.lex" +#line 230 "./util/configlexer.lex" { YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 58: YY_RULE_SETUP -#line 229 "./util/configlexer.lex" +#line 231 "./util/configlexer.lex" { YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 59: YY_RULE_SETUP -#line 230 "./util/configlexer.lex" +#line 232 "./util/configlexer.lex" { YDVAR(1, VAR_PREFETCH_KEY) } YY_BREAK case 60: YY_RULE_SETUP -#line 231 "./util/configlexer.lex" +#line 233 "./util/configlexer.lex" { YDVAR(1, VAR_PREFETCH) } YY_BREAK case 61: YY_RULE_SETUP -#line 232 "./util/configlexer.lex" +#line 234 "./util/configlexer.lex" { YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 62: YY_RULE_SETUP -#line 233 "./util/configlexer.lex" +#line 235 "./util/configlexer.lex" { YDVAR(1, VAR_NAME) } YY_BREAK case 63: YY_RULE_SETUP -#line 234 "./util/configlexer.lex" +#line 236 "./util/configlexer.lex" { YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 64: YY_RULE_SETUP -#line 235 "./util/configlexer.lex" +#line 237 "./util/configlexer.lex" { YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 65: YY_RULE_SETUP -#line 236 "./util/configlexer.lex" +#line 238 "./util/configlexer.lex" { YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 66: YY_RULE_SETUP -#line 237 "./util/configlexer.lex" +#line 239 "./util/configlexer.lex" { YDVAR(1, VAR_STUB_FIRST) } YY_BREAK case 67: YY_RULE_SETUP -#line 238 "./util/configlexer.lex" +#line 240 "./util/configlexer.lex" { YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 68: YY_RULE_SETUP -#line 239 "./util/configlexer.lex" +#line 241 "./util/configlexer.lex" { YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 69: YY_RULE_SETUP -#line 240 "./util/configlexer.lex" +#line 242 "./util/configlexer.lex" { YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 70: YY_RULE_SETUP -#line 241 "./util/configlexer.lex" +#line 243 "./util/configlexer.lex" { YDVAR(1, VAR_FORWARD_FIRST) } YY_BREAK case 71: YY_RULE_SETUP -#line 242 "./util/configlexer.lex" +#line 244 "./util/configlexer.lex" { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 72: YY_RULE_SETUP -#line 243 "./util/configlexer.lex" +#line 245 "./util/configlexer.lex" { YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 73: YY_RULE_SETUP -#line 244 "./util/configlexer.lex" +#line 246 "./util/configlexer.lex" { YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 74: YY_RULE_SETUP -#line 245 "./util/configlexer.lex" +#line 247 "./util/configlexer.lex" { YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 75: YY_RULE_SETUP -#line 246 "./util/configlexer.lex" +#line 248 "./util/configlexer.lex" { YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 76: YY_RULE_SETUP -#line 247 "./util/configlexer.lex" +#line 249 "./util/configlexer.lex" { YDVAR(1, VAR_IDENTITY) } YY_BREAK case 77: YY_RULE_SETUP -#line 248 "./util/configlexer.lex" +#line 250 "./util/configlexer.lex" { YDVAR(1, VAR_VERSION) } YY_BREAK case 78: YY_RULE_SETUP -#line 249 "./util/configlexer.lex" +#line 251 "./util/configlexer.lex" { YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 79: YY_RULE_SETUP -#line 250 "./util/configlexer.lex" +#line 252 "./util/configlexer.lex" { YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 80: YY_RULE_SETUP -#line 251 "./util/configlexer.lex" +#line 253 "./util/configlexer.lex" { YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 81: YY_RULE_SETUP -#line 252 "./util/configlexer.lex" +#line 254 "./util/configlexer.lex" { YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 82: YY_RULE_SETUP -#line 253 "./util/configlexer.lex" +#line 255 "./util/configlexer.lex" { YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 83: YY_RULE_SETUP -#line 254 "./util/configlexer.lex" +#line 256 "./util/configlexer.lex" { YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 84: YY_RULE_SETUP -#line 255 "./util/configlexer.lex" +#line 257 "./util/configlexer.lex" { YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 85: YY_RULE_SETUP -#line 256 "./util/configlexer.lex" +#line 258 "./util/configlexer.lex" { YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 86: YY_RULE_SETUP -#line 257 "./util/configlexer.lex" +#line 259 "./util/configlexer.lex" { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 87: YY_RULE_SETUP -#line 258 "./util/configlexer.lex" +#line 260 "./util/configlexer.lex" { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 88: YY_RULE_SETUP -#line 259 "./util/configlexer.lex" +#line 261 "./util/configlexer.lex" { YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 89: YY_RULE_SETUP -#line 260 "./util/configlexer.lex" +#line 262 "./util/configlexer.lex" { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 90: YY_RULE_SETUP -#line 261 "./util/configlexer.lex" +#line 263 "./util/configlexer.lex" { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 91: YY_RULE_SETUP -#line 262 "./util/configlexer.lex" +#line 264 "./util/configlexer.lex" { YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 92: YY_RULE_SETUP -#line 263 "./util/configlexer.lex" +#line 265 "./util/configlexer.lex" { YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 93: YY_RULE_SETUP -#line 264 "./util/configlexer.lex" +#line 266 "./util/configlexer.lex" { YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 94: YY_RULE_SETUP -#line 265 "./util/configlexer.lex" +#line 267 "./util/configlexer.lex" { YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 95: YY_RULE_SETUP -#line 266 "./util/configlexer.lex" +#line 268 "./util/configlexer.lex" { YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 96: YY_RULE_SETUP -#line 267 "./util/configlexer.lex" +#line 269 "./util/configlexer.lex" { YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 97: YY_RULE_SETUP -#line 269 "./util/configlexer.lex" +#line 271 "./util/configlexer.lex" { YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 98: YY_RULE_SETUP -#line 270 "./util/configlexer.lex" +#line 272 "./util/configlexer.lex" { YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 99: YY_RULE_SETUP -#line 271 "./util/configlexer.lex" +#line 273 "./util/configlexer.lex" { YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 100: YY_RULE_SETUP -#line 272 "./util/configlexer.lex" +#line 274 "./util/configlexer.lex" { YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 101: YY_RULE_SETUP -#line 273 "./util/configlexer.lex" +#line 275 "./util/configlexer.lex" { YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 102: YY_RULE_SETUP -#line 274 "./util/configlexer.lex" +#line 276 "./util/configlexer.lex" { YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 103: YY_RULE_SETUP -#line 275 "./util/configlexer.lex" +#line 277 "./util/configlexer.lex" { YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 104: YY_RULE_SETUP -#line 276 "./util/configlexer.lex" +#line 278 "./util/configlexer.lex" { YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 105: YY_RULE_SETUP -#line 277 "./util/configlexer.lex" +#line 279 "./util/configlexer.lex" { YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 106: YY_RULE_SETUP -#line 278 "./util/configlexer.lex" +#line 280 "./util/configlexer.lex" { YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 107: YY_RULE_SETUP -#line 279 "./util/configlexer.lex" +#line 281 "./util/configlexer.lex" { YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 108: YY_RULE_SETUP -#line 280 "./util/configlexer.lex" +#line 282 "./util/configlexer.lex" { YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 109: YY_RULE_SETUP -#line 281 "./util/configlexer.lex" +#line 283 "./util/configlexer.lex" { YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 110: YY_RULE_SETUP -#line 282 "./util/configlexer.lex" +#line 284 "./util/configlexer.lex" { YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 111: YY_RULE_SETUP -#line 283 "./util/configlexer.lex" +#line 285 "./util/configlexer.lex" { YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 112: YY_RULE_SETUP -#line 284 "./util/configlexer.lex" +#line 286 "./util/configlexer.lex" { YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 113: YY_RULE_SETUP -#line 285 "./util/configlexer.lex" +#line 287 "./util/configlexer.lex" { YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 114: YY_RULE_SETUP -#line 286 "./util/configlexer.lex" +#line 288 "./util/configlexer.lex" { YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 115: YY_RULE_SETUP -#line 287 "./util/configlexer.lex" +#line 289 "./util/configlexer.lex" { YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 116: YY_RULE_SETUP -#line 288 "./util/configlexer.lex" +#line 290 "./util/configlexer.lex" { YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 117: YY_RULE_SETUP -#line 289 "./util/configlexer.lex" +#line 291 "./util/configlexer.lex" { YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 118: YY_RULE_SETUP -#line 290 "./util/configlexer.lex" +#line 292 "./util/configlexer.lex" { YDVAR(0, VAR_PYTHON) } YY_BREAK case 119: YY_RULE_SETUP -#line 291 "./util/configlexer.lex" +#line 293 "./util/configlexer.lex" { YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 120: YY_RULE_SETUP -#line 292 "./util/configlexer.lex" +#line 294 "./util/configlexer.lex" { YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 121: YY_RULE_SETUP -#line 293 "./util/configlexer.lex" +#line 295 "./util/configlexer.lex" { YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 122: /* rule 122 can match eol */ YY_RULE_SETUP -#line 294 "./util/configlexer.lex" +#line 296 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ case 123: YY_RULE_SETUP -#line 297 "./util/configlexer.lex" +#line 299 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 298 "./util/configlexer.lex" +#line 300 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2553,19 +2556,19 @@ case YY_STATE_EOF(quotedstring): YY_BREAK case 124: YY_RULE_SETUP -#line 303 "./util/configlexer.lex" +#line 305 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 125: /* rule 125 can match eol */ YY_RULE_SETUP -#line 304 "./util/configlexer.lex" +#line 306 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK case 126: YY_RULE_SETUP -#line 306 "./util/configlexer.lex" +#line 308 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2580,11 +2583,11 @@ YY_RULE_SETUP /* Single Quoted strings. Strip leading and ending quotes */ case 127: YY_RULE_SETUP -#line 318 "./util/configlexer.lex" +#line 320 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 319 "./util/configlexer.lex" +#line 321 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2593,19 +2596,19 @@ case YY_STATE_EOF(singlequotedstr): YY_BREAK case 128: YY_RULE_SETUP -#line 324 "./util/configlexer.lex" +#line 326 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 129: /* rule 129 can match eol */ YY_RULE_SETUP -#line 325 "./util/configlexer.lex" +#line 327 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK case 130: YY_RULE_SETUP -#line 327 "./util/configlexer.lex" +#line 329 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2620,12 +2623,12 @@ YY_RULE_SETUP /* include: directive */ case 131: YY_RULE_SETUP -#line 339 "./util/configlexer.lex" +#line 341 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 341 "./util/configlexer.lex" +#line 343 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); @@ -2633,23 +2636,23 @@ case YY_STATE_EOF(include): YY_BREAK case 132: YY_RULE_SETUP -#line 345 "./util/configlexer.lex" +#line 347 "./util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 133: /* rule 133 can match eol */ YY_RULE_SETUP -#line 346 "./util/configlexer.lex" +#line 348 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 134: YY_RULE_SETUP -#line 347 "./util/configlexer.lex" +#line 349 "./util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK case 135: YY_RULE_SETUP -#line 348 "./util/configlexer.lex" +#line 350 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -2657,7 +2660,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 353 "./util/configlexer.lex" +#line 355 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); @@ -2665,19 +2668,19 @@ case YY_STATE_EOF(include_quoted): YY_BREAK case 136: YY_RULE_SETUP -#line 357 "./util/configlexer.lex" +#line 359 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK case 137: /* rule 137 can match eol */ YY_RULE_SETUP -#line 358 "./util/configlexer.lex" +#line 360 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK case 138: YY_RULE_SETUP -#line 360 "./util/configlexer.lex" +#line 362 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -2687,7 +2690,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 366 "./util/configlexer.lex" +#line 368 "./util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -2700,31 +2703,31 @@ case YY_STATE_EOF(val): YY_BREAK case 139: YY_RULE_SETUP -#line 376 "./util/configlexer.lex" +#line 378 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK case 140: YY_RULE_SETUP -#line 380 "./util/configlexer.lex" +#line 382 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK case 141: YY_RULE_SETUP -#line 384 "./util/configlexer.lex" +#line 386 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK case 142: YY_RULE_SETUP -#line 388 "./util/configlexer.lex" +#line 390 "./util/configlexer.lex" ECHO; YY_BREAK -#line 2726 "" +#line 2729 "" case YY_END_OF_BUFFER: { @@ -2908,21 +2911,21 @@ static int yy_get_next_buffer (void) else { - int num_to_read = + yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - int new_size = b->yy_buf_size * 2; + yy_size_t new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -2953,7 +2956,7 @@ static int yy_get_next_buffer (void) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), (size_t) num_to_read ); + (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } @@ -3048,7 +3051,7 @@ static int yy_get_next_buffer (void) yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 1342); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT @@ -3075,7 +3078,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -3235,10 +3238,6 @@ static void yy_load_buffer_state (void) yyfree((void *) b ); } -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. @@ -3351,7 +3350,7 @@ void yypop_buffer_state (void) */ static void yyensure_buffer_stack (void) { - int num_to_alloc; + yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { @@ -3443,12 +3442,12 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -3535,7 +3534,7 @@ FILE *yyget_out (void) /** Get the length of the current token. * */ -int yyget_leng (void) +yy_size_t yyget_leng (void) { return yyleng; } @@ -3683,7 +3682,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 388 "./util/configlexer.lex" +#line 390 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 4694cdd82..d2eaf66be 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -107,6 +107,8 @@ static void config_start_include_glob(const char* filename) if(r) { /* some error */ globfree(&g); + if(r == GLOB_NOMATCH) + return; /* no matches for pattern */ config_start_include(filename); /* let original deal with it */ return; }