From 5adff79ad7eab4b499876b9b6b871e5ac5e80d71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Fri, 8 Dec 2023 10:45:37 +0100 Subject: [PATCH] netopeer2: Add upstream patch to get submodules when listing modules --- ...f-monitor-add-support-for-submodules.patch | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 patches/netopeer2/0002-netconf-monitor-add-support-for-submodules.patch diff --git a/patches/netopeer2/0002-netconf-monitor-add-support-for-submodules.patch b/patches/netopeer2/0002-netconf-monitor-add-support-for-submodules.patch new file mode 100644 index 00000000..4f0f249b --- /dev/null +++ b/patches/netopeer2/0002-netconf-monitor-add-support-for-submodules.patch @@ -0,0 +1,38 @@ +diff --git a/src/netconf_monitoring.c b/src/netconf_monitoring.c +index 467338b..4280a7f 100644 +--- a/src/netconf_monitoring.c ++++ b/src/netconf_monitoring.c +@@ -273,11 +273,14 @@ np2srv_ncm_oper_cb(sr_session_ctx_t *session, uint32_t UNUSED(sub_id), const cha + { + struct lyd_node *root = NULL, *cont, *list; + const struct lys_module *mod; ++ const struct lysp_submodule *submod; + sr_conn_ctx_t *conn; + struct ly_ctx *ly_ctx; + char **cpblts; + char *time_str, buf[11]; + uint32_t i; ++ LY_ARRAY_COUNT_TYPE u; ++ struct timespec ts; + + /* context is locked while the callback is executed */ + conn = sr_session_get_connection(session); +@@ -320,6 +323,18 @@ np2srv_ncm_oper_cb(sr_session_ctx_t *session, uint32_t UNUSED(sub_id), const cha + lyd_new_list(cont, NULL, "schema", 0, &list, mod->name, mod->revision ? mod->revision : "", "yin"); + lyd_new_term(list, NULL, "namespace", mod->ns, 0, NULL); + lyd_new_term(list, NULL, "location", "NETCONF", 0, NULL); ++ ++ LY_ARRAY_FOR(mod->parsed->includes, u) { ++ submod = mod->parsed->includes[u].submodule; ++ ++ lyd_new_list(cont, NULL, "schema", 0, &list, submod->name, submod->revs ? submod->revs[0].date : "", "yang"); ++ lyd_new_term(list, NULL, "namespace", mod->ns, 0, NULL); ++ lyd_new_term(list, NULL, "location", "NETCONF", 0, NULL); ++ ++ lyd_new_list(cont, NULL, "schema", 0, &list, submod->name, submod->revs ? submod->revs[0].date : "", "yin"); ++ lyd_new_term(list, NULL, "namespace", mod->ns, 0, NULL); ++ lyd_new_term(list, NULL, "location", "NETCONF", 0, NULL); ++ } + } + + /* sessions */