From 342b94fb769d292c61adf90c35ccbeba191dfc20 Mon Sep 17 00:00:00 2001 From: Olof hagsand Date: Sun, 27 Jan 2019 14:45:39 +0100 Subject: [PATCH] nacm refactoring --- lib/src/clixon_nacm.c | 124 ++++++++++++++++++++++++++++-------------- 1 file changed, 83 insertions(+), 41 deletions(-) diff --git a/lib/src/clixon_nacm.c b/lib/src/clixon_nacm.c index 5a5ed3da..a29fe485 100644 --- a/lib/src/clixon_nacm.c +++ b/lib/src/clixon_nacm.c @@ -368,6 +368,75 @@ rule_datanode_read(cxobj *xrule, return retval; } +/*! Go through all rules for a requested node + * @param[in] xt XML root tree with "config" label + * @param[in] xr Requested node (node in xt) + * @param[in] gvec NACM groups where user is member + * @param[in] glen Length of gvec + * @param[in] rlistvec NACM rule-list entries + * @param[in] rlistlen Length of rlistvec + * @param[out] xrulep If set, then points to matching rule + */ +static int +nacm_datanode_read_xr(cxobj *xt, + cxobj *xr, + cxobj **gvec, + size_t glen, + cxobj **rlistvec, + size_t rlistlen, + cxobj **xrulep + ) +{ + int retval = -1; + int i, j; + cxobj *xrlist; + char *gname; + cxobj **rvec = NULL; /* rules */ + size_t rlen; + cxobj *xrule = NULL; + int match = 0; + + for (i=0; i