[PATCH] conf-parser: add support for .d directories

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 27 May 2015, Tanu Kaskinen wrote:

> On Wed, 2015-05-27 at 00:13 +0200, Peter Meerwald wrote:
> > > @@ -163,6 +169,38 @@ int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_p
> > >  
> > >      pa_zero(state);
> > >  
> > > +    if (use_dot_d) {
> > > +        char *dir_name;
> > > +        int n;
> > > +        struct dirent **entries = NULL;
> > > +
> > > +        dir_name = pa_sprintf_malloc("%s.d", filename);
> > > +
> > > +        n = scandir(dir_name, &entries, conf_filter, alphasort);
> > > +        if (n >= 0) {
> > > +            int i;
> > > +
> > > +            for (i = 0; i < n; i++) {
> > > +                char *filename2;
> > > +
> > > +                filename2 = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", dir_name, entries[i]->d_name);
> > > +                pa_config_parse(filename2, NULL, t, proplist, false, userdata);
> > 
> > the return value is not checked;
> > for config files included with .include, the retval is checked
> 
> In my opinion pa_config_parse() shouldn't even return anything. A single
> fault in the client.conf shouldn't prevent all clients from connecting
> to the server, and reverting to the default configuration isn't a good
> option either. A single configuration fault should only result in a
> single error message in the log, and the configuration parsing should
> continue as usual after the error.
> 
> So, I think when config files are included with .include, the return
> value of pa_config_parse() should not be checked.

$ rgrep pa_config_parse\( .
./pulsecore/conf-parser.c:        r = pa_config_parse(fn, NULL, state->item_table, state->proplist, state->userdata);
./pulsecore/conf-parser.c:int pa_config_parse(const char *filename, FILE *f, const pa_config_item *t, pa_proplist *proplist, void *userdata) {
./modules/alsa/alsa-mixer.c:    r = pa_config_parse(fn, NULL, items, p->proplist, p);
./modules/alsa/alsa-mixer.c:    r = pa_config_parse(fn, NULL, items, NULL, ps);
./modules/module-augment-properties.c:    if (pa_config_parse(fn, NULL, table, NULL, r) < 0)
./daemon/daemon-conf.c:    r = f ? pa_config_parse(c->config_file, f, table, NULL, NULL) : 0;
./pulse/client-conf.c:        pa_config_parse(fn, f, table, NULL, NULL);

client-conf does not check the retval, everywhere else it is checked
(not saying that one way is better than the other, but probably the 
decision to ignore the retval should be with the caller, not internally 
in pa_config_parse())

p.

-- 

Peter Meerwald
+43-664-2444418 (mobile)


[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux