Skip to content

Commit

Permalink
config: improve handling of unknown modules
Browse files Browse the repository at this point in the history
The change fixes module print when specified module is unknown. On
example config:

    server:
      module-config: "respip valdator iterator"

Before the change printed error looked like:

    error: Unknown value in module-config, module: ''. This module is
    not present (not compiled in), See the list of linked modules with
    unbound -V

After the change module is printed as expected:

    error: Unknown value in module-config, module: 'valdator'. This
    module is not present (not compiled in), See the list of linked
    modules with unbound -V

Module truncation happens because parse error does not guarantee that
leading whitespace is removed by `module_factory()` call.

The change always removes leading whitespace (if present).
  • Loading branch information
trofi committed Jun 19, 2023
1 parent 6447628 commit d10a889
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions services/modstack.c
Original file line number Diff line number Diff line change
Expand Up @@ -120,12 +120,16 @@ modstack_config(struct module_stack* stack, const char* module_conf)
stack->mod[i] = module_factory(&module_conf);
if(!stack->mod[i]) {
char md[256];
char * s = md;
snprintf(md, sizeof(md), "%s", module_conf);
if(strchr(md, ' ')) *(strchr(md, ' ')) = 0;
if(strchr(md, '\t')) *(strchr(md, '\t')) = 0;
/* Leading spaces are present on errors. */
while (*s && isspace((unsigned char)*s))
s++;
if(strchr(s, ' ')) *(strchr(s, ' ')) = 0;
if(strchr(s, '\t')) *(strchr(s, '\t')) = 0;
log_err("Unknown value in module-config, module: '%s'."
" This module is not present (not compiled in),"
" See the list of linked modules with unbound -V", md);
" See the list of linked modules with unbound -V", s);
return 0;
}
}
Expand Down

0 comments on commit d10a889

Please sign in to comment.