[make-initrd] [PATCH 1/3] Reimplement ueventd

Leonid Krivoshein klark.devel at gmail.com
Mon May 15 03:47:03 MSK 2023


On 5/4/23 16:42, Alexey Gladkov wrote:
> [...]
> diff --git a/datasrc/ueventd/logging.c b/datasrc/ueventd/logging.c
> new file mode 100644
> index 00000000..671f6814
> --- /dev/null
> +++ b/datasrc/ueventd/logging.c
> @@ -0,0 +1,63 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#include <stdio.h>
> +#include <stdarg.h>
> +#include <strings.h>
> +#include <errno.h>
> +#include <time.h>
> +
> +#include "ueventd.h"
> +
> +#define default_logfile "/var/log/ueventd.log"
> +
> +int log_priority = LOG_INFO;

Переменная не объявлена здесь как static и она никак не объявлена в 
заголовочном файле. Просто, на всякий случай.


> +
> +int logging_level(const char *name)
> +{
> +	if (!strcasecmp(name, "debug"))   return LOG_DEBUG;
> +	if (!strcasecmp(name, "info"))    return LOG_INFO;
> +	if (!strcasecmp(name, "warning")) return LOG_WARNING;
> +	if (!strcasecmp(name, "error"))   return LOG_ERR;
> +	return log_priority;

Понятно, что такая обработка, видимо писавшаяся под парсер в ueventd.c:

loglevel = logging_level(optarg);

упрощает код. Но тогда его правильней сделать локальной частью 
ueventd.c, как мне кажется. Потому что сейчас любое невалидное значение 
name просто не меняет текущего значения log_priority, а я не уверен, что 
это правильно. Если же функция остаётся в logging.c с таким дефолтом, то 
вроде как анализ "info" кажется лишним.


> +}
> +
> [...]


-- 
WBR, Leonid Krivoshein.


More information about the Make-initrd mailing list