Commit graph

37 commits

Author SHA1 Message Date
Olof hagsand
83edd29678 Revert "Revert "* Added valgrind memory leak tests in testmem.sh for restconf""
This reverts commit a73d2bd242.
2019-02-20 16:25:42 +01:00
Olof hagsand
a73d2bd242 Revert "* Added valgrind memory leak tests in testmem.sh for restconf"
String error
This reverts commit 6e63f0a77b.
2019-02-20 16:19:07 +01:00
Olof Hagsand
6e63f0a77b * Added valgrind memory leak tests in testmem.sh for restconf
* Added clicon_socket_set() and clicon_socket_get() functions for cleaning up backend server and restconf FCGI socket on termination.
* Removed obsolete `-x` command-line option to clixon_cli.
2019-02-20 13:06:18 +01:00
Olof hagsand
19f26e6838 * XML<>JSON conversion problems [https://github.com/clicon/clixon/issues/66]
* CDATA sections stripped from XML when converted to JSON
2019-01-19 21:39:19 +01:00
Olof hagsand
43b89af7f4 formatting 2019-01-14 21:24:03 +01:00
Jon Loeliger
15cb2385d4 JSON: Fix JSON formatting in the presence of namespaces.
- Fix array_eval() to allow sequential nodes that do not have
  namepace nodes set as well as those that do.

- Fix comma placement in an array list where it was being dropped
  between penultimate and last array elements.

Signed-off-by: Jon Loeliger <jdl@netgate.com>
2019-01-14 13:34:41 -06:00
Olof hagsand
0103d58994 2019 2019-01-02 15:48:30 +01:00
Olof hagsand
0baebc93fd * Strict namespace setting can be a problem when upgrading existing database files, such as startup-db or persistent running-db, or any other saved XML file.
* For backward compatibility, load of startup and running set CLICON_XML_NS_STRICT to false temporarily.
* Added three-valued return values for several validate functions where -1 is fatal error, 0 is validation failed and 1 is validation OK.
  * This includes: `xmldb_put`, `xml_yang_validate_all`, `xml_yang_validate_add`, `xml_yang_validate_rpc`, `api_path2xml`, `api_path2xpath`
* Added new xml functions for specific types: `xml_child_nr_notype`, `xml_child_nr_notype`, `xml_child_i_type`, `xml_find_type`.
2019-01-02 15:18:29 +01:00
Olof hagsand
f872c7e295 * More precise Yang validation and better error messages
* For Example, adding bad-, missing-, or unknown-element error messages, etc instead of operation-failed
* Removed delete-config support for candidate db since it is not supported in RFC6241.
* Switched the order of `error-type` and `error-tag` in all netconf and restconf error messages to comply to RFC order.
* Added example_rpc RPC to example backend
* Renamed xml_namespace[_set]() to xml_prefix[_set]()
* Some restconf error messages contained "rpc-reply" or "rpc-error" which have now been removed.
* Netconf/Restconf RPC extra input arguments are ignored (https://github.com/clicon/clixon/issues/47)
2018-12-21 01:33:41 +01:00
Olof hagsand
ae1af8da9e * NACM extension (RFC8341)
* NACM module support (RFC8341 A1+A2)
   * Recovery user "_nacm_recovery" added.
     * Example use is restconf PUT when NACM edit-config is permitted, then automatic commit and discard are permitted using recovery user.
   * Example user changed adm1 to andy to comply with RFC8341 example

 * Yang code upgrade (RFC7950)
   * RPC method input parameters validated
     * see https://github.com/clicon/clixon/issues/4
* Correct XML namespace handling
   * XML multiple modules was based on "loose" semantics so that yang modules were found by iterating thorugh namespaces until a match was made. This did not adhere to proper [XML namespace handling](https://www.w3.org/TR/2009/REC-xml-names-20091208), and causes problems with overlapping names and false positives. Below see XML accepted (but wrong), and correct namespace declaration:
```
      <rpc><my-own-method></rpc> # Wrong but accepted
      <rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> # Correct
        <my-own-method xmlns="http://example.net/me/my-own/1.0">
      </rpc>
```
   * To keep old loose semantics set config option CLICON_XML_NS_ITERATE (true by default)
   * XML to JSON translator support for mapping xmlns attribute to module name prefix.
   * Default namespace is still "urn:ietf:params:xml:ns:netconf:base:1.0"
   * See https://github.com/clicon/clixon/issues/49
* Changed all make tags --> make TAGS
* Keyvalue datastore removed (it has been disabled since 3.3.3)
* debug rpc added in example application (should be in clixon-config).
2018-12-16 19:49:19 +01:00
Olof hagsand
ba7f84afee * Much better support for XPATH 1.0 according to https://www.w3.org/TR/xpath-10 using yacc/lex
* NOTE: Due to an error in the previous implementation, all XPATH calls on the form `x[a=str]` where `str` is a string (not a number or XML symbol), must be changed to: `x[a='str'] or x[a="str"]`
    * This includes all calls to `xpath_vec, xpath_first`, etc.
    * All calls to cli_copy_config in CLI spec files must replace 2nd argument from `x[%s=%s]` to `x[%s='%s']`
  * The old API is stillenabled. To define the new, define XPATH_USE_NEW in include/clixon_custom.h and recompile
2018-07-17 16:59:32 +02:00
Olof hagsand
85c4782e36 Dedicated xml,json,yang and xsl parser utility programs added
Sanity check of stdarg (...) added
Cleanup of error messages.
2018-06-17 19:40:06 +02:00
Olof Hagsand
353f2e6038 added merge of json trees 2018-05-15 22:24:44 +02:00
Olof hagsand
4257999df5 Fixed JSON unbalanced braces resultin assert 2018-05-06 21:06:52 +02:00
Olof hagsand
990700b68d https://github.com/clicon/clixon/issues/16
Added restconf/operations get, see RFC8040 Sec 3.3.2:
2018-03-04 21:24:38 +01:00
Olof Hagsand
1e88c38877 translate xml->json \n correctly 2018-02-17 20:51:42 +00:00
Olof hagsand
2bbf0b8a15 xml2json dont put doublequotes on numbers and bool values in json 2018-02-02 16:35:37 +07:00
Olof hagsand
9914847d6a GET Single element JSON lists use {list:[element]}, not {list:element}. 2018-01-27 13:32:51 +01:00
Olof hagsand
cd33380368 Fixed empty restconf data segv; error restconf quit; etc 2018-01-16 22:25:55 +01:00
Olof hagsand
38f0b446fa 2017->2018 2018-01-01 12:25:33 +01:00
Olof hagsand
174cfc02c6 Added CLICON_XMLDB_PRETTY option. If set to false, XML database files will be more compact.
Added CLICON_XMLDB_FORMAT option. Default is "xml". If set to "json", XML database files uses JSON format.
Escape " in JSON names and strings and values
Optimized search performance for large lists by sorting and binary search.
2017-12-29 18:09:26 +01:00
Olof hagsand
e169485985 Datastore cache introduced; Added yang to XML API 2017-12-02 14:49:49 +01:00
Olof Hagsand
23e40384f7 JSON negative number patch 2017-11-13 17:11:31 +00:00
Olof hagsand
7b719cc6db Added Floating point support to JSON 2017-10-29 16:15:18 +01:00
Olof hagsand
265ed859de mem leak 2017-08-01 19:39:19 +02:00
Olof hagsand
bc2b606167 dual license 2016-12-30 16:14:48 +01:00
Olof Hagsand
303f4a35a8 json escape etc 2016-10-06 20:58:41 +02:00
Olof Hagsand
7062a75fd7 more XML to JSON 2016-10-02 12:09:36 +02:00
Olof hagsand
831ab1be30 json list->array 2016-09-30 18:49:14 +02:00
Olof hagsand
a0b7d28bd1 xml2json again 2016-09-30 17:57:00 +02:00
Olof hagsand
1c061aaf26 xml->json translation revisited 2016-09-28 21:12:38 +02:00
Olof Hagsand
3443dbd33f restconf plugins and figthing with xml->json translation 2016-09-26 21:44:17 +02:00
Olof hagsand
b82a8bae26 better json printing 2016-09-22 16:57:26 +02:00
Olof Hagsand
fe91ba707d json print revert 2016-09-21 21:24:39 +02:00
Olof hagsand
b744a4ad8a restconf; xmlput extended with api_path; xmldb_put_tree 2016-09-20 21:51:08 +02:00
Olof Hagsand
ef3c98518a json and prettyprint 2016-08-17 21:02:53 +02:00
Olof hagsand
887d43428b json parser 2016-08-15 09:29:22 +02:00