[systemd-devel] [PATCH] sysctl: consider --prefix while parsing the files
Lennart Poettering
lennart at poettering.net
Wed Feb 4 04:46:30 PST 2015
On Wed, 04.02.15 10:43, Umut Tezduyar Lindskog (umut.tezduyar at axis.com) wrote:
> not while applying the parsed sysctl values. Otherwise
> info "Overwriting earlier assignment of %s in file %s" is
> visible many times even though the given --prefix doesn't
> try to set the overridden value.
Looks conceptually OK. A few notes:
> k = write_string_file(p, value);
> if (k < 0) {
> log_full(k == -ENOENT ? LOG_DEBUG : LOG_WARNING,
> @@ -173,6 +157,24 @@ static int parse_file(Hashmap *sysctl_options, const char *path, bool ignore_eno
> p = normalize_sysctl(strstrip(p));
> value = strstrip(value);
>
> + if (!strv_isempty(arg_prefixes)) {
> + char **i, *t;
> + bool good = false;
> + STRV_FOREACH(i, arg_prefixes) {
> + t = *i;
> + if (startswith(t, "/proc/sys/")) {
> + t = t + strlen("/proc/sys/");
> + }
Please use path_startswith() jhere.
Also, startswith() and path_startswith() actually return a pointer to
the first char after the spefied prefix. If you want to skip the
prefix anyway, it's nice to use that.
Also, please no {} around singl-line code blocks.
> + if (path_startswith(p, t)) {
> + good = true;
> + break;
> + }
> + }
> + if (!good) {
> + continue;
> + }
No {} around single-line code blocks.
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list