diff options
author | eschrock <none@none> | 2007-10-26 13:47:19 -0700 |
---|---|---|
committer | eschrock <none@none> | 2007-10-26 13:47:19 -0700 |
commit | 1af98250c8b03bdc43d8ac3aac6390221d75b92e (patch) | |
tree | b933a46316b7dcaa9cc45c8ef77686f6e82a7ce3 /usr/src/lib/libzfs/common/libzfs_util.c | |
parent | a7746f662862b6ac0a85751d8adbc897743a83e1 (diff) | |
download | illumos-joyent-1af98250c8b03bdc43d8ac3aac6390221d75b92e.tar.gz |
PSARC 2007/606 nvlist extensions
6608068 typo in ipmi_sdr_refresh() can cause segfault on allocation failure
6608069 libipmi should have support for user management
6608070 nvlist_lookup_nvpair() would be useful
6608094 nvlist_exists() would be useful
6608096 zprop_parse_value() should accept boolean values for boolean types
6608098 startd's fsminimal filesystem checks could be a little more explicit
Diffstat (limited to 'usr/src/lib/libzfs/common/libzfs_util.c')
-rw-r--r-- | usr/src/lib/libzfs/common/libzfs_util.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/usr/src/lib/libzfs/common/libzfs_util.c b/usr/src/lib/libzfs/common/libzfs_util.c index 8a1ad6d656..ae21bd8435 100644 --- a/usr/src/lib/libzfs/common/libzfs_util.c +++ b/usr/src/lib/libzfs/common/libzfs_util.c @@ -1063,6 +1063,7 @@ zprop_parse_value(libzfs_handle_t *hdl, nvpair_t *elem, int prop, const char *propname; char *value; boolean_t isnone = B_FALSE; + boolean_t boolval; if (type == ZFS_TYPE_POOL) { proptype = zpool_prop_get_type(prop); @@ -1122,14 +1123,25 @@ zprop_parse_value(libzfs_handle_t *hdl, nvpair_t *elem, int prop, break; case PROP_TYPE_INDEX: - if (datatype != DATA_TYPE_STRING) { + switch (datatype) { + case DATA_TYPE_STRING: + (void) nvpair_value_string(elem, &value); + break; + + case DATA_TYPE_BOOLEAN_VALUE: + (void) nvpair_value_boolean_value(elem, &boolval); + if (boolval) + value = "on"; + else + value = "off"; + break; + + default: zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "'%s' must be a string"), nvpair_name(elem)); goto error; } - (void) nvpair_value_string(elem, &value); - if (zprop_string_to_index(prop, value, ivalp, type) != 0) { zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "'%s' must be one of '%s'"), propname, |