]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
sysrepo: module: added common files directory
authorAleš <ales.mrazek@nic.cz>
Wed, 15 Jan 2020 14:15:09 +0000 (15:15 +0100)
committerAleš <ales.mrazek@nic.cz>
Wed, 15 Jan 2020 14:15:09 +0000 (15:15 +0100)
modules/sysrepo/common/sysrepo_conf.c [new file with mode: 0644]
modules/sysrepo/common/sysrepo_conf.h [new file with mode: 0644]
modules/sysrepo/meson.build
modules/sysrepo/sysrepo.c [new file with mode: 0644]

diff --git a/modules/sysrepo/common/sysrepo_conf.c b/modules/sysrepo/common/sysrepo_conf.c
new file mode 100644 (file)
index 0000000..0730555
--- /dev/null
@@ -0,0 +1,17 @@
+# include "sysrepo_conf.h"
+
+int sysrepo_repo_config()
+{
+    /*
+    This function will probably be called on knot-resolver
+    installation or by `kres-watcher` when something
+    wents wrong with sysrepo.
+
+    Configures sysrepo:
+        1. install/import YANG modules
+        2. enable features
+        3. import json data to startup datastore
+        4. clean up any stale connections of clients that no longer exist
+     */
+    return 0;
+}
\ No newline at end of file
diff --git a/modules/sysrepo/common/sysrepo_conf.h b/modules/sysrepo/common/sysrepo_conf.h
new file mode 100644 (file)
index 0000000..8a8c57b
--- /dev/null
@@ -0,0 +1,14 @@
+# pragma once
+
+#include <string.h>
+#include <sysrepo.h>
+#include <libyang/libyang.h>
+
+/* sysrepo globals */
+#define YM_DIR         ""
+#define YM_COMMON       "cznic-resolver-common"
+#define YM_KRES         "cznic-resolver-knot"
+#define XPATH_BASE      "/" YM_COMMON ":dns-resolver"
+
+/* Function to configure sysrepo repository */
+int sysrepo_repo_config();
\ No newline at end of file
index 041db3d98659d7a984a6cbf4777577ad82b4de93..b5ecf1cab2cc513bbbf7f70f83dee0fc5fde7533 100644 (file)
@@ -1,8 +1,29 @@
 # C module: sysrepo
 
 sysrepo_src = files([
+    'sysrepo.c',
 ])
+c_src_lint += sysrepo_src
 
-if enable_sysrepo
+sysrepo_common_src = files([
+    'common/sysrepo_conf.c',
+    'common/sysrepo_conf.h',
+])
+c_src_lint += sysrepo_common_src
 
+if enable_sysrepo
+    sysrepo_mod = shared_module(
+       'sysrepo',
+       sysrepo_src,
+    sysrepo_common_src,
+       dependencies: [
+         luajit_inc,
+         libyang,
+      libsysrepo,
+       ],
+       include_directories: mod_inc_dir,
+       name_prefix: '',
+       install: true,
+       install_dir: modules_dir,
+  )
 endif
\ No newline at end of file
diff --git a/modules/sysrepo/sysrepo.c b/modules/sysrepo/sysrepo.c
new file mode 100644 (file)
index 0000000..cb7b634
--- /dev/null
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <uv.h>
+#include <lua.h>
+#include <sysrepo.h>
+
+#include "lib/module.h"
+
+KR_EXPORT
+int nsid_init(struct kr_module *module) {
+
+       return kr_ok();
+}
+
+KR_EXPORT
+int nsid_deinit(struct kr_module *module) {
+
+       return kr_ok();
+}
+
+KR_MODULE_EXPORT(sysrepo)