AW: Question on udhcpc script

Walter Harms wharms at bfs.de
Mon Feb 1 10:33:25 UTC 2021


hello,
indeed that looks wrong:
it would be easy to invert but i have no setup to test.
can you do that ?

just change:
  if [ -z "$(ip -6 route list | grep default)" ]; then
into
if ! [ -z "$(ip -6 route list | grep default)" ]; then

(note the ! here)

re,
 wh
________________________________________
Von: busybox <busybox-bounces at busybox.net> im Auftrag von Bhattiprolu RaviKumar <ravikumar.bhattiprolu at gmail.com>
Gesendet: Montag, 1. Februar 2021 10:36:02
An: busybox at busybox.net
Betreff: Question on udhcpc script

All,
  We are using busybox to get DHCPv6  address. However, I am bit confused on the part of the script /etc/udhcpc.d/50default:

wait_for_ipv6_default_route() {
        printf "Waiting for IPv6 default route to appear"
        while [ $IF_WAIT_DELAY -gt 0 ]; do
                if [ -z "$(ip -6 route list | grep default)" ]; then
                        printf "\n"
                        return
                fi
                sleep 1
                printf "."
                : $((IF_WAIT_DELAY -= 1))
        done
        printf " timeout!\n"
}

The print says "Waiting for IPv6 default route to appear". However the if statement is checking for "$(ip -6 route list | grep default)"to be null (-z check) which means default route is not present.

In our case, after DHCP, default route gets setup and "$(ip -6 route list | grep default)"returns an entry starting with default and since check is -z, it continues in the loop and finally prints "timeout".

I am confused here. Am I missing something here?
regards,
Ravi


More information about the busybox mailing list