Lines 90-95
Link Here
|
90 |
|
90 |
|
91 |
statements : statement |
91 |
statements : statement |
92 |
| statements statement |
92 |
| statements statement |
|
|
93 |
; |
93 |
|
94 |
|
94 |
statement : logfile |
95 |
statement : logfile |
95 |
| accesslog |
96 |
| accesslog |
Lines 153-158
Link Here
|
153 |
yyerrok; |
154 |
yyerrok; |
154 |
} |
155 |
} |
155 |
| L_EOS |
156 |
| L_EOS |
|
|
157 |
; |
156 |
|
158 |
|
157 |
logfile : LOGFILE string L_EOS { |
159 |
logfile : LOGFILE string L_EOS { |
158 |
verb_printf("LOGFILE:\t<<%s>>\n", $2); |
160 |
verb_printf("LOGFILE:\t<<%s>>\n", $2); |
Lines 208-235
Link Here
|
208 |
} |
210 |
} |
209 |
free($7); |
211 |
free($7); |
210 |
} |
212 |
} |
|
|
213 |
; |
211 |
|
214 |
|
212 |
userid : USERID_T string L_EOS { |
215 |
userid : USERID_T string L_EOS { |
213 |
oops_user = $2; |
216 |
oops_user = $2; |
214 |
} |
217 |
} |
|
|
218 |
; |
215 |
|
219 |
|
216 |
chroot : CHROOT_T string L_EOS { |
220 |
chroot : CHROOT_T string L_EOS { |
217 |
oops_chroot = $2; |
221 |
oops_chroot = $2; |
218 |
} |
222 |
} |
|
|
223 |
; |
219 |
|
224 |
|
220 |
blacklist : BLACKLIST_T num L_EOS { |
225 |
blacklist : BLACKLIST_T num L_EOS { |
221 |
blacklist_len = $2; |
226 |
blacklist_len = $2; |
222 |
} |
227 |
} |
|
|
228 |
; |
223 |
|
229 |
|
224 |
refuse_at : REFUSE_AT_T num L_EOS { |
230 |
refuse_at : REFUSE_AT_T num L_EOS { |
225 |
refuse_at = $2; |
231 |
refuse_at = $2; |
226 |
} |
232 |
} |
|
|
233 |
; |
234 |
|
227 |
start_red : START_RED_T num L_EOS { |
235 |
start_red : START_RED_T num L_EOS { |
228 |
start_red = $2; |
236 |
start_red = $2; |
229 |
} |
237 |
} |
|
|
238 |
; |
230 |
dont_cache_without_last_modified : DONT_CACHE_WITHOUT_LAST_MODIFIED_T L_EOS { |
239 |
dont_cache_without_last_modified : DONT_CACHE_WITHOUT_LAST_MODIFIED_T L_EOS { |
231 |
dont_cache_without_last_modified = TRUE; |
240 |
dont_cache_without_last_modified = TRUE; |
232 |
} |
241 |
} |
|
|
242 |
; |
233 |
|
243 |
|
234 |
insert_x_forwarded_for : INSERT_X_FORWARDED_FOR_T string L_EOS { |
244 |
insert_x_forwarded_for : INSERT_X_FORWARDED_FOR_T string L_EOS { |
235 |
if ( !strcasecmp(yylval.STRPTR, "yes") ) |
245 |
if ( !strcasecmp(yylval.STRPTR, "yes") ) |
Lines 241-246
Link Here
|
241 |
printf("insert_x_forwarded_for can be 'yes' or 'no'\n"); |
251 |
printf("insert_x_forwarded_for can be 'yes' or 'no'\n"); |
242 |
free(yylval.STRPTR); |
252 |
free(yylval.STRPTR); |
243 |
} |
253 |
} |
|
|
254 |
; |
244 |
|
255 |
|
245 |
fetch_with_client_speed : FETCH_WITH_CLIENT_SPEED_T string L_EOS { |
256 |
fetch_with_client_speed : FETCH_WITH_CLIENT_SPEED_T string L_EOS { |
246 |
if ( !strcasecmp(yylval.STRPTR, "yes") ) |
257 |
if ( !strcasecmp(yylval.STRPTR, "yes") ) |
Lines 252-257
Link Here
|
252 |
printf("fetch_with_client_speed can be 'yes' or 'no'\n"); |
263 |
printf("fetch_with_client_speed can be 'yes' or 'no'\n"); |
253 |
free(yylval.STRPTR); |
264 |
free(yylval.STRPTR); |
254 |
} |
265 |
} |
|
|
266 |
; |
255 |
|
267 |
|
256 |
insert_via : INSERT_VIA_T string L_EOS { |
268 |
insert_via : INSERT_VIA_T string L_EOS { |
257 |
if ( !strcasecmp(yylval.STRPTR, "yes") ) |
269 |
if ( !strcasecmp(yylval.STRPTR, "yes") ) |
Lines 263-268
Link Here
|
263 |
printf("insert_via can be 'yes' or 'no'\n"); |
275 |
printf("insert_via can be 'yes' or 'no'\n"); |
264 |
free(yylval.STRPTR); |
276 |
free(yylval.STRPTR); |
265 |
} |
277 |
} |
|
|
278 |
; |
266 |
|
279 |
|
267 |
accesslog : ACCESSLOG string L_EOS { |
280 |
accesslog : ACCESSLOG string L_EOS { |
268 |
verb_printf("ACCESSLOG:\t<<%s>>\n", $2); |
281 |
verb_printf("ACCESSLOG:\t<<%s>>\n", $2); |
Lines 320-325
Link Here
|
320 |
} |
333 |
} |
321 |
free($7); |
334 |
free($7); |
322 |
} |
335 |
} |
|
|
336 |
; |
323 |
|
337 |
|
324 |
refresh_pattern : REFRESH_PATTERN_T string num string num L_EOS { |
338 |
refresh_pattern : REFRESH_PATTERN_T string num string num L_EOS { |
325 |
char *buf; |
339 |
char *buf; |
Lines 334-356
Link Here
|
334 |
free($2); |
348 |
free($2); |
335 |
free($4); |
349 |
free($4); |
336 |
} |
350 |
} |
|
|
351 |
; |
352 |
|
337 |
bind_acl : BIND_ACL_T STRING L_EOS { |
353 |
bind_acl : BIND_ACL_T STRING L_EOS { |
338 |
parse_bind_acl(yylval.STRPTR); |
354 |
parse_bind_acl(yylval.STRPTR); |
339 |
free(yylval.STRPTR); |
355 |
free(yylval.STRPTR); |
340 |
} |
356 |
} |
|
|
357 |
; |
341 |
|
358 |
|
342 |
acl_allow : ACL_ALLOW_T STRING L_EOS { |
359 |
acl_allow : ACL_ALLOW_T STRING L_EOS { |
343 |
parse_acl_access(&acl_allow, yylval.STRPTR); |
360 |
parse_acl_access(&acl_allow, yylval.STRPTR); |
344 |
free(yylval.STRPTR); |
361 |
free(yylval.STRPTR); |
345 |
} |
362 |
} |
|
|
363 |
; |
364 |
|
346 |
acl_deny : ACL_DENY_T STRING L_EOS { |
365 |
acl_deny : ACL_DENY_T STRING L_EOS { |
347 |
parse_acl_access(&acl_deny, yylval.STRPTR); |
366 |
parse_acl_access(&acl_deny, yylval.STRPTR); |
348 |
free(yylval.STRPTR); |
367 |
free(yylval.STRPTR); |
349 |
} |
368 |
} |
|
|
369 |
; |
370 |
|
350 |
stop_cache_acl : STOP_CACHE_ACL_T STRING L_EOS { |
371 |
stop_cache_acl : STOP_CACHE_ACL_T STRING L_EOS { |
351 |
parse_acl_access(&stop_cache_acl, yylval.STRPTR); |
372 |
parse_acl_access(&stop_cache_acl, yylval.STRPTR); |
352 |
free(yylval.STRPTR); |
373 |
free(yylval.STRPTR); |
353 |
} |
374 |
} |
|
|
375 |
; |
376 |
|
354 |
acl : ACL_T STRING L_EOS { |
377 |
acl : ACL_T STRING L_EOS { |
355 |
char *token, *p, *tptr; |
378 |
char *token, *p, *tptr; |
356 |
char *n=NULL, *type=NULL, *data=NULL; |
379 |
char *n=NULL, *type=NULL, *data=NULL; |
Lines 409-426
Link Here
|
409 |
done:; |
432 |
done:; |
410 |
free(yylval.STRPTR); |
433 |
free(yylval.STRPTR); |
411 |
} |
434 |
} |
|
|
435 |
; |
412 |
|
436 |
|
413 |
statistics : STATISTICS STRING L_EOS { |
437 |
statistics : STATISTICS STRING L_EOS { |
414 |
verb_printf("STATISTICS:\t<<%s>>\n", yylval.STRPTR); |
438 |
verb_printf("STATISTICS:\t<<%s>>\n", yylval.STRPTR); |
415 |
strncpy(statisticslog, yylval.STRPTR, sizeof(statisticslog)-1); |
439 |
strncpy(statisticslog, yylval.STRPTR, sizeof(statisticslog)-1); |
416 |
free(yylval.STRPTR); |
440 |
free(yylval.STRPTR); |
417 |
} |
441 |
} |
|
|
442 |
; |
418 |
|
443 |
|
419 |
pidfile : PIDFILE STRING L_EOS { |
444 |
pidfile : PIDFILE STRING L_EOS { |
420 |
verb_printf("PIDFILE:\t<<%s>>\n", yylval.STRPTR); |
445 |
verb_printf("PIDFILE:\t<<%s>>\n", yylval.STRPTR); |
421 |
strncpy(pidfile, yylval.STRPTR, sizeof(pidfile)-1); |
446 |
strncpy(pidfile, yylval.STRPTR, sizeof(pidfile)-1); |
422 |
free(yylval.STRPTR); |
447 |
free(yylval.STRPTR); |
423 |
} |
448 |
} |
|
|
449 |
; |
424 |
|
450 |
|
425 |
nameserver : NAMESERVER STRING L_EOS { |
451 |
nameserver : NAMESERVER STRING L_EOS { |
426 |
verb_printf("NAMESERVER:\t<<%s>>\n", yylval.STRPTR); |
452 |
verb_printf("NAMESERVER:\t<<%s>>\n", yylval.STRPTR); |
Lines 438-443
Link Here
|
438 |
} |
464 |
} |
439 |
free(yylval.STRPTR); |
465 |
free(yylval.STRPTR); |
440 |
} |
466 |
} |
|
|
467 |
; |
441 |
|
468 |
|
442 |
connect_from : CONNECT_FROM STRING L_EOS { |
469 |
connect_from : CONNECT_FROM STRING L_EOS { |
443 |
char *p; |
470 |
char *p; |
Lines 447-529
Link Here
|
447 |
while ( *p ) { *p=tolower(*p); p++; } |
474 |
while ( *p ) { *p=tolower(*p); p++; } |
448 |
verb_printf("CONNECT_FROM:\t<<%s>>\n", connect_from); |
475 |
verb_printf("CONNECT_FROM:\t<<%s>>\n", connect_from); |
449 |
} |
476 |
} |
|
|
477 |
; |
450 |
|
478 |
|
451 |
stop_cache : STOP_CACHE STRING L_EOS { |
479 |
stop_cache : STOP_CACHE STRING L_EOS { |
452 |
verb_printf("STOP_CACHE:\t<<%s>>\n", yylval.STRPTR); |
480 |
verb_printf("STOP_CACHE:\t<<%s>>\n", yylval.STRPTR); |
453 |
add_to_stop_cache(yylval.STRPTR); |
481 |
add_to_stop_cache(yylval.STRPTR); |
454 |
} |
482 |
} |
|
|
483 |
; |
484 |
|
455 |
maxresident : MAXRESIDENT NUMBER L_EOS { |
485 |
maxresident : MAXRESIDENT NUMBER L_EOS { |
456 |
verb_printf("MAXRESIDENT:\t %d\n", yylval.INT); |
486 |
verb_printf("MAXRESIDENT:\t %d\n", yylval.INT); |
457 |
maxresident = yylval.INT; |
487 |
maxresident = yylval.INT; |
458 |
} |
488 |
} |
|
|
489 |
; |
459 |
|
490 |
|
460 |
minresident : MINRESIDENT NUMBER L_EOS { |
491 |
minresident : MINRESIDENT NUMBER L_EOS { |
461 |
verb_printf("MINRESIDENT:\t %d\n", yylval.INT); |
492 |
verb_printf("MINRESIDENT:\t %d\n", yylval.INT); |
462 |
minresident = yylval.INT; |
493 |
minresident = yylval.INT; |
463 |
} |
494 |
} |
|
|
495 |
; |
464 |
|
496 |
|
465 |
bind : BIND_T string L_EOS { |
497 |
bind : BIND_T string L_EOS { |
466 |
bind_addr = $2; |
498 |
bind_addr = $2; |
467 |
} |
499 |
} |
|
|
500 |
; |
468 |
|
501 |
|
469 |
http_port : HTTP_PORT NUMBER L_EOS { |
502 |
http_port : HTTP_PORT NUMBER L_EOS { |
470 |
verb_printf("HTTP_PORT\t<<%d>>\n", yylval.INT); |
503 |
verb_printf("HTTP_PORT\t<<%d>>\n", yylval.INT); |
471 |
http_port = yylval.INT; |
504 |
http_port = yylval.INT; |
472 |
} |
505 |
} |
|
|
506 |
; |
473 |
|
507 |
|
474 |
icp_port : ICP_PORT NUMBER L_EOS { |
508 |
icp_port : ICP_PORT NUMBER L_EOS { |
475 |
verb_printf("ICP_PORT\t<<%d>>\n", yylval.INT); |
509 |
verb_printf("ICP_PORT\t<<%d>>\n", yylval.INT); |
476 |
icp_port = yylval.INT; |
510 |
icp_port = yylval.INT; |
477 |
} |
511 |
} |
|
|
512 |
; |
478 |
|
513 |
|
479 |
icp_timeout : ICP_TIMEOUT NUMBER L_EOS { |
514 |
icp_timeout : ICP_TIMEOUT NUMBER L_EOS { |
480 |
verb_printf("ICP_TIMEOUT\t<<%d>>\n", yylval.INT); |
515 |
verb_printf("ICP_TIMEOUT\t<<%d>>\n", yylval.INT); |
481 |
icp_timeout = 1000*yylval.INT; |
516 |
icp_timeout = 1000*yylval.INT; |
482 |
} |
517 |
} |
|
|
518 |
; |
483 |
|
519 |
|
484 |
icons_host : ICONS_HOST STRING L_EOS { |
520 |
icons_host : ICONS_HOST STRING L_EOS { |
485 |
verb_printf("ICONS_HOST:\t<<%s>>\n", yylval.STRPTR); |
521 |
verb_printf("ICONS_HOST:\t<<%s>>\n", yylval.STRPTR); |
486 |
strncpy(icons_host, yylval.STRPTR, sizeof(icons_host)-1); |
522 |
strncpy(icons_host, yylval.STRPTR, sizeof(icons_host)-1); |
487 |
free(yylval.STRPTR); |
523 |
free(yylval.STRPTR); |
488 |
} |
524 |
} |
|
|
525 |
; |
489 |
|
526 |
|
490 |
icons_port : ICONS_PORT NUMBER L_EOS { |
527 |
icons_port : ICONS_PORT NUMBER L_EOS { |
491 |
verb_printf("ICONS_PORT:\t<<%d>>\n", yylval.INT); |
528 |
verb_printf("ICONS_PORT:\t<<%d>>\n", yylval.INT); |
492 |
sprintf(icons_port, "%d", yylval.INT); |
529 |
sprintf(icons_port, "%d", yylval.INT); |
493 |
} |
530 |
} |
|
|
531 |
; |
494 |
|
532 |
|
495 |
icons_path : ICONS_PATH STRING L_EOS { |
533 |
icons_path : ICONS_PATH STRING L_EOS { |
496 |
verb_printf("ICONS_PATH:\t<<%s>>\n", yylval.STRPTR); |
534 |
verb_printf("ICONS_PATH:\t<<%s>>\n", yylval.STRPTR); |
497 |
strncpy(icons_path, yylval.STRPTR, sizeof(icons_path)-1); |
535 |
strncpy(icons_path, yylval.STRPTR, sizeof(icons_path)-1); |
498 |
free(yylval.STRPTR); |
536 |
free(yylval.STRPTR); |
499 |
} |
537 |
} |
|
|
538 |
; |
500 |
|
539 |
|
501 |
always_check_freshness : ALWAYS_CHECK_FRESHNESS_T L_EOS { |
540 |
always_check_freshness : ALWAYS_CHECK_FRESHNESS_T L_EOS { |
502 |
verb_printf("ALWAYS CHECK FRESHNESS\n"); |
541 |
verb_printf("ALWAYS CHECK FRESHNESS\n"); |
503 |
always_check_freshness = TRUE; |
542 |
always_check_freshness = TRUE; |
504 |
} |
543 |
} |
|
|
544 |
; |
545 |
|
505 |
always_check_freshness_acl : ALWAYS_CHECK_FRESHNESS_ACL_T STRING L_EOS { |
546 |
always_check_freshness_acl : ALWAYS_CHECK_FRESHNESS_ACL_T STRING L_EOS { |
506 |
verb_printf("ALWAYS CHECK FRESHNESS ACL\n"); |
547 |
verb_printf("ALWAYS CHECK FRESHNESS ACL\n"); |
507 |
parse_acl_access(&always_check_freshness_acl, yylval.STRPTR); |
548 |
parse_acl_access(&always_check_freshness_acl, yylval.STRPTR); |
508 |
free(yylval.STRPTR); |
549 |
free(yylval.STRPTR); |
509 |
} |
550 |
} |
|
|
551 |
; |
510 |
|
552 |
|
511 |
force_http11 : FORCE_HTTP11_T L_EOS { |
553 |
force_http11 : FORCE_HTTP11_T L_EOS { |
512 |
verb_printf("FORCE_HTTP11\n"); |
554 |
verb_printf("FORCE_HTTP11\n"); |
513 |
force_http11 = TRUE; |
555 |
force_http11 = TRUE; |
514 |
} |
556 |
} |
|
|
557 |
; |
558 |
|
515 |
force_completion : FORCE_COMPLETION_T NUMBER L_EOS { |
559 |
force_completion : FORCE_COMPLETION_T NUMBER L_EOS { |
516 |
verb_printf("FORCE_COMPLETION: %d%%\n", yylval.INT); |
560 |
verb_printf("FORCE_COMPLETION: %d%%\n", yylval.INT); |
517 |
force_completion = yylval.INT; |
561 |
force_completion = yylval.INT; |
518 |
} |
562 |
} |
|
|
563 |
; |
564 |
|
519 |
last_modified_factor : LAST_MODIFIED_FACTOR_T NUMBER L_EOS { |
565 |
last_modified_factor : LAST_MODIFIED_FACTOR_T NUMBER L_EOS { |
520 |
verb_printf("LAST_MODIFIED_FACTOR: %d\n", yylval.INT); |
566 |
verb_printf("LAST_MODIFIED_FACTOR: %d\n", yylval.INT); |
521 |
last_modified_factor = yylval.INT; |
567 |
last_modified_factor = yylval.INT; |
522 |
} |
568 |
} |
|
|
569 |
; |
570 |
|
523 |
expire_value : EXPIRE_VALUE NUMBER L_EOS { |
571 |
expire_value : EXPIRE_VALUE NUMBER L_EOS { |
524 |
verb_printf("EXPIRE_VALUE:\t<<%d days>>\n", yylval.INT); |
572 |
verb_printf("EXPIRE_VALUE:\t<<%d days>>\n", yylval.INT); |
525 |
default_expire_value=yylval.INT * 24 * 3600; |
573 |
default_expire_value=yylval.INT * 24 * 3600; |
526 |
} |
574 |
} |
|
|
575 |
; |
527 |
|
576 |
|
528 |
expiretime : EXPIRE_TIME_T string_list { |
577 |
expiretime : EXPIRE_TIME_T string_list { |
529 |
struct denytime *denytime; |
578 |
struct denytime *denytime; |
Lines 537-566
Link Here
|
537 |
} |
586 |
} |
538 |
free_string_list($2); |
587 |
free_string_list($2); |
539 |
} |
588 |
} |
|
|
589 |
; |
590 |
|
540 |
max_expire_value : MAX_EXPIRE_VALUE_T NUMBER L_EOS { |
591 |
max_expire_value : MAX_EXPIRE_VALUE_T NUMBER L_EOS { |
541 |
verb_printf("MAX_EXPIRE_VALUE:\t<<%d days>>\n", yylval.INT); |
592 |
verb_printf("MAX_EXPIRE_VALUE:\t<<%d days>>\n", yylval.INT); |
542 |
max_expire_value=yylval.INT * 24 * 3600; |
593 |
max_expire_value=yylval.INT * 24 * 3600; |
543 |
} |
594 |
} |
|
|
595 |
; |
544 |
|
596 |
|
545 |
ftp_expire_value : FTP_EXPIRE_VALUE_T NUMBER L_EOS { |
597 |
ftp_expire_value : FTP_EXPIRE_VALUE_T NUMBER L_EOS { |
546 |
verb_printf("FTP_EXPIRE_VALUE:\t<<%d days>>\n", yylval.INT); |
598 |
verb_printf("FTP_EXPIRE_VALUE:\t<<%d days>>\n", yylval.INT); |
547 |
ftp_expire_value=yylval.INT * 24 * 3600; |
599 |
ftp_expire_value=yylval.INT * 24 * 3600; |
548 |
} |
600 |
} |
|
|
601 |
; |
549 |
|
602 |
|
550 |
expire_interval : EXPIRE_INTERVAL NUMBER L_EOS { |
603 |
expire_interval : EXPIRE_INTERVAL NUMBER L_EOS { |
551 |
verb_printf("EXPIRE_INTERVAL:<<%d hours>>\n", yylval.INT); |
604 |
verb_printf("EXPIRE_INTERVAL:<<%d hours>>\n", yylval.INT); |
552 |
default_expire_interval=yylval.INT * 3600; |
605 |
default_expire_interval=yylval.INT * 3600; |
553 |
} |
606 |
} |
|
|
607 |
; |
554 |
|
608 |
|
555 |
disk_low_free : DISK_LOW_FREE_T NUMBER L_EOS { |
609 |
disk_low_free : DISK_LOW_FREE_T NUMBER L_EOS { |
556 |
verb_printf("DISK_LOW_FREE:\t<<%d %%>>\n", yylval.INT); |
610 |
verb_printf("DISK_LOW_FREE:\t<<%d %%>>\n", yylval.INT); |
557 |
disk_low_free=yylval.INT ; |
611 |
disk_low_free=yylval.INT ; |
558 |
} |
612 |
} |
|
|
613 |
; |
559 |
|
614 |
|
560 |
disk_hi_free : DISK_HI_FREE_T NUMBER L_EOS { |
615 |
disk_hi_free : DISK_HI_FREE_T NUMBER L_EOS { |
561 |
verb_printf("DISK_HI_FREE:\t<<%d %%>>\n", yylval.INT); |
616 |
verb_printf("DISK_HI_FREE:\t<<%d %%>>\n", yylval.INT); |
562 |
disk_hi_free=yylval.INT ; |
617 |
disk_hi_free=yylval.INT ; |
563 |
} |
618 |
} |
|
|
619 |
; |
564 |
|
620 |
|
565 |
parent : PARENT_T string num L_EOS{ |
621 |
parent : PARENT_T string num L_EOS{ |
566 |
verb_printf("PARENT: %s:%d\n", $2, $3); |
622 |
verb_printf("PARENT: %s:%d\n", $2, $3); |
Lines 568-579
Link Here
|
568 |
parent_port = $3; |
624 |
parent_port = $3; |
569 |
free($2); |
625 |
free($2); |
570 |
} |
626 |
} |
|
|
627 |
; |
571 |
|
628 |
|
572 |
parent_auth : PARENT_AUTH_T string L_EOS{ |
629 |
parent_auth : PARENT_AUTH_T string L_EOS{ |
573 |
verb_printf("PARENT_AUTH: %s\n", $2); |
630 |
verb_printf("PARENT_AUTH: %s\n", $2); |
574 |
parent_auth = base64_encode($2); |
631 |
parent_auth = base64_encode($2); |
575 |
free($2); |
632 |
free($2); |
576 |
} |
633 |
} |
|
|
634 |
; |
577 |
|
635 |
|
578 |
local_domain : LOCAL_DOMAIN_T domainlist L_EOS { |
636 |
local_domain : LOCAL_DOMAIN_T domainlist L_EOS { |
579 |
struct domain_list *d; |
637 |
struct domain_list *d; |
Lines 591-596
Link Here
|
591 |
} |
649 |
} |
592 |
} |
650 |
} |
593 |
} |
651 |
} |
|
|
652 |
; |
594 |
|
653 |
|
595 |
local_networks : LOCAL_NETWORKS_T network_list L_EOS { |
654 |
local_networks : LOCAL_NETWORKS_T network_list L_EOS { |
596 |
struct cidr_net *n; |
655 |
struct cidr_net *n; |
Lines 607-653
Link Here
|
607 |
} |
666 |
} |
608 |
} |
667 |
} |
609 |
} |
668 |
} |
|
|
669 |
; |
610 |
|
670 |
|
611 |
dbhome : DBHOME STRING L_EOS { |
671 |
dbhome : DBHOME STRING L_EOS { |
612 |
printf("WARNING!!!! dbhome must be moved to module berkeley_db\n"); |
672 |
printf("WARNING!!!! dbhome must be moved to module berkeley_db\n"); |
613 |
free(yylval.STRPTR); |
673 |
free(yylval.STRPTR); |
614 |
} |
674 |
} |
|
|
675 |
; |
615 |
|
676 |
|
616 |
dbname : DBNAME STRING L_EOS { |
677 |
dbname : DBNAME STRING L_EOS { |
617 |
printf("WARNING!!!! dbname must be moved to module berkeley_db\n"); |
678 |
printf("WARNING!!!! dbname must be moved to module berkeley_db\n"); |
618 |
free(yylval.STRPTR); |
679 |
free(yylval.STRPTR); |
619 |
} |
680 |
} |
|
|
681 |
; |
620 |
|
682 |
|
621 |
db_cache_mem : DB_CACHE_MEM num L_EOS { |
683 |
db_cache_mem : DB_CACHE_MEM num L_EOS { |
622 |
printf("WARNING!!!! db_cache_mem must be moved to module berkeley_db\n"); |
684 |
printf("WARNING!!!! db_cache_mem must be moved to module berkeley_db\n"); |
623 |
} |
685 |
} |
|
|
686 |
; |
624 |
|
687 |
|
625 |
mem_max : MEM_MAX num L_EOS { |
688 |
mem_max : MEM_MAX num L_EOS { |
626 |
verb_printf("MEM_MAX:\t<<%d>>\n", $2); |
689 |
verb_printf("MEM_MAX:\t<<%d>>\n", $2); |
627 |
mem_max_val = $2 ; |
690 |
mem_max_val = $2 ; |
628 |
} |
691 |
} |
|
|
692 |
; |
629 |
|
693 |
|
630 |
lo_mark : LO_MARK num L_EOS { |
694 |
lo_mark : LO_MARK num L_EOS { |
631 |
verb_printf("LO_MARK:\t<<%d>>\n", $2); |
695 |
verb_printf("LO_MARK:\t<<%d>>\n", $2); |
632 |
lo_mark_val = $2 ; |
696 |
lo_mark_val = $2 ; |
633 |
} |
697 |
} |
|
|
698 |
; |
634 |
|
699 |
|
635 |
swap_advance : SWAP_ADVANCE_T num L_EOS { |
700 |
swap_advance : SWAP_ADVANCE_T num L_EOS { |
636 |
verb_printf("SWAP_ADVANCE:\t<<%d>>\n", $2); |
701 |
verb_printf("SWAP_ADVANCE:\t<<%d>>\n", $2); |
637 |
swap_advance = $2 ; |
702 |
swap_advance = $2 ; |
638 |
if ( swap_advance <= 0 ) swap_advance = 1; |
703 |
if ( swap_advance <= 0 ) swap_advance = 1; |
639 |
} |
704 |
} |
|
|
705 |
; |
640 |
|
706 |
|
641 |
hi_mark : HI_MARK num L_EOS { |
707 |
hi_mark : HI_MARK num L_EOS { |
642 |
verb_printf("HI_MARK:\t<<%d>>\n", $2); |
708 |
verb_printf("HI_MARK:\t<<%d>>\n", $2); |
643 |
hi_mark_val = $2 ; |
709 |
hi_mark_val = $2 ; |
644 |
} |
710 |
} |
|
|
711 |
; |
645 |
|
712 |
|
646 |
num : NUMBER { $$ = yylval.INT;} |
713 |
num : NUMBER { $$ = yylval.INT;}; |
647 |
|
714 |
|
648 |
offset : NUMBER { $$ = yylval.OFFSET;} |
715 |
offset : NUMBER { $$ = yylval.OFFSET;}; |
649 |
|
716 |
|
650 |
string : STRING { $$ = yylval.STRPTR; } |
717 |
string : STRING { $$ = yylval.STRPTR; }; |
651 |
|
718 |
|
652 |
module : MODULE module_name '{' mod_ops '}' L_EOS { |
719 |
module : MODULE module_name '{' mod_ops '}' L_EOS { |
653 |
struct string_list *list = $4; |
720 |
struct string_list *list = $4; |
Lines 683-688
Link Here
|
683 |
if ( mod && mod->config_end ) (*mod->config_end)(0); |
750 |
if ( mod && mod->config_end ) (*mod->config_end)(0); |
684 |
free($2); |
751 |
free($2); |
685 |
} |
752 |
} |
|
|
753 |
; |
754 |
|
686 |
mod_ops : mod_op { |
755 |
mod_ops : mod_op { |
687 |
$$ = $1; |
756 |
$$ = $1; |
688 |
verb_printf("mod_op: %s\n", $$->string); |
757 |
verb_printf("mod_op: %s\n", $$->string); |
Lines 694-699
Link Here
|
694 |
$$ = $1; |
763 |
$$ = $1; |
695 |
verb_printf("mod_op: %s\n", $2->string); |
764 |
verb_printf("mod_op: %s\n", $2->string); |
696 |
} |
765 |
} |
|
|
766 |
; |
697 |
|
767 |
|
698 |
mod_op : string { |
768 |
mod_op : string { |
699 |
struct string_list *new = xmalloc(sizeof(*new), "parser: mod_ops"); |
769 |
struct string_list *new = xmalloc(sizeof(*new), "parser: mod_ops"); |
Lines 711-720
Link Here
|
711 |
new->string = new_str; |
781 |
new->string = new_str; |
712 |
$$=new; |
782 |
$$=new; |
713 |
} |
783 |
} |
|
|
784 |
; |
714 |
|
785 |
|
715 |
module_name : STRING { |
786 |
module_name : STRING { |
716 |
$$ = yylval.STRPTR; |
787 |
$$ = yylval.STRPTR; |
717 |
} |
788 |
} |
|
|
789 |
; |
718 |
|
790 |
|
719 |
|
791 |
|
720 |
storage : STORAGE '{' st_ops '}' L_EOS { |
792 |
storage : STORAGE '{' st_ops '}' L_EOS { |
Lines 746-751
Link Here
|
746 |
storage_size = 0; |
818 |
storage_size = 0; |
747 |
storage_offset = 0; |
819 |
storage_offset = 0; |
748 |
} |
820 |
} |
|
|
821 |
; |
749 |
|
822 |
|
750 |
peerconfig : PEER_PARENT_T ';' { |
823 |
peerconfig : PEER_PARENT_T ';' { |
751 |
if ( !peerc_ptr ) |
824 |
if ( !peerc_ptr ) |
Lines 803-811
Link Here
|
803 |
$1->next = peerc_ptr->acls->deny; |
876 |
$1->next = peerc_ptr->acls->deny; |
804 |
peerc_ptr->acls->deny = $1; |
877 |
peerc_ptr->acls->deny = $1; |
805 |
} |
878 |
} |
|
|
879 |
; |
806 |
|
880 |
|
807 |
peerops : peerconfig {} |
881 |
peerops : peerconfig {} |
808 |
| peerops peerconfig {} |
882 |
| peerops peerconfig {} |
|
|
883 |
; |
809 |
|
884 |
|
810 |
peer : PEER_T string num num '{' peerops '}' L_EOS { |
885 |
peer : PEER_T string num num '{' peerops '}' L_EOS { |
811 |
struct peer *peer,*p; |
886 |
struct peer *peer,*p; |
Lines 837-850
Link Here
|
837 |
peer_c.type = PEER_SIBLING; |
912 |
peer_c.type = PEER_SIBLING; |
838 |
peerc_ptr = NULL; |
913 |
peerc_ptr = NULL; |
839 |
} |
914 |
} |
|
|
915 |
; |
840 |
|
916 |
|
841 |
st_ops : st_op {} |
917 |
st_ops : st_op {} |
842 |
| st_op st_ops {} |
918 |
| st_op st_ops {} |
|
|
919 |
; |
843 |
|
920 |
|
844 |
st_op : SIZE offset ';' { storage_size = $2; } |
921 |
st_op : SIZE offset ';' { storage_size = $2; } |
845 |
| SIZE AUTO_T ';' { storage_size = -1; } |
922 |
| SIZE AUTO_T ';' { storage_size = -1; } |
846 |
| STORAGE_OFFSET_T offset ';' {storage_offset = $2; } |
923 |
| STORAGE_OFFSET_T offset ';' {storage_offset = $2; } |
847 |
| PATH STRING ';' { storage_path = yylval.STRPTR; } |
924 |
| PATH STRING ';' { storage_path = yylval.STRPTR; } |
|
|
925 |
; |
848 |
|
926 |
|
849 |
group : GROUP group_name '{' group_ops '}' L_EOS { |
927 |
group : GROUP group_name '{' group_ops '}' L_EOS { |
850 |
struct group_ops_struct *ops, *next_ops; |
928 |
struct group_ops_struct *ops, *next_ops; |
Lines 977-988
Link Here
|
977 |
g->next = new_grp; |
1055 |
g->next = new_grp; |
978 |
} |
1056 |
} |
979 |
} |
1057 |
} |
|
|
1058 |
; |
1059 |
|
980 |
group_name : STRING { |
1060 |
group_name : STRING { |
981 |
$$ = yylval.STRPTR; |
1061 |
$$ = yylval.STRPTR; |
982 |
} |
1062 |
} |
|
|
1063 |
; |
983 |
|
1064 |
|
984 |
group_ops : group_op { $$ = $1;} |
1065 |
group_ops : group_op { $$ = $1;} |
985 |
| group_op group_ops { $1->next = $2; $$=$1;} |
1066 |
| group_op group_ops { $1->next = $2; $$=$1;} |
|
|
1067 |
; |
986 |
|
1068 |
|
987 |
group_op : NETWORKS network_list ';' { |
1069 |
group_op : NETWORKS network_list ';' { |
988 |
struct group_ops_struct *new; |
1070 |
struct group_ops_struct *new; |
Lines 1034-1039
Link Here
|
1034 |
| denytime { $$ = $1; } |
1116 |
| denytime { $$ = $1; } |
1035 |
| auth_mods { $$ = $1; } |
1117 |
| auth_mods { $$ = $1; } |
1036 |
| redir_mods { $$ = $1; } |
1118 |
| redir_mods { $$ = $1; } |
|
|
1119 |
; |
1037 |
|
1120 |
|
1038 |
denytime : DENYTIME_T string_list { |
1121 |
denytime : DENYTIME_T string_list { |
1039 |
struct group_ops_struct *new_op; |
1122 |
struct group_ops_struct *new_op; |
Lines 1055-1060
Link Here
|
1055 |
} |
1138 |
} |
1056 |
free_string_list($2); |
1139 |
free_string_list($2); |
1057 |
} |
1140 |
} |
|
|
1141 |
; |
1142 |
|
1058 |
miss : MISS_T DENY ';' { |
1143 |
miss : MISS_T DENY ';' { |
1059 |
struct group_ops_struct *new_op; |
1144 |
struct group_ops_struct *new_op; |
1060 |
|
1145 |
|
Lines 1085-1090
Link Here
|
1085 |
$$ = new_op; |
1170 |
$$ = new_op; |
1086 |
} |
1171 |
} |
1087 |
} |
1172 |
} |
|
|
1173 |
; |
1088 |
|
1174 |
|
1089 |
auth_mods : AUTH_MODS_T string_list ';' { |
1175 |
auth_mods : AUTH_MODS_T string_list ';' { |
1090 |
struct group_ops_struct *new_op; |
1176 |
struct group_ops_struct *new_op; |
Lines 1101-1106
Link Here
|
1101 |
$$ = new_op; |
1187 |
$$ = new_op; |
1102 |
} |
1188 |
} |
1103 |
} |
1189 |
} |
|
|
1190 |
; |
1191 |
|
1104 |
redir_mods : REDIR_MODS_T string_list ';' { |
1192 |
redir_mods : REDIR_MODS_T string_list ';' { |
1105 |
struct group_ops_struct *new_op; |
1193 |
struct group_ops_struct *new_op; |
1106 |
|
1194 |
|
Lines 1116-1121
Link Here
|
1116 |
$$ = new_op; |
1204 |
$$ = new_op; |
1117 |
} |
1205 |
} |
1118 |
} |
1206 |
} |
|
|
1207 |
; |
1208 |
|
1119 |
bandwidth : BANDWIDTH_T num ';' { |
1209 |
bandwidth : BANDWIDTH_T num ';' { |
1120 |
struct group_ops_struct *new_op; |
1210 |
struct group_ops_struct *new_op; |
1121 |
|
1211 |
|
Lines 1131-1136
Link Here
|
1131 |
$$ = new_op; |
1221 |
$$ = new_op; |
1132 |
} |
1222 |
} |
1133 |
} |
1223 |
} |
|
|
1224 |
; |
1225 |
|
1134 |
per_sess_bw : PER_SESS_BW_T num ';' { |
1226 |
per_sess_bw : PER_SESS_BW_T num ';' { |
1135 |
struct group_ops_struct *new_op; |
1227 |
struct group_ops_struct *new_op; |
1136 |
|
1228 |
|
Lines 1146-1151
Link Here
|
1146 |
$$ = new_op; |
1238 |
$$ = new_op; |
1147 |
} |
1239 |
} |
1148 |
} |
1240 |
} |
|
|
1241 |
; |
1242 |
|
1149 |
per_ip_bw : PER_IP_BW_T num ';' { |
1243 |
per_ip_bw : PER_IP_BW_T num ';' { |
1150 |
struct group_ops_struct *new_op; |
1244 |
struct group_ops_struct *new_op; |
1151 |
|
1245 |
|
Lines 1161-1166
Link Here
|
1161 |
$$ = new_op; |
1255 |
$$ = new_op; |
1162 |
} |
1256 |
} |
1163 |
} |
1257 |
} |
|
|
1258 |
; |
1259 |
|
1164 |
per_ip_conn : PER_IP_CONN_T num ';' { |
1260 |
per_ip_conn : PER_IP_CONN_T num ';' { |
1165 |
struct group_ops_struct *new_op; |
1261 |
struct group_ops_struct *new_op; |
1166 |
|
1262 |
|
Lines 1176-1181
Link Here
|
1176 |
$$ = new_op; |
1272 |
$$ = new_op; |
1177 |
} |
1273 |
} |
1178 |
} |
1274 |
} |
|
|
1275 |
; |
1276 |
|
1179 |
conn_from : CONN_FROM_T string ';' { |
1277 |
conn_from : CONN_FROM_T string ';' { |
1180 |
struct group_ops_struct *new_op; |
1278 |
struct group_ops_struct *new_op; |
1181 |
|
1279 |
|
Lines 1205-1210
Link Here
|
1205 |
$$ = new_op; |
1303 |
$$ = new_op; |
1206 |
} |
1304 |
} |
1207 |
} |
1305 |
} |
|
|
1306 |
; |
1307 |
|
1208 |
range : '[' num ':' num ']' { |
1308 |
range : '[' num ':' num ']' { |
1209 |
if ( !badp_p ) badp_p = &badports[0]; |
1309 |
if ( !badp_p ) badp_p = &badports[0]; |
1210 |
badp_p->from = $2; |
1310 |
badp_p->from = $2; |
Lines 1242-1250
Link Here
|
1242 |
} |
1342 |
} |
1243 |
free($2); |
1343 |
free($2); |
1244 |
} |
1344 |
} |
|
|
1345 |
; |
1245 |
|
1346 |
|
1246 |
ranges : range {} |
1347 |
ranges : range {} |
1247 |
| range ',' ranges {} |
1348 |
| range ',' ranges {} |
|
|
1349 |
; |
1248 |
|
1350 |
|
1249 |
badports : BADPORTS_T ranges ';' { |
1351 |
badports : BADPORTS_T ranges ';' { |
1250 |
struct group_ops_struct *new_op; |
1352 |
struct group_ops_struct *new_op; |
Lines 1270-1275
Link Here
|
1270 |
} |
1372 |
} |
1271 |
} |
1373 |
} |
1272 |
} |
1374 |
} |
|
|
1375 |
; |
1273 |
|
1376 |
|
1274 |
icp : ICP '{' deny_acls allow_acls '}' { |
1377 |
icp : ICP '{' deny_acls allow_acls '}' { |
1275 |
struct acls *new_acls; |
1378 |
struct acls *new_acls; |
Lines 1371-1376
Link Here
|
1371 |
} |
1474 |
} |
1372 |
} |
1475 |
} |
1373 |
} |
1476 |
} |
|
|
1477 |
; |
1374 |
|
1478 |
|
1375 |
http : HTTP '{' deny_acls allow_acls '}' { |
1479 |
http : HTTP '{' deny_acls allow_acls '}' { |
1376 |
struct acls *new_acls; |
1480 |
struct acls *new_acls; |
Lines 1472-1479
Link Here
|
1472 |
} |
1576 |
} |
1473 |
} |
1577 |
} |
1474 |
} |
1578 |
} |
|
|
1579 |
; |
1580 |
|
1475 |
deny_acls : deny_acl { $$ = $1; } |
1581 |
deny_acls : deny_acl { $$ = $1; } |
1476 |
| deny_acl deny_acls { $2->next = $1 ; $$ = $2; } |
1582 |
| deny_acl deny_acls { $2->next = $1 ; $$ = $2; } |
|
|
1583 |
; |
1477 |
|
1584 |
|
1478 |
deny_acl : DENY DSTDOMAIN string_list ';' { |
1585 |
deny_acl : DENY DSTDOMAIN string_list ';' { |
1479 |
struct acl *new = xmalloc(sizeof(*new), "parser: deny_acl new acl 2"); |
1586 |
struct acl *new = xmalloc(sizeof(*new), "parser: deny_acl new acl 2"); |
Lines 1495-1503
Link Here
|
1495 |
} |
1602 |
} |
1496 |
free_string_list($3); |
1603 |
free_string_list($3); |
1497 |
} |
1604 |
} |
|
|
1605 |
; |
1498 |
|
1606 |
|
1499 |
allow_acls : allow_acl { $$ = $1; } |
1607 |
allow_acls : allow_acl { $$ = $1; } |
1500 |
| allow_acl allow_acls { $1->next = $2 ; $$ = $1; } |
1608 |
| allow_acl allow_acls { $1->next = $2 ; $$ = $1; } |
|
|
1609 |
; |
1501 |
|
1610 |
|
1502 |
allow_acl : ALLOW DSTDOMAIN string_list ';' { |
1611 |
allow_acl : ALLOW DSTDOMAIN string_list ';' { |
1503 |
struct acl *new = xmalloc(sizeof(*new), "parser: allow_acl new acl 2"); |
1612 |
struct acl *new = xmalloc(sizeof(*new), "parser: allow_acl new acl 2"); |
Lines 1519-1524
Link Here
|
1519 |
} |
1628 |
} |
1520 |
free_string_list($3); |
1629 |
free_string_list($3); |
1521 |
} |
1630 |
} |
|
|
1631 |
; |
1522 |
|
1632 |
|
1523 |
string_list : string_list_e { $$ = $1; } |
1633 |
string_list : string_list_e { $$ = $1; } |
1524 |
| string_list_e string_list { |
1634 |
| string_list_e string_list { |
Lines 1539-1544
Link Here
|
1539 |
d = d->next; |
1649 |
d = d->next; |
1540 |
} |
1650 |
} |
1541 |
} |
1651 |
} |
|
|
1652 |
; |
1542 |
|
1653 |
|
1543 |
string_list_e : string { |
1654 |
string_list_e : string { |
1544 |
struct string_list *new; |
1655 |
struct string_list *new; |
Lines 1551-1556
Link Here
|
1551 |
$$ = new; |
1662 |
$$ = new; |
1552 |
free($1); |
1663 |
free($1); |
1553 |
} |
1664 |
} |
|
|
1665 |
; |
1666 |
|
1554 |
domainlist : domain { |
1667 |
domainlist : domain { |
1555 |
struct domain_list *d=$1; |
1668 |
struct domain_list *d=$1; |
1556 |
verb_printf("<%s>\n", d->domain); |
1669 |
verb_printf("<%s>\n", d->domain); |
Lines 1588-1599
Link Here
|
1588 |
new->next = NULL; |
1701 |
new->next = NULL; |
1589 |
$$ = new; |
1702 |
$$ = new; |
1590 |
} |
1703 |
} |
|
|
1704 |
; |
1591 |
|
1705 |
|
1592 |
|
1706 |
|
1593 |
network_list : network |
1707 |
network_list : network |
1594 |
| network network_list { |
1708 |
| network network_list { |
1595 |
$1->next = $2; $$ = $1; |
1709 |
$1->next = $2; $$ = $1; |
1596 |
} |
1710 |
} |
|
|
1711 |
; |
1597 |
|
1712 |
|
1598 |
network : NETWORK { |
1713 |
network : NETWORK { |
1599 |
char *n, *l, *dot, *dot_holder, *t; |
1714 |
char *n, *l, *dot, *dot_holder, *t; |
Lines 1632-1637
Link Here
|
1632 |
free(yylval.STRPTR); |
1747 |
free(yylval.STRPTR); |
1633 |
$$ = new; |
1748 |
$$ = new; |
1634 |
} |
1749 |
} |
|
|
1750 |
; |
1635 |
|
1751 |
|
1636 |
|
1752 |
|
1637 |
%% |
1753 |
%% |