From: Ben Pfaff Date: Wed, 30 Jul 2008 22:45:50 +0000 (-0700) Subject: dhcp: Make dhcp_option_to_string() act sensibly with null or empty options. X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=245f96aebca31a05a5fae0d8b427ee7a871c6fc5;p=sliver-openvswitch.git dhcp: Make dhcp_option_to_string() act sensibly with null or empty options. Also, update ofp-switch-setup to parse the new syntax. --- diff --git a/debian/ofp-switch-setup b/debian/ofp-switch-setup index 275ddfca8..aa318d72e 100755 --- a/debian/ofp-switch-setup +++ b/debian/ofp-switch-setup @@ -122,6 +122,8 @@ my (@states) = $value =~ s/\\([0-7][0-7][0-7])/chr($1)/ge; } else { $value =~ s/^(0x[[:xdigit:]]+)$/hex($1)/e; + $value = '' if $value eq 'empty'; + next if $value eq 'null'; # Shouldn't happen. } $options{$name} = $value; } diff --git a/lib/dhcp.c b/lib/dhcp.c index 3c0ed82a6..0d3cf5f61 100644 --- a/lib/dhcp.c +++ b/lib/dhcp.c @@ -419,6 +419,11 @@ dhcp_option_to_string(const struct dhcp_option *opt, int code, struct ds *ds) } ds_put_char(ds, '='); + if (!opt->data || !opt->n) { + ds_put_cstr(ds, opt->data ? "empty" : "null"); + return ds_cstr(ds); + } + if (class->type == DHCP_ARG_STRING) { ds_put_char(ds, '"'); }