summaryrefslogtreecommitdiffstats
path: root/daemon/file.c
diff options
context:
space:
mode:
authorRichard Jones <rjones@trick.home.annexia.org>2009-07-18 10:43:52 +0100
committerRichard Jones <rjones@trick.home.annexia.org>2009-07-18 10:43:52 +0100
commit78029b529ad98769685d607230b70f71832d5906 (patch)
treef103cb7252ccca7efc3e39f4400f961d5972937c /daemon/file.c
parente8c954933b2bfb3bc3ead5a151d49d164f1a8eab (diff)
downloadlibguestfs-78029b529ad98769685d607230b70f71832d5906.tar.gz
libguestfs-78029b529ad98769685d607230b70f71832d5906.tar.xz
libguestfs-78029b529ad98769685d607230b70f71832d5906.zip
Make /sysroot path configurable.
Currently /sysroot is hard-coded throughout the daemon code. This patch turns the path into a variable so that we can change it in future, for example to allow standalone mode to be implemented. This patch was tested by running all the C API tests successfully.
Diffstat (limited to 'daemon/file.c')
-rw-r--r--daemon/file.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/daemon/file.c b/daemon/file.c
index 98c356df..851d9e7c 100644
--- a/daemon/file.c
+++ b/daemon/file.c
@@ -328,8 +328,9 @@ char *
do_file (char *path)
{
char *out, *err;
- int r, len, freeit = 0;
+ int r, freeit = 0;
char *buf;
+ int len;
NEED_ROOT_OR_IS_DEVICE (path, NULL);
ABS_PATH (path, NULL);
@@ -337,13 +338,11 @@ do_file (char *path)
if (strncmp (path, "/dev/", 5) == 0)
buf = (char *) path;
else {
- len = strlen (path) + 9;
- buf = malloc (len);
+ buf = sysroot_path (path);
if (!buf) {
reply_with_perror ("malloc");
return NULL;
}
- snprintf (buf, len, "/sysroot%s", path);
freeit = 1;
}
@@ -389,7 +388,7 @@ do_zfile (char *method, char *path)
NEED_ROOT (NULL);
ABS_PATH (path, NULL);
- len = 2 * strlen (path) + 64;
+ len = 2 * strlen (path) + sysroot_len + 64;
cmd = malloc (len);
if (!cmd) {
reply_with_perror ("malloc");
@@ -406,7 +405,8 @@ do_zfile (char *method, char *path)
return NULL;
}
- strcat (cmd, " /sysroot");
+ strcat (cmd, " ");
+ strcat (cmd, sysroot);
shell_quote (cmd + strlen (cmd), len - strlen (cmd), path);
strcat (cmd, " | file -bsL -");