changeset 2193:5a75bc2628f5 draft

Now that we only use dhcpcd-definitions.conf, remove te static var union.
author Roy Marples <roy@marples.name>
date Fri, 06 Dec 2013 17:47:52 +0000
parents 11e8ddedaf22
children e65989e20e61
files dhcp-common.c dhcp-common.h dhcp.c dhcp6.c if-options.c
diffstat 5 files changed, 19 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/dhcp-common.c	Thu Dec 05 00:40:03 2013 +0000
+++ b/dhcp-common.c	Fri Dec 06 17:47:52 2013 +0000
@@ -63,7 +63,7 @@
 			continue;
 		for (i = 0, opt = dopts; i < dopts_len; i++, opt++) {
 			match = 0;
-			if (strcmp(opt->v.var, token) == 0)
+			if (strcmp(opt->var, token) == 0)
 				match = 1;
 			else {
 				errno = 0;
@@ -510,7 +510,7 @@
 	if (len < 0)
 		return 0;
 	if (vname)
-		e = strlen(opt->v.var) + 1;
+		e = strlen(opt->var) + 1;
 	else
 		e = 0;
 	if (prefix)
@@ -524,7 +524,7 @@
 		return 0;
 	}
 	if (vname)
-		v += snprintf(val, e, "%s_%s=", prefix, opt->v.var);
+		v += snprintf(val, e, "%s_%s=", prefix, opt->var);
 	else
 		v += snprintf(val, e, "%s=", prefix);
 	if (len != 0)
@@ -564,7 +564,7 @@
 				return 0;
 			}
 		}
-		e = strlen(prefix) + strlen(opt->v.var) + 2 +
+		e = strlen(prefix) + strlen(opt->var) + 2 +
 		    (opt->type & INDEX ? 3 : 0);
 		pfx = malloc(e);
 		if (pfx == NULL) {
@@ -573,9 +573,9 @@
 		}
 		if (opt->type & INDEX)
 			snprintf(pfx, e, "%s_%s%d", prefix,
-			    opt->v.var, ++opt->index);
+			    opt->var, ++opt->index);
 		else
-			snprintf(pfx, e, "%s_%s", prefix, opt->v.var);
+			snprintf(pfx, e, "%s_%s", prefix, opt->var);
 	} else
 		pfx = NULL;
 
@@ -590,7 +590,7 @@
 		/* Use the option prefix if the embedded option
 		 * name is different.
 		 * This avoids new_fqdn_fqdn which would be silly. */
-		ov = strcmp(opt->v.var, eopt->v.var);
+		ov = strcmp(opt->var, eopt->var);
 		if (dhcp_envoption1(env == NULL ? NULL : &env[n],
 		    pfx, eopt, ov, od, e, ifname))
 			n++;
--- a/dhcp-common.h	Thu Dec 05 00:40:03 2013 +0000
+++ b/dhcp-common.h	Fri Dec 06 17:47:52 2013 +0000
@@ -65,14 +65,7 @@
 	uint16_t option;
 	int type;
 	int len;
-
-	/* This union allows us to define a global static list of
-	 * variable names which we don't free and a list of user defined
-	 * options which we do free. */
-	union {
-		char *dvar;
-		const char *var;
-	} v;
+	char *var;
 
 	int index; /* Index counter for many instances of the same option */
 
--- a/dhcp.c	Thu Dec 05 00:40:03 2013 +0000
+++ b/dhcp.c	Fri Dec 06 17:47:52 2013 +0000
@@ -138,7 +138,7 @@
 		printf("    %s\n", *p);
 
 	for (i = 0, opt = dhcp_opts; i < dhcp_opts_len; i++, opt++)
-		printf("%03d %s\n", opt->option, opt->v.var);
+		printf("%03d %s\n", opt->option, opt->var);
 }
 
 #ifdef DEBUG_MEMORY
--- a/dhcp6.c	Thu Dec 05 00:40:03 2013 +0000
+++ b/dhcp6.c	Fri Dec 06 17:47:52 2013 +0000
@@ -138,7 +138,7 @@
 	const struct dhcp_opt *opt;
 
 	for (i = 0, opt = dhcp6_opts; i < dhcp6_opts_len; i++, opt++)
-		printf("%05d %s\n", opt->option, opt->v.var);
+		printf("%05d %s\n", opt->option, opt->var);
 }
 
 static int
@@ -2085,7 +2085,7 @@
 		{
 			syslog(LOG_WARNING,
 			    "%s: reject DHCPv6 (no option %s) from %s",
-			    ifp->name, opt->v.var, sfrom);
+			    ifp->name, opt->var, sfrom);
 			return;
 		}
 	}
--- a/if-options.c	Thu Dec 05 00:40:03 2013 +0000
+++ b/if-options.c	Fri Dec 06 17:47:52 2013 +0000
@@ -488,17 +488,18 @@
 free_dhcp_opt_embenc(struct dhcp_opt *opt)
 {
 	size_t i;
-
-	free(opt->v.dvar);
+	struct dhcp_opt *o;
 
-	for (i = 0; i < opt->embopts_len; i++)
-		free(opt->embopts[i].v.dvar);
+	free(opt->var);
+
+	for (i = 0, o = opt->embopts; i < opt->embopts_len; i++, o++)
+		free(o->var);
 	free(opt->embopts);
 	opt->embopts_len = 0;
 	opt->embopts = NULL;
 
-	for (i = 0; i < opt->encopts_len; i++)
-		free(opt->encopts[i].v.dvar);
+	for (i = 0, o = opt->encopts; i < opt->encopts_len; i++, o++)
+		free(o->var);
 	free(opt->encopts);
 	opt->encopts_len = 0;
 	opt->encopts = NULL;
@@ -1402,7 +1403,7 @@
 		ndop->option = i; /* could have been 0 */
 		ndop->type = t;
 		ndop->len = l;
-		ndop->v.dvar = np;
+		ndop->var = np;
 		/* Save the define for embed and encap options */
 		if (opt == O_DEFINE || opt == O_DEFINE6)
 			ldop = ndop;