Factor out new function rc_deptree_load_file to aid in debugging deptree files from users. Loads from a given filename instead of the hardcoded RC_DEPTREE_CACHE define.

This commit is contained in:
Robin H. Johnson 2011-01-17 06:32:46 +00:00
parent b113ad49e9
commit 0e90ae266a
5 changed files with 17 additions and 3 deletions

View File

@ -114,7 +114,13 @@ get_deptype(const RC_DEPINFO *depinfo, const char *type)
}
RC_DEPTREE *
rc_deptree_load(void)
rc_deptree_load(void) {
return rc_deptree_load_file(RC_DEPTREE_CACHE);
}
librc_hidden_def(rc_deptree_load)
RC_DEPTREE *
rc_deptree_load_file(const char *deptree_file)
{
FILE *fp;
RC_DEPTREE *deptree;
@ -127,7 +133,7 @@ rc_deptree_load(void)
char *e;
int i;
if (!(fp = fopen(RC_DEPTREE_CACHE, "r")))
if (!(fp = fopen(deptree_file, "r")))
return NULL;
deptree = xmalloc(sizeof(*deptree));
@ -175,7 +181,6 @@ rc_deptree_load(void)
return deptree;
}
librc_hidden_def(rc_deptree_load)
static bool
valid_service(const char *runlevel, const char *service, const char *type)

View File

@ -375,6 +375,11 @@ bool rc_deptree_update_needed(time_t *, char *);
* @return pointer to the dependency tree */
RC_DEPTREE *rc_deptree_load(void);
/*! Load a cached dependency tree from the specified file and return a pointer
* to it. This pointer should be freed with rc_deptree_free when done.
* @return pointer to the dependency tree */
RC_DEPTREE *rc_deptree_load_file(const char *);
/*! List the depend for the type of service
* @param deptree to search
* @param type to use (keywords, etc)

View File

@ -7,6 +7,7 @@ global:
rc_deptree_depends;
rc_deptree_free;
rc_deptree_load;
rc_deptree_load_file;
rc_deptree_order;
rc_deptree_update;
rc_deptree_update_needed;

View File

@ -5,6 +5,7 @@ rc_deptree_depend
rc_deptree_depends
rc_deptree_free
rc_deptree_load
rc_deptree_load_file
rc_deptree_order
rc_deptree_update
rc_deptree_update_needed

View File

@ -12,6 +12,8 @@ rc_deptree_free
rc_deptree_free@@RC_1.0
rc_deptree_load
rc_deptree_load@@RC_1.0
rc_deptree_load_file
rc_deptree_load_file@@RC_1.0
rc_deptree_order
rc_deptree_order@@RC_1.0
rc_deptree_update