hi - 

couple potential issues:

On 2016-10-07 at 16:44 Dan Cross <[email protected]> wrote:
> If the lease time is 1, then we wouldn't wait; that's a bug.
> Clean up an obnoxious conditional.
> 
> Change-Id: I25ad3c5ac3510d56a0dc3d37b464ca002236875b
> Signed-off-by: Dan Cross <[email protected]>
> ---
>  tools/apps/ipconfig/main.c | 19 +++++++------------
>  1 file changed, 7 insertions(+), 12 deletions(-)
> 
> diff --git a/tools/apps/ipconfig/main.c b/tools/apps/ipconfig/main.c
> index db353bd..a19197b 100644
> --- a/tools/apps/ipconfig/main.c
> +++ b/tools/apps/ipconfig/main.c
> @@ -952,20 +952,17 @@ static void *dhcpwatchthr(void *arg)
>       uint32_t t;
>       int needconfig = (arg == NULL);
>  
> -     // procsetname("dhcpwatch");
>       /* keep trying to renew the lease */
>       for (;;) {
> +             secs = conf.lease / 2;
>               if (conf.lease == 0)
>                       secs = 5;
> -             else
> -                     secs = conf.lease >> 1;

I think if conf.lease was 1 in the new code, then secs still = 0 after
this.  The if check only checks if conf.lease was 0, but doesn't adjust
sec otherwise.  If that's not OK with the overall code, then that bug
is still here.

>  
>               /* avoid overflows */
>               for (s = secs; s > 0; s -= t) {
> -                     if (s > Maxsleep)
> +                     t = s;
> +                     if (t > Maxsleep)
>                               t = Maxsleep;
> -                     else
> -                             t = s;
>                       usleep(t * 1000 * 1000);
>               }
>  
> @@ -1279,9 +1276,8 @@ void dhcprecv(void)
>               /* get plan9-specific options */
>               n = optgetvec(bp->optdata, OBvendorinfo, vopts, sizeof(vopts) - 
> 1);
>               if (n > 0 && parseoptions(vopts, n) == 0) {
> -                     if (validip(conf.fs) && Oflag)
> -                             n = 1;
> -                     else {
> +                     n = 1;
> +                     if (!validip(conf.fs) && Oflag) {

this looks a little suspicious, since you just did the ! for validip,
but not for the other part of the && in the if check.  no need to change
it if you still think it's ok.  i'm not particularly familiar with this
code.

>                               n = optgetp9addrs(vopts, OP9fs, conf.fs, 2);
>                               if (n == 0)
>                                       n = optgetaddrs(vopts, OP9fsv4, 
> conf.fs, 2);
> @@ -1289,9 +1285,8 @@ void dhcprecv(void)
>                       for (i = 0; i < n; i++)
>                               DEBUG("fs=%R ", conf.fs + i * IPaddrlen);
>  
> -                     if (validip(conf.auth) && Oflag)
> -                             n = 1;
> -                     else {
> +                     n = 1;
> +                     if (!validip(conf.auth) && Oflag) {

same here.

>                               n = optgetp9addrs(vopts, OP9auth, conf.auth, 2);
>                               if (n == 0)
>                                       n = optgetaddrs(vopts, OP9authv4, 
> conf.auth, 2);

barret

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to