On Sat, Aug 20, 2011 at 10:32:54AM +0100, Stuart Henderson wrote:
> On 2011/08/20 10:07, Stuart Henderson wrote:
> > On 2011/08/17 22:29, Claudio Jeker wrote:
> > > I don't like it and the diff is wrong -- the parent process will still not
> > > log verbose. I think the problem should be fixed at the source and
> > > change the way log_init() and log_verbose() work. Currently the second
> > > log_init() call in ospfd.c will disable the verbose setting. I guess
> > > log_init needs either 2 flags or it must only or n_debug into verbose so
> > > that the previous call to log_verbose() is sticky.
> >
> > If we or n_debug into verbose, the log_init(1) for verbose logging
> > at startup will never get cleared, so we will always log the debug
> > information. So I think we need to add an argument to log_init().
>
> on reflection I think this method is cleaner..
> (sorry for the spam)
Yes, I like this version best. OK claudio@
> diff --git log.c log.c
> index e8326b8..4a4300d 100644
> --- log.c
> +++ log.c
> @@ -44,7 +44,6 @@ log_init(int n_debug)
> extern char *__progname;
>
> debug = n_debug;
> - verbose = n_debug;
>
> if (!debug)
> openlog(__progname, LOG_PID | LOG_NDELAY, LOG_DAEMON);
> diff --git ospfd.c ospfd.c
> index bcead83..1c235b3 100644
> --- ospfd.c
> +++ ospfd.c
> @@ -139,6 +139,7 @@ main(int argc, char *argv[])
> sockname = OSPFD_SOCKET;
>
> log_init(1); /* log to stderr until daemonized */
> + log_verbose(1);
>
> while ((ch = getopt(argc, argv, "cdD:f:ns:v")) != -1) {
> switch (ch) {
> @@ -166,7 +167,6 @@ main(int argc, char *argv[])
> if (opts & OSPFD_OPT_VERBOSE)
> opts |= OSPFD_OPT_VERBOSE2;
> opts |= OSPFD_OPT_VERBOSE;
> - log_verbose(1);
> break;
> default:
> usage();
> @@ -222,6 +222,7 @@ main(int argc, char *argv[])
> errx(1, "unknown user %s", OSPFD_USER);
>
> log_init(debug);
> + log_verbose(ospfd_conf->opts & OSPFD_OPT_VERBOSE);
>
> if (!debug)
> daemon(1, 0);
>
--
:wq Claudio