Commit graph

1022 commits

Author SHA1 Message Date
Olof hagsand
b1cb774c9d TEXT output/parser: fix space-separated leaf/leaf-lists 2022-06-07 13:23:05 +02:00
Olof hagsand
4f9ed02a46 Text syntax parser/loader, fixed double leaf-list issue
Test: extended test_cli with format 4x tests
2022-06-03 14:03:01 +02:00
Olof hagsand
b6bfcb69f7 Text syntax parser/loader
Added support for list x y;
Uses a mechanism to parse as unknown XML body and post-parsing replace with list keys
Fixed example and test to work with new TEXT syntax
2022-06-02 19:28:49 +02:00
Olof hagsand
0c79298e76 Changed C-API for xml translation/print the internal cxobj tree data structure to other formats
New API is as follows:
  * `clixon_xml2file()` - Print internal tree as XML to file
  * `clixon_xml2cbuf()` - Print internal tree as XML to buffer
  * `clixon_json2file()` - Print internal tree as JSON to file
  * `clixon_json2cbuf()` - Print internal tree as JSON to buffer
  * `clixon_cli2file()` - Print internal tree as CLI format to file
  * `clixon_txt2file()` - Print internal tree as text format to file
2022-06-01 20:02:27 +02:00
Olof hagsand
87719c623c Text syntax parser/loader
Leaf-list syntax using: "id [ leaf leaf ...]" syntax for output and input
Variables using \n\r in text
Added clixon_xvec_merge()
2022-06-01 11:08:19 +02:00
Olof hagsand
820ed5686b Text syntax parser/loader
Added string quites around text containing spaces
Added support for colon in text
2022-06-01 11:07:55 +02:00
Olof hagsand
2ece0b8f51 * Experimental text syntax parser/loader
* Added new text syntax parsing and loading from CLI
  * Unified text output functions to `xml2txt` and moved to clixon_text_syntax.[ch]
    * The following are removed: `cli_xml2txt` and `xml2txt_cb`
  * Text output format changed:
    * Namespace/modulename added to top-level
  * See [Support performant load_config_file(...) for TEXT format](https://github.com/clicon/clixon/issues/324)
2022-06-01 11:07:15 +02:00
Olof hagsand
43a57dad79 Changed C-API for xml translation/print to other formats.
* Added `skiptop` parameter, if set only apply to children of a node, skip top node
    * default is 0
* Functions are merged, ie removed and replaced with more generic functions
* `xml2json_cbuf()`: Added `skiptop` parameter: `xml2json_cbuf(..., int skiptop)`
* `xml2json()` and `xml2json_cb()` merged into `xml2json_file()` with `skiptop`
    * Replace `xml2json(...)` with `xml2json_file(..., stdout, 0)`
    * Replace `xml2json_cb(...)` with `xml2json_file(..., 0)`
* `clicon_xml2cbuf()`: Added `skiptop` parameter: `clicon_xml2cbuf(..., int skiptop)`
* `xml2cli()`: Added `skiptop` parameter: `xml2cli(..., int skiptop)`
2022-06-01 10:48:39 +02:00
Olof hagsand
724b94137f Test, fixed the fix of previous commits 2022-05-30 15:47:54 +02:00
Olof hagsand
ebe3d8e454 Test: fixed an occasional error in actions depending on hostname inclduing '92' 2022-05-30 15:36:37 +02:00
Olof hagsand
8e6ba7fa53 test of cligen expand bug #332 2022-05-30 15:27:19 +02:00
Olof hagsand
cca8c88ec1 5.7.0 release 2022-05-17 11:45:43 +02:00
Olof hagsand
3a336838f7 Fixed a cornercase of RFC 7950 Sec 7.9, a choice witout case with sub-containers 2022-05-16 13:12:59 +02:00
Olof Hagsand
5bd64712c7 Tests: disabled: valgrind and pagination, restconf notification 2022-05-13 15:02:20 +00:00
Olof hagsand
c3b120b364 Test: netconf -H flag replaced with -1 caused valgrind fails 2022-05-12 21:49:34 +02:00
Olof hagsand
d153bfcd0c Test: restconf notification parallel disabled. start script -l removed 2022-05-12 16:17:26 +02:00
Olof hagsand
0c81b66ef3 Fixed: [Returning a string while Querying leaf-list for single entry](https://github.com/clicon/clixon/issues/326) 2022-05-12 12:04:13 +02:00
Olof hagsand
7065d6f760 Test: restconf CN variable, strip curl newline
Fixed a few compile warnings
2022-05-12 09:40:12 +02:00
Olof hagsand
c27ecf0923 Test: added test of CLI rest variables with delimiters 2022-05-10 17:37:55 +02:00
Olof hagsand
a49cf41d1e * CLI expansion of leafrefs default behavior changed
* In the autocli and handcrafted CLI:s using `expand_dbvar()` the CLI expansion followed the leafrefs to the sources, ie the origin of the leafrefs
    * Instead leafref expansion now only looks at the leafrefs
2022-05-10 10:06:43 +02:00
Olof hagsand
614c927343 * Added nsc parameter to xml2xpath() and ensured the xpath uses prefixes.
* Old code: add `NULL` as second parameter
2022-05-09 13:48:07 +02:00
Olof hagsand
7452813da7 Http data server Fixed binary data retrieval 2022-05-05 18:08:45 +02:00
Olof hagsand
90474d1523 Fixed: A long TLS+HTTP/2 request such as by a browser causing block of other requests.
Test: Disabled privileges test if clixon_restconf started with -r
2022-05-02 10:31:53 +02:00
Olof hagsand
5551d753ef Logging fixes
* Fixed: [Error message seen twice in some cases](https://github.com/clicon/clixon/issues/325)
* Extended `-l` command-line option to all clixon commands with a `none` option, eg `-l n` directs logging to `dev/null`
2022-04-30 11:31:51 +02:00
Olof hagsand
ef302f0c05 Fixed: [if choice is declared with multiple elements or leaf-list with in a case scope , addition or updation is not happening as expected](https://github.com/clicon/clixon/issues/327)
* This includes several choice/case adjustments to follow RFC 7950 Sec 7.9 better
2022-04-29 19:16:56 +02:00
Olof hagsand
28bd146e5c Added clixon_netconf command-line option -0and changed -H to -1
* `-0` means dont send hello, but fix netconf base version to 0 and use EOM framing
    * `-1` means dont send hello, but fix netconf base version to 1 and use chunked framing
2022-04-29 19:07:12 +02:00
Olof hagsand
f11e4bad6c Http data server changes
* Indirect redirects from directory to `index.html`
  * Added `HTTP_DATA_INTERNAL_REDIRECT` compile-time option
* Added CLICON_RESTCONF_API_ROOT to clixon-config.yang
* Added 404 return without body if neither restconf, data or streams prefix match
* Fixed: HTTP/1 parse error for '/' path
2022-04-28 16:17:07 +02:00
Olof hagsand
84d88c8ad8 Restconf http-data server updates
Check data paths for .., ~ and soft links
Changed semantics of `CLICON_HTTP_DATA_PATH` and `_ROOT`
Change URI catch-all to 404 instead of 400
Fixed some memory leaks
2022-04-26 17:42:53 +02:00
Olof hagsand
e0100a6e3c Fixed: YANG if-feature in config file did not work, was always on
Test: unset test variables
2022-04-23 16:49:09 +02:00
Olof hagsand
404d05950a HTTP data server updates
Check of enable-http-data config option
HTTP/2 Return 400 bad request if no path match
Test: updated yang file revisions, extended restconf config with http-data
2022-04-22 15:23:38 +02:00
Olof hagsand
2a8cedf0c3 Limited http-data static server
* Renamed from www-data to http-data
* New `clixon-restconf@2022-03-21.yang` revision
  * Added option:
    * `enable-http-data`
  * Added feature: `http-data`
* Added new str2str mapper
* Test: new test_http_data.sh, added CI github action testing
2022-04-21 16:02:39 +02:00
Olof hagsand
e1bec5f6dd Test: Ensured HVER/RCPROTO work as envvars to test and documented it 2022-04-20 15:16:17 +02:00
Olof hagsand
fa077839f0 Misc sanity checks and documentation 2022-04-19 14:19:29 +02:00
Olof hagsand
6418e030ce RESTCONF FCGI notifications: minor timing adjustments, mostly for testcases 2022-04-18 12:15:26 +02:00
Olof hagsand
600f0616f6 Memory leak/err in notification when closing down
test: restconf notification chunked framing update
2022-04-17 13:30:07 +02:00
Olof hagsand
580396d32f - Misc documentation
- Test: move pid file from tmp to global storage to prevent multiple instances
2022-04-14 15:21:25 +02:00
Olof hagsand
ecac027d18 CLI argument to shell example callback
Save state of netconf chunked framing between inputs
Treat EBADF in internal protocol (triggered by freebsd+notifications)
Test: chunked encoding: use printf instead of echo
2022-04-11 19:09:26 +02:00
Olof Hagsand
ac7673bc35 Fixed static build typo
Test: grep --null -Eo not supported on ubunti 20
Enable IPv6 for ubuntu
Vagrant: enable insecure downloads
2022-04-09 15:14:18 +00:00
Olof hagsand
a51abd0063 * XPath parser: fixing lexical issues cornercases
* Some complexities in Section 3.7 Lexical Structure of XPath 1.0 spec
  * There used to be some cornercases where function-names could not be used as nodes
  * For example, `node()` is a nodetest, so `/node/` caused an error.
  * In the grammar these include: axisnames,  nodetests, functionnames
  * The NCNames vs functionnames is now impölemented according to the lexical structure section
2022-04-07 12:53:57 +02:00
Olof hagsand
f1300d7a12 * [Adding feature to top level container doesn't work](https://github.com/clicon/clixon/issues/322)
* Instead of removing YANG which is disabled by `if-feature`, replace it with an yang `anydata` node.
  * This means XML specified by such YANG is ignored, and it is not an error to access it
  * Note the similarity with `CLICON_YANG_UNKNOWN_ANYDATA`
2022-04-06 14:04:11 +02:00
Olof hagsand
59f03b50fb Test: type in example 2022-04-03 13:39:30 +02:00
Olof hagsand
1a9def2f6e [provide support for load config of cli format along with json and xml format as save config is supported for all 3 formats](https://github.com/clicon/clixon/issues/320) 2022-04-01 18:05:19 +02:00
Olof hagsand
3d648bc08f * [prevent clixon-restconf@2021-05-20.yang module from loading](https://github.com/clicon/clixon/issues/318)
* Instead of always loading it, load it to datastore YANGs only if `CLICON_BACKEND_RESTCONF_PROCESS` is `true`
*
2022-03-29 17:24:03 +02:00
Olof hagsand
9690e0d8f2 * Fixed: HTTP/1 multiple write requests in single session appended data between writes, eg PUT+PUT. 2022-03-28 22:55:43 +02:00
Olof hagsand
3d59077894 vagrant test: patch yangmodels, changed to main 2022-03-28 19:20:30 +02:00
Olof hagsand
8d5694cc1c test yangmodels, filter mpls-ldp yang models due to bug(again) 2022-03-28 15:33:14 +02:00
Olof hagsand
fb86285984 YangModels master branch renamed to main
- Test: skipped standard/ietf/RFC/ietf-mpls-ldp@2022-03-14.yang due to xpath bug
2022-03-28 15:03:30 +02:00
Olof hagsand
c038c9a27f * Implementation of "chunked framing" according to RFC6242 for Netconf 1.1.
* First hello is 1.0 EOM framing, then successing rpc is chunked framing
  * See
    * [Netconf framing](https://github.com/clicon/clixon/issues/50), and
    * [Clixon does not switch to chunked framing after NETCONF 1.1 is negotiated](https://github.com/clicon/clixon/issues/314)
* C:
  * Moved netconf framing code from netconf application to clixon lib
* Test:
  * New expecteof_netconf and adjusted other expect scripts to handle NETCONF 1.1 framing
2022-03-28 12:36:44 +02:00
Olof hagsand
bf983d7ca4 * New clixon-config@2022-03-21.yang revision
* Added option:
    * `CLICON_NETCONF_BASE_CAPABILITY`
* Removed `NETCONF_1_1_ANNOUNCE` compile option
2022-03-27 17:38:36 +02:00
Olof hagsand
cee735e586 netconf 1.1 capability remove tests 2022-03-17 22:18:12 +01:00