Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [RFC, PATCH 1/8] package/busybox: Add facility for DHCP hooks
Date: Tue, 4 Mar 2014 21:01:14 +0100	[thread overview]
Message-ID: <20140304200114.GD11474@free.fr> (raw)
In-Reply-To: <1389862338.917966.273409717366.1.gpush@pablo>

Jeremy, All,

On 2014-01-16 16:52 +0800, Jeremy Kerr spake thusly:
> The (u)dhcpc hook installed by the busybox package configures the
> network and exits. If we want to do anything further with a DHCP lease,
> we'd have to replace the script entirely.
> 
> This change introduces a .d directory for hooks (based on the script
> filename), which are executed after the interface configuration. This
> allows packages to drop a script file in the .d directory to perform
> actions on DHCP events.
> 
> We'll use this in a later change to notify petitboot of DHCP boot
> information.
> 
> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>

I'm not against such a change, but there is a gotcha, see below...

[--SNIP--]
> diff --git a/package/busybox/udhcpc.script b/package/busybox/udhcpc.script
> index 43742fbd..8930d4a8 100755
> --- a/package/busybox/udhcpc.script
> +++ b/package/busybox/udhcpc.script
> @@ -63,4 +63,13 @@ case "$1" in
>  		;;
>  esac
>  
> +HOOK_DIR="$0.d"
> +if [ -d "$HOOK_DIR" ]
> +then
> +	for HOOK in $HOOK_DIR/*; do
> +		$HOOK "$@"

If the directory exists, but there is no hook, then HOOK will have the
value '${HOKK_DIR}/*', and this will result in a error.

You have to do something like:

    for hook in "${HOOK_DIR}/"*; do
        [ -f "${hook}" -a -x "${hook}" ] || continue
        "${hook}" "${@}"
    done

And then you do not need to protect with the if-block.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2014-03-04 20:01 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-16  8:52 [Buildroot] [RFC, PATCH 0/8] Enable a buildroot-based petitboot bootloader Jeremy Kerr
2014-01-16  8:52 ` [Buildroot] [RFC, PATCH 1/8] package/busybox: Add facility for DHCP hooks Jeremy Kerr
2014-03-04 20:01   ` Yann E. MORIN [this message]
2014-01-16  8:52 ` [Buildroot] [RFC, PATCH 3/8] package/ncurses: Allow building wide char support Jeremy Kerr
2014-01-30 19:44   ` Thomas Petazzoni
2014-02-28  2:53     ` Jeremy Kerr
2014-01-16  8:52 ` [Buildroot] [RFC, PATCH 7/8] package/iprutils: Add IBM Power RAID utilities Jeremy Kerr
2014-01-16 13:24   ` Jerzy Grzegorek
2014-01-17  1:58     ` Jeremy Kerr
2014-01-30 20:54   ` Thomas Petazzoni
2014-01-16  8:52 ` [Buildroot] [RFC, PATCH 6/8] package/petitboot: Add petitboot, the userspace bootloader Jeremy Kerr
2014-01-30 20:51   ` Thomas Petazzoni
2014-02-28  5:39     ` Jeremy Kerr
2014-01-16  8:52 ` [Buildroot] [RFC,PATCH 8/8] Add powerpc petitboot defconfig Jeremy Kerr
2014-01-16  8:52 ` [Buildroot] [RFC, PATCH 2/8] package/dropbear: Add separate configuration options for client and server Jeremy Kerr
2014-03-03 23:46   ` Yann E. MORIN
2014-03-03 23:54     ` Jeremy Kerr
2014-03-04  0:14   ` Gustavo Zacarias
2014-03-04  1:07     ` Jeremy Kerr
2014-03-04  1:44       ` Gustavo Zacarias
2014-03-04  1:51         ` Jeremy Kerr
2014-03-04 18:36           ` Yann E. MORIN
2014-01-16  8:52 ` [Buildroot] [RFC, PATCH 5/8] package/kexec-lite: Add a package for the kexec-lite tools Jeremy Kerr
2014-01-16  9:36   ` Baruch Siach
2014-01-17  1:51     ` Jeremy Kerr
2014-01-16 13:17   ` Jerzy Grzegorek
2014-01-30 19:46   ` Thomas Petazzoni
2014-02-03  5:37     ` Jeremy Kerr
2014-02-03  7:04       ` Thomas Petazzoni
2014-02-28  7:11       ` Jeremy Kerr
2014-02-28  7:37         ` Thomas Petazzoni
2014-01-30 19:47   ` Thomas Petazzoni
2014-01-16  8:52 ` [Buildroot] [RFC, PATCH 4/8] package/powerpc-utils: Add powerpc hardware utilities Jeremy Kerr
2014-01-16  9:30   ` Baruch Siach
2014-01-16 13:11   ` Jerzy Grzegorek
2014-01-29  8:12   ` Thomas Petazzoni
2014-01-30  1:51     ` Jeremy Kerr
2014-01-17  2:16 ` [Buildroot] [RFC, PATCH 0/8] Enable a buildroot-based petitboot bootloader Jeremy Kerr

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140304200114.GD11474@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox