summaryrefslogtreecommitdiff
path: root/src/librc
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2011-01-17 06:32:46 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2011-01-17 06:32:46 +0000
commit0e90ae266af658c2a8e405c1ce81819e8437ade9 (patch)
tree2d812a7da8386eb2fd374a8f1a3eb5101a274950 /src/librc
parentb113ad49e9bf99e78bac9b6529c22355c62cea94 (diff)
downloadopenrc-0e90ae266af658c2a8e405c1ce81819e8437ade9.tar.gz
openrc-0e90ae266af658c2a8e405c1ce81819e8437ade9.tar.bz2
openrc-0e90ae266af658c2a8e405c1ce81819e8437ade9.tar.xz
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.
Diffstat (limited to 'src/librc')
-rw-r--r--src/librc/librc-depend.c11
-rw-r--r--src/librc/rc.h.in5
-rw-r--r--src/librc/rc.map1
3 files changed, 14 insertions, 3 deletions
diff --git a/src/librc/librc-depend.c b/src/librc/librc-depend.c
index 765f595..13f9076 100644
--- a/src/librc/librc-depend.c
+++ b/src/librc/librc-depend.c
@@ -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)
diff --git a/src/librc/rc.h.in b/src/librc/rc.h.in
index 3d0ffb4..7ed8f22 100644
--- a/src/librc/rc.h.in
+++ b/src/librc/rc.h.in
@@ -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)
diff --git a/src/librc/rc.map b/src/librc/rc.map
index 113f2d7..d763bfe 100644
--- a/src/librc/rc.map
+++ b/src/librc/rc.map
@@ -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;