diff options
author | Richard Jones <rjones@trick.home.annexia.org> | 2009-07-18 10:43:52 +0100 |
---|---|---|
committer | Richard Jones <rjones@trick.home.annexia.org> | 2009-07-18 10:43:52 +0100 |
commit | 78029b529ad98769685d607230b70f71832d5906 (patch) | |
tree | f103cb7252ccca7efc3e39f4400f961d5972937c /daemon/tar.c | |
parent | e8c954933b2bfb3bc3ead5a151d49d164f1a8eab (diff) | |
download | libguestfs-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/tar.c')
-rw-r--r-- | daemon/tar.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/daemon/tar.c b/daemon/tar.c index 95408271..30085741 100644 --- a/daemon/tar.c +++ b/daemon/tar.c @@ -49,7 +49,7 @@ do_tar_in (char *dir) } /* "tar -C /sysroot%s -xf -" but we have to quote the dir. */ - len = 2 * strlen (dir) + 32; + len = 2 * strlen (dir) + sysroot_len + 32; cmd = malloc (len); if (!cmd) { err = errno; @@ -58,7 +58,8 @@ do_tar_in (char *dir) reply_with_perror ("malloc"); return -1; } - strcpy (cmd, "tar -C /sysroot"); + strcpy (cmd, "tar -C "); + strcat (cmd, sysroot); shell_quote (cmd+15, len-15, dir); strcat (cmd, " -xf -"); @@ -112,13 +113,14 @@ do_tar_out (char *dir) ABS_PATH (dir, -1); /* "tar -C /sysroot%s -cf - ." but we have to quote the dir. */ - len = 2 * strlen (dir) + 32; + len = 2 * strlen (dir) + sysroot_len + 32; cmd = malloc (len); if (!cmd) { reply_with_perror ("malloc"); return -1; } - strcpy (cmd, "tar -C /sysroot"); + strcpy (cmd, "tar -C "); + strcat (cmd, sysroot); shell_quote (cmd+15, len-15, dir); strcat (cmd, " -cf - ."); @@ -175,7 +177,7 @@ do_tgz_in (char *dir) } /* "tar -C /sysroot%s -zxf -" but we have to quote the dir. */ - len = 2 * strlen (dir) + 32; + len = 2 * strlen (dir) + sysroot_len + 32; cmd = malloc (len); if (!cmd) { err = errno; @@ -184,7 +186,8 @@ do_tgz_in (char *dir) reply_with_perror ("malloc"); return -1; } - strcpy (cmd, "tar -C /sysroot"); + strcpy (cmd, "tar -C "); + strcat (cmd, sysroot); shell_quote (cmd+15, len-15, dir); strcat (cmd, " -zxf -"); @@ -238,13 +241,14 @@ do_tgz_out (char *dir) ABS_PATH (dir, -1); /* "tar -C /sysroot%s -zcf - ." but we have to quote the dir. */ - len = 2 * strlen (dir) + 32; + len = 2 * strlen (dir) + sysroot_len + 32; cmd = malloc (len); if (!cmd) { reply_with_perror ("malloc"); return -1; } - strcpy (cmd, "tar -C /sysroot"); + strcpy (cmd, "tar -C "); + strcat (cmd, sysroot); shell_quote (cmd+15, len-15, dir); strcat (cmd, " -zcf - ."); |