[systemd-devel] [RFC][PATCH] core: sysvcompat - $network should be equivalent to network-online, rather than network target

Tom Gundersen teg at jklm.no
Wed May 14 13:03:58 PDT 2014


On Wed, May 14, 2014 at 6:06 PM, Lennart Poettering
<lennart at poettering.net> wrote:
> On Wed, 14.05.14 12:29, Michal Sekletar (msekleta at redhat.com) wrote:
>
>> > +++ b/src/core/service.c
>> > @@ -392,7 +392,7 @@ static int sysv_translate_facility(const char *name, const char *filename, char
>> >          static const char * const table[] = {
>> >                  /* LSB defined facilities */
>> >                  "local_fs",             NULL,
>> > -                "network",              SPECIAL_NETWORK_TARGET,
>> > +                "network",              SPECIAL_NETWORK_ONLINE_TARGET,
>> >                  "named",                SPECIAL_NSS_LOOKUP_TARGET,
>> >                  "portmap",              SPECIAL_RPCBIND_TARGET,
>> >                  "remote_fs",            SPECIAL_REMOTE_FS_TARGET,
>> > @@ -854,7 +854,11 @@ static int service_load_sysv_path(Service *s, const char *path) {
>> >                                          if (r == 0)
>> >                                                  continue;
>> >
>> > -                                        r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true);
>> > +                                        if (streq(m, SPECIAL_NETWORK_ONLINE_TARGET) && !startswith_no_case(t, "X-Start-Before:"))
>> > +                                                /* the network-online target is special, as it needs to be actively pulled in */
>> > +                                                r = unit_add_two_dependencies_by_name(u, UNIT_AFTER, UNIT_WANTS, m, NULL, true);
>> > +                                        else
>> > +                                                r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true);
>
> Tom, I'd prefer if we wouldn't duplicate the startswith_no_case()
> invocation, and simple cache this:
>
> bool is_before;
>
> is_before = startswith_no_case(....);
>
> and then just use this where approporiate?
>
> It was bad enough to have the complex expression in the function call,
> but by duplicating this it gets worse...


Sure, fixed in git.

Cheers,

Tom


More information about the systemd-devel mailing list