~ubuntu-branches/ubuntu/trusty/syslog-ng/trusty-proposed

« back to all changes in this revision

Viewing changes to lib/block-ref-grammar.y

  • Committer: Package Import Robot
  • Author(s): Laszlo Boszormenyi (GCS), Gergely Nagy
  • Date: 2011-10-11 14:30:48 UTC
  • mfrom: (1.3.7)
  • Revision ID: package-import@ubuntu.com-20111011143048-r1iljux9xbvj3lwh
Tags: 3.3.1.dfsg-1
* New upstream release with important fixes from upstream git tree with
  non-free manpages removed.
* Drop syslog-ng.conf(5) (closes: #496521).
* syslog-ng(8) is generated, and does not mention -Q anymore
  (closes: #616069).
* Supports CAP_SYSLOG on recent kernels (closes: #630172).
* Does not use g_timeout_add_seconds anymore (closes: #609154).

[ Gergely Nagy <algernon@madhouse-project.org> ]
* Update debian/copyright to DEP-5 format.
* Simplified the logrotate file by merging identical entries.
* Include local configuration files from /etc/syslog-ng/conf.d/ (Closes:
  #609050).
* Update syslog-ng.conf to be fully 3.3 compliant.
* Compress both source and binaries (except the syslog-ng meta
  package) with xz, instead of gzip.
* Use dpkg triggers to restart syslog-ng when appropriate.
* Include DFSG-free manual pages for all binaries.
* Build with Hardening enabled.
* Mention syslog(3) in /etc/default/syslog-ng, instead of
  <linux/kernel.h> (Closes: #608605)
* Support 'status' in the init script.
  Patch from Peter Eisentraut <petere@debian.org> (Closes: #644458)
* Build-Depend on libevtlog-dev (>= 0.2.12-5~) for correct shlibs.
* Use [linux-any] in Build-Depends instead of hardcoded links.
  (Closes: #634715)
* Use $SYSLOGNG_OPTS in the init script when reloading syslog-ng.
  (Closes: #589081)

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
%lex-param {CfgLexer *lexer}
35
35
%parse-param {CfgLexer *lexer}
36
36
%parse-param {CfgArgs **result}
 
37
%parse-param {gpointer arg}
37
38
 
38
39
 
39
40
 
72
73
          {                                                             \
73
74
            gchar __buf[256];                                           \
74
75
            g_snprintf(__buf, sizeof(__buf), errorfmt ? errorfmt : "x", ## __VA_ARGS__); \
75
 
            yyerror(& (token), lexer, NULL, __buf);                     \
 
76
            yyerror(& (token), lexer, NULL, NULL, __buf);               \
76
77
          }                                                             \
77
78
        YYERROR;                                                        \
78
79
      }                                                                 \
98
99
%token LL_CONTEXT_PRAGMA              11
99
100
%token LL_CONTEXT_FORMAT              12
100
101
%token LL_CONTEXT_TEMPLATE_FUNC       13
 
102
%token LL_CONTEXT_INNER_DEST          14
 
103
%token LL_CONTEXT_INNER_SRC           15
101
104
 
102
105
/* statements */
103
106
%token KW_SOURCE                      10000
132
135
 
133
136
%token KW_SYSLOG                      10060
134
137
 
135
 
 
136
138
/* option items */
137
139
%token KW_MARK_FREQ                   10071
138
140
%token KW_STATS_FREQ                  10072
176
178
%token KW_HOST_OVERRIDE               10166
177
179
 
178
180
%token KW_THROTTLE                    10170
 
181
%token KW_THREADED                    10171
179
182
 
180
183
/* log statement options */
181
184
%token KW_FLAGS                       10190
260
263
%token LL_EOL                         10428
261
264
%token LL_ERROR                       10429
262
265
 
 
266
/* value pairs */
 
267
%token KW_VALUE_PAIRS                 10500
 
268
%token KW_SELECT                      10501
 
269
%token KW_EXCLUDE                     10502
 
270
%token KW_PAIR                        10503
 
271
%token KW_KEY                         10504
 
272
%token KW_SCOPE                       10505
 
273
 
 
274
 
 
275
%type   <ptr> value_pair_option
263
276
 
264
277
%type   <num> yesno
265
278
%type   <num> dnsmode
353
366
        ;
354
367
 
355
368
 
 
369
/* LogSource related options */
 
370
source_option
 
371
        /* NOTE: plugins need to set "last_source_options" in order to incorporate this rule in their grammar */
 
372
        : KW_LOG_IW_SIZE '(' LL_NUMBER ')'      { last_source_options->init_window_size = $3; }
 
373
        | KW_CHAIN_HOSTNAMES '(' yesno ')'      { last_source_options->chain_hostnames = $3; }
 
374
        | KW_NORMALIZE_HOSTNAMES '(' yesno ')'  { last_source_options->normalize_hostnames = $3; }
 
375
        | KW_KEEP_HOSTNAME '(' yesno ')'        { last_source_options->keep_hostname = $3; }
 
376
        | KW_USE_FQDN '(' yesno ')'             { last_source_options->use_fqdn = $3; }
 
377
        | KW_USE_DNS '(' dnsmode ')'            { last_source_options->use_dns = $3; }
 
378
        | KW_DNS_CACHE '(' yesno ')'            { last_source_options->use_dns_cache = $3; }
 
379
        | KW_PROGRAM_OVERRIDE '(' string ')'    { last_source_options->program_override = g_strdup($3); free($3); }
 
380
        | KW_HOST_OVERRIDE '(' string ')'       { last_source_options->host_override = g_strdup($3); free($3); }
 
381
        | KW_LOG_PREFIX '(' string ')'          { gchar *p = strrchr($3, ':'); if (p) *p = 0; last_source_options->program_override = g_strdup($3); free($3); }
 
382
        | KW_KEEP_TIMESTAMP '(' yesno ')'       { last_source_options->keep_timestamp = $3; }
 
383
        | KW_TAGS '(' string_list ')'           { log_source_options_set_tags(last_source_options, $3); }
 
384
        ;
 
385
 
 
386
 
356
387
source_reader_options
357
388
        : source_reader_option source_reader_options
358
389
        |
359
390
        ;
360
391
 
 
392
/* LogReader related options, inherits from LogSource */
361
393
source_reader_option
362
 
        : KW_LOG_IW_SIZE '(' LL_NUMBER ')'              { last_reader_options->super.init_window_size = $3; }
363
 
        | KW_CHAIN_HOSTNAMES '(' yesno ')'      { last_reader_options->super.chain_hostnames = $3; }
364
 
        | KW_NORMALIZE_HOSTNAMES '(' yesno ')'  { last_reader_options->super.normalize_hostnames = $3; }
365
 
        | KW_KEEP_HOSTNAME '(' yesno ')'        { last_reader_options->super.keep_hostname = $3; }
366
 
        | KW_USE_FQDN '(' yesno ')'             { last_reader_options->super.use_fqdn = $3; }
367
 
        | KW_USE_DNS '(' dnsmode ')'            { last_reader_options->super.use_dns = $3; }
368
 
        | KW_DNS_CACHE '(' yesno ')'            { last_reader_options->super.use_dns_cache = $3; }
369
 
        | KW_PROGRAM_OVERRIDE '(' string ')'    { last_reader_options->super.program_override = g_strdup($3); free($3); }
370
 
        | KW_HOST_OVERRIDE '(' string ')'       { last_reader_options->super.host_override = g_strdup($3); free($3); }
371
 
        | KW_LOG_PREFIX '(' string ')'          { gchar *p = strrchr($3, ':'); if (p) *p = 0; last_reader_options->super.program_override = g_strdup($3); free($3); }
372
 
        | KW_TIME_ZONE '(' string ')'           { last_reader_options->parse_options.recv_time_zone = g_strdup($3); free($3); }
 
394
        /* NOTE: plugins need to set "last_reader_options" in order to incorporate this rule in their grammar */
 
395
 
 
396
        : KW_TIME_ZONE '(' string ')'           { last_reader_options->parse_options.recv_time_zone = g_strdup($3); free($3); }
373
397
        | KW_CHECK_HOSTNAME '(' yesno ')'       { last_reader_options->check_hostname = $3; }
374
398
        | KW_FLAGS '(' source_reader_option_flags ')'
375
399
        | KW_LOG_MSG_SIZE '(' LL_NUMBER ')'     { last_reader_options->msg_size = $3; }
376
400
        | KW_LOG_FETCH_LIMIT '(' LL_NUMBER ')'  { last_reader_options->fetch_limit = $3; }
377
401
        | KW_PAD_SIZE '(' LL_NUMBER ')'         { last_reader_options->padding = $3; }
378
 
        | KW_KEEP_TIMESTAMP '(' yesno ')'       { last_reader_options->super.keep_timestamp = $3; }
379
402
        | KW_ENCODING '(' string ')'            { last_reader_options->text_encoding = g_strdup($3); free($3); }
380
 
        | KW_TAGS '(' string_list ')'           { log_reader_options_set_tags(last_reader_options, $3); }
381
403
        | KW_FORMAT '(' string ')'              { last_reader_options->parse_options.format = g_strdup($3); free($3); }
382
404
        | KW_DEFAULT_LEVEL '(' level_string ')'
383
405
          {
391
413
              last_reader_options->parse_options.default_pri = LOG_NOTICE;
392
414
            last_reader_options->parse_options.default_pri = (last_reader_options->parse_options.default_pri & 7) | $3;
393
415
          }
 
416
        | { last_source_options = &last_reader_options->super; } source_option
394
417
        ;
395
418
 
396
419
source_reader_option_flags
397
420
        : string source_reader_option_flags     { CHECK_ERROR(log_reader_options_process_flag(last_reader_options, $1), @1, "Unknown flag %s", $1); free($1); }
 
421
        | KW_CHECK_HOSTNAME source_reader_option_flags     { log_reader_options_process_flag(last_reader_options, "check-hostname"); }
398
422
        |
399
423
        ;
400
424
 
 
425
dest_driver_option
 
426
        /* NOTE: plugins need to set "last_driver" in order to incorporate this rule in their grammar */
 
427
 
 
428
        : KW_LOG_FIFO_SIZE '(' LL_NUMBER ')'    { ((LogDestDriver *) last_driver)->log_fifo_size = $3; }
 
429
        | KW_THROTTLE '(' LL_NUMBER ')'         { ((LogDestDriver *) last_driver)->throttle = $3; }
 
430
        | LL_IDENTIFIER
 
431
          {
 
432
            Plugin *p;
 
433
            gint context = LL_CONTEXT_INNER_DEST;
 
434
            gpointer value;
 
435
 
 
436
            p = plugin_find(configuration, context, $1);
 
437
            CHECK_ERROR(p, @1, "%s plugin %s not found", cfg_lexer_lookup_context_name_by_type(context), $1);
 
438
 
 
439
            value = plugin_parse_config(p, configuration, &@1, last_driver);
 
440
 
 
441
            free($1);
 
442
            if (!value)
 
443
              {
 
444
                YYERROR;
 
445
              }
 
446
            log_driver_add_plugin(last_driver, (LogDriverPlugin *) value);
 
447
          }
 
448
        ;
 
449
 
401
450
dest_writer_options
402
451
        : dest_writer_option dest_writer_options
403
452
        |
404
453
        ;
405
454
 
406
455
dest_writer_option
 
456
        /* NOTE: plugins need to set "last_writer_options" in order to incorporate this rule in their grammar */
 
457
 
407
458
        : KW_FLAGS '(' dest_writer_options_flags ')' { last_writer_options->options = $3; }
408
 
        | KW_LOG_FIFO_SIZE '(' LL_NUMBER ')'    { last_writer_options->mem_fifo_size = $3; }
409
459
        | KW_FLUSH_LINES '(' LL_NUMBER ')'              { last_writer_options->flush_lines = $3; }
410
460
        | KW_FLUSH_TIMEOUT '(' LL_NUMBER ')'    { last_writer_options->flush_timeout = $3; }
411
461
        | KW_SUPPRESS '(' LL_NUMBER ')'            { last_writer_options->suppress = $3; }
412
462
        | KW_TEMPLATE '(' string ')'            {
413
463
                                                  GError *error = NULL;
414
464
 
415
 
                                                  last_writer_options->template = cfg_check_inline_template(configuration, $3);
416
 
                                                  CHECK_ERROR(log_template_compile(last_writer_options->template, &error), @3, "Error compiling template (%s)", error->message);
 
465
                                                  last_writer_options->template = cfg_check_inline_template(configuration, $3, &error);
 
466
                                                  CHECK_ERROR(last_writer_options->template != NULL, @3, "Error compiling template (%s)", error->message);
417
467
                                                  free($3);
418
468
                                                }
419
469
        | KW_TEMPLATE_ESCAPE '(' yesno ')'      { log_writer_options_set_template_escape(last_writer_options, $3); }
420
470
        | KW_TIME_ZONE '(' string ')'           { last_writer_options->template_options.time_zone[LTZ_SEND] = g_strdup($3); free($3); }
421
471
        | KW_TS_FORMAT '(' string ')'           { last_writer_options->template_options.ts_format = cfg_ts_format_value($3); free($3); }
422
472
        | KW_FRAC_DIGITS '(' LL_NUMBER ')'      { last_writer_options->template_options.frac_digits = $3; }
423
 
        | KW_THROTTLE '(' LL_NUMBER ')'         { last_writer_options->throttle = $3; }
 
473
        | KW_PAD_SIZE '(' LL_NUMBER ')'         { last_writer_options->padding = $3; }
424
474
        ;
425
475
 
426
476
dest_writer_options_flags
428
478
        |                                       { $$ = 0; }
429
479
        ;
430
480
 
 
481
value_pair_option
 
482
        : KW_VALUE_PAIRS
 
483
          { last_value_pairs = value_pairs_new(); }
 
484
          '(' vp_options ')'
 
485
          { $$ = last_value_pairs; }
 
486
        ;
 
487
 
 
488
vp_options
 
489
        : vp_option vp_options
 
490
        |
 
491
        ;
 
492
 
 
493
vp_option
 
494
        : KW_PAIR '(' string ':' string ')'      { value_pairs_add_pair(last_value_pairs, configuration, $3, $5); free($3); free($5); }
 
495
        | KW_PAIR '(' string string ')'          { value_pairs_add_pair(last_value_pairs, configuration, $3, $4); free($3); free($4); }
 
496
        | KW_KEY '(' string ')'             {
 
497
                gchar *k = g_strconcat("$", $3, NULL);
 
498
                value_pairs_add_pair(last_value_pairs, configuration, $3, k);
 
499
                g_free(k);
 
500
                free($3);
 
501
          }
 
502
        | KW_EXCLUDE '(' string ')'              { value_pairs_add_exclude_glob(last_value_pairs, $3); free($3); }
 
503
        | KW_SCOPE '(' vp_scope_list ')'
 
504
        ;
 
505
 
 
506
vp_scope_list
 
507
        : string vp_scope_list              { value_pairs_add_scope(last_value_pairs, $1); free($1); }
 
508
        |
 
509
        ;
 
510
 
431
511
 
432
512
%%