diff options
author | Artem Kachitchkine <Artem.Kachitchkin@Sun.COM> | 2008-12-26 16:52:57 -0800 |
---|---|---|
committer | Artem Kachitchkine <Artem.Kachitchkin@Sun.COM> | 2008-12-26 16:52:57 -0800 |
commit | 62ee1d25bffb3d6d74798efe1199f7e86a29a14e (patch) | |
tree | f49f1a15b5832247208e7b448efb94910c0e0951 /usr/src/lib/libdladm/common/libdlmgmt.c | |
parent | 5c066ec28ea93f3a7c93082611a61747f255290a (diff) | |
download | illumos-joyent-62ee1d25bffb3d6d74798efe1199f7e86a29a14e.tar.gz |
6688428 dladm init-linkprop ignores private properties
Diffstat (limited to 'usr/src/lib/libdladm/common/libdlmgmt.c')
-rw-r--r-- | usr/src/lib/libdladm/common/libdlmgmt.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/usr/src/lib/libdladm/common/libdlmgmt.c b/usr/src/lib/libdladm/common/libdlmgmt.c index 611c693579..39140917de 100644 --- a/usr/src/lib/libdladm/common/libdlmgmt.c +++ b/usr/src/lib/libdladm/common/libdlmgmt.c @@ -382,6 +382,42 @@ dladm_get_conf_field(dladm_handle_t handle, dladm_conf_t conf, const char *attr, } /* + * Get next property attribute from data link configuration repository. + */ +dladm_status_t +dladm_getnext_conf_linkprop(dladm_handle_t handle, dladm_conf_t conf, + const char *last_attr, char *attr, void *attrval, size_t attrsz, + size_t *attrszp) +{ + dlmgmt_door_linkprop_getnext_t getnext; + dlmgmt_linkprop_getnext_retval_t retval; + dladm_status_t status; + + if (conf == DLADM_INVALID_CONF || attrval == NULL || + attrsz == 0 || attr == NULL) { + return (DLADM_STATUS_BADARG); + } + + getnext.ld_cmd = DLMGMT_CMD_LINKPROP_GETNEXT; + getnext.ld_conf = conf; + (void) strlcpy(getnext.ld_last_attr, last_attr, MAXLINKATTRLEN); + + if ((status = dladm_door_call(handle, &getnext, sizeof (getnext), + &retval, sizeof (retval))) != DLADM_STATUS_OK) { + return (status); + } + + *attrszp = retval.lr_attrsz; + if (retval.lr_attrsz > attrsz) { + return (DLADM_STATUS_TOOSMALL); + } + + (void) strlcpy(attr, retval.lr_attr, MAXLINKATTRLEN); + bcopy(retval.lr_attrval, attrval, retval.lr_attrsz); + return (DLADM_STATUS_OK); +} + +/* * Get the link ID that is associated with the given name. */ dladm_status_t |