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>
{
struct mgmt_msg_tree_data *msg;
- struct lyd_node *empty = NULL;
uint8_t **darrp = NULL;
int ret = 0;
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));
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;