diff options
| author | Richard Jones <rjones@redhat.com> | 2010-08-23 12:53:11 +0100 |
|---|---|---|
| committer | Richard Jones <rjones@redhat.com> | 2010-08-23 12:56:14 +0100 |
| commit | a2d4a8bf073c3551d174bd6c406e0cf3d27fb560 (patch) | |
| tree | 83ecd024845b88db5f578529ecf2b5174f70616d /src | |
| parent | 4d2f1632ad655130fafab3bf7fe8fa5cb59705d8 (diff) | |
| download | libguestfs-a2d4a8bf073c3551d174bd6c406e0cf3d27fb560.tar.gz libguestfs-a2d4a8bf073c3551d174bd6c406e0cf3d27fb560.tar.xz libguestfs-a2d4a8bf073c3551d174bd6c406e0cf3d27fb560.zip | |
Factor out code for locating the temporary directory.
This is just code movement.
Diffstat (limited to 'src')
| -rw-r--r-- | src/guestfs-internal.h | 1 | ||||
| -rw-r--r-- | src/launch.c | 32 |
2 files changed, 22 insertions, 11 deletions
diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h index 966eeeb2..c8db8291 100644 --- a/src/guestfs-internal.h +++ b/src/guestfs-internal.h @@ -197,6 +197,7 @@ extern void *guestfs_safe_realloc (guestfs_h *g, void *ptr, int nbytes); extern char *guestfs_safe_strdup (guestfs_h *g, const char *str); extern char *guestfs_safe_strndup (guestfs_h *g, const char *str, size_t n); extern void *guestfs_safe_memdup (guestfs_h *g, void *ptr, size_t size); +extern const char *guestfs___tmpdir (void); extern void guestfs___free_inspect_info (guestfs_h *g); extern int guestfs___set_busy (guestfs_h *g); extern int guestfs___end_busy (guestfs_h *g); diff --git a/src/launch.c b/src/launch.c index 0d7a3f34..4a479bc0 100644 --- a/src/launch.c +++ b/src/launch.c @@ -266,8 +266,6 @@ static const char *initrd_name = "initramfs." REPO "." host_cpu ".img"; int guestfs__launch (guestfs_h *g) { - const char *tmpdir; - char dir_template[PATH_MAX]; int r, pmore; size_t len; int wfd[2], rfd[2]; @@ -293,16 +291,11 @@ guestfs__launch (guestfs_h *g) gettimeofday (&g->launch_t, NULL); /* Make the temporary directory. */ -#ifdef P_tmpdir - tmpdir = P_tmpdir; -#else - tmpdir = "/tmp"; -#endif - - tmpdir = getenv ("TMPDIR") ? : tmpdir; - snprintf (dir_template, sizeof dir_template, "%s/libguestfsXXXXXX", tmpdir); - if (!g->tmpdir) { + const char *tmpdir = guestfs___tmpdir (); + char dir_template[strlen (tmpdir) + 32]; + sprintf (dir_template, "%s/libguestfsXXXXXX", tmpdir); + g->tmpdir = safe_strdup (g, dir_template); if (mkdtemp (g->tmpdir) == NULL) { perrorf (g, _("%s: cannot create temporary directory"), dir_template); @@ -877,6 +870,23 @@ guestfs__launch (guestfs_h *g) return -1; } +const char * +guestfs___tmpdir (void) +{ + const char *tmpdir; + +#ifdef P_tmpdir + tmpdir = P_tmpdir; +#else + tmpdir = "/tmp"; +#endif + + const char *t = getenv ("TMPDIR"); + if (t) tmpdir = t; + + return tmpdir; +} + /* This function is used to print the qemu command line before it gets * executed, when in verbose mode. */ |
