Hi, The loop in cgroup_parse_rules() is a little long now, and it is not easy to read the loop. Then, This patch shortens the loop for the readability.
Thanks Ken'ichi Ohmichi Signed-off-by: Ken'ichi Ohmichi <[email protected]> --- src/api.c | 43 +++++++++++++++++++++++++++---------------- 1 files changed, 27 insertions(+), 16 deletions(-) diff --git a/src/api.c b/src/api.c index 75dc92a..237d4e6 100644 --- a/src/api.c +++ b/src/api.c @@ -243,6 +243,30 @@ static void cgroup_free_rule_list(struct cgroup_rule_list *rl) rl->tail = NULL; } +static char *cg_skip_unused_charactors_in_rule(char *rule) +{ + char *itr; + + /* We ignore anything after a # sign as comments. */ + if ((itr = strchr(rule, '#'))) + *itr = '\0'; + + /* We also need to remove the newline character. */ + if ((itr = strchr(rule, '\n'))) + *itr = '\0'; + + /* Now, skip any leading tabs and spaces. */ + itr = rule; + while (itr && isblank(*itr)) + itr++; + + /* If there's nothing left, we can ignore this line. */ + if (!strlen(itr)) + return NULL; + + return itr; +} + /** * Parse the configuration file that maps UID/GIDs to cgroups. If ever the * configuration file is modified, applications should call this function to @@ -337,23 +361,10 @@ static int cgroup_parse_rules(bool cache, uid_t muid, gid_t mgid) while ((itr = fgets(buff, sizeof(buff), fp)) != NULL) { linenum++; - /* We ignore anything after a # sign as comments. */ - if ((itr = strchr(buff, '#'))) - *itr = '\0'; - - /* We also need to remove the newline character. */ - if ((itr = strchr(buff, '\n'))) - *itr = '\0'; - - /* Now, skip any leading tabs and spaces. */ - itr = &buff; - while (itr && isblank(*itr)) - itr++; - - /* If there's nothing left, we can ignore this line. */ - if (!strlen(itr)) + if (!(itr = cg_skip_unused_charactors_in_rule(buff))) { + memset(buff, '\0', sizeof(buff)); continue; - + } /* * If we skipped the last rule and this rule is a continuation * of it (begins with %), then we should skip this rule too. ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://www.creativitycat.com _______________________________________________ Libcg-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libcg-devel
