]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Make this more readable.
authorRoy Marples <roy@marples.name>
Sat, 21 Oct 2017 13:10:02 +0000 (14:10 +0100)
committerRoy Marples <roy@marples.name>
Sat, 21 Oct 2017 13:10:02 +0000 (14:10 +0100)
src/dhcp.c

index 75bcddc793390772b5d563a8215963c73a697b21..270fd25ec8adf64019e8d29cee3dd0d3d716ed2b 100644 (file)
@@ -1409,27 +1409,24 @@ dhcp_env(char **env, const char *prefix,
                        continue;
                if (dhcp_getoverride(ifo, opt->option))
                        continue;
-               if ((p = get_option(ifp->ctx, bootp, bootp_len,
-                   opt->option, &pl)))
-               {
-                       ep += dhcp_envoption(ifp->ctx, ep, prefix, ifp->name,
-                           opt, dhcp_getoption, p, pl);
-                       if (opt->option == DHO_VIVSO &&
-                           pl > (int)sizeof(uint32_t))
-                       {
-                               memcpy(&en, p, sizeof(en));
-                               en = ntohl(en);
-                               vo = vivso_find(en, ifp);
-                               if (vo) {
-                                       /* Skip over en + total size */
-                                       p += sizeof(en) + 1;
-                                       pl -= sizeof(en) + 1;
-                                       ep += dhcp_envoption(ifp->ctx,
-                                           ep, prefix, ifp->name,
-                                           vo, dhcp_getoption, p, pl);
-                               }
-                       }
-               }
+               p = get_option(ifp->ctx, bootp, bootp_len, opt->option, &pl);
+               if (p == NULL)
+                       continue;
+               ep += dhcp_envoption(ifp->ctx, ep, prefix, ifp->name,
+                   opt, dhcp_getoption, p, pl);
+
+               if (opt->option != DHO_VIVSO || pl <= (int)sizeof(uint32_t))
+                       continue;
+               memcpy(&en, p, sizeof(en));
+               en = ntohl(en);
+               vo = vivso_find(en, ifp);
+               if (vo == NULL)
+                       continue;
+               /* Skip over en + total size */
+               p += sizeof(en) + 1;
+               pl -= sizeof(en) + 1;
+               ep += dhcp_envoption(ifp->ctx, ep, prefix, ifp->name,
+                   vo, dhcp_getoption, p, pl);
        }
 
        for (i = 0, opt = ifo->dhcp_override;
@@ -1438,10 +1435,11 @@ dhcp_env(char **env, const char *prefix,
        {
                if (has_option_mask(ifo->nomask, opt->option))
                        continue;
-               if ((p = get_option(ifp->ctx, bootp, bootp_len,
-                   opt->option, &pl)))
-                       ep += dhcp_envoption(ifp->ctx, ep, prefix, ifp->name,
-                           opt, dhcp_getoption, p, pl);
+               p = get_option(ifp->ctx, bootp, bootp_len, opt->option, &pl);
+               if (p == NULL)
+                       continue;
+               ep += dhcp_envoption(ifp->ctx, ep, prefix, ifp->name,
+                   opt, dhcp_getoption, p, pl);
        }
 
        return ep - env;