diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2012-05-22 15:40:25 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2012-05-22 15:40:25 +0000 |
commit | 468bff33095ec2cc01092c19d72ccc3efda55bdb (patch) | |
tree | 51b7fbadbcb82ce29811a20185ed3ba1cc68b8f8 | |
parent | 1956545ea040d99ffbae89926176c6151469db9e (diff) | |
download | illumos-joyent-468bff33095ec2cc01092c19d72ccc3efda55bdb.tar.gz |
OS-792 dladm show-linkprop -z zonename doesn't restrict output to that zone, unless you also specify the vnic name
-rw-r--r-- | usr/src/cmd/dladm/dladm.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/usr/src/cmd/dladm/dladm.c b/usr/src/cmd/dladm/dladm.c index cc9bd0097a..6352e33fa5 100644 --- a/usr/src/cmd/dladm/dladm.c +++ b/usr/src/cmd/dladm/dladm.c @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 Joyent Inc. All rights reserved. + * Copyright (c) 2012 Joyent, Inc. All rights reserved. */ #include <stdio.h> @@ -961,6 +961,7 @@ typedef struct show_linkprop_state { char ls_link[MAXLINKNAMELEN]; char *ls_line; char **ls_propvals; + char *ls_zonename; dladm_arg_list_t *ls_proplist; boolean_t ls_parsable; boolean_t ls_persist; @@ -6797,6 +6798,7 @@ do_show_linkprop(int argc, char **argv, const char *use) != DLADM_STATUS_OK) die("invalid link properties specified"); state.ls_proplist = proplist; + state.ls_zonename = zonename; state.ls_status = DLADM_STATUS_OK; if (state.ls_parsable) @@ -6841,6 +6843,17 @@ show_linkprop_onelink(dladm_handle_t hdl, datalink_id_t linkid, void *arg) return (DLADM_WALK_CONTINUE); } + if (statep->ls_zonename != NULL) { + datalink_id_t tlinkid; + + if (dladm_zname2info(hdl, statep->ls_zonename, statep->ls_link, + &tlinkid, NULL, NULL, NULL) != DLADM_STATUS_OK || + linkid != tlinkid) { + statep->ls_status = DLADM_STATUS_NOTFOUND; + return (DLADM_WALK_CONTINUE); + } + } + if ((statep->ls_persist && !(flags & DLADM_OPT_PERSIST)) || (!statep->ls_persist && !(flags & DLADM_OPT_ACTIVE))) { statep->ls_status = DLADM_STATUS_BADARG; |