summaryrefslogtreecommitdiff
path: root/src/librc/librc.c
diff options
context:
space:
mode:
authorChristian Ruppert <idl0r@gentoo.org>2011-07-13 21:32:13 +0200
committerChristian Ruppert <idl0r@gentoo.org>2011-07-13 21:32:13 +0200
commita74382d9cb3d7f024efca46f2befb49e35c40758 (patch)
treeb087a4330fcc2f70c5108e113e966f1edff03d63 /src/librc/librc.c
parentfdaf1c65cdcba2d9b83e02cc0d08fb6dbbd80a80 (diff)
downloadopenrc-a74382d9cb3d7f024efca46f2befb49e35c40758.tar.gz
openrc-a74382d9cb3d7f024efca46f2befb49e35c40758.tar.bz2
openrc-a74382d9cb3d7f024efca46f2befb49e35c40758.tar.xz
Fix rc_service_value_get() to return multiple lines as well
As introduced in bug 372547 using service_get_value() in the init scripts or using rc_service_value_get() directly will only return one line. This patch fixes it by using the new rc_getfile() function, it returns even multiple lines. We're still using a char *, so the lines will be appended instead of added into new element. X-Gentoo-Bug: 372547 X-Gentoo-Bug-URL: http://bugs.gentoo.org/372547
Diffstat (limited to 'src/librc/librc.c')
-rw-r--r--src/librc/librc.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/librc/librc.c b/src/librc/librc.c
index a6ff0fe..98765d8 100644
--- a/src/librc/librc.c
+++ b/src/librc/librc.c
@@ -767,19 +767,15 @@ librc_hidden_def(rc_service_state)
char *
rc_service_value_get(const char *service, const char *option)
{
- FILE *fp;
- char *line = NULL;
+ char *buffer = NULL;
size_t len = 0;
char file[PATH_MAX];
snprintf(file, sizeof(file), RC_SVCDIR "/options/%s/%s",
service, option);
- if ((fp = fopen(file, "r"))) {
- rc_getline(&line, &len, fp);
- fclose(fp);
- }
+ rc_getfile(file, &buffer, &len);
- return line;
+ return buffer;
}
librc_hidden_def(rc_service_value_get)