diff options
| author | Igor Ryzhov <iryzhov@nfware.com> | 2024-01-28 02:35:14 +0200 |
|---|---|---|
| committer | Igor Ryzhov <iryzhov@nfware.com> | 2024-01-31 02:20:13 +0200 |
| commit | dda5de0340f30ed15cc172046b451e013ad5e16e (patch) | |
| tree | 71baac71cb693b3f628799c1cfcaae79d7802e3a | |
| parent | e13c590abe1217c8088a9493069a448d356d5c00 (diff) | |
mgmtd: fix printing an empty data tree
We don't need to create an actual tree to print an empty tree, libyang
handles NULL just fine. The actual problem is that `yang_dnode_new`
creates a tree by validating it, and the validation creates all implicit
default nodes. Therefore, when called with "with-default" flags, instead
of getting an empty tree, we get a tree with all top-level default set.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
| -rw-r--r-- | mgmtd/mgmt_fe_adapter.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/mgmtd/mgmt_fe_adapter.c b/mgmtd/mgmt_fe_adapter.c index 5dd6a70012..23f2e5368e 100644 --- a/mgmtd/mgmt_fe_adapter.c +++ b/mgmtd/mgmt_fe_adapter.c @@ -1086,7 +1086,6 @@ static int fe_adapter_send_tree_data(struct mgmt_fe_session_ctx *session, { struct mgmt_msg_tree_data *msg; - struct lyd_node *empty = NULL; uint8_t **darrp = NULL; int ret = 0; @@ -1098,11 +1097,6 @@ static int fe_adapter_send_tree_data(struct mgmt_fe_session_ctx *session, msg->partial_error = partial_error; msg->result_type = result_type; - if (!tree) { - empty = yang_dnode_new(ly_native_ctx, false); - tree = empty; - } - darrp = mgmt_msg_native_get_darrp(msg); ret = yang_print_tree_append(darrp, tree, result_type, (wd_options | LYD_PRINT_WITHSIBLINGS)); @@ -1125,8 +1119,6 @@ static int fe_adapter_send_tree_data(struct mgmt_fe_session_ctx *session, mgmt_msg_native_get_msg_len(msg), short_circuit_ok); done: - if (empty) - yang_dnode_free(empty); mgmt_msg_native_free_msg(msg); return ret; |
