From cbd1770462b2325372f90ef9200110dc66245377 Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Fri, 20 Aug 2010 13:29:49 -0700 Subject: handle "changed" status properly * original backend implementation uses unionfs-specific "changes only" dir to determine "changed" status. this breaks when it involves deactivated nodes. * new library design uses explicit per-node "changed" marker. however, since previously "commit" only handles a root "changed" marker, the new library could not implement this scheme and used a workaround instead. * now add API functions for "commit" to properly clean up "changed" markers. * modify "commit" to use these API functions and remove the workaround from the new library. --- src/cstore/cstore-c.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/cstore/cstore-c.cpp') diff --git a/src/cstore/cstore-c.cpp b/src/cstore/cstore-c.cpp index fd818a5..c835efe 100644 --- a/src/cstore/cstore-c.cpp +++ b/src/cstore/cstore-c.cpp @@ -143,6 +143,19 @@ cstore_cfg_path_get_effective_value(void *handle, const char *path_comps[], return NULL; } +int +cstore_unmark_cfg_path_changed(void *handle, const char *path_comps[], + int num_comps) +{ + if (handle) { + vector vs; + _get_str_vec(vs, path_comps, num_comps); + Cstore *cs = (Cstore *) handle; + return (cs->unmarkCfgPathChanged(vs) ? 1 : 0); + } + return 0; +} + char ** cstore_path_string_to_path_comps(const char *path_str, int *num_comps) { -- cgit v1.2.3