Olof hagsand
835f9030d2
* State callbacks provided by user are validated. If they are invalid an internal error is returned.
...
* Fixed multi-namespace for augmented state which was not covered in 4.2.0.
* The multi-namespace augment state may rearrange the XML namespace attributes.
* Mandatory variables can no longer be deleted.
2019-11-11 21:03:11 +01:00
Olof hagsand
728fe9c6ac
* Bumped version to 4.3.0.PRE
...
* Added wildcard `*` as a mode to `CLICON_MODE` in clispec files
* [Add missing includes](https://github.com/clicon/clixon/pulls )
2019-11-03 13:05:50 +01:00
Olof hagsand
84c94b2c0e
recover user as config option instead of constant
2019-10-24 20:43:03 +02:00
Olof hagsand
44138c0071
internal netconf hello mechanism to obtain session-id
2019-10-24 11:46:06 +02:00
Olof hagsand
b624e911b8
* Internal backend socket protocol changed: uint32_t session-id added, see clixon_proto.h
...
* * Changed session-id handing. Instead of using pid of peer process, a proper session id generated by the server is used, following RFC6241.
2019-10-19 19:52:09 +02:00
Olof hagsand
279614d64f
* The backend socket has now support of credentials of peer clients
...
* Added: CLICON_NACM_CREDENTIALS and CLICON_NACM_RECOVERY_USER
2019-10-18 19:33:23 +02:00
Olof Hagsand
77b491c568
Demon->Daemon, FreeBSD grep changes
2019-10-14 07:47:08 -10:00
Olof hagsand
03acf8e19c
* XPATH canonical form implemented for NETCONF get and get-config.
2019-10-09 22:13:04 +02:00
Olof hagsand
8cdb0bb062
* Changed so that 400 Bad Request are for invalid api-path or unknown yang elements, 404 Not Found for valid xml when object not found.
2019-10-07 22:20:34 +02:00
Olof hagsand
6e41592aec
* Changed clicon_rpc_get and clicon_rpc_get_config functions: added username and replaced namespace with namespace context
...
* Fixed several issues with multiple namespaces.
2019-10-03 22:01:16 +02:00
Olof hagsand
d9136c8972
* Stricter handling of multi-namespace handling
...
* This occurs in cases where there are more than one XML namespaces in a config tree, such as `augment`:ed trees.
* Affects all parts of the system, including datastore, backend, restconf and cli.
* Invalid api-path syntax (eg non-matching yang) error changed from 412 operation-failed to 400 Bad request invalid-value, or unknown-element.
2019-09-29 14:45:08 +02:00
Olof hagsand
22307e0a9e
Invalid api-path syntax error changed from 412 operation-failed to 404 invalid-value.
2019-09-21 11:26:03 +02:00
User Olof
8c18f2a86d
Configure and test modification for better Freebsd port
2019-09-20 06:09:48 -10:00
Olof hagsand
fe1aeda4f2
test env bash; freebsd config
2019-09-17 22:44:01 +02:00
Olof hagsand
27fd99e7cd
* Implemented backend daemon drop privileges after initialization to
...
run as non-privileged user
2019-09-14 18:34:32 +02:00
Olof hagsand
3d5abb77f9
* Backend daemon drops privileges after initialization (to not run as root)
...
* New config option `CLICON_USER` with default value `clicon`
* Can also be set with `-U <user>` clixon_backend command-line option
2019-09-11 21:24:14 +02:00
Olof hagsand
ee329ee382
* RESTCONF "depth" query parameter supported
...
* C API change: Added `depth` parameter to function `clicon_xml2cbuf`, default is -1.
2019-08-17 10:54:13 +02:00
Olof hagsand
10a2dbe8ec
* Added experimental binary search API function: xml_binsearch
...
* Added content parameter to `clicon_rpc_get` (-1 or CONTENT_ALL is default)
* Reverted change in clixon-lib.yang
2019-08-14 11:13:24 +02:00
Olof hagsand
8b7b7b0f60
* RESTCONF "content" query parameter supported
...
* New clixon-lib@2019-08-13.yang revision
* Bugfix: If `ietf-netconf.yang` was imported from any yang module, client/backend communication stops working.
2019-08-13 13:21:11 +02:00
Olof hagsand
e244f5c8f8
Added patch media types; restconf patch test-cases; nsc spelling
2019-08-09 14:49:40 +02:00
Olof hagsand
f319c18374
RESTCONF JSON identity had wrong namespace in sub-objetcs
2019-08-09 14:39:38 +02:00
Olof hagsand
bb2eaa3cc7
* Corrected problem with namespace context cache, was not always cleared when adding new subtrees.
2019-08-08 11:29:01 +02:00
Olof hagsand
c97346921b
Netconf operation attribute namespace check is enforced
2019-07-31 16:45:48 +02:00
Olof hagsand
2d9d204f69
* RESTCONF "insert" and "point" query parameters supported
...
* Yang Netconf leaf/leaf-list insert support
* For "ordered-by user" leafs and leaf-lists, the insert and value/key attributes are supported according to RFC7950 Sections 7.7.9 and 7.8.6
* Fixed RESTCONF api-path leaf-list selection was not made properly
2019-07-31 14:04:27 +02:00
Olof hagsand
70ebfa4d80
* Identity/identityref mapped between XML and JSON
2019-07-28 18:09:55 +02:00
Olof hagsand
c1bae276ff
* RESTCONF PUT/POST erroneously returned 200 OK. Instead restconf now returns:
...
* `201 Created` for created resources
* `204 No Content` for replaced resources.
* See [RESTCONF: HTTP return codes are not according to RFC 8040](https://github.com/clicon/clixon/issues/56 )
* HTTP `Location:` fields added in RESTCONF POST replies
2019-07-25 13:15:31 +02:00
Olof hagsand
e7b60619da
* Pushed tag to 4.0.1.PRE
...
* Restconf RFC 8040 increased feature compliance
* Cache-Control: no-cache added in HTTP responses (RFC Section 5.5)
* Restconf monitoring capabilities (RFC Section 9.1)
* Added support for Yang extensions
* New plugin callback: ca_extension
* Main backend example includes example code on how to implement a Yang extension in a plugin.
* JSON changes
* Non-pretty-print output removed all extra spaces.
* Example: `{"nacm-example:x": 42}` --> {"nacm-example:x":42}`
* Empty JSON container changed from `null` to `{}`.
* Empty list and leafs remain as `null`
* Removed unnecessary configure dependencies
* libnsl, libcrypt, libm, if_vlan,...
* pseudo-plugin added, to enable callbacks also for main programs. Useful for extensions
* Yang Unique statements with multiple schema identifiers did not work on some platforms due to memory error.
2019-07-23 22:11:14 +02:00
Olof hagsand
e44685a100
Replaced strchr with nodeid_split
...
Experimental code for replacing identityref lists with module:id instead of prefix:id
2019-07-10 17:18:34 +02:00
Olof hagsand
40d5b99d3b
Reverted some of the nsc xpath API changes. In the revert, xpath_first() and xpath_vec() retain their old syntax with nsc==NULL.
...
The reason is to be conservative with the API. However, less used functions, such as xpath_vec_bool(), xpath_vec_ctx() and xpath_vec_flag() are changed with a new `nsc`parameter, which should be set to NULL in most cases.
2019-07-09 12:19:03 +02:00
Olof hagsand
1f8c759f3d
Merge branch 'master' of https://github.com/clicon/clixon .
...
Added new API function `xpath_parse()` to split parsing and xml evaluation.
2019-07-08 14:47:18 +02:00
Olof hagsand
67b8685bab
The Clixon API has been extended with namespaces, or namespace contexts in the following cases:
...
* CLIspec functions have added namespace parameter:
* `cli_show_config <db> <format> <xpath>` --> `cli_show_config <db> <format> <xpath> <namespace>`
* `cli_copy_config <db> <xpath> ...` --> `cli_copy_config <db> <xpath> <namespace> ...`
* Xpath API
* `xpath_first(x, format, ...)` --> `xpath_first(x, nsc, format, ...)`
* `xpath_vec(x, format, vec, veclen, ...)` --> `xpath_vec(x, nsc, format, vec, veclen, ...)`
* `xpath_vec_flag(x, format, flags, vec, veclen, ...)` --> `xpath_vec_flag(x, format, flags, vec, veclen, ...)`
* `xpath_vec_bool(x, format, ...)` --> `xpath_vec_bool(x, nsc, format, ...)`
* `xpath_vec_ctx(x, xpath, xp)` --> `xpath_vec_ctx(x, nsc, xpath, xp)`
* xmldb_get0 has an added `nsc` parameter:
* `xmldb_get0(h, db, xpath, copy, xret, msd)` --> `xmldb_get0(h, db, nsc, xpath, copy, xret, msd)`
* The plugin statedata callback (ca_statedata) has been extended with an nsc parameter:
* `int example_statedata(clicon_handle h, cvec *nsc, char *xpath, cxobj *xstate);`
* rpc get and get-config api function has an added namespace argument:
* `clicon_rpc_get_config(clicon_handle h, char *db, char *xpath, char *namespace, cxobj **xt);`
* `int clicon_rpc_get(clicon_handle h, char *xpath, char *namespace, cxobj **xt);`
2019-07-08 10:36:37 +02:00
Olof hagsand
41f7e44dec
Return 404 Not found error if restconf GET does not return requested instance
2019-07-04 20:21:07 +02:00
Olof hagsand
af720e8f28
Merge branch 'master' of https://github.com/clicon/clixon
2019-06-18 14:50:30 +02:00
Olof hagsand
17e3e74ad5
All hash_ functions have been prefixed with clicon_ to avoid name collision with other packages (frr)
2019-06-18 14:49:18 +02:00
Olof hagsand
3bad8bc874
* startup_extraxml triggers unnecessary validation
...
* Renamed startup_db_reset -> xmldb_db_reset (its a general function)
* In startup_extraxml(), check if reset callbacks or extraxml file actually makes and changes to the tmp db.
2019-06-14 22:01:30 +02:00
Olof hagsand
fc78824110
Many validation functions have changed error parameter from cbuf to xml tree.
2019-06-10 12:49:40 +02:00
Olof hagsand
3dba0b5370
Restore xmldb_get() to original (but removed one parameter
...
Moved all zero-copy xmldb_get functions to xmldb_get0.
Clarified CHANGELOG for xmldb_get changes
2019-06-04 11:14:03 +02:00
Olof hagsand
2aeb925521
* JSON parse and print improvements
...
* Integrated parsing with namespace translation and yang spec lookup
2019-06-03 16:40:54 +02:00
Olof Hagsand
18ab5e7dfe
restructuring of type cache for regexp compile complex case
2019-05-30 10:29:46 +00:00
Olof hagsand
55f9b7cab0
Added CLIgen tab-modes in config option CLICON_CLI_TAB_MODE, which means you can control the behaviour of <tab> in the CLI.
2019-05-29 20:11:31 +02:00
Olof Hagsand
2ae9529a3e
added regexp free routines, replaced regexp mode string with symbol
2019-05-29 14:17:30 +00:00
Olof hagsand
2fe185d683
* Support for multiple patterns as described in RFC7950 Section 9.4.7
...
* Added regex cache to type resolution
* Added compiled regexp parameter as part of internal yang type resolution functions
* All internal `ys_populate_*()` functions (except ys_populate()) have switched parameters: `clicon_handle, yang_stmt *)`
2019-05-29 11:39:09 +02:00
Olof hagsand
a804e05375
* Added clicon_handle as parameter to all validate functions
...
* Added libxml2 XSD regexp mode as alternative to posix translation
* Added `CLICON_YANG_REGEXP` option with possible values libxml2 and posix
2019-05-23 22:48:33 +02:00
Olof hagsand
0b0fef12cc
Merge branch 'master' of https://github.com/clicon/clixon
2019-05-14 14:11:43 +02:00
Olof hagsand
d775eb5374
* Improved submodule implementation, as part of [Yang submodule import prefix restrictions #60 ]( https://github.com/clicon/clixon/issues/60 ).
2019-05-14 14:09:02 +02:00
Olof hagsand
b103599a1a
* Clixon transaction mechanism has changed which may affect your backend plugin callbacks:
...
* Validate-only transactions are terminated by an `end` or `abort` callback.
* If a commit user callback fails, a new `revert` callback will be made to plugins that have made a succesful commit.
2019-05-10 14:45:23 +02:00
Olof hagsand
99b7a1fe5b
Clixon config option CLICON_XMLDB_CACHE renamed to CLICON_DATASTORE_CACHE and changed type from boolean to datastore_cache
2019-05-09 14:25:16 +02:00
Olof hagsand
70221742f7
Merge branch 'master' of https://github.com/clicon/clixon
2019-05-08 13:05:51 +02:00
Olof hagsand
06e6ef80d1
Non-key list now not accepted in edit-config (before only on validation)
2019-05-08 12:51:10 +02:00
Olof hagsand
c529847790
* Yang "min-element" and "max-element" feature supported
...
* New Clixon Yang RPC: ping. To check if backup is running.
* Fixed support for multiple datanodes in a choice/case statement.
2019-05-07 11:47:30 +02:00