diff --git a/CHANGELOG.md b/CHANGELOG.md index 29a4ac24..c44fe00e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,17 @@ * [3.3.2](#332) Aug 27 2017 * [3.3.1](#331) June 7 2017 +## with-defaults branch + +### New features + +* With-defaults RFC6243 + * see [Netconf With-defaults Capability](https://github.com/clicon/clixon/issues/262) + +### Corrected Bugs + +* Fixed: [with-defaults=trim does not work due to dodgy handling of state data marked as default](https://github.com/clicon/clixon/issues/348) + ## 5.9.0 Expected: September 2022 diff --git a/apps/backend/backend_get.c b/apps/backend/backend_get.c index 98adafca..b71c54ae 100644 --- a/apps/backend/backend_get.c +++ b/apps/backend/backend_get.c @@ -206,12 +206,6 @@ get_client_statedata(clicon_handle h, clicon_err(OE_UNIX, errno, "cbuf_new"); goto done; } - /* Add default state to config if present */ - if (xml_default_recurse(*xret, 1) < 0) - goto done; - /* Add default global state */ - if (xml_global_defaults(h, *xret, nsc, xpath, yspec, 1) < 0) - goto done; if (clicon_option_bool(h, "CLICON_STREAM_DISCOVERY_RFC5277")){ if ((ymod = yang_find_module_by_name(yspec, "clixon-rfc5277")) == NULL){ clicon_err(OE_YANG, ENOENT, "yang module clixon-rfc5277 not found"); @@ -261,6 +255,12 @@ get_client_statedata(clicon_handle h, goto done; if (ret == 0) goto fail; + /* Add default state to config if present */ + if (xml_default_recurse(*xret, 1) < 0) + goto done; + /* Add default global state */ + if (xml_global_defaults(h, *xret, nsc, xpath, yspec, 1) < 0) + goto done; retval = 1; /* OK */ done: clicon_debug(1, "%s %d", __FUNCTION__, retval); diff --git a/test/test_yang_with_defaults.sh b/test/test_yang_with_defaults.sh index 36700964..c6633ff8 100755 --- a/test/test_yang_with_defaults.sh +++ b/test/test_yang_with_defaults.sh @@ -31,6 +31,7 @@ cat < $cfg $APPNAME $dir/$APPNAME.sock /usr/local/var/$APPNAME/$APPNAME.pidfile + false $dir false $IETFRFC @@ -128,7 +129,7 @@ if [ $BE -ne 0 ]; then # Bring your own backend if [ $? -ne 0 ]; then err fi - new "start backend -s $db -f $cfg" + new "start backend -s $db -f $cfg -- -sS $fstate" start_backend -s $db -f $cfg -- -sS $fstate fi @@ -169,7 +170,6 @@ fi new "wait restconf" wait_restconf - new "rfc4243 4.3. Capability Identifier" expecteof "$clixon_netconf -ef $cfg" 0 "$DEFAULTHELLO" \ "urn:ietf:params:netconf:capability:with-defaults:1.0?basic-mode=explicit"