summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Ryzhov <iryzhov@nfware.com>2024-01-28 02:35:14 +0200
committerIgor Ryzhov <iryzhov@nfware.com>2024-01-31 02:20:13 +0200
commitdda5de0340f30ed15cc172046b451e013ad5e16e (patch)
tree71baac71cb693b3f628799c1cfcaae79d7802e3a
parente13c590abe1217c8088a9493069a448d356d5c00 (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.c8
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;