PERF: Added a recurse parameter to xml_yang_minmax_recurse() to avoid "double recursion"
C-API: `candidate_commit()`: validate_level (added in 6.1) marked obsolete
This commit is contained in:
parent
2db5961169
commit
55422f4187
9 changed files with 30 additions and 29 deletions
|
|
@ -1359,7 +1359,7 @@ xml_yang_validate_all(clicon_handle h,
|
|||
/* Check unique and min-max after choice test for example*/
|
||||
if (yang_config(yt) != 0){
|
||||
/* Checks if next level contains any unique list constraints */
|
||||
if ((ret = xml_yang_minmax_recurse(xt, xret)) < 0)
|
||||
if ((ret = xml_yang_minmax_recurse(xt, 1, xret)) < 0)
|
||||
goto done;
|
||||
if (ret == 0)
|
||||
goto fail;
|
||||
|
|
@ -1396,7 +1396,7 @@ xml_yang_validate_all_top(clicon_handle h,
|
|||
if ((ret = xml_yang_validate_all(h, x, xret)) < 1)
|
||||
return ret;
|
||||
}
|
||||
if ((ret = xml_yang_minmax_recurse(xt, xret)) < 1)
|
||||
if ((ret = xml_yang_minmax_recurse(xt, 0, xret)) < 1)
|
||||
return ret;
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -633,6 +633,8 @@ xml_yang_minmax_gap_analysis(cxobj *xt,
|
|||
* 7 null nolist neq gap analysis; nopresence-check;
|
||||
* 8 list nolist neq gap analysis; yprev: check-minmax; nopresence-check;
|
||||
* @param[in] xt XML parent (may have lists w unique constraints as child)
|
||||
* @param[in] recurse Set if called in a recursive loop (will recurse anyway),
|
||||
* otherwise non-presence containers will be traversed
|
||||
* @param[out] xret Error XML tree. Free with xml_free after use
|
||||
* @retval 1 Validation OK
|
||||
* @retval 0 Validation failed (xret set)
|
||||
|
|
@ -643,6 +645,7 @@ xml_yang_minmax_gap_analysis(cxobj *xt,
|
|||
*/
|
||||
int
|
||||
xml_yang_minmax_recurse(cxobj *xt,
|
||||
int recurse,
|
||||
cxobj **xret)
|
||||
{
|
||||
int retval = -1;
|
||||
|
|
@ -709,11 +712,11 @@ xml_yang_minmax_recurse(cxobj *xt,
|
|||
}
|
||||
if (ret == 0)
|
||||
goto fail;
|
||||
if (keyw == Y_CONTAINER &&
|
||||
if (recurse && keyw == Y_CONTAINER &&
|
||||
yang_find(y, Y_PRESENCE, NULL) == NULL){
|
||||
yang_stmt *yc = NULL;
|
||||
while ((yc = yn_each(y, yc)) != NULL) {
|
||||
if ((ret = xml_yang_minmax_recurse(x, xret)) < 0)
|
||||
if ((ret = xml_yang_minmax_recurse(x, recurse, xret)) < 0)
|
||||
goto done;
|
||||
if (ret == 0)
|
||||
goto fail;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue