mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-29 04:03:01 +02:00
confd: Add helper to get the diff being applied as a libyang tree
This commit is contained in:
committed by
Joachim Wiberg
parent
6e39b3dbf6
commit
a5b4c04d08
@@ -3,6 +3,25 @@
|
||||
#include <stdarg.h>
|
||||
#include "core.h"
|
||||
|
||||
sr_error_t srx_get_diff(sr_session_ctx_t *session, struct lyd_node **treep)
|
||||
{
|
||||
sr_error_t err = SR_ERR_OK;
|
||||
sr_change_iter_t *iter;
|
||||
struct lyd_node *tree;
|
||||
|
||||
err = sr_dup_changes_iter(session, "/ietf-system:system//.", &iter);
|
||||
|
||||
/* WARNING: sr_change_iter_t is opaque, we rely on the diff
|
||||
* tree being the first member. */
|
||||
tree = *((struct lyd_node **)iter);
|
||||
|
||||
if (lyd_dup_single(tree, NULL, LYD_DUP_RECURSIVE, treep))
|
||||
err = SR_ERR_LY;
|
||||
|
||||
sr_free_change_iter(iter);
|
||||
return err;
|
||||
}
|
||||
|
||||
int srx_set_item(sr_session_ctx_t *session, const sr_val_t *val, sr_edit_options_t opts,
|
||||
const char *fmt, ...)
|
||||
{
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
#define SRX_GET_UINT8(s,v,fmt,...) srx_get_int(s, &v, SR_UINT8_T, fmt, ##__VA_ARGS__)
|
||||
#define SRX_GET_UINT32(s,v,fmt,...) srx_get_int(s, &v, SR_UINT32_T, fmt, ##__VA_ARGS__)
|
||||
|
||||
sr_error_t srx_get_diff(sr_session_ctx_t *session, struct lyd_node **treep);
|
||||
|
||||
int srx_set_item(sr_session_ctx_t *session, const sr_val_t *val, sr_edit_options_t opts,
|
||||
const char *fmt, ...) __attribute__ ((format (printf, 4, 5)));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user