changeset 4166:3d5e01232bf7 draft

Make this more readable.
author Roy Marples <roy@marples.name>
date Sat, 21 Oct 2017 14:10:02 +0100
parents 278ef87ffd94
children 4d4937553032
files src/dhcp.c
diffstat 1 files changed, 23 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/src/dhcp.c	Tue Oct 10 21:51:55 2017 +0100
+++ b/src/dhcp.c	Sat Oct 21 14:10:02 2017 +0100
@@ -1409,27 +1409,24 @@
 			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 @@
 	{
 		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;