> http://drvv.ru/busybox/sv.patch
>
> I don't like this, but ok. Applied.


I'll explain why I need it. I use totally volatile /var. My services are in
/etc, under which I place all scripts. We have config option for udhcpc
helper script location -- we now have configurable root of services. Thanks!

http://drvv.ru/busybox/httpd.patch
>
> Bug - cur->after_colon is leaked:
> -               cur->after_colon = strchr(cur->before_colon, ':');
> -               *cur->after_colon++ = '\0';
> +               cur->after_colon = xstrdup(token[1]);


Will revisit.

http://drvv.ru/busybox/rdev.patch
>
> This would be an incompatible change to rdev applet.
> I don't want to do this...


Could we then add -n option to mountpoint which would print the name of
block device a directory is mounted on?
Bernhard asked the mountpoint' author -- no reply AFAIK...

http://drvv.ru/busybox/acpid.patch
>
> +       argv += optind;
> +       // daemonize unless -d given
> +       if (!(option_mask32 & 1)) { // ! -d
> +               forkexit_or_rexec(argv);
>
> (1) argv is wrong here, you did argv += optind too early.


Right.

(2) forkexit_or_rexec() in general is an internal function.
>     Use bb_daemonize_or_rexec() instead, it does this and
>     also all of the below...
>
> +               setsid();
> +               // close 0, 1?
> +               // ?
> +               // reopen stderr
> +               freopen(opt_logfile, "w", stderr);
> +       }


I don't want /dev/null to be my stderr. bb_daemonize_or_rexec() would do
unnecessary things here.

but more importantly, why daemonizing at all? This works:
> setsid acpid ... </dev/null >/dev/null 2>somewhere &



We daemonize in inetd et.al. only because that is
> their historical behavior... is daemonization something
> you need for compat reasons?


Personally, I use acpid as runit service. Daemonizing was requested as it is
"default behaviour of big brother". I'd throw away intrinsic daemonizing if
you support me.


> +               for (i = 0; i < argc; i++) {
> +                       pfd[nfd].fd = open_or_warn(argv[i], O_RDONLY);
> +                       pfd[nfd].events = POLLIN;
> +                       nfd++;
> +               }
>
> if open fails, you probably do not want to use fd == -1
> in poll()?


Surely no :)

+               while (!bb_got_signal && safe_poll(pfd, nfd, -1) > 0) {
>
> safe_poll() will loop on EINTR. Thus SIGINT will not interrupt it,
> it may sit like this forever.


It is intended to be SIGTERMed to exit. As other services do.

+config ACPID
> +       bool "acpid"
> +       default n
> +       select RUN_PARTS  <=====
>
> Using run-parts does not mean you must force user to have run-parts
> applet *in the same binary*.


Right. It is just a hint. Sorry, I'm trying to BBify everyone and everything
:)

http://drvv.ru/busybox/mailutils.patch
>
> Applied, since sendmail-related applets are "yours". :)


Great! Thanks! Let us test it.
--
Vladimir
_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox

Reply via email to