[systemd-devel] [PATCH 3/3] core: add EnvironmentFiles to settable transient unit properties

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Thu Oct 2 08:14:58 PDT 2014


On Wed, Apr 23, 2014 at 09:12:15PM +0200, Lennart Poettering wrote:
> On Fri, 28.03.14 19:38, Hristo Venev (hristo at venev.name) wrote:
> 
> Sounds useful. 

The other two patches were redone and applied (1/3 by Kay in June,
2/3 by Steven Allen now). Do you intend to clean up and resubmit
this one?

Zbyszek

> 
> > ---
> >  src/core/dbus-execute.c          | 16 ++++++++++++++++
> >  src/libsystemd/sd-bus/bus-util.c | 18 +++++++++++++++++-
> >  2 files changed, 33 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
> > index 13b3d0d..1f1f602 100644
> > --- a/src/core/dbus-execute.c
> > +++ b/src/core/dbus-execute.c
> > @@ -851,6 +851,22 @@ int bus_exec_context_set_transient_property(
> >  
> >                  return 1;
> >  
> > +        } else if (streq(name, "EnvironmentFiles")) {
> > +
> > +                _cleanup_strv_free_ char **l = NULL;
> > +
> > +                r = sd_bus_message_read_strv(message, &l);
> > +                if (r < 0)
> > +                        return r;
> > +
> > +                if (mode != UNIT_CHECK) {
> > +                        r = strv_extend_strv(&c->environment_files, l);
> > +                        if (r < 0)
> > +                                return r;
> > +                }
> > +
> > +                return 1;
> > +
> 
> This should probably check whether the list only contains absolute file
> names (possily prefixed with "-"), and refuse otherwise. It should
> follow the rough behaviour of config_parse_unit_env_file().
> 
> This also needs to use unit_write_drop_in_private_format() or so, so
> that the stuff is written to /run, so that it isn't lost on reload.
> 
> > +        else if (streq(field, "EnvironmentFiles")) {
> > +                _cleanup_strv_free_ char **l = strv_split_quoted(eq);
> > +                if(!l) return -ENOMEM;
> 
> Please avoid calling functions and declaring variables in the same line,
> and also please write the if check in two lines...
> 
> > +
> > +                r = sd_bus_message_open_container(m, 'v', "as");
> > +                if (r < 0) {
> > +                    return bus_log_create_error(r);
> > +                }
> 
> No {} please if the if block only contains a single line.
> 
> Also 8ch indenting, please.
> 
> > +
> > +                r = sd_bus_message_append_strv(m, l);
> > +                if (r < 0) {
> > +                    return bus_log_create_error(r);
> > +                }
> 
> Same here.
> 
> > +
> > +                r = sd_bus_message_close_container(m);
> > +
> > +        } else if (streq(field, "DeviceAllow")) {
> >  
> >                  if (isempty(eq))
> >                          r = sd_bus_message_append(m, "v", "a(ss)", 0);
> 
> Looks good otherwise!
> 
> Thanks!
> 
> Lennart
> 
> -- 
> Lennart Poettering, Red Hat
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
> 


More information about the systemd-devel mailing list