Commit graph

451 commits

Author SHA1 Message Date
Olof hagsand
6e0e45aab7 * Fixed: Some native restconf error messages did not end with \r\n.
* Specifically the error when sending http request on https.
2021-08-20 15:45:13 +02:00
Olof hagsand
8db716ca07 - Moved yang patch code to new files restconf_methods_patch.[ch]
- Started modifying patch code to style guidelines
- Made patch test independent of example
- Added developers style guidelines
2021-08-15 20:43:52 +02:00
Olof hagsand
bd8cbbc393 Merge branch 'alanyanigersiklu-yang-patch-alanfork' 2021-08-10 19:50:27 +02:00
Alan Yaniger
f2e81be66e fix merge conflicts 2021-08-06 12:08:13 +03:00
Alan Yaniger
94b8f7fec5 fixed another rebase error 2021-08-05 15:39:27 +03:00
Alan Yaniger
ad950efc32 fixed check when getting value inside xml tag given the key 2021-08-05 15:16:29 +03:00
Alan Yaniger
523407a9c1 fixed string length checks, removed unnecessary loop, changed some other code for clarity 2021-08-05 15:16:29 +03:00
Alan Yaniger
fd28fd498d - Add prefix "yang_patch_" to new functions
- use clixon cbuf functions instead of new string functions
 - moved some code into separate functions
 - added comments
 - added documentation to functions that did not have it
2021-08-05 15:16:29 +03:00
Olof hagsand
128764a570 - Added yang patch test: test_restconf_yang_patch.sh as placeholder for rfc 8072 tests
- Added patch-xml as valid media
2021-08-05 15:15:28 +03:00
Olof hagsand
659aaac5c6 - cli set debug vars
- fixed: restconf native evhtp appended indata to old data
2021-08-05 15:15:28 +03:00
Alan Yaniger
86b64c4dd0 split up long function, use safe string handling functions 2021-08-05 15:15:28 +03:00
Alan Yaniger
8d2fbf39de implement yang-patch 2021-08-05 15:15:28 +03:00
Alan Yaniger
d1f44e2f1f fixed check when getting value inside xml tag given the key 2021-08-01 17:01:40 +03:00
Alan Yaniger
db7e016aa0 fixed string length checks, removed unnecessary loop, changed some other code for clarity 2021-08-01 16:50:04 +03:00
Alan Yaniger
948fa70b44 - Add prefix "yang_patch_" to new functions
- use clixon cbuf functions instead of new string functions
 - moved some code into separate functions
 - added comments
 - added documentation to functions that did not have it
2021-07-27 18:36:46 +03:00
Olof hagsand
600f29a117 - Added yang patch test: test_restconf_yang_patch.sh as placeholder for rfc 8072 tests
- Added patch-xml as valid media
2021-07-26 12:20:06 +02:00
Olof hagsand
c1c4e5b3f3 - cli set debug vars
- fixed: restconf native evhtp appended indata to old data
2021-07-26 10:46:00 +02:00
Alan Yaniger
46d07c1372 split up long function, use safe string handling functions 2021-07-25 09:04:26 +03:00
Olof hagsand
f7f24949d6 Merge branch 'yang-patch-alanfork' of https://github.com/alanyanigersiklu/clixon into alanyanigersiklu-yang-patch-alanfork 2021-07-19 22:54:00 +02:00
Alan Yaniger
0c72100a05 implement yang-patch 2021-07-19 13:17:10 +03:00
Olof hagsand
e0ee365958 * Fixed: RFC 8040 yang-data extension allows non-key lists
* Added YANG_FLAG_NOKEY as exception to mandatory key lists
2021-07-19 11:15:49 +02:00
Olof hagsand
270c47b396 Native restconf fixes:
- memleak in http/1-only
- exit if http/1 request sent to http/2-only
- hang if http/1 TLS request sent to http/2 only
2021-07-09 15:08:21 +02:00
Olof hagsand
ef131cf407 * 5.2.0 preparations
* Restconf native openssl - ifdef SSL_get0_next_proto_negotiated
2021-07-01 16:34:38 +02:00
Olof hagsand
85e2945ec9 * Netconf message-id attribute changed from optional to mandatory
* Made NETCONF message handling more strict according to RFC 6241
  * Set `CLICON_NETCONF_MESSAGE_ID_OPTIONAL` to true to accept omission of message-id attribute
* Fixed: [need make sure message-id exist in rpc validate #240](https://github.com/clicon/clixon/issues/240)
2021-06-30 10:59:10 +02:00
Olof hagsand
3539a80d5e restconf fcgi mem leak in indata
test pkill needs sleep before name settles
2021-06-27 16:40:27 +02:00
Olof Hagsand
b46418d774 Minor test and type fixes 2021-06-26 21:27:59 +00:00
Olof Hagsand
e451b7f43e - changed debug printfs to work for i386
- restconf native centos8: fixed ssl shutdown error
- libnghttp2 older version patch
2021-06-26 08:38:23 +00:00
Olof Hagsand
b31107f646 - Restconf native: Fixed ssl/non-ssl read/write behaviour for data that is different in freebsd than in linux
- test: removed sed -i in tests since it is not portable between linux and bsd
2021-06-25 10:48:55 +00:00
Olof hagsand
c5da97e2a4 restconf memleaks 2021-06-24 13:09:18 +02:00
Olof hagsand
d6c175e76e - Improved debugs for native restconf config reads
- Docker: restconf native added nghttp2
2021-06-23 10:53:27 +02:00
Olof hagsand
9edf380f6a - Link utils statically if LINKAGE=static
- Fix event exit bug (set to new counter, dont increment)
- Changed default CI to be restconf=native instead of fcgi1~
- Tests:
  - Change to same wait backend and restconf commands
  - Change default restconf protocol from http to https
2021-06-18 22:50:30 +02:00
Olof hagsand
b40dafb691 * Event exit API changed to a single decrementing counter where 1 means exit.
* Removed: `clicon_exit_reset()`
  * Changed: `clicon_exit_set()` --> `clixon_exit_set(int nr)`
  * Changed: `clicon_exit_get()` --> `clixon_exit_get()`
* native restconf special case upgrade handling from http/1 -> http/2 and restconf restart: delay the restart using event exit counter
2021-06-16 11:58:13 +02:00
Olof hagsand
4f513385e9 - Restconf native http/1 to http/2 upgrade (non-tls) 2021-06-13 12:43:19 +02:00
Olof hagsand
84f5762ab5 * Most tests work with HTTP/2 support using nghttp2
* except non-ssl http/1->/2 upgrade
* Restconf: ensure HEAD method works everywhere GET does.
2021-06-08 20:53:43 +02:00
Olof hagsand
b680e3c5ac - Restconf nghttp2 compiles 2021-06-03 22:47:54 +02:00
Olof hagsand
0ad577fa81 - Started nghttp2 work
-  Added autoconf config options, temporary for nghttp2 development: `--disable-evhtp`and `--enable-nghttp2`.
- Added special case for api-path:s beginning with //
2021-05-31 19:11:19 +02:00
Olof hagsand
c405a08ff8 Restconf https fixes after nmap and fuzz:
- segv in PUT/POST of /
- Dont return bad request on error, just close socket
2021-05-28 16:17:52 +02:00
Olof hagsand
164aa1cb4c * Restconf: added inline configuration using -R <xml> command line as an alternative to making advanced restconf configuration 2021-05-26 11:24:39 +02:00
Olof hagsand
5b39418e92 * [Need an option to disable restconf mandatory action of overwriting startup_db #230](https://github.com/clicon/clixon/issues/230)
* Disable RFC 8040 mandatory copy of running to startup after commit
* Rename CLICON_RESTCONF_INSTALL_DIR -> CLICON_RESTCONF_INSTALLDIR
2021-05-25 11:07:41 +02:00
Olof hagsand
ae02d02d63 Several fixes to restconf internal and vagrants tests 2021-05-24 13:10:21 +02:00
Olof hagsand
c20c672d83 * Changed config and install options for Restconf
* clixon_restconf daemon is installed in /usr/local/sbin (as clixon_backend), instead of /www-data
    * `configure --with-wwwdir=<dir>` remains but only applies to fcgi socket and log
    * New option `CLICON_RESTCONF_INSTALL_DIR` is set to where clixon_restconf is installed, with default `/usr/local/sbin/`
  * Restconf drop privileges user is defined by `CLICON_RESTCONF_USER`
    * `configure --with-wwwuser=<user>` is removed
  * clixon_restconf drop of privileges is defined by `CLICON_RESTCONF_PRIVILEGES` option
* New clixon-restconf@2020-05-20.yang revision
  * Added: restconf `log-destination`
2021-05-23 17:14:18 +02:00
Olof hagsand
c3e26b004c * Fixed: [xpath function count did not work properly #224](https://github.com/clicon/clixon/issues/224) 2021-05-20 15:16:29 +02:00
Olof hagsand
9fb9024675 Fixed: native restconf 100 Continue caused hanging 2021-05-18 14:28:57 +02:00
Olof hagsand
783b0a4857 * YANG when statement in conjunction with grouping/uses/augment
* Several cases were not implemented fully according to RFC 7950
    * Do not extend default values if when statements evaluate to false
    * Do not allow edit-config of nodes if when statements evaluate to false (Sec 8.3.2)
    * If a key leaf is defined in a grouping that is used in a list, the "uses" statement MUST NOT have a "when" statement. (See 7.21.5)
  * See [yang uses's substatement when has no effect #218](https://github.com/clicon/clixon/issues/2$
2021-05-13 14:26:02 +02:00
Olof hagsand
7023fe589f patch for fixing http2 test 2021-05-09 22:12:33 +02:00
Olof hagsand
6ed2202638 - Added openssl application-layer protocol negotiation
- Added restconf tests for http/1.0 and http/2
2021-05-09 17:55:13 +02:00
Olof hagsand
ad08200931 - Added Restconf-style xml/json message bodies everywhere
- Added api_return_err0() and changed many calls to that instead of api_return_err
- Added netconf_operation_not_supported_xml()
2021-05-08 20:20:01 +02:00
Olof hagsand
0225488c39 - Moved deviation actions to include grouped/uses statements. See https://github.com/clicon/clixon/issues/211 2021-05-06 16:23:50 +02:00
Olof hagsand
866d8d1d0a - Fixed issues with mismatching Content-Length in replies causing extra bytes to spill over into the next message 2021-05-06 14:34:31 +02:00
Olof hagsand
6605ab8ce7 Restconf native: add error bodies on early errors 2021-05-05 20:40:59 +02:00