validation BUGFIX hanlde all unexpected node types
Fixes #1743
diff --git a/src/validation.c b/src/validation.c
index 4ab3ffc..2d41d59 100644
--- a/src/validation.c
+++ b/src/validation.c
@@ -1392,7 +1392,7 @@
return LY_EVALID;
}
- /* no state/input/output data */
+ /* no state/input/output/op data */
innode = NULL;
if ((val_opts & LYD_VALIDATE_NO_STATE) && (node->schema->flags & LYS_CONFIG_R)) {
innode = "state";
@@ -1400,6 +1400,12 @@
innode = "output";
} else if ((int_opts & LYD_INTOPT_REPLY) && (node->schema->flags & LYS_IS_INPUT)) {
innode = "input";
+ } else if (!(int_opts & (LYD_INTOPT_RPC | LYD_INTOPT_REPLY)) && (node->schema->nodetype == LYS_RPC)) {
+ innode = "rpc";
+ } else if (!(int_opts & (LYD_INTOPT_ACTION | LYD_INTOPT_REPLY)) && (node->schema->nodetype == LYS_ACTION)) {
+ innode = "action";
+ } else if (!(int_opts & LYD_INTOPT_NOTIF) && (node->schema->nodetype == LYS_NOTIF)) {
+ innode = "notification";
}
if (innode) {
LOGVAL(LYD_CTX(node), LY_VCODE_UNEXPNODE, innode, node->schema->name);