diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2016-03-02 18:33:23 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2016-03-02 18:47:28 +0200 |
commit | c767932556198cb064e7552bea14cc3563a114d0 (patch) | |
tree | 15e1ff9d07c07ab3e4a7308804f12ce700c2d7db /src | |
parent | 801656d6ae9b6c5cb199b2e53001ecaac41db4ae (diff) | |
download | pies-c767932556198cb064e7552bea14cc3563a114d0.tar.gz pies-c767932556198cb064e7552bea14cc3563a114d0.tar.bz2 |
Bugfixes
* src/comp.c (component_verify): Fix stdout redirection check.
* src/meta1parse.c (meta1_translate_node): Skip simple statements.
(meta1_translate_node): Allocate comp->dir
* doc/pies.texi: Use @example instead of @smallexample
Diffstat (limited to 'src')
-rw-r--r-- | src/comp.c | 18 | ||||
-rw-r--r-- | src/meta1parse.c | 6 |
2 files changed, 16 insertions, 8 deletions
@@ -663,13 +663,19 @@ component_verify (struct component *comp, grecs_locus_t *locus) | |||
663 | COMPERR (grecs_error, "%s", _("wait is useless in this mode")); | 663 | COMPERR (grecs_error, "%s", _("wait is useless in this mode")); |
664 | comp->flags &= ~CF_WAIT; | 664 | comp->flags &= ~CF_WAIT; |
665 | } | 665 | } |
666 | 666 | ||
667 | if (comp->mode != pies_comp_exec | 667 | switch (comp->mode) |
668 | && comp->redir[RETR_OUT].type != redir_null) | ||
669 | { | 668 | { |
670 | COMPERR (grecs_error, | 669 | case pies_comp_accept: |
671 | "%s", _("stdout redirection invalid in this mode")); | 670 | case pies_comp_inetd: |
672 | comp->redir[RETR_OUT].type = redir_null; | 671 | if (comp->redir[RETR_OUT].type != redir_null) |
672 | { | ||
673 | COMPERR (grecs_error, | ||
674 | "%s", _("stdout redirection invalid in this mode")); | ||
675 | comp->redir[RETR_OUT].type = redir_null; | ||
676 | } | ||
677 | default: | ||
678 | break; | ||
673 | } | 679 | } |
674 | 680 | ||
675 | for (i = RETR_OUT; i <= RETR_ERR; i++) | 681 | for (i = RETR_OUT; i <= RETR_ERR; i++) |
diff --git a/src/meta1parse.c b/src/meta1parse.c index 4b2fccb..528a80a 100644 --- a/src/meta1parse.c +++ b/src/meta1parse.c | |||
@@ -295,7 +295,9 @@ meta1_translate_node (struct grecs_node *node) | |||
295 | struct grecs_node *stmt; | 295 | struct grecs_node *stmt; |
296 | size_t len; | 296 | size_t len; |
297 | int err = 0; | 297 | int err = 0; |
298 | 298 | ||
299 | if (node->type != grecs_node_block) | ||
300 | return 0; | ||
299 | comp = component_create (node->ident); | 301 | comp = component_create (node->ident); |
300 | for (stmt = node->down; stmt; stmt = stmt->next) | 302 | for (stmt = node->down; stmt; stmt = stmt->next) |
301 | { | 303 | { |
@@ -309,7 +311,7 @@ meta1_translate_node (struct grecs_node *node) | |||
309 | } | 311 | } |
310 | 312 | ||
311 | comp->privs.allgroups = 1; | 313 | comp->privs.allgroups = 1; |
312 | comp->dir = META1_QUEUE_DIR (); | 314 | comp->dir = grecs_strdup (META1_QUEUE_DIR ()); |
313 | comp->redir[RETR_ERR].type = redir_file; | 315 | comp->redir[RETR_ERR].type = redir_file; |
314 | comp->redir[RETR_ERR].v.file = NULL; | 316 | comp->redir[RETR_ERR].v.file = NULL; |
315 | len = 0; | 317 | len = 0; |