88
87
gchar __buf[256]; \
89
88
g_snprintf(__buf, sizeof(__buf), errorfmt ? errorfmt : "x", ## __VA_ARGS__); \
90
yyerror(& (token), lexer, NULL, __buf); \
89
yyerror(& (token), lexer, NULL, NULL, __buf); \
318
329
source_affile_params
321
(*last_driver) = affile_sd_new($1, 0);
332
last_driver = *instance = affile_sd_new($1, 0);
323
last_reader_options = &((AFFileSourceDriver *) (*last_driver))->reader_options;
334
last_reader_options = &((AFFileSourceDriver *) last_driver)->reader_options;
325
source_affile_options { $$ = (*last_driver); }
336
source_affile_options { $$ = last_driver; }
328
339
source_affile_options
340
351
source_afpipe_params
343
(*last_driver) = affile_sd_new($1, AFFILE_PIPE);
354
last_driver = *instance = affile_sd_new($1, AFFILE_PIPE);
345
last_reader_options = &((AFFileSourceDriver *) (*last_driver))->reader_options;
356
last_reader_options = &((AFFileSourceDriver *) last_driver)->reader_options;
347
source_afpipe_options { $$ = (*last_driver); }
358
source_afpipe_options { $$ = last_driver; }
350
361
source_afpipe_options
365
376
dest_affile_params
368
(*last_driver) = affile_dd_new($1, 0);
379
last_driver = *instance = affile_dd_new($1, 0);
370
last_writer_options = &((AFFileDestDriver *) (*last_driver))->writer_options;
381
last_writer_options = &((AFFileDestDriver *) last_driver)->writer_options;
372
dest_affile_options { $$ = (*last_driver); }
383
dest_affile_options { $$ = last_driver; }
375
386
dest_affile_options
380
391
dest_affile_option
381
392
: dest_writer_option
382
| KW_OPTIONAL '(' yesno ')' { (*last_driver)->optional = $3; }
383
| KW_OWNER '(' string_or_number ')' { affile_dd_set_file_uid((*last_driver), $3); free($3); }
384
| KW_GROUP '(' string_or_number ')' { affile_dd_set_file_gid((*last_driver), $3); free($3); }
385
| KW_PERM '(' LL_NUMBER ')' { affile_dd_set_file_perm((*last_driver), $3); }
386
| KW_DIR_OWNER '(' string_or_number ')' { affile_dd_set_dir_uid((*last_driver), $3); free($3); }
387
| KW_DIR_GROUP '(' string_or_number ')' { affile_dd_set_dir_gid((*last_driver), $3); free($3); }
388
| KW_DIR_PERM '(' LL_NUMBER ')' { affile_dd_set_dir_perm((*last_driver), $3); }
389
| KW_CREATE_DIRS '(' yesno ')' { affile_dd_set_create_dirs((*last_driver), $3); }
390
| KW_OVERWRITE_IF_OLDER '(' LL_NUMBER ')' { affile_dd_set_overwrite_if_older((*last_driver), $3); }
391
| KW_FSYNC '(' yesno ')' { affile_dd_set_fsync((*last_driver), $3); }
392
| KW_LOCAL_TIME_ZONE '(' string ')' { affile_dd_set_local_time_zone((*last_driver), $3); free($3); }
394
| KW_OPTIONAL '(' yesno ')' { last_driver->optional = $3; }
395
| KW_OWNER '(' string_or_number ')' { affile_dd_set_file_uid(last_driver, $3); free($3); }
396
| KW_OWNER '(' ')' { affile_dd_set_file_uid(last_driver, "-2"); }
397
| KW_GROUP '(' string_or_number ')' { affile_dd_set_file_gid(last_driver, $3); free($3); }
398
| KW_GROUP '(' ')' { affile_dd_set_file_gid(last_driver, "-2"); }
399
| KW_PERM '(' LL_NUMBER ')' { affile_dd_set_file_perm(last_driver, $3); }
400
| KW_PERM '(' ')' { affile_dd_set_file_perm(last_driver, -2); }
401
| KW_DIR_OWNER '(' string_or_number ')' { affile_dd_set_dir_uid(last_driver, $3); free($3); }
402
| KW_DIR_OWNER '(' ')' { affile_dd_set_dir_uid(last_driver, "-2"); }
403
| KW_DIR_GROUP '(' string_or_number ')' { affile_dd_set_dir_gid(last_driver, $3); free($3); }
404
| KW_DIR_GROUP '(' ')' { affile_dd_set_dir_gid(last_driver, "-2"); }
405
| KW_DIR_PERM '(' LL_NUMBER ')' { affile_dd_set_dir_perm(last_driver, $3); }
406
| KW_DIR_PERM '(' ')' { affile_dd_set_dir_perm(last_driver, -2); }
407
| KW_CREATE_DIRS '(' yesno ')' { affile_dd_set_create_dirs(last_driver, $3); }
408
| KW_OVERWRITE_IF_OLDER '(' LL_NUMBER ')' { affile_dd_set_overwrite_if_older(last_driver, $3); }
409
| KW_FSYNC '(' yesno ')' { affile_dd_set_fsync(last_driver, $3); }
410
| KW_LOCAL_TIME_ZONE '(' string ')' { affile_dd_set_local_time_zone(last_driver, $3); free($3); }
395
413
dest_afpipe_params
398
(*last_driver) = affile_dd_new($1, AFFILE_PIPE);
416
last_driver = *instance = affile_dd_new($1, AFFILE_PIPE);
400
last_writer_options = &((AFFileDestDriver *) (*last_driver))->writer_options;
401
last_writer_options->flush_lines = 0;
418
last_writer_options = &((AFFileDestDriver *) last_driver)->writer_options;
403
dest_afpipe_options { $$ = (*last_driver); }
420
dest_afpipe_options { $$ = last_driver; }
406
423
dest_afpipe_options
411
428
dest_afpipe_option
412
429
: dest_writer_option
413
| KW_OWNER '(' string_or_number ')' { affile_dd_set_file_uid((*last_driver), $3); free($3); }
414
| KW_GROUP '(' string_or_number ')' { affile_dd_set_file_gid((*last_driver), $3); free($3); }
415
| KW_PERM '(' LL_NUMBER ')' { affile_dd_set_file_perm((*last_driver), $3); }
431
| KW_OWNER '(' string_or_number ')' { affile_dd_set_file_uid(last_driver, $3); free($3); }
432
| KW_OWNER '(' ')' { affile_dd_set_file_uid(last_driver, "-2"); }
433
| KW_GROUP '(' string_or_number ')' { affile_dd_set_file_gid(last_driver, $3); free($3); }
434
| KW_GROUP '(' ')' { affile_dd_set_file_gid(last_driver, "-2"); }
435
| KW_PERM '(' LL_NUMBER ')' { affile_dd_set_file_perm(last_driver, $3); }
436
| KW_PERM '(' ')' { affile_dd_set_file_perm(last_driver, -2); }
501
/* LogSource related options */
503
/* NOTE: plugins need to set "last_source_options" in order to incorporate this rule in their grammar */
504
: KW_LOG_IW_SIZE '(' LL_NUMBER ')' { last_source_options->init_window_size = $3; }
505
| KW_CHAIN_HOSTNAMES '(' yesno ')' { last_source_options->chain_hostnames = $3; }
506
| KW_NORMALIZE_HOSTNAMES '(' yesno ')' { last_source_options->normalize_hostnames = $3; }
507
| KW_KEEP_HOSTNAME '(' yesno ')' { last_source_options->keep_hostname = $3; }
508
| KW_USE_FQDN '(' yesno ')' { last_source_options->use_fqdn = $3; }
509
| KW_USE_DNS '(' dnsmode ')' { last_source_options->use_dns = $3; }
510
| KW_DNS_CACHE '(' yesno ')' { last_source_options->use_dns_cache = $3; }
511
| KW_PROGRAM_OVERRIDE '(' string ')' { last_source_options->program_override = g_strdup($3); free($3); }
512
| KW_HOST_OVERRIDE '(' string ')' { last_source_options->host_override = g_strdup($3); free($3); }
513
| KW_LOG_PREFIX '(' string ')' { gchar *p = strrchr($3, ':'); if (p) *p = 0; last_source_options->program_override = g_strdup($3); free($3); }
514
| KW_KEEP_TIMESTAMP '(' yesno ')' { last_source_options->keep_timestamp = $3; }
515
| KW_TAGS '(' string_list ')' { log_source_options_set_tags(last_source_options, $3); }
480
519
source_reader_options
481
520
: source_reader_option source_reader_options
524
/* LogReader related options, inherits from LogSource */
485
525
source_reader_option
486
: KW_LOG_IW_SIZE '(' LL_NUMBER ')' { last_reader_options->super.init_window_size = $3; }
487
| KW_CHAIN_HOSTNAMES '(' yesno ')' { last_reader_options->super.chain_hostnames = $3; }
488
| KW_NORMALIZE_HOSTNAMES '(' yesno ')' { last_reader_options->super.normalize_hostnames = $3; }
489
| KW_KEEP_HOSTNAME '(' yesno ')' { last_reader_options->super.keep_hostname = $3; }
490
| KW_USE_FQDN '(' yesno ')' { last_reader_options->super.use_fqdn = $3; }
491
| KW_USE_DNS '(' dnsmode ')' { last_reader_options->super.use_dns = $3; }
492
| KW_DNS_CACHE '(' yesno ')' { last_reader_options->super.use_dns_cache = $3; }
493
| KW_PROGRAM_OVERRIDE '(' string ')' { last_reader_options->super.program_override = g_strdup($3); free($3); }
494
| KW_HOST_OVERRIDE '(' string ')' { last_reader_options->super.host_override = g_strdup($3); free($3); }
495
| KW_LOG_PREFIX '(' string ')' { gchar *p = strrchr($3, ':'); if (p) *p = 0; last_reader_options->super.program_override = g_strdup($3); free($3); }
496
| KW_TIME_ZONE '(' string ')' { last_reader_options->parse_options.recv_time_zone = g_strdup($3); free($3); }
526
/* NOTE: plugins need to set "last_reader_options" in order to incorporate this rule in their grammar */
528
: KW_TIME_ZONE '(' string ')' { last_reader_options->parse_options.recv_time_zone = g_strdup($3); free($3); }
497
529
| KW_CHECK_HOSTNAME '(' yesno ')' { last_reader_options->check_hostname = $3; }
498
530
| KW_FLAGS '(' source_reader_option_flags ')'
499
531
| KW_LOG_MSG_SIZE '(' LL_NUMBER ')' { last_reader_options->msg_size = $3; }
500
532
| KW_LOG_FETCH_LIMIT '(' LL_NUMBER ')' { last_reader_options->fetch_limit = $3; }
501
533
| KW_PAD_SIZE '(' LL_NUMBER ')' { last_reader_options->padding = $3; }
502
| KW_KEEP_TIMESTAMP '(' yesno ')' { last_reader_options->super.keep_timestamp = $3; }
503
534
| KW_ENCODING '(' string ')' { last_reader_options->text_encoding = g_strdup($3); free($3); }
504
| KW_TAGS '(' string_list ')' { log_reader_options_set_tags(last_reader_options, $3); }
505
535
| KW_FORMAT '(' string ')' { last_reader_options->parse_options.format = g_strdup($3); free($3); }
506
536
| KW_DEFAULT_LEVEL '(' level_string ')'
515
545
last_reader_options->parse_options.default_pri = LOG_NOTICE;
516
546
last_reader_options->parse_options.default_pri = (last_reader_options->parse_options.default_pri & 7) | $3;
548
| { last_source_options = &last_reader_options->super; } source_option
520
551
source_reader_option_flags
521
552
: string source_reader_option_flags { CHECK_ERROR(log_reader_options_process_flag(last_reader_options, $1), @1, "Unknown flag %s", $1); free($1); }
553
| KW_CHECK_HOSTNAME source_reader_option_flags { log_reader_options_process_flag(last_reader_options, "check-hostname"); }
558
/* NOTE: plugins need to set "last_driver" in order to incorporate this rule in their grammar */
560
: KW_LOG_FIFO_SIZE '(' LL_NUMBER ')' { ((LogDestDriver *) last_driver)->log_fifo_size = $3; }
561
| KW_THROTTLE '(' LL_NUMBER ')' { ((LogDestDriver *) last_driver)->throttle = $3; }
565
gint context = LL_CONTEXT_INNER_DEST;
568
p = plugin_find(configuration, context, $1);
569
CHECK_ERROR(p, @1, "%s plugin %s not found", cfg_lexer_lookup_context_name_by_type(context), $1);
571
value = plugin_parse_config(p, configuration, &@1, last_driver);
578
log_driver_add_plugin(last_driver, (LogDriverPlugin *) value);
525
582
dest_writer_options
526
583
: dest_writer_option dest_writer_options
530
587
dest_writer_option
588
/* NOTE: plugins need to set "last_writer_options" in order to incorporate this rule in their grammar */
531
590
: KW_FLAGS '(' dest_writer_options_flags ')' { last_writer_options->options = $3; }
532
| KW_LOG_FIFO_SIZE '(' LL_NUMBER ')' { last_writer_options->mem_fifo_size = $3; }
533
591
| KW_FLUSH_LINES '(' LL_NUMBER ')' { last_writer_options->flush_lines = $3; }
534
592
| KW_FLUSH_TIMEOUT '(' LL_NUMBER ')' { last_writer_options->flush_timeout = $3; }
535
593
| KW_SUPPRESS '(' LL_NUMBER ')' { last_writer_options->suppress = $3; }
536
594
| KW_TEMPLATE '(' string ')' {
537
595
GError *error = NULL;
539
last_writer_options->template = cfg_check_inline_template(configuration, $3);
540
CHECK_ERROR(log_template_compile(last_writer_options->template, &error), @3, "Error compiling template (%s)", error->message);
597
last_writer_options->template = cfg_check_inline_template(configuration, $3, &error);
598
CHECK_ERROR(last_writer_options->template != NULL, @3, "Error compiling template (%s)", error->message);
543
601
| KW_TEMPLATE_ESCAPE '(' yesno ')' { log_writer_options_set_template_escape(last_writer_options, $3); }
544
602
| KW_TIME_ZONE '(' string ')' { last_writer_options->template_options.time_zone[LTZ_SEND] = g_strdup($3); free($3); }
545
603
| KW_TS_FORMAT '(' string ')' { last_writer_options->template_options.ts_format = cfg_ts_format_value($3); free($3); }
546
604
| KW_FRAC_DIGITS '(' LL_NUMBER ')' { last_writer_options->template_options.frac_digits = $3; }
547
| KW_THROTTLE '(' LL_NUMBER ')' { last_writer_options->throttle = $3; }
605
| KW_PAD_SIZE '(' LL_NUMBER ')' { last_writer_options->padding = $3; }
550
608
dest_writer_options_flags
615
{ last_value_pairs = value_pairs_new(); }
617
{ $$ = last_value_pairs; }
621
: vp_option vp_options
626
: KW_PAIR '(' string ':' string ')' { value_pairs_add_pair(last_value_pairs, configuration, $3, $5); free($3); free($5); }
627
| KW_PAIR '(' string string ')' { value_pairs_add_pair(last_value_pairs, configuration, $3, $4); free($3); free($4); }
628
| KW_KEY '(' string ')' {
629
gchar *k = g_strconcat("$", $3, NULL);
630
value_pairs_add_pair(last_value_pairs, configuration, $3, k);
634
| KW_EXCLUDE '(' string ')' { value_pairs_add_exclude_glob(last_value_pairs, $3); free($3); }
635
| KW_SCOPE '(' vp_scope_list ')'
639
: string vp_scope_list { value_pairs_add_scope(last_value_pairs, $1); free($1); }