> -----Original Message-----
> From: Masayoshi Mizuma [mailto:msys.miz...@gmail.com]
> Sent: Thursday, August 2, 2018 3:15 AM
> To: Qi, Fuli/斉 福利 <qi.f...@jp.fujitsu.com>; linux-nvdimm@lists.01.org
> Subject: Re: [ndclt PATCH] ndctl, monitor: Fix duplicate prefix in monitor.log
> 
> Hi QI,
> 
> On 07/31/2018 01:15 AM, QI Fuli wrote:
> > When a monitor runs with [--log] option, the prefix will be dually
> > added to monitor.log. Therefore, the monitor cannot log the smart
> > notification to syslog. This patch is used to prevent prefix from
> > being dually added to monitor.log.
> >
> > Fixes: fdf6b6844ccf ("ndctl, monitor: add a new command - monitor")
> > Signed-off-by: QI Fuli <qi.f...@jp.fujitsu.com>
> > ---
> >  ndctl/monitor.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/ndctl/monitor.c b/ndctl/monitor.c index c6419ad..4e5daf5
> > 100644
> > --- a/ndctl/monitor.c
> > +++ b/ndctl/monitor.c
> > @@ -614,7 +614,8 @@ int cmd_monitor(int argc, const char **argv, void *ctx)
> >             goto out;
> >
> >     if (monitor.log) {
> > -           fix_filename(prefix, (const char **)&monitor.log);
> > +           if (strncmp(monitor.log, "./", 2) != 0)
> > +                   fix_filename(prefix, (const char **)&monitor.log);
> 
> prefix is not needed to 'syslog' and 'standard', so why don't you move the 
> strncmp()
> before fix_filename(), like as:
> 
> @@ -614,13 +619,14 @@ int cmd_monitor(int argc, const char **argv, void *ctx)
>                 goto out;
> 
>         if (monitor.log) {
> -               fix_filename(prefix, (const char **)&monitor.log);
>                 if (strncmp(monitor.log, "./syslog", 8) == 0)
>                         ndctl_set_log_fn((struct ndctl_ctx *)ctx, log_syslog);
>                 else if (strncmp(monitor.log, "./standard", 10) == 0)
>                         ; /*default, already set */
> -               else
> +               else {
> +                       fix_filename(prefix, (const char
> + **)&monitor.log);
>                         ndctl_set_log_fn((struct ndctl_ctx *)ctx, log_file);
> +               }
>         }
> 
>         if (monitor.daemon) {
> 
> Thanks,
> Masa

Hi Masa,

Thank you very much for your comments.

There are two ways to set monitor.log.
a) setting the argument of [--log] option
b) setting the value of [log] key in configuration file

When users set monitor.log by b, the prefix will not be added to monitor.log.
Therefore, we should do fix_filename() before strncmp().

Thanks,
QI

> 
> >             if (strncmp(monitor.log, "./syslog", 8) == 0)
> >                     ndctl_set_log_fn((struct ndctl_ctx *)ctx, log_syslog);
> >             else if (strncmp(monitor.log, "./standard", 10) == 0)
> >
> 

_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to